From 97d8d151ea381e59f77d9fd90634491f933b5557 Mon Sep 17 00:00:00 2001 From: thedmail Date: Wed, 18 Dec 2024 13:16:53 -0800 Subject: [PATCH] I1521 (#1540) * docs: Deletes the Genkit sample apps, as they migrate from here to the Firebase quickstart-nodejs repo. A companion PR, in branch i1521-2 of that repo, places te files there. * docs: Deletes the Genkit sample apps, as they migrate from here to the Firebase quickstart-nodejs repo. A companion PR, in branch i1521-2 of that repo, places te files there. * docs: Deletes the Genkit sample apps, as they migrate from here to the Firebase quickstart-nodejs repo. A companion PR, in branch i1521-2 of that repo, places te files there. --- samples/README.md | 10 +- samples/chatbot/.gitignore | 1 - samples/chatbot/README.md | 35 ---- samples/chatbot/eval.json | 10 -- samples/chatbot/genkit-app/.editorconfig | 16 -- samples/chatbot/genkit-app/.gitignore | 42 ----- samples/chatbot/genkit-app/README.md | 27 --- samples/chatbot/genkit-app/angular.json | 105 ------------ samples/chatbot/genkit-app/package.json | 44 ----- samples/chatbot/genkit-app/public/favicon.ico | Bin 15086 -> 0 bytes .../genkit-app/src/app/app.component.html | 36 ---- .../genkit-app/src/app/app.component.scss | 67 -------- .../genkit-app/src/app/app.component.spec.ts | 47 ------ .../genkit-app/src/app/app.component.ts | 45 ----- .../chatbot/genkit-app/src/app/app.config.ts | 31 ---- .../chatbot/genkit-app/src/app/app.routes.ts | 26 --- .../samples/chatbot/chatbot.component.html | 58 ------- .../samples/chatbot/chatbot.component.scss | 75 --------- .../samples/chatbot/chatbot.component.spec.ts | 38 ----- .../app/samples/chatbot/chatbot.component.ts | 157 ----------------- samples/chatbot/genkit-app/src/index.html | 35 ---- samples/chatbot/genkit-app/src/main.ts | 23 --- samples/chatbot/genkit-app/src/styles.scss | 55 ------ samples/chatbot/genkit-app/tsconfig.app.json | 10 -- samples/chatbot/genkit-app/tsconfig.json | 29 ---- samples/chatbot/genkit-app/tsconfig.spec.json | 9 - samples/chatbot/package.json | 17 -- samples/chatbot/server/package.json | 29 ---- samples/chatbot/server/src/index.ts | 100 ----------- samples/chatbot/server/src/memory.ts | 35 ---- samples/chatbot/server/tsconfig.json | 14 -- samples/js-angular/.gitignore | 1 - samples/js-angular/README.md | 24 --- samples/js-angular/genkit-app/.editorconfig | 16 -- samples/js-angular/genkit-app/.gitignore | 42 ----- samples/js-angular/genkit-app/README.md | 27 --- samples/js-angular/genkit-app/angular.json | 99 ----------- samples/js-angular/genkit-app/package.json | 41 ----- .../js-angular/genkit-app/public/favicon.ico | Bin 15086 -> 0 bytes .../genkit-app/src/app/app.component.html | 36 ---- .../genkit-app/src/app/app.component.scss | 67 -------- .../genkit-app/src/app/app.component.spec.ts | 47 ------ .../genkit-app/src/app/app.component.ts | 45 ----- .../genkit-app/src/app/app.config.ts | 29 ---- .../genkit-app/src/app/app.routes.ts | 36 ---- .../src/app/home/home.component.html | 32 ---- .../src/app/home/home.component.scss | 19 --- .../src/app/home/home.component.spec.ts | 38 ----- .../genkit-app/src/app/home/home.component.ts | 27 --- .../samples/chatbot/chatbot.component.html | 77 --------- .../samples/chatbot/chatbot.component.scss | 55 ------ .../samples/chatbot/chatbot.component.spec.ts | 38 ----- .../app/samples/chatbot/chatbot.component.ts | 158 ------------------ .../streaming-json.component.html | 36 ---- .../streaming-json.component.scss | 23 --- .../streaming-json.component.spec.ts | 38 ----- .../streaming-json.component.ts | 61 ------- samples/js-angular/genkit-app/src/index.html | 35 ---- samples/js-angular/genkit-app/src/main.ts | 23 --- samples/js-angular/genkit-app/src/styles.scss | 55 ------ .../js-angular/genkit-app/tsconfig.app.json | 10 -- samples/js-angular/genkit-app/tsconfig.json | 29 ---- .../js-angular/genkit-app/tsconfig.spec.json | 9 - samples/js-angular/package.json | 17 -- samples/js-angular/server/package.json | 27 --- samples/js-angular/server/src/agent.ts | 111 ------------ samples/js-angular/server/src/chatbot.ts | 75 --------- samples/js-angular/server/src/genkit.ts | 22 --- samples/js-angular/server/src/index.ts | 23 --- .../js-angular/server/src/jsonStreaming.ts | 80 --------- samples/js-angular/server/tsconfig.json | 14 -- samples/js-coffee-shop/README.md | 6 - samples/js-coffee-shop/package.json | 35 ---- samples/js-coffee-shop/src/index.ts | 129 -------------- samples/js-coffee-shop/src/input.json | 7 - samples/js-coffee-shop/tsconfig.json | 15 -- samples/js-menu/README.md | 27 --- samples/js-menu/data/menu.jpeg | Bin 493635 -> 0 bytes samples/js-menu/data/menu.json | 97 ----------- samples/js-menu/package.json | 30 ---- samples/js-menu/src/01/example.json | 5 - samples/js-menu/src/01/prompts.ts | 87 ---------- samples/js-menu/src/02/example.json | 3 - samples/js-menu/src/02/flows.ts | 33 ---- samples/js-menu/src/02/prompts.ts | 45 ----- samples/js-menu/src/02/tools.ts | 35 ---- samples/js-menu/src/03/chats.ts | 58 ------- samples/js-menu/src/03/example.json | 4 - samples/js-menu/src/03/flows.ts | 96 ----------- samples/js-menu/src/03/prompts.ts | 47 ------ .../src/04/example.indexMenuItems.json | 57 ------- .../js-menu/src/04/example.menuQuestion.json | 3 - samples/js-menu/src/04/flows.ts | 84 ---------- samples/js-menu/src/04/prompts.ts | 44 ----- .../src/05/example.visualMenuQuestion.json | 3 - samples/js-menu/src/05/flows.ts | 96 ----------- samples/js-menu/src/05/prompts.ts | 61 ------- samples/js-menu/src/genkit.ts | 34 ---- samples/js-menu/src/index.ts | 36 ---- samples/js-menu/src/types.ts | 63 ------- samples/js-menu/tsconfig.json | 15 -- samples/js-schoolAgent/README.md | 107 ------------ samples/js-schoolAgent/package.json | 33 ---- .../js-schoolAgent/prompts/myPrompt.prompt | 1 - samples/js-schoolAgent/src/attendanceAgent.ts | 50 ------ samples/js-schoolAgent/src/data.ts | 96 ----------- samples/js-schoolAgent/src/genkit.ts | 38 ----- samples/js-schoolAgent/src/gradesAgent.ts | 53 ------ samples/js-schoolAgent/src/routingAgent.ts | 50 ------ samples/js-schoolAgent/src/terminal.ts | 123 -------------- samples/js-schoolAgent/src/tools.ts | 147 ---------------- samples/js-schoolAgent/src/types.ts | 26 --- samples/js-schoolAgent/src/util.ts | 20 --- samples/js-schoolAgent/tsconfig.json | 16 -- samples/prompts/README.md | 9 - samples/prompts/package.json | 26 --- samples/prompts/src/index.ts | 89 ---------- samples/prompts/tsconfig.json | 14 -- 118 files changed, 2 insertions(+), 5019 deletions(-) delete mode 100644 samples/chatbot/.gitignore delete mode 100644 samples/chatbot/README.md delete mode 100644 samples/chatbot/eval.json delete mode 100644 samples/chatbot/genkit-app/.editorconfig delete mode 100644 samples/chatbot/genkit-app/.gitignore delete mode 100644 samples/chatbot/genkit-app/README.md delete mode 100644 samples/chatbot/genkit-app/angular.json delete mode 100644 samples/chatbot/genkit-app/package.json delete mode 100644 samples/chatbot/genkit-app/public/favicon.ico delete mode 100644 samples/chatbot/genkit-app/src/app/app.component.html delete mode 100644 samples/chatbot/genkit-app/src/app/app.component.scss delete mode 100644 samples/chatbot/genkit-app/src/app/app.component.spec.ts delete mode 100644 samples/chatbot/genkit-app/src/app/app.component.ts delete mode 100644 samples/chatbot/genkit-app/src/app/app.config.ts delete mode 100644 samples/chatbot/genkit-app/src/app/app.routes.ts delete mode 100644 samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.html delete mode 100644 samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.scss delete mode 100644 samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts delete mode 100644 samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.ts delete mode 100644 samples/chatbot/genkit-app/src/index.html delete mode 100644 samples/chatbot/genkit-app/src/main.ts delete mode 100644 samples/chatbot/genkit-app/src/styles.scss delete mode 100644 samples/chatbot/genkit-app/tsconfig.app.json delete mode 100644 samples/chatbot/genkit-app/tsconfig.json delete mode 100644 samples/chatbot/genkit-app/tsconfig.spec.json delete mode 100644 samples/chatbot/package.json delete mode 100644 samples/chatbot/server/package.json delete mode 100644 samples/chatbot/server/src/index.ts delete mode 100644 samples/chatbot/server/src/memory.ts delete mode 100644 samples/chatbot/server/tsconfig.json delete mode 100644 samples/js-angular/.gitignore delete mode 100644 samples/js-angular/README.md delete mode 100644 samples/js-angular/genkit-app/.editorconfig delete mode 100644 samples/js-angular/genkit-app/.gitignore delete mode 100644 samples/js-angular/genkit-app/README.md delete mode 100644 samples/js-angular/genkit-app/angular.json delete mode 100644 samples/js-angular/genkit-app/package.json delete mode 100644 samples/js-angular/genkit-app/public/favicon.ico delete mode 100644 samples/js-angular/genkit-app/src/app/app.component.html delete mode 100644 samples/js-angular/genkit-app/src/app/app.component.scss delete mode 100644 samples/js-angular/genkit-app/src/app/app.component.spec.ts delete mode 100644 samples/js-angular/genkit-app/src/app/app.component.ts delete mode 100644 samples/js-angular/genkit-app/src/app/app.config.ts delete mode 100644 samples/js-angular/genkit-app/src/app/app.routes.ts delete mode 100644 samples/js-angular/genkit-app/src/app/home/home.component.html delete mode 100644 samples/js-angular/genkit-app/src/app/home/home.component.scss delete mode 100644 samples/js-angular/genkit-app/src/app/home/home.component.spec.ts delete mode 100644 samples/js-angular/genkit-app/src/app/home/home.component.ts delete mode 100644 samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.html delete mode 100644 samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.scss delete mode 100644 samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts delete mode 100644 samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.ts delete mode 100644 samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.html delete mode 100644 samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.scss delete mode 100644 samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.spec.ts delete mode 100644 samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.ts delete mode 100644 samples/js-angular/genkit-app/src/index.html delete mode 100644 samples/js-angular/genkit-app/src/main.ts delete mode 100644 samples/js-angular/genkit-app/src/styles.scss delete mode 100644 samples/js-angular/genkit-app/tsconfig.app.json delete mode 100644 samples/js-angular/genkit-app/tsconfig.json delete mode 100644 samples/js-angular/genkit-app/tsconfig.spec.json delete mode 100644 samples/js-angular/package.json delete mode 100644 samples/js-angular/server/package.json delete mode 100644 samples/js-angular/server/src/agent.ts delete mode 100644 samples/js-angular/server/src/chatbot.ts delete mode 100644 samples/js-angular/server/src/genkit.ts delete mode 100644 samples/js-angular/server/src/index.ts delete mode 100644 samples/js-angular/server/src/jsonStreaming.ts delete mode 100644 samples/js-angular/server/tsconfig.json delete mode 100644 samples/js-coffee-shop/README.md delete mode 100644 samples/js-coffee-shop/package.json delete mode 100644 samples/js-coffee-shop/src/index.ts delete mode 100644 samples/js-coffee-shop/src/input.json delete mode 100644 samples/js-coffee-shop/tsconfig.json delete mode 100644 samples/js-menu/README.md delete mode 100644 samples/js-menu/data/menu.jpeg delete mode 100644 samples/js-menu/data/menu.json delete mode 100644 samples/js-menu/package.json delete mode 100644 samples/js-menu/src/01/example.json delete mode 100644 samples/js-menu/src/01/prompts.ts delete mode 100644 samples/js-menu/src/02/example.json delete mode 100644 samples/js-menu/src/02/flows.ts delete mode 100644 samples/js-menu/src/02/prompts.ts delete mode 100644 samples/js-menu/src/02/tools.ts delete mode 100644 samples/js-menu/src/03/chats.ts delete mode 100644 samples/js-menu/src/03/example.json delete mode 100644 samples/js-menu/src/03/flows.ts delete mode 100644 samples/js-menu/src/03/prompts.ts delete mode 100644 samples/js-menu/src/04/example.indexMenuItems.json delete mode 100644 samples/js-menu/src/04/example.menuQuestion.json delete mode 100644 samples/js-menu/src/04/flows.ts delete mode 100644 samples/js-menu/src/04/prompts.ts delete mode 100644 samples/js-menu/src/05/example.visualMenuQuestion.json delete mode 100644 samples/js-menu/src/05/flows.ts delete mode 100644 samples/js-menu/src/05/prompts.ts delete mode 100644 samples/js-menu/src/genkit.ts delete mode 100644 samples/js-menu/src/index.ts delete mode 100644 samples/js-menu/src/types.ts delete mode 100644 samples/js-menu/tsconfig.json delete mode 100644 samples/js-schoolAgent/README.md delete mode 100644 samples/js-schoolAgent/package.json delete mode 100644 samples/js-schoolAgent/prompts/myPrompt.prompt delete mode 100644 samples/js-schoolAgent/src/attendanceAgent.ts delete mode 100644 samples/js-schoolAgent/src/data.ts delete mode 100644 samples/js-schoolAgent/src/genkit.ts delete mode 100644 samples/js-schoolAgent/src/gradesAgent.ts delete mode 100644 samples/js-schoolAgent/src/routingAgent.ts delete mode 100644 samples/js-schoolAgent/src/terminal.ts delete mode 100644 samples/js-schoolAgent/src/tools.ts delete mode 100644 samples/js-schoolAgent/src/types.ts delete mode 100644 samples/js-schoolAgent/src/util.ts delete mode 100644 samples/js-schoolAgent/tsconfig.json delete mode 100644 samples/prompts/README.md delete mode 100644 samples/prompts/package.json delete mode 100644 samples/prompts/src/index.ts delete mode 100644 samples/prompts/tsconfig.json diff --git a/samples/README.md b/samples/README.md index f02ab4dd1..333412ade 100644 --- a/samples/README.md +++ b/samples/README.md @@ -1,10 +1,4 @@ # Genkit samples -Take a look at some samples of Genkit in use: - -- [js-coffee-shop](samples/js-coffee-shop/): "AI barista", demonstrating simple - LLM usage -- [js-menu](samples/js-menu/): Progressively more sophisticated versions of a - menu understanding app -- [chatbot](samples/chatbot/): A simple chatbot with a JavaScript frontend -- [js-angular](samples/js-angular/): Demo of streaming to an Angular frontend +These samples have migrated to the Firebase +[`quickstart-nodejs` repo](https://github.com/firebase/quickstart-nodejs). diff --git a/samples/chatbot/.gitignore b/samples/chatbot/.gitignore deleted file mode 100644 index 7951405f8..000000000 --- a/samples/chatbot/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib \ No newline at end of file diff --git a/samples/chatbot/README.md b/samples/chatbot/README.md deleted file mode 100644 index a2f1728bf..000000000 --- a/samples/chatbot/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Chatbot - -This is a simple chatbot. You can pick which model to use. - -Prerequisite - -- install Genkit (`npm i -g genkit`) -- Google Cloud project with Vertex AI API enabled (https://pantheon.corp.google.com/apis/library/aiplatform.googleapis.com) -- gcloud CLI installed (https://cloud.google.com/sdk/docs/install-sdk) -- to use Llama 3.1 405b enable it in the Vertex AI [Model Garden](https://console.cloud.google.com/vertex-ai/publishers/meta/model-garden/llama3-405b-instruct-maas) - -The sample is using Vertex AI, so you'll need to auth: - -```bash -gcloud auth login -gcloud auth application-default login --project YOUR_PROJECT -``` - -Clone this code - -``` -git clone https://github.com/firebase/genkit -cd genkit/samples/chatbot -``` - -Install deps and run the chatbot app - -```bash -npm run setup -npm start -``` - -Point your browser to http://localhost:4200/ - -Inspect runs in http://localhost:4000/ diff --git a/samples/chatbot/eval.json b/samples/chatbot/eval.json deleted file mode 100644 index ca1c84cba..000000000 --- a/samples/chatbot/eval.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "conversationId": "1234", - "prompt": "tell me a joke" - }, - { - "conversationId": "2345", - "prompt": "wtite a python program that prints out weather for the current location" - } -] diff --git a/samples/chatbot/genkit-app/.editorconfig b/samples/chatbot/genkit-app/.editorconfig deleted file mode 100644 index 59d9a3a3e..000000000 --- a/samples/chatbot/genkit-app/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# Editor configuration, see https://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true - -[*.ts] -quote_type = single - -[*.md] -max_line_length = off -trim_trailing_whitespace = false diff --git a/samples/chatbot/genkit-app/.gitignore b/samples/chatbot/genkit-app/.gitignore deleted file mode 100644 index cc7b14135..000000000 --- a/samples/chatbot/genkit-app/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files. - -# Compiled output -/dist -/tmp -/out-tsc -/bazel-out - -# Node -/node_modules -npm-debug.log -yarn-error.log - -# IDEs and editors -.idea/ -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# Visual Studio Code -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -.history/* - -# Miscellaneous -/.angular/cache -.sass-cache/ -/connect.lock -/coverage -/libpeerconnection.log -testem.log -/typings - -# System files -.DS_Store -Thumbs.db diff --git a/samples/chatbot/genkit-app/README.md b/samples/chatbot/genkit-app/README.md deleted file mode 100644 index 0aeb2095b..000000000 --- a/samples/chatbot/genkit-app/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# GenkitApp - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.0.2. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/samples/chatbot/genkit-app/angular.json b/samples/chatbot/genkit-app/angular.json deleted file mode 100644 index 07bb6ad5f..000000000 --- a/samples/chatbot/genkit-app/angular.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "genkit-app": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:application", - "options": { - "outputPath": "dist/genkit-app", - "index": "src/index.html", - "browser": "src/main.ts", - "polyfills": ["zone.js"], - "tsConfig": "tsconfig.app.json", - "inlineStyleLanguage": "scss", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], - "styles": [ - "@angular/material/prebuilt-themes/azure-blue.css", - "src/styles.scss", - "node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css" - ], - "scripts": [ - "node_modules/prismjs/prism.js", - "node_modules/prismjs/components/prism-csharp.min.js", - "node_modules/prismjs/components/prism-css.min.js", - "node_modules/prismjs/plugins/line-highlight/prism-line-highlight.js" - ] - }, - "configurations": { - "production": { - "budgets": [ - { - "type": "initial", - "maximumWarning": "500kB", - "maximumError": "1MB" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "2kB", - "maximumError": "4kB" - } - ], - "outputHashing": "all" - }, - "development": { - "optimization": false, - "extractLicenses": false, - "sourceMap": true - } - }, - "defaultConfiguration": "production" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "configurations": { - "production": { - "buildTarget": "genkit-app:build:production" - }, - "development": { - "buildTarget": "genkit-app:build:development" - } - }, - "defaultConfiguration": "development" - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n" - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "polyfills": ["zone.js", "zone.js/testing"], - "tsConfig": "tsconfig.spec.json", - "inlineStyleLanguage": "scss", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], - "styles": [ - "@angular/material/prebuilt-themes/azure-blue.css", - "src/styles.scss" - ], - "scripts": [] - } - } - } - } - } -} diff --git a/samples/chatbot/genkit-app/package.json b/samples/chatbot/genkit-app/package.json deleted file mode 100644 index 465379b0b..000000000 --- a/samples/chatbot/genkit-app/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "genkit-app", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" - }, - "private": true, - "dependencies": { - "@angular/animations": "^18.0.0", - "@angular/cdk": "^18.0.1", - "@angular/common": "^18.0.0", - "@angular/compiler": "^18.0.0", - "@angular/core": "^18.0.0", - "@angular/forms": "^18.0.0", - "@angular/material": "^18.0.1", - "@angular/platform-browser": "^18.0.0", - "@angular/platform-browser-dynamic": "^18.0.0", - "@angular/router": "^18.0.0", - "marked": "^12.0.2", - "ngx-markdown": "^18.0.0", - "prismjs": "^1.29.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.14.3", - "genkit": "^0.9.0-rc || ^0.9" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^18.0.2", - "@angular/cli": "^18.0.2", - "@angular/compiler-cli": "^18.0.0", - "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.1.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", - "typescript": "~5.4.2" - } -} diff --git a/samples/chatbot/genkit-app/public/favicon.ico b/samples/chatbot/genkit-app/public/favicon.ico deleted file mode 100644 index 57614f9c967596fad0a3989bec2b1deff33034f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 Nr__JTFzvMr^FKp4S3v*( diff --git a/samples/chatbot/genkit-app/src/app/app.component.html b/samples/chatbot/genkit-app/src/app/app.component.html deleted file mode 100644 index 78c45a375..000000000 --- a/samples/chatbot/genkit-app/src/app/app.component.html +++ /dev/null @@ -1,36 +0,0 @@ - - -
- - Chat with an LLM - - - -
- - description - -
- -
- -
-
diff --git a/samples/chatbot/genkit-app/src/app/app.component.scss b/samples/chatbot/genkit-app/src/app/app.component.scss deleted file mode 100644 index 0e0b80557..000000000 --- a/samples/chatbot/genkit-app/src/app/app.component.scss +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -app-bar { - border-bottom: 1px solid var(--divider-color); - grid-area: header; -} - -article { - grid-area: content; -} - -.wrapper { - display: grid; - grid-template: - 'header' auto - 'content' 1fr - / 1fr; - height: 100vh; -} - -.home-link { - align-items: center; - color: var(--mat-app-color); - display: flex; - gap: 8px; - - img { - height: 22px; - padding-left: 4px; - } -} - -.mat-toolbar { - background: #d7e3ff; - color: #005cbb; - gap: 4px; -} - -nav { - --mdc-secondary-navigation-tab-container-height: 64px; - --mat-tab-header-divider-height: 0; - margin-left: 32px; -} - -.preview-badge { - margin-left: 8px; - - mat-icon { - font-size: 18px; - height: 18px; - width: 18px; - } -} diff --git a/samples/chatbot/genkit-app/src/app/app.component.spec.ts b/samples/chatbot/genkit-app/src/app/app.component.spec.ts deleted file mode 100644 index 02dac7e71..000000000 --- a/samples/chatbot/genkit-app/src/app/app.component.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AppComponent], - }).compileComponents(); - }); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have the 'genkit-app' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('genkit-app'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain( - 'Hello, genkit-app' - ); - }); -}); diff --git a/samples/chatbot/genkit-app/src/app/app.component.ts b/samples/chatbot/genkit-app/src/app/app.component.ts deleted file mode 100644 index 39d4f4ea0..000000000 --- a/samples/chatbot/genkit-app/src/app/app.component.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTabNavPanel, MatTabsModule } from '@angular/material/tabs'; -import { MatToolbarModule } from '@angular/material/toolbar'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; - -@Component({ - selector: 'app-root', - standalone: true, - imports: [ - CommonModule, - MatToolbarModule, - RouterOutlet, - MatIconModule, - MatTabNavPanel, - MatButtonModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - RouterLink, - RouterLinkActive, - ], - templateUrl: './app.component.html', - styleUrl: './app.component.scss', -}) -export class AppComponent {} diff --git a/samples/chatbot/genkit-app/src/app/app.config.ts b/samples/chatbot/genkit-app/src/app/app.config.ts deleted file mode 100644 index 7c47634a3..000000000 --- a/samples/chatbot/genkit-app/src/app/app.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; -import { provideRouter } from '@angular/router'; - -import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; -import { provideMarkdown } from 'ngx-markdown'; -import { routes } from './app.routes'; - -export const appConfig: ApplicationConfig = { - providers: [ - provideZoneChangeDetection({ eventCoalescing: true }), - provideRouter(routes), - provideAnimationsAsync(), - provideMarkdown(), - ], -}; diff --git a/samples/chatbot/genkit-app/src/app/app.routes.ts b/samples/chatbot/genkit-app/src/app/app.routes.ts deleted file mode 100644 index d59a096c2..000000000 --- a/samples/chatbot/genkit-app/src/app/app.routes.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Routes } from '@angular/router'; -import { ChatbotComponent } from './samples/chatbot/chatbot.component'; - -export const routes: Routes = [ - { - path: 'home', - component: ChatbotComponent, - }, - { path: '**', redirectTo: '/home' }, -]; diff --git a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.html b/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.html deleted file mode 100644 index 782825689..000000000 --- a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.html +++ /dev/null @@ -1,58 +0,0 @@ - - -
- @if (llmIndex === undefined) { -

Choose an LLM

- @for (name of llmNames; track name; let index = $index) { - - } - } @else { -

Chat with {{ llmNames[llmIndex] }}

- -
-
- {{ entry.text }} -
-
- - - -
-
- - @if (error) { -
{{ error }}
- } - -
- - Chat input. Press Enter to submit (Shift+Enter for line - break) - - - -
- } -
diff --git a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.scss b/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.scss deleted file mode 100644 index 02802405d..000000000 --- a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.scss +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.wrapper { - margin-left: auto; - margin-right: auto; - padding: 20px; - width: 800px; -} - -.user-bubble { - background-color: bisque; - border: 1px solid #ccc; - border-radius: 10px; - margin-bottom: 20px; - margin-left: auto; - margin-right: 0; - min-width: 300px; - padding: 20px; - white-space: pre-wrap; - width: 80%; -} - -.model-bubble { - border: 1px solid #ccc; - border-radius: 10px; - margin-bottom: 20px; - min-width: 300px; - padding: 20px; - width: 80%; - &.llm-0 { - background-color: rgb(218, 247, 237); - } - &.llm-1 { - background-color: rgb(244, 216, 247); - } - - .text { - white-space: pre-wrap; - } - - .model-name { - font-size: small; - font-weight: 100; - margin-bottom: 11px; - } -} - -.input-field { - min-width: 400px; - vertical-align: top; - width: 730px; -} - -.error { - background-color: pink; - border: 1px solid red; - border-radius: 15px; - margin: 20px 0; - overflow: auto; - padding: 20px; -} diff --git a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts b/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts deleted file mode 100644 index c79a6e1f7..000000000 --- a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ChatbotComponent } from './chatbot.component'; - -describe('ChatbotComponent', () => { - let component: ChatbotComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ChatbotComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(ChatbotComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.ts b/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.ts deleted file mode 100644 index 293bdf106..000000000 --- a/samples/chatbot/genkit-app/src/app/samples/chatbot/chatbot.component.ts +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { - FormControl, - FormsModule, - ReactiveFormsModule, - Validators, -} from '@angular/forms'; -import { MatButtonModule } from '@angular/material/button'; -import { provideNativeDateAdapter } from '@angular/material/core'; -import { MatDatepickerModule } from '@angular/material/datepicker'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { MatRadioModule } from '@angular/material/radio'; -import { streamFlow } from 'genkit/client'; -import { MarkdownModule } from 'ngx-markdown'; - -const url = 'http://127.0.0.1:3400/chatbotFlow'; - -interface ToolResponse { - name: string; - ref: string; - output?: unknown; -} - -interface InputSchema { - role: 'user'; - text?: string; - toolResponse?: ToolResponse; -} - -interface ToolRequest { - name: string; - ref: string; - input?: unknown; -} -interface OutputSchema { - role: 'model'; - text?: string; - toolRequest?: ToolRequest; -} - -@Component({ - selector: 'app-chatbot', - standalone: true, - providers: [provideNativeDateAdapter()], - imports: [ - CommonModule, - FormsModule, - MatFormFieldModule, - MatInputModule, - ReactiveFormsModule, - MatButtonModule, - MatIconModule, - MatProgressBarModule, - MatDatepickerModule, - MarkdownModule, - MatRadioModule, - ], - templateUrl: './chatbot.component.html', - styleUrl: './chatbot.component.scss', -}) -export class ChatbotComponent { - history: (InputSchema | OutputSchema)[] = []; - error?: string; - input?: string; - loading = false; - id = Date.now() + '' + Math.floor(Math.random() * 1000000000); - llmIndex: number | undefined; - - llmNames = ['Gemini 1.5 Flash', 'Llama 3.1 405b']; - - chatFormControl = new FormControl( - 'write a function that adds two number together', - [Validators.required] - ); - - ask(input?: string) { - const text = this.chatFormControl.value!.trim(); - if (!text) return; - this.history.push({ role: 'user', text: text }); - this.chatFormControl.setValue(''); - this.chatFormControl.disable(); - this.callFlow({ role: 'user', text }); - this.loading = true; - } - - async callFlow(input: InputSchema) { - this.error = undefined; - this.loading = true; - try { - const response = await streamFlow({ - url, - input: { - prompt: input, - conversationId: this.id, - llmIndex: this.llmIndex, - }, - }); - - let textBlock: OutputSchema | undefined = undefined; - for await (const chunk of response.stream()) { - for (const content of chunk.content) { - if (content.text) { - if (!textBlock) { - textBlock = { role: 'model', text: content.text! }; - this.history.push(textBlock); - } else { - textBlock.text += content.text!; - } - } - } - } - - this.loading = false; - this.chatFormControl.enable(); - - await response.output(); - } catch (e) { - this.loading = false; - this.chatFormControl.enable(); - if ((e as any).cause) { - this.error = `${(e as any).cause}`; - } else { - this.error = `${e}`; - } - } - } - - keyPress(event: KeyboardEvent) { - if (event.key === 'Enter') { - if (event.ctrlKey || event.shiftKey) { - this.input += '\n'; - } else { - this.ask(this.input); - } - } - } -} diff --git a/samples/chatbot/genkit-app/src/index.html b/samples/chatbot/genkit-app/src/index.html deleted file mode 100644 index 822a28173..000000000 --- a/samples/chatbot/genkit-app/src/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - GenkitApp - - - - - - - - - - diff --git a/samples/chatbot/genkit-app/src/main.ts b/samples/chatbot/genkit-app/src/main.ts deleted file mode 100644 index b1be530a2..000000000 --- a/samples/chatbot/genkit-app/src/main.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { bootstrapApplication } from '@angular/platform-browser'; -import { AppComponent } from './app/app.component'; -import { appConfig } from './app/app.config'; - -bootstrapApplication(AppComponent, appConfig).catch((err) => - console.error(err) -); diff --git a/samples/chatbot/genkit-app/src/styles.scss b/samples/chatbot/genkit-app/src/styles.scss deleted file mode 100644 index 0ff0b59e1..000000000 --- a/samples/chatbot/genkit-app/src/styles.scss +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* You can add global styles to this file, and also import other style files */ - -:root { - --header-height: 65px; - --container-border-radius: 20px; - --input-border-radius: 8px; -} - -html, -body { - height: 100%; -} - -body { - background-color: var(--app-background); - color: var(--mat-app-text-color); - margin: 0; -} - -hr { - border-bottom: 1px solid var(--divider-color); - border-width: 0 0 1px; - margin: 12px 0; -} - -a { - color: var(--link-color); - text-decoration: none; -} - -pre { - margin: 0; - white-space: pre-wrap; -} - -// Helper for filling available space in flex layouts -.flex-spacer { - flex: 1; -} diff --git a/samples/chatbot/genkit-app/tsconfig.app.json b/samples/chatbot/genkit-app/tsconfig.app.json deleted file mode 100644 index 84f1f992d..000000000 --- a/samples/chatbot/genkit-app/tsconfig.app.json +++ /dev/null @@ -1,10 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/app", - "types": [] - }, - "files": ["src/main.ts"], - "include": ["src/**/*.d.ts"] -} diff --git a/samples/chatbot/genkit-app/tsconfig.json b/samples/chatbot/genkit-app/tsconfig.json deleted file mode 100644 index 437984834..000000000 --- a/samples/chatbot/genkit-app/tsconfig.json +++ /dev/null @@ -1,29 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "compileOnSave": false, - "compilerOptions": { - "outDir": "./dist/out-tsc", - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "skipLibCheck": true, - "esModuleInterop": true, - "sourceMap": true, - "declaration": false, - "experimentalDecorators": true, - "moduleResolution": "bundler", - "importHelpers": true, - "target": "ES2022", - "module": "ES2022", - "useDefineForClassFields": false, - "lib": ["ES2022", "dom"] - }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - } -} diff --git a/samples/chatbot/genkit-app/tsconfig.spec.json b/samples/chatbot/genkit-app/tsconfig.spec.json deleted file mode 100644 index 47e3dd755..000000000 --- a/samples/chatbot/genkit-app/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/spec", - "types": ["jasmine"] - }, - "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] -} diff --git a/samples/chatbot/package.json b/samples/chatbot/package.json deleted file mode 100644 index 5cfb52ff9..000000000 --- a/samples/chatbot/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "start": "concurrently npm:start:server npm:start:ng", - "setup": "npm i && cd server && npm i && cd ../genkit-app && npm i", - "start:server": "cd server && npm run genkit:dev", - "start:ng": "cd genkit-app && npm start" - }, - "name": "js-angular", - "version": "1.0.0", - "description": "This is a simple UI for streaming RPG character generator.", - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "concurrently": "^8.2.2" - } -} diff --git a/samples/chatbot/server/package.json b/samples/chatbot/server/package.json deleted file mode 100644 index 4f13d4997..000000000 --- a/samples/chatbot/server/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "main": "lib/index.js", - "scripts": { - "start": "node lib/index.js", - "genkit:dev": "genkit start -- npm run dev", - "dev": "tsx --watch src/index.ts", - "build": "tsc", - "build:watch": "tsc --watch", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "name": "js-angular", - "version": "1.0.0", - "description": "This is a simple UI for streaming RPG character generator.", - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "genkit": "^0.9.0-rc || ^0.9", - "@genkit-ai/vertexai": "^0.9.0-rc || ^0.9", - "express": "^4.21.0", - "partial-json": "^0.1.7", - "zod": "^3.23.8" - }, - "devDependencies": { - "genkit-cli": "^0.9.0-rc || ^0.9", - "typescript": "^5.4.5", - "tsx": "^4.19.2" - } -} diff --git a/samples/chatbot/server/src/index.ts b/samples/chatbot/server/src/index.ts deleted file mode 100644 index 7bd2144bf..000000000 --- a/samples/chatbot/server/src/index.ts +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash, vertexAI } from '@genkit-ai/vertexai'; -import { - VertexAIEvaluationMetricType, - vertexAIEvaluation, -} from '@genkit-ai/vertexai/evaluation'; -import { llama31, vertexAIModelGarden } from '@genkit-ai/vertexai/modelgarden'; -import { ModelReference, PartSchema, genkit, run } from 'genkit'; -import { GenerateResponseChunkSchema } from 'genkit/model'; -import { z } from 'zod'; -import { inMemoryStore } from './memory.js'; - -export const AgentInput = z.object({ - conversationId: z.string(), - prompt: z.union([z.string(), PartSchema, z.array(PartSchema)]), - config: z.record(z.string(), z.any()).optional(), - llmIndex: z.number(), -}); - -const ai = genkit({ - plugins: [ - vertexAI({ - location: 'us-central1', - }), - vertexAIModelGarden({ - location: 'us-central1', - models: [llama31], - }), - vertexAIEvaluation({ - location: 'us-central1', - metrics: [ - VertexAIEvaluationMetricType.SAFETY, - VertexAIEvaluationMetricType.FLUENCY, - ], - }), - ], -}); - -const llms: ModelReference[] = [gemini15Flash, llama31]; - -const historyStore = inMemoryStore(); - -export const chatbotFlow = ai.defineStreamingFlow( - { - name: 'chatbotFlow', - inputSchema: AgentInput, - outputSchema: z.string(), - streamSchema: GenerateResponseChunkSchema, - }, - async (request, streamingCallback) => { - // Retrieve conversation history. - const history = await run( - 'retrieve-history', - request.conversationId, - async () => { - return (await historyStore?.load(request.conversationId)) || []; - } - ); - - // Run the user prompt (with history) through the primary LLM. - const mainResp = await ai.generate({ - prompt: request.prompt, - messages: history, - model: llms[request.llmIndex], - streamingCallback, - }); - - // Save history. - await run( - 'save-history', - { - conversationId: request.conversationId, - history: mainResp.messages, - }, - async () => { - await historyStore?.save(request.conversationId, mainResp.messages); - } - ); - return mainResp.text; - } -); - -ai.startFlowServer({ - flows: [chatbotFlow], -}); diff --git a/samples/chatbot/server/src/memory.ts b/samples/chatbot/server/src/memory.ts deleted file mode 100644 index 4c3561f01..000000000 --- a/samples/chatbot/server/src/memory.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { MessageData } from 'genkit'; - -const chatHistory: Record = {}; - -export interface HistoryStore { - load(id: string): Promise; - save(id: string, history: MessageData[]): Promise; -} - -export function inMemoryStore(): HistoryStore { - return { - async load(id: string): Promise { - return chatHistory[id]; - }, - async save(id: string, history: MessageData[]) { - chatHistory[id] = history; - }, - }; -} diff --git a/samples/chatbot/server/tsconfig.json b/samples/chatbot/server/tsconfig.json deleted file mode 100644 index efbb566bf..000000000 --- a/samples/chatbot/server/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compileOnSave": true, - "include": ["src"], - "compilerOptions": { - "module": "commonjs", - "noImplicitReturns": true, - "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2017", - "skipLibCheck": true, - "esModuleInterop": true - } -} diff --git a/samples/js-angular/.gitignore b/samples/js-angular/.gitignore deleted file mode 100644 index 7951405f8..000000000 --- a/samples/js-angular/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib \ No newline at end of file diff --git a/samples/js-angular/README.md b/samples/js-angular/README.md deleted file mode 100644 index 4e02b6f32..000000000 --- a/samples/js-angular/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Angular and Genkit streaming sample - -This is a simple UI for streaming RPG character generator. - -To build: - -```bash -npm i -npm run build -``` - -The sample is using Vertex AI, so you'll need to auth: - -```bash -gcloud auth application-default login -``` - -To run the sample: - -```bash -npm start -``` - -Point your browser to http://localhost:4200/ diff --git a/samples/js-angular/genkit-app/.editorconfig b/samples/js-angular/genkit-app/.editorconfig deleted file mode 100644 index 59d9a3a3e..000000000 --- a/samples/js-angular/genkit-app/.editorconfig +++ /dev/null @@ -1,16 +0,0 @@ -# Editor configuration, see https://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true - -[*.ts] -quote_type = single - -[*.md] -max_line_length = off -trim_trailing_whitespace = false diff --git a/samples/js-angular/genkit-app/.gitignore b/samples/js-angular/genkit-app/.gitignore deleted file mode 100644 index cc7b14135..000000000 --- a/samples/js-angular/genkit-app/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files. - -# Compiled output -/dist -/tmp -/out-tsc -/bazel-out - -# Node -/node_modules -npm-debug.log -yarn-error.log - -# IDEs and editors -.idea/ -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# Visual Studio Code -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -.history/* - -# Miscellaneous -/.angular/cache -.sass-cache/ -/connect.lock -/coverage -/libpeerconnection.log -testem.log -/typings - -# System files -.DS_Store -Thumbs.db diff --git a/samples/js-angular/genkit-app/README.md b/samples/js-angular/genkit-app/README.md deleted file mode 100644 index 0aeb2095b..000000000 --- a/samples/js-angular/genkit-app/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# GenkitApp - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.0.2. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/samples/js-angular/genkit-app/angular.json b/samples/js-angular/genkit-app/angular.json deleted file mode 100644 index 8762ae48e..000000000 --- a/samples/js-angular/genkit-app/angular.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "genkit-app": { - "projectType": "application", - "schematics": { - "@schematics/angular:component": { - "style": "scss" - } - }, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:application", - "options": { - "outputPath": "dist/genkit-app", - "index": "src/index.html", - "browser": "src/main.ts", - "polyfills": ["zone.js"], - "tsConfig": "tsconfig.app.json", - "inlineStyleLanguage": "scss", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], - "styles": [ - "@angular/material/prebuilt-themes/azure-blue.css", - "src/styles.scss" - ], - "scripts": [] - }, - "configurations": { - "production": { - "budgets": [ - { - "type": "initial", - "maximumWarning": "500kB", - "maximumError": "1MB" - }, - { - "type": "anyComponentStyle", - "maximumWarning": "2kB", - "maximumError": "4kB" - } - ], - "outputHashing": "all" - }, - "development": { - "optimization": false, - "extractLicenses": false, - "sourceMap": true - } - }, - "defaultConfiguration": "production" - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "configurations": { - "production": { - "buildTarget": "genkit-app:build:production" - }, - "development": { - "buildTarget": "genkit-app:build:development" - } - }, - "defaultConfiguration": "development" - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n" - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "polyfills": ["zone.js", "zone.js/testing"], - "tsConfig": "tsconfig.spec.json", - "inlineStyleLanguage": "scss", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], - "styles": [ - "@angular/material/prebuilt-themes/azure-blue.css", - "src/styles.scss" - ], - "scripts": [] - } - } - } - } - } -} diff --git a/samples/js-angular/genkit-app/package.json b/samples/js-angular/genkit-app/package.json deleted file mode 100644 index 89cd74b7f..000000000 --- a/samples/js-angular/genkit-app/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "genkit-app", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "watch": "ng build --watch --configuration development", - "test": "ng test" - }, - "private": true, - "dependencies": { - "@angular/animations": "^18.0.0", - "@angular/cdk": "^18.0.1", - "@angular/common": "^18.0.0", - "@angular/compiler": "^18.0.0", - "@angular/core": "^18.0.0", - "@angular/forms": "^18.0.0", - "@angular/material": "^18.0.1", - "@angular/platform-browser": "^18.0.0", - "@angular/platform-browser-dynamic": "^18.0.0", - "@angular/router": "^18.0.0", - "rxjs": "~7.8.0", - "tslib": "^2.3.0", - "zone.js": "~0.14.3", - "genkit": "^0.9.0-rc || ^0.9" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^18.0.2", - "@angular/cli": "^18.0.2", - "@angular/compiler-cli": "^18.0.0", - "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.1.0", - "karma": "~6.4.0", - "karma-chrome-launcher": "~3.2.0", - "karma-coverage": "~2.2.0", - "karma-jasmine": "~5.1.0", - "karma-jasmine-html-reporter": "~2.1.0", - "typescript": "~5.4.2" - } -} diff --git a/samples/js-angular/genkit-app/public/favicon.ico b/samples/js-angular/genkit-app/public/favicon.ico deleted file mode 100644 index 57614f9c967596fad0a3989bec2b1deff33034f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 Nr__JTFzvMr^FKp4S3v*( diff --git a/samples/js-angular/genkit-app/src/app/app.component.html b/samples/js-angular/genkit-app/src/app/app.component.html deleted file mode 100644 index 0165f5b0f..000000000 --- a/samples/js-angular/genkit-app/src/app/app.component.html +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/samples/js-angular/genkit-app/src/app/app.component.scss b/samples/js-angular/genkit-app/src/app/app.component.scss deleted file mode 100644 index 0e0b80557..000000000 --- a/samples/js-angular/genkit-app/src/app/app.component.scss +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -app-bar { - border-bottom: 1px solid var(--divider-color); - grid-area: header; -} - -article { - grid-area: content; -} - -.wrapper { - display: grid; - grid-template: - 'header' auto - 'content' 1fr - / 1fr; - height: 100vh; -} - -.home-link { - align-items: center; - color: var(--mat-app-color); - display: flex; - gap: 8px; - - img { - height: 22px; - padding-left: 4px; - } -} - -.mat-toolbar { - background: #d7e3ff; - color: #005cbb; - gap: 4px; -} - -nav { - --mdc-secondary-navigation-tab-container-height: 64px; - --mat-tab-header-divider-height: 0; - margin-left: 32px; -} - -.preview-badge { - margin-left: 8px; - - mat-icon { - font-size: 18px; - height: 18px; - width: 18px; - } -} diff --git a/samples/js-angular/genkit-app/src/app/app.component.spec.ts b/samples/js-angular/genkit-app/src/app/app.component.spec.ts deleted file mode 100644 index 02dac7e71..000000000 --- a/samples/js-angular/genkit-app/src/app/app.component.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AppComponent], - }).compileComponents(); - }); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have the 'genkit-app' title`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.componentInstance; - expect(app.title).toEqual('genkit-app'); - }); - - it('should render title', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain( - 'Hello, genkit-app' - ); - }); -}); diff --git a/samples/js-angular/genkit-app/src/app/app.component.ts b/samples/js-angular/genkit-app/src/app/app.component.ts deleted file mode 100644 index 39d4f4ea0..000000000 --- a/samples/js-angular/genkit-app/src/app/app.component.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTabNavPanel, MatTabsModule } from '@angular/material/tabs'; -import { MatToolbarModule } from '@angular/material/toolbar'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router'; - -@Component({ - selector: 'app-root', - standalone: true, - imports: [ - CommonModule, - MatToolbarModule, - RouterOutlet, - MatIconModule, - MatTabNavPanel, - MatButtonModule, - MatTabsModule, - MatToolbarModule, - MatTooltipModule, - RouterLink, - RouterLinkActive, - ], - templateUrl: './app.component.html', - styleUrl: './app.component.scss', -}) -export class AppComponent {} diff --git a/samples/js-angular/genkit-app/src/app/app.config.ts b/samples/js-angular/genkit-app/src/app/app.config.ts deleted file mode 100644 index 3d04dfa9c..000000000 --- a/samples/js-angular/genkit-app/src/app/app.config.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; -import { provideRouter } from '@angular/router'; - -import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; -import { routes } from './app.routes'; - -export const appConfig: ApplicationConfig = { - providers: [ - provideZoneChangeDetection({ eventCoalescing: true }), - provideRouter(routes), - provideAnimationsAsync(), - ], -}; diff --git a/samples/js-angular/genkit-app/src/app/app.routes.ts b/samples/js-angular/genkit-app/src/app/app.routes.ts deleted file mode 100644 index bd70f607f..000000000 --- a/samples/js-angular/genkit-app/src/app/app.routes.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Routes } from '@angular/router'; -import { HomeComponent } from './home/home.component'; -import { ChatbotComponent } from './samples/chatbot/chatbot.component'; -import { StreamingJSONComponent } from './samples/streaming-json/streaming-json.component'; - -export const routes: Routes = [ - { - path: 'home', - component: HomeComponent, - }, - { - path: 'samples/streaming-json', - component: StreamingJSONComponent, - }, - { - path: 'samples/chatbot', - component: ChatbotComponent, - }, - { path: '**', redirectTo: '/home' }, -]; diff --git a/samples/js-angular/genkit-app/src/app/home/home.component.html b/samples/js-angular/genkit-app/src/app/home/home.component.html deleted file mode 100644 index f57987dcc..000000000 --- a/samples/js-angular/genkit-app/src/app/home/home.component.html +++ /dev/null @@ -1,32 +0,0 @@ - - -
-

Samples

- - - -
diff --git a/samples/js-angular/genkit-app/src/app/home/home.component.scss b/samples/js-angular/genkit-app/src/app/home/home.component.scss deleted file mode 100644 index da80fa8b3..000000000 --- a/samples/js-angular/genkit-app/src/app/home/home.component.scss +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.wrapper { - padding: 20px; -} diff --git a/samples/js-angular/genkit-app/src/app/home/home.component.spec.ts b/samples/js-angular/genkit-app/src/app/home/home.component.spec.ts deleted file mode 100644 index 19eda49ae..000000000 --- a/samples/js-angular/genkit-app/src/app/home/home.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { HomeComponent } from './home.component'; - -describe('HomeComponent', () => { - let component: HomeComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [HomeComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(HomeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/samples/js-angular/genkit-app/src/app/home/home.component.ts b/samples/js-angular/genkit-app/src/app/home/home.component.ts deleted file mode 100644 index f1e1997c1..000000000 --- a/samples/js-angular/genkit-app/src/app/home/home.component.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Component } from '@angular/core'; -import { RouterLink, RouterLinkActive } from '@angular/router'; - -@Component({ - selector: 'app-home', - standalone: true, - imports: [RouterLink, RouterLinkActive], - templateUrl: './home.component.html', - styleUrl: './home.component.scss', -}) -export class HomeComponent {} diff --git a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.html b/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.html deleted file mode 100644 index 00829ec6d..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.html +++ /dev/null @@ -1,77 +0,0 @@ - - -
-

Chat with Agent Smith

- -
-
- {{ entry.text }} -
-
- {{ entry.text }} -
-
-
-

- sunny_snowing - {{ getWeatherLocation(entry.toolRequest) }} 27°C -

-
Warn sunny day with a mix of sun and snow.
-
-
- - Choose a date - - MM/DD/YYYY - - - - - - - - -
-
- Oops... unknown tool {{ entry.toolRequest.name }} -
-
-
-
-
- -
- - Chat input - - - - -
-
diff --git a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.scss b/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.scss deleted file mode 100644 index da62c1c12..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.scss +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.wrapper { - margin-left: auto; - margin-right: auto; - padding: 20px; - width: 800px; -} - -.user-bubble { - background-color: #eeddee; - border: 1px solid #ccc; - border-radius: 10px; - margin-bottom: 20px; - margin-left: auto; - margin-right: 0; - min-width: 300px; - padding: 20px; - white-space: pre-wrap; - width: 80%; -} - -.model-bubble { - background-color: #ddddee; - border: 1px solid #ccc; - border-radius: 10px; - margin-bottom: 20px; - min-width: 300px; - padding: 20px; - width: 80%; - - .text { - white-space: pre-wrap; - } -} - -.input-field { - min-width: 400px; - vertical-align: top; - width: 730px; -} diff --git a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts b/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts deleted file mode 100644 index c79a6e1f7..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ChatbotComponent } from './chatbot.component'; - -describe('ChatbotComponent', () => { - let component: ChatbotComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ChatbotComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(ChatbotComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.ts b/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.ts deleted file mode 100644 index 98e454219..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/chatbot/chatbot.component.ts +++ /dev/null @@ -1,158 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { - FormControl, - FormsModule, - ReactiveFormsModule, - Validators, -} from '@angular/forms'; -import { MatButtonModule } from '@angular/material/button'; -import { provideNativeDateAdapter } from '@angular/material/core'; -import { - MatDatepickerInputEvent, - MatDatepickerModule, -} from '@angular/material/datepicker'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatIconModule } from '@angular/material/icon'; -import { MatInputModule } from '@angular/material/input'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { streamFlow } from 'genkit/client'; - -const url = 'http://127.0.0.1:3400/chatbotFlow'; - -interface ToolResponse { - name: string; - ref: string; - output?: unknown; -} - -interface InputSchema { - role: 'user'; - text?: string; - toolResponse?: ToolResponse; -} - -interface ToolRequest { - name: string; - ref: string; - input?: unknown; -} -interface OutputSchema { - role: 'model'; - text?: string; - toolRequest?: ToolRequest; -} - -@Component({ - selector: 'app-chatbot', - standalone: true, - providers: [provideNativeDateAdapter()], - imports: [ - CommonModule, - FormsModule, - MatFormFieldModule, - MatInputModule, - ReactiveFormsModule, - MatButtonModule, - MatIconModule, - MatProgressBarModule, - MatDatepickerModule, - ], - templateUrl: './chatbot.component.html', - styleUrl: './chatbot.component.scss', -}) -export class ChatbotComponent { - history: (InputSchema | OutputSchema)[] = []; - error?: string; - input?: string; - loading = false; - id = Date.now() + '' + Math.floor(Math.random() * 1000000000); - - chatFormControl = new FormControl('', [Validators.required]); - - ask(input?: string) { - const text = this.chatFormControl.value!.trim(); - if (!text) return; - this.history.push({ role: 'user', text: text }); - this.chatFormControl.setValue(''); - this.chatFormControl.disable(); - this.callFlow({ role: 'user', text }); - this.loading = true; - } - - async callFlow(input: InputSchema) { - this.error = undefined; - this.loading = true; - try { - const response = await streamFlow({ - url, - input: { - prompt: input, - conversationId: this.id, - }, - }); - - let textBlock: OutputSchema | undefined = undefined; - for await (const chunk of response.stream()) { - for (const content of chunk.content) { - if (content.text) { - if (!textBlock) { - textBlock = { role: 'model', text: content.text! }; - this.history.push(textBlock); - } else { - textBlock.text += content.text!; - } - } - if (content.toolRequest) { - this.history.push({ - role: 'model', - toolRequest: content.toolRequest, - }); - } - } - } - - this.loading = false; - this.chatFormControl.enable(); - } catch (e) { - this.loading = false; - this.chatFormControl.enable(); - if ((e as any).cause) { - this.error = `${(e as any).cause}`; - } else { - this.error = `${e}`; - } - } - } - - getWeatherLocation(toolRequest: ToolRequest) { - return (toolRequest.input as any).location; - } - - datePicked(toolRequest: ToolRequest, event: MatDatepickerInputEvent) { - this.callFlow({ - role: 'user', - toolResponse: { - name: toolRequest.name, - ref: toolRequest.ref, - output: `${event.value}`, - }, - }); - } -} diff --git a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.html b/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.html deleted file mode 100644 index e32ce2ae0..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.html +++ /dev/null @@ -1,36 +0,0 @@ - - -
-

Stream JSON from LLM

- This is a Game Character Generator.
- How many game chatacters do you need? - - - -
Loading...
-
- {{ error }} -
-
-
- {{ character.name }} -
    -
  • {{ ability }}
  • -
-
-
-
diff --git a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.scss b/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.scss deleted file mode 100644 index 70fcce28e..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.scss +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -.wrapper { - padding: 20px; -} - -.characters { - margin-top: 20px; -} diff --git a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.spec.ts b/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.spec.ts deleted file mode 100644 index d85373105..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { StreamingJSONComponent } from './streaming-json.component'; - -describe('StreamingJSONComponent', () => { - let component: StreamingJSONComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [StreamingJSONComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(StreamingJSONComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.ts b/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.ts deleted file mode 100644 index 9d39d3148..000000000 --- a/samples/js-angular/genkit-app/src/app/samples/streaming-json/streaming-json.component.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { MatButtonModule } from '@angular/material/button'; -import { streamFlow } from 'genkit/client'; - -const url = 'http://127.0.0.1:3400/streamCharacters'; - -@Component({ - selector: 'app-streaming-json', - standalone: true, - imports: [FormsModule, CommonModule, MatButtonModule], - templateUrl: './streaming-json.component.html', - styleUrl: './streaming-json.component.scss', -}) -export class StreamingJSONComponent { - count: string = '3'; - characters: any = undefined; - error?: string = undefined; - loading: boolean = false; - - async callFlow() { - this.characters = undefined; - this.error = undefined; - this.loading = true; - try { - const response = streamFlow({ - url, - input: parseInt(this.count), - }); - for await (const chunk of response.stream()) { - this.characters = chunk; - } - console.log('streamConsumer done', await response.output()); - this.loading = false; - } catch (e) { - this.loading = false; - if ((e as any).cause) { - this.error = `${(e as any).cause}`; - } else { - this.error = `${e}`; - } - } - } -} diff --git a/samples/js-angular/genkit-app/src/index.html b/samples/js-angular/genkit-app/src/index.html deleted file mode 100644 index 822a28173..000000000 --- a/samples/js-angular/genkit-app/src/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - GenkitApp - - - - - - - - - - diff --git a/samples/js-angular/genkit-app/src/main.ts b/samples/js-angular/genkit-app/src/main.ts deleted file mode 100644 index b1be530a2..000000000 --- a/samples/js-angular/genkit-app/src/main.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { bootstrapApplication } from '@angular/platform-browser'; -import { AppComponent } from './app/app.component'; -import { appConfig } from './app/app.config'; - -bootstrapApplication(AppComponent, appConfig).catch((err) => - console.error(err) -); diff --git a/samples/js-angular/genkit-app/src/styles.scss b/samples/js-angular/genkit-app/src/styles.scss deleted file mode 100644 index 0ff0b59e1..000000000 --- a/samples/js-angular/genkit-app/src/styles.scss +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* You can add global styles to this file, and also import other style files */ - -:root { - --header-height: 65px; - --container-border-radius: 20px; - --input-border-radius: 8px; -} - -html, -body { - height: 100%; -} - -body { - background-color: var(--app-background); - color: var(--mat-app-text-color); - margin: 0; -} - -hr { - border-bottom: 1px solid var(--divider-color); - border-width: 0 0 1px; - margin: 12px 0; -} - -a { - color: var(--link-color); - text-decoration: none; -} - -pre { - margin: 0; - white-space: pre-wrap; -} - -// Helper for filling available space in flex layouts -.flex-spacer { - flex: 1; -} diff --git a/samples/js-angular/genkit-app/tsconfig.app.json b/samples/js-angular/genkit-app/tsconfig.app.json deleted file mode 100644 index 84f1f992d..000000000 --- a/samples/js-angular/genkit-app/tsconfig.app.json +++ /dev/null @@ -1,10 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/app", - "types": [] - }, - "files": ["src/main.ts"], - "include": ["src/**/*.d.ts"] -} diff --git a/samples/js-angular/genkit-app/tsconfig.json b/samples/js-angular/genkit-app/tsconfig.json deleted file mode 100644 index 437984834..000000000 --- a/samples/js-angular/genkit-app/tsconfig.json +++ /dev/null @@ -1,29 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "compileOnSave": false, - "compilerOptions": { - "outDir": "./dist/out-tsc", - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "skipLibCheck": true, - "esModuleInterop": true, - "sourceMap": true, - "declaration": false, - "experimentalDecorators": true, - "moduleResolution": "bundler", - "importHelpers": true, - "target": "ES2022", - "module": "ES2022", - "useDefineForClassFields": false, - "lib": ["ES2022", "dom"] - }, - "angularCompilerOptions": { - "enableI18nLegacyMessageIdFormat": false, - "strictInjectionParameters": true, - "strictInputAccessModifiers": true, - "strictTemplates": true - } -} diff --git a/samples/js-angular/genkit-app/tsconfig.spec.json b/samples/js-angular/genkit-app/tsconfig.spec.json deleted file mode 100644 index 47e3dd755..000000000 --- a/samples/js-angular/genkit-app/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/spec", - "types": ["jasmine"] - }, - "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] -} diff --git a/samples/js-angular/package.json b/samples/js-angular/package.json deleted file mode 100644 index 07f36dae4..000000000 --- a/samples/js-angular/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "js-angular", - "version": "1.0.0", - "description": "This is a simple UI for streaming RPG character generator.", - "scripts": { - "start": "concurrently npm:start:server npm:start:ng", - "start:server": "cd server && npm run genkit:dev", - "start:ng": "cd genkit-app && npm run start", - "setup": "npm i && cd server && npm i && cd ../genkit-app && npm i" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "concurrently": "^8.2.2" - } -} diff --git a/samples/js-angular/server/package.json b/samples/js-angular/server/package.json deleted file mode 100644 index 428c00d1c..000000000 --- a/samples/js-angular/server/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "main": "lib/index.js", - "scripts": { - "start": "node lib/index.js", - "genkit:dev": "genkit start -- tsx --watch src/index.ts", - "build": "tsc", - "build:watch": "tsc --watch", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "name": "js-angular", - "version": "1.0.0", - "description": "This is a simple UI for streaming RPG character generator.", - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "genkit": "^0.9.0-rc || ^0.9", - "@genkit-ai/vertexai": "^0.9.0-rc || ^0.9", - "express": "^4.21.0", - "partial-json": "^0.1.7" - }, - "devDependencies": { - "genkit-cli": "^0.9.0-rc || ^0.9", - "typescript": "^5.4.5", - "tsx": "^4.19.2" - } -} diff --git a/samples/js-angular/server/src/agent.ts b/samples/js-angular/server/src/agent.ts deleted file mode 100644 index 3ee2f03b5..000000000 --- a/samples/js-angular/server/src/agent.ts +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - GenerateResponse, - Genkit, - MessageData, - ModelArgument, - PartSchema, - ToolArgument, - run, - z, -} from 'genkit'; -import { GenerateResponseSchema } from 'genkit/model'; - -export interface HistoryStore { - load(id: string): Promise; - save(id: string, history: MessageData[]): Promise; -} - -export const AgentInput = z.object({ - conversationId: z.string(), - prompt: z.union([z.string(), PartSchema, z.array(PartSchema)]), - config: z.record(z.string(), z.any()).optional(), -}); - -type AgentFn = ( - request: z.infer, - history: MessageData[] | undefined -) => Promise>; - -export function defineAgent( - ai: Genkit, - { - name, - tools, - model, - historyStore, - systemPrompt, - returnToolRequests, - }: { - name: string; - systemPrompt?: string; - tools?: ToolArgument[]; - model: ModelArgument; - historyStore?: HistoryStore; - returnToolRequests?: boolean; - }, - customFn?: AgentFn -) { - return ai.defineFlow( - { name, inputSchema: AgentInput, outputSchema: GenerateResponseSchema }, - async (request, streamingCallback) => { - const history = await run( - 'retrieve-history', - request.conversationId, - async () => { - let history = request.conversationId - ? await historyStore?.load(request.conversationId) - : undefined; - if (!history && systemPrompt) { - history = [ - { - role: 'system', - content: [ - { - text: systemPrompt, - }, - ], - }, - ]; - } - return history; - } - ); - const resp = customFn - ? await customFn(request, history) - : await ai.generate({ - prompt: request.prompt, - messages: history, - model, - tools, - returnToolRequests, - streamingCallback, - }); - await run( - 'save-history', - { conversationId: request.conversationId, history: resp.messages }, - async () => { - request.conversationId - ? await historyStore?.save(request.conversationId, resp.messages) - : undefined; - } - ); - return resp.toJSON(); - } - ); -} diff --git a/samples/js-angular/server/src/chatbot.ts b/samples/js-angular/server/src/chatbot.ts deleted file mode 100644 index 14f661406..000000000 --- a/samples/js-angular/server/src/chatbot.ts +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { MessageData } from '@genkit-ai/ai/model'; -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { z } from 'zod'; -import { defineAgent, HistoryStore } from './agent.js'; -import { ai } from './genkit.js'; - -const weatherTool = ai.defineTool( - { - name: 'weatherTool', - description: 'use this tool to display weather', - inputSchema: z.object({ - date: z - .string() - .describe('date (use datePicker tool if user did not specify)'), - location: z.string().describe('location (ZIP, city, etc.)'), - }), - outputSchema: z.string().optional(), - }, - async () => undefined -); - -const datePicker = ai.defineTool( - { - name: 'datePicker', - description: - 'user can use this UI tool to enter a date (prefer this over asking the user to enter the date manually)', - inputSchema: z.object({ - ignore: z.string().describe('ignore this (set to undefined)').optional(), - }), - outputSchema: z.string().optional(), - }, - async () => undefined -); - -export const chatbotFlow = defineAgent(ai, { - name: 'chatbotFlow', - model: gemini15Flash, - tools: [weatherTool, datePicker], - returnToolRequests: true, - systemPrompt: - 'You are a helpful agent. You have the personality of Agent Smith from Matrix. ' + - 'There are tools/functions at your disposal, ' + - 'feel free to call them. If you think a tool/function can help but you do ' + - 'not have sufficient context make sure to ask clarifying questions.', - historyStore: inMemoryStore(), -}); - -const chatHistory: Record = {}; - -function inMemoryStore(): HistoryStore { - return { - async load(id: string): Promise { - return chatHistory[id]; - }, - async save(id: string, history: MessageData[]) { - chatHistory[id] = history; - }, - }; -} diff --git a/samples/js-angular/server/src/genkit.ts b/samples/js-angular/server/src/genkit.ts deleted file mode 100644 index 5da87fb17..000000000 --- a/samples/js-angular/server/src/genkit.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import vertexAI from '@genkit-ai/vertexai'; -import { genkit } from 'genkit'; - -export const ai = genkit({ - plugins: [vertexAI()], -}); diff --git a/samples/js-angular/server/src/index.ts b/samples/js-angular/server/src/index.ts deleted file mode 100644 index e5b080060..000000000 --- a/samples/js-angular/server/src/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { chatbotFlow } from './chatbot.js'; -import { ai } from './genkit.js'; -import { streamCharacters } from './jsonStreaming.js'; - -ai.startFlowServer({ - flows: [chatbotFlow, streamCharacters], -}); diff --git a/samples/js-angular/server/src/jsonStreaming.ts b/samples/js-angular/server/src/jsonStreaming.ts deleted file mode 100644 index df0611100..000000000 --- a/samples/js-angular/server/src/jsonStreaming.ts +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { z } from 'genkit'; -import { Allow, parse } from 'partial-json'; -import { ai } from './genkit.js'; - -const GameCharactersSchema = z.object({ - characters: z - .array( - z - .object({ - name: z.string().describe('Name of a character'), - abilities: z - .array(z.string()) - .describe('Various abilities (strength, magic, archery, etc.)'), - }) - .describe('Game character') - ) - .describe('Characters'), -}); - -export const streamCharacters = ai.defineStreamingFlow( - { - name: 'streamCharacters', - inputSchema: z.number(), - outputSchema: z.string(), - streamSchema: GameCharactersSchema, - }, - async (count, streamingCallback) => { - if (!streamingCallback) { - throw new Error('this flow only works in streaming mode'); - } - - const { response, stream } = await ai.generateStream({ - model: gemini15Flash, - output: { - format: 'json', - schema: GameCharactersSchema, - }, - config: { - temperature: 1, - }, - prompt: `Respond as JSON only. Generate ${count} different RPG game characters.`, - }); - - let buffer = ''; - for await (const chunk of stream) { - buffer += chunk.content[0].text!; - if (buffer.length > 10) { - streamingCallback(parse(maybeStripMarkdown(buffer), Allow.ALL)); - } - } - - return (await response).text; - } -); - -const markdownRegex = /^\s*(```json)?((.|\n)*?)(```)?\s*$/i; -function maybeStripMarkdown(withMarkdown: string) { - const mdMatch = markdownRegex.exec(withMarkdown); - if (!mdMatch) { - return withMarkdown; - } - return mdMatch[2]; -} diff --git a/samples/js-angular/server/tsconfig.json b/samples/js-angular/server/tsconfig.json deleted file mode 100644 index efbb566bf..000000000 --- a/samples/js-angular/server/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compileOnSave": true, - "include": ["src"], - "compilerOptions": { - "module": "commonjs", - "noImplicitReturns": true, - "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2017", - "skipLibCheck": true, - "esModuleInterop": true - } -} diff --git a/samples/js-coffee-shop/README.md b/samples/js-coffee-shop/README.md deleted file mode 100644 index 618a80f5e..000000000 --- a/samples/js-coffee-shop/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Running the sample - -```bash -npm i -genkit start -``` diff --git a/samples/js-coffee-shop/package.json b/samples/js-coffee-shop/package.json deleted file mode 100644 index b32e5b1b5..000000000 --- a/samples/js-coffee-shop/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "coffee-shop", - "version": "1.0.0", - "description": "Genkit samples for a coffeeshop", - "main": "lib/index.js", - "scripts": { - "start": "node lib/index.js", - "genkit:dev": "genkit start -- tsx --watch src/index.ts", - "compile": "tsc", - "build": "npm run build:clean && npm run compile", - "build:clean": "rimraf ./lib", - "build:watch": "tsc --watch", - "build-and-run": "npm run build && node lib/index.js" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "genkit": "^0.9.0-rc || ^0.9", - "genkitx-chromadb": "^0.9.0-rc || ^0.9", - "@genkit-ai/dev-local-vectorstore": "^0.9.0-rc || ^0.9", - "@genkit-ai/firebase": "^0.9.0-rc || ^0.9", - "@genkit-ai/googleai": "^0.9.0-rc || ^0.9", - "genkitx-ollama": "^0.9.0-rc || ^0.9", - "genkitx-pinecone": "^0.9.0-rc || ^0.9", - "@genkit-ai/evaluator": "^0.9.0-rc || ^0.9", - "@genkit-ai/vertexai": "^0.9.0-rc || ^0.9", - "zod": "^3.22.4" - }, - "devDependencies": { - "genkit-cli": "^0.9.0-rc || ^0.9", - "rimraf": "^6.0.1", - "typescript": "^5.3.3" - } -} diff --git a/samples/js-coffee-shop/src/index.ts b/samples/js-coffee-shop/src/index.ts deleted file mode 100644 index 5e6745b12..000000000 --- a/samples/js-coffee-shop/src/index.ts +++ /dev/null @@ -1,129 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash, googleAI } from '@genkit-ai/googleai'; -import { genkit, z } from 'genkit'; - -const ai = genkit({ - plugins: [googleAI()], -}); - -// This example generates greetings for a customer at our new AI-powered coffee shop, -// demonstrating how to use prompts in Genkit flows. - -// A flow to greet a customer by name - -const CustomerNameSchema = z.object({ - customerName: z.string(), -}); - -const simpleGreetingPrompt = ai.definePrompt( - { - name: 'simpleGreeting', - model: gemini15Flash, - input: { schema: CustomerNameSchema }, - output: { - format: 'text', - }, - }, - ` -You're a barista at a nice coffee shop. -A regular customer named {{customerName}} enters. -Greet the customer in one sentence, and recommend a coffee drink. -` -); - -export const simpleGreetingFlow = ai.defineFlow( - { - name: 'simpleGreeting', - inputSchema: CustomerNameSchema, - outputSchema: z.string(), - }, - async (input) => (await simpleGreetingPrompt(input)).text -); - -// Another flow to recommend a drink based on the time of day and a previous order. -// This prompt uses multiple messages, alternating roles -// to make the response more conversational. - -const CustomerTimeAndHistorySchema = z.object({ - customerName: z.string(), - currentTime: z.string(), - previousOrder: z.string(), -}); - -const greetingWithHistoryPrompt = ai.definePrompt( - { - name: 'greetingWithHistory', - model: gemini15Flash, - input: { schema: CustomerTimeAndHistorySchema }, - output: { - format: 'text', - }, - }, - ` -{{role "user"}} -Hi, my name is {{customerName}}. The time is {{currentTime}}. Who are you? - -{{role "model"}} -I am Barb, a barista at this nice underwater-themed coffee shop called Krabby Kooffee. -I know pretty much everything there is to know about coffee, -and I can cheerfully recommend delicious coffee drinks to you based on whatever you like. - -{{role "user"}} -Great. Last time I had {{previousOrder}}. -I want you to greet me in one sentence, and recommend a drink. -` -); - -export const greetingWithHistoryFlow = ai.defineFlow( - { - name: 'greetingWithHistory', - inputSchema: CustomerTimeAndHistorySchema, - outputSchema: z.string(), - }, - async (input) => (await greetingWithHistoryPrompt(input)).text -); - -// A flow to quickly test all the above flows -// Run on the CLI with `$ genkit flow:run testAllCoffeeFlows` -// View the trace in the Developer UI to see the llm responses. - -export const testAllCoffeeFlows = ai.defineFlow( - { - name: 'testAllCoffeeFlows', - outputSchema: z.object({ - pass: z.boolean(), - error: z.string().optional(), - }), - }, - async () => { - const test1 = simpleGreetingFlow({ customerName: 'Sam' }); - const test2 = greetingWithHistoryFlow({ - customerName: 'Sam', - currentTime: '09:45am', - previousOrder: 'Caramel Macchiato', - }); - - return Promise.all([test1, test2]) - .then((unused) => { - return { pass: true }; - }) - .catch((e: Error) => { - return { pass: false, error: e.toString() }; - }); - } -); diff --git a/samples/js-coffee-shop/src/input.json b/samples/js-coffee-shop/src/input.json deleted file mode 100644 index d669609ad..000000000 --- a/samples/js-coffee-shop/src/input.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "start": { - "customerName": "sam", - "currentTime": "12:30AM", - "previousOrders": ["Americano"] - } -} diff --git a/samples/js-coffee-shop/tsconfig.json b/samples/js-coffee-shop/tsconfig.json deleted file mode 100644 index e51f33ae3..000000000 --- a/samples/js-coffee-shop/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "module": "NodeNext", - "noImplicitReturns": true, - "noUnusedLocals": false, - "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2017", - "skipLibCheck": true, - "esModuleInterop": true - }, - "compileOnSave": true, - "include": ["src"] -} diff --git a/samples/js-menu/README.md b/samples/js-menu/README.md deleted file mode 100644 index 8200d81b6..000000000 --- a/samples/js-menu/README.md +++ /dev/null @@ -1,27 +0,0 @@ -## Menu Understanding Sample Application - -This sample demonstrates an application that can understand a restaurant menu and answer relevant questions about the items on the menu. - -There are 5 iterations of this sample application, growing in complexity and demonstrating utilization of many different Genkit features. - -To test each one out, open the Developer UI and exercise the prompts and flows. Each step contains one or more `example.json` files which you can use as inputs. - -### Prerequisites - -This example uses Vertex AI for language models and embeddings. - -### Prompts and Flows - -1. This step shows how to define prompts in code that can accept user input to their templates. -2. This step illustrates how to wrap your llm calls and other application code into flows with strong input and output schemas. - It also adds an example of tool usage to load the menu from a data file. -3. This step adds session history and supports a multi-turn chat with the model. -4. This step ingests the menu items into a vector database and uses retrieval to include releveant menu items in the prompt. -5. This step illustrates how to combine models with different modalities. It uses a vision model to ingest the menu items from a photograph. - -## Running the sample - -```bash -npm i -genkit start -``` diff --git a/samples/js-menu/data/menu.jpeg b/samples/js-menu/data/menu.jpeg deleted file mode 100644 index ae096cd7bd8ddf5c48308bdc1c389d1efa8eb0e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493635 zcmeFZc|6qH|2RIDh)^gY6b9Ln-PodRW8WEjvSiDyMz|`;Bs(*f8I-XLS&E`uJ7dd? zH7V;@QfWrXt$V*OgYNC#+xy=8czpi*{f?S*&g(p1&+|OzJkRqypU-p7>$maWUV{$l z>p*otR8$}k74Qf8?FHx@h-p6qBLh7XBO@a-GZPCNA3NKjLu_E~V@LSJg(W4#ghfTA z~ardnsmVGNw7wP?${vU~n zoDGftQM^;c2}_9nM<9@Fe~-pLLj5~bpkuO8CI5(v=74ndKLUa1;EgB$5$fNe0?~N* zkNhJp(0LDqe+B{#DhmBG)W1Uo`afhYuEqKMf28Z*@hONo>zU<0;-b2lIsT78AR5)F z^nZlTg(#-V+xzS*rdI#dCfP{!mRkx0yb-1+>G!EawIudno+~IS8bVjCe6{5h&lLnd+b$ zU2)5gfq@e0tD>d(d+f~ES)8yjVCL0NgINEYoD5)*idY* zXhLdusi1rtGF}>QW~8$O=g(Dk$JSQ7Mc%I%7k*rj+O0og%`=@@wyNfHCa25Ot%)O; zooyZV;v~-qo|VG@*W>B%Y`>(j^5#`%URyxU?XtG&yCPM5rFQ($p~e;E?kzO3s$y8# zM0cSS?sc_)jQeJdhuHy7USz~dZN)@wSu6<=Nvu>R@nw>yuO`+gSHPY|;`vaxfGv#q z&prwgOIj0)FM~gtK#7fz0P(GUlrkwX^VaYMDIMaoTd5nJ_z}3jEaIe^>`%l}QCE2Z ziCUu7nx3S|xrLHd@tm}*+Q#bajAs4HS(BlsQOy8jQlu?S*Oo_lqfmN#!3=hq<$%fp zPrVbN*T5;X&EvC=3NpeeRlWQ1T)FzG7HwEX77AT?$#6kPA{3ng$-&-VRhU{W61$oz z{YpYR^+T(-fyYKl{V`9`i~U4M#nvUKxb8(o?zjZ#m+`CeRyiEUEzCNs-`F}D4Uc}J zuL>G@BnJ%Fwn!1r9=sh!{4iBeH&gqj@i=v)^DX>L<-?ZItW!E7?fp^Qt4iIQ*=xOq zV>9G-uHy&uxyzRyDx!=jJQO_RCct}U5+jfH4>LF+|&xT!ahD>91 zx$C67&4gM`l7Vr^9#~W2K-)dLw?(3E10~I}%Mta&W?7H^^;4UV zTz@&pmm7*d`fGUUr4a2Zh0;>}<=nP?XBm~XamoI}r3Msg zaLZ$TV9Q_fvy^W*k@vHrZ}=eZuUE*ymQS79y0F+QL|;F(TS+FOs{?}=i${4bbNB(} z3r|H~mFVTOP&5 zm$FfvWp+rWab_bg*MWQWBEb=lDkV7|F?kD`pLOP68=O)KCHy3>&~xlPVb)dpj~lvk=b zqx26NIs{e;uihRgZU|UrE#>D*k*~|?uUOIV$Wi{F-t^S~`Q@jFYQe}&iMPm%re2(U z4pl{e{}q!cXPcqVuXH=3K@>HM1{Y4c8*Cc649??<5zpqKvp{PtbA(Fsw$~S zYU)#6slURMcR|yX^nDMJv@qftk8;qcn_8O8^UHZU#46?GJUwDrXCX?lFPu2s=>4SB zrT@#?@geUVr872iTzG4YkInn-cbXxTH;D?}LaM0k>9=Y;;W*NfDYwI=1LpUA;$ zNnta1(xZaBCFe87;kRqlZyCbR_=ck-hc0I?67L3$Bsz1gB_Xzs4vqnmW*D+!ZuR*R3i?ifeY%Jca7uMgg-N97)UmDl`!*=C4XxJ z)XyNyKP|MY;=}Tc<7em3E3URHw`v5DR1{rz-D%{j#<>hS})HV;(HN zc3OYNzJ|+g9=l~SFr9dX?{izB0j!<~^dbxHH;`KUieHk{YGT@yQplHgOGJLY4ay`s z6Gb8e0(WEDQS?P$D2m6YU-`o5=a3JHP0PF@_dbjyDLiQ8@+=Q}1#s%U;E|(nU~(>2 z(F2{L2(a`gVt8l1FFEQeX&{rVes#Ta>g%gpCWGpU5hG;2yg{2LK-}&ab2NS7bAylF zMVC; zQ&iSqK$r<2PvI+{1|1$+%L~_ro5W1}W5|Pd0g8$|Ya?u)N@PC8cZJ;VnJU4^uJAn4 zpT4?~iY#v$mvvt#-j-2MN`pF^0GZ{mVLa_``zo8lM}k>|jc=fo!YI-zmSDHMO4 z0ph(iSo+}=;xcg!t*o_j*`RJcYU-WC#!WqgkE)j+L3;c$M^FmorArYTpFcexB-`W_ zCvS9mw%XbA`F8pP&6e@@nG9LZL(4X`ib{4RMYHq5)l~*|b0B5TDT)U)G=n zR~<`MAE2`EEUP55~|&Vut5~ zxxKBG0F4%MRd9x?^h{2ho0Z)%#vYR*ZaUj0OT!#a3q2BPa7mJ;D3U(6 zZ0SnE#~h|Vufp}G zfypxO_+aG=K(`-PjSQ(6kOF7mUulS|M$_Q}&oO}R5cDbUj5A^$^WaTHc&N4rJRRv| zXH1GBmMI!ee_lCeenH_;<4bl({Yw*$cY`ZapI0pjuyplVPY5~|{r0(C#e4dP20*y7u^ZnnLId^TekcI>9BTi)60 z)UT=C8uCmK>a?i!}@ zB54~Pp24qw_`*^Wl=vhUXuwVt=Ao)pl^Q>Urh31Y@){=!~%>KunQ;2u>+D ze$aldyi#G$BBLs~S^N5jZ*Z}jzX6=l|G|+ZSbpt?*gyxdeNUo+;_bnqF0L3;{4wZu z$-Wy3uM+-$XWL#U{eQ^Ww%6ppkGJ*p2uP@MExcY4hXz5&OWjmu4?D|7JSM_g=BAeW z2mby&;OT#Jzx@ymrGVmgru7b!5{pzJfIvymeXL$53vQ~U@4lwQ-mDRCjMtnhxTZ2j zGwbrC1w;d_1NKygatI(=JN=Wd4HFCdC^KE&CiZLInSv|IpI<#g6-B&ldTiU^Erspu zynT7ZY75`A*-_#u0UBR@U8@<=&2^4#La_pSMs zqwE1$vmIKKKGnf98E{mfN$04*y)YDeKSH3_9C0IV(*v5Kd%n-bpEhubn3vWOk|xhX zgfZ!{xt*U1K5nEdIv#=&B9W0NjBlXH!Tmj{r~6h^;tDhy-YDj=$ezz{l0suk-%kef z#4OYLfTAwDI8_kt_GM#RX_Y`sZ%6JP*^FeXIVsq8qvI% z&rfo)BxO2MWaY_mhO;0tBgvMWU8EyaRHG))@~st=1l8hkUDPQez>Ccd`P=(GRK4jI z%O@hij8Nf=!iL@W^M~DxGTG?TG@T^CRH6LcXIo4TvrPwQ3_&q5jW!ULHZy|bL50&I ziRYR|9ma5J=aoWI=n4YKYvP5;)hV>n)92Vhu@GpQ?DDWZM|38pi%ZqY&=?NfoCl4U6_H*V&AKa zwGHJJ{ANiSC9_q0pGxhL&Y+%GV5$!Fe>@jS#~&#<3?n-cJ#NF zP!co)&0iW6)sFr=_U!Qg*aYLYII^@2KV!TQ4W;nzp5y6zbl-BPWp|SQVXKw8mS%?8;Cj+(~$vBlc}&xJXf)*G_Y{w@Mc(Qr(57?D7wpTy*Ow^6Fcdpd^AIOj9uTY zu_*0|Ssy08J;m+$aQ^q`wk;+L!NL$skEH3klo{(8dwoJPf}DAmC`0B5nFp`PfL9X* ztR0oh6u>JA5^^WayN|OF)}-$TjySL$s)fEZGk?$Vi+GBpgPDqxf#lcI5S);kxzL)C z_-JYd?pTS>?b$wItqkq1$iQ~xZXUPckTF`lF(#;u3!pb`Z$ljcZ$=0i6?4@gR1iU& zDFQu$Y^PU+?r^BdDC?Vft0Z`&f+mAdXUl98U7K8Od*m1OY8(dqw5Zd)Ms~1vAN^g+*FkLsa?i6pt~k3wtT#7z=6= z0&;K@qkq%I<^_#Dh550{y^a2mfwZ_S54$&$@b(&7Lwm70L)KenHG(S|c%G3Fj#cHd zYZ5g!LUl0O=3=~7h>i5%v7X!U#)UPx*5Ug4BYd{`;nbF+wg|9ZEu1F|qe~lVT@Z+9 z4`D|P1YqJh{nayt3r8>K;FxoO<#c03mV(YBA*!^0arxTBD-_k$a`q7f*-eQQPynJ+|I`?1^$&B2PqO;E}TP*g&ths?1 zkDJ47ezx#ZU0J~cnrv1$e(cgIkA?r%yZemxHTystmLR>$0+-QlcV()*xQ)@By3(zo z>|jWrJx6s8V~;n4WzLJdrGKOi-l~fsp6?7pgAs@mmw}b}4}mhO@dC3>1^29D!CJOH zUM-R8DG$zAm9%GLimb3GA#T4B>@zYWx2!^pw{9c!--xG( zo1b`1=OzIY7Z4VNhEKW#>a=M#@VYk4CO>5B@H`yI=8;zP@VH)gdSwe}r%&ZFu(?VJ zxA=v1v-{@}e1W{gR(GFLu?Q6;voaH)(v(a`C^4Kfd*8CCc$_J2)-qnGd&rjKh>SdM z7k-8_l-sCCSJcIB*pLgYtI1|?%vcttP>-Fo<+z<=dF+H|ys11sJ7 za|SH(x4ae5^KuWx)sO2z;r;HZ1F1@D>e)uRfqWOZc#8d8{ZF3|hJ+e z(S~cJ7P-~jVUx=+1s#GmA)RCF^tVTp=cXSxVZJ6>fX&gB%~6B8E*qK()d1-fpKsIv zF=o5Mj57eJL#1;0`(se1JH{@pmKM({hoLU7H@Mr}bd7&5D+*yBbI(;Pj zR2ckM??%CUkMfLbPOqxx;2oa%BqJg0jo$8=iOL2>>7PS+r7_uKG1Jf#I!}21q8jy} zDoWOjTw8eFSJcVr`ezpk?G%~Ioi;E~b8%6Cq0MW`Ut9<8)f#%-FtJ8r7Mwto_TpzU z>S8UK(oLhIr8*sm(MnOur@Z>dpKZOIvAxN|J-4^w*}+(PX{AUB(V9z)2pb5=Hqya^LRlBc z(@(=wv9R~ar&Z!=OAta#OoRi1c!0B7l0qoLXY(>dq~{g z=~sGw8Yy#cr}lxz1N#@1S=dW*N;uo!C?%3+M63|*=KSHQmmXyxE@Qb9XFUe4%sJJy z%)??*%GztKZ3@D>vF6>yjFT0&@7&SrSb_{|y_R)^x|Qe+!@M6Hvzd*6j6#)c>g6S4 zTPUriEX(pjN(taZ4PADv8IUGN>cdE(_?|@%d+z-GeE{us`$|lMdiOQB26B54d8V@cc*oFxq^V1r<^Dea z@{W?^3a@(vzU3raJ!JbP4yAcPFW8(cJTjv^{Ie4*XUyrEyN-Q-^mq0Ap4n*{ks(6# z=1})dk+HL(r?AJVQqzQnva&e2IFAhX?KgKj(%R|gWVzyakuELhbyjx&s*Zsu*jrID zP^_Z?A^E+n@$ZhcZ8wxAL3NYNc9PALVJINS*wuDH5sh6*Qa7IEY~rPFRmIqX*OVAs zi$b{otx7XXLYqT~F92oHZ(;;tY0+T=bgUFT@L(~dq5_%k;wR9*uMwWgc}Ljj^^l(& z=Ji`spp83&EzVl#ns`Gi#G3p@X_QZ8HKsjNAhDq0(FAe0E4R>H-~Q(R>>O%1>|`iw zmzn9QE>UmsVt(?ppCYf&l{I-zUbta0lM!`3)`zDT|tMeyNLy1G7^$_rBbrBFDaH@bKhYGtCdk7Wy6E9ZJI+t z7+vY6?!A}3k10yqVXZk?70q5>WhixKxU{((rpUd$KVnUYu~a#fC%-wpI#L4cHE--x8Ly|HFVL z=H>$ppvpa0J_yf4TOR=eF}sX^Pskr~J1f|7Ye>psTipT#CrTI07OQRglyx53FbvJp z!+TZm5|xzuSZ0}4mE-XFOAr>e(C|z?1D-_X4G(ZjgTUuYxUp zm@a#Cg!(s->3XY+zcNnJxHt!g@GJv6t#HOC)|{;sdvLxiCj7`>tdBih+w4Xy54L`q zdZJ|(%u*W@2TnX!H>JZNUs)_F=BAU{4nJ?V6?TkaUxHrHl^J@?!+NaqDPm0w*l{nV z?x0caR5v&{LY=#Nu5Qyy0o{Igw4N{t%{nw+0x>CulGmKi7;G&9mHih5mqHs=J7&+9 z0iqhfFzyk&7jGYgVAjnxSmA)*X~Oo<>gVaD$>!IgV|w9z4TPSUh?0vhE!-d%#GiYY z&5Zxg_V1wN@j7IST0Wdw21+nC57c;VR8F82AdCwh`1G96+Y#$KDu9kCCq*&X_4HD4 z1Z%x?1M~!8JQl=q!E8#q^Y#lKq1!dIny0ApZz06iwlPu5ttmuPQ11QgI+pjce;@D4 z$iFZA_LQ<-loWFj0x@*L!ldLkO7X1R7a<3WXs;0f8^p(!P=zkq_ciJW_LkytmK)J& z0zKz65hrbt_i~u&v;r&0LLUgV9J6;q(7J%;jxL6FhoIfR6ke)y5#y^7MpuwsZ;*&V~f^0_LhKU?Y5j4_#~hZp9u=7?L|yrgE= zJK=ri3~qJArAFh+*PMWoiyMryMs6>)yYLV51zuWZjz5eSeZKhN7dq_rBC#822ER@% ze723MIa3sQjJUDd|9^e3mXX`_k~+GGl>AN!k!**oNOK3LC^6I=%9K{=pXcHZOLLnY zO0`5tfI*PKTbc+7xM0H30du`X5&ao~K#V6uz?MOX1V}9f?!H9X ziZ_a!$%}YFEK#|C0a&4S)*>C<3|wajn)a)v7Ti-vEQ!Mv8Gb}FM^Ia{<86Izsb`GG zN4_f0Sc5Pzp^r@u)wml>9BTU(uE(+cVl_T1d4z!)RL$lFb5_$SljgblT~ATpU+yd` z-wHg_W}#XS_)q@zNnb%d&WBbU_8ZX}I&Lo`LDY=GD|8}abQ1DpR%uDA&1#!G+>(Oz zy&et5DcDI6C>j~nI|UPa#GwxiQ6X+946MJwTiWUc3qj}ajT%J)A6h=0e-7K)hHZ`B ze!gH_2ns4Tj|Lr?AA*f7$qD;xuk|}XS*_5WiAAey2vo6qoP(8hF7*@J5guo@>Ic$6 zWtQ$1^Akj~z_K?m@1hW`ui=ilqEhAH`&ShF^R2{0R&v98Ep0|5K0q$aML)5kR^+>B zcB^<|E@&m*$U;yCXSvk_-(RLq(A` zG&HC8Uf7L+fuy28oaGzJ%Q*%S&|=pi)$`lfNwJ2JYEwj@Ljid#_au;tg{@7)Fj8E6JhM)hqr;m5+?DNq z*$LbB2tBnIgyA~RTNP$nGl_sB!|$Ky%Y>y88BPW8E`rUJEPK)#S{B7(miZhwN|1su zgte@Uq$j^jbx(CU@`SgL-UmOg()W#3)PX!iuZGG@j^H@7t=p;~)Ri-bzsFTI+jP6C zouzEo5Qo@}Q9{mojS;c14;HpusZa_nA1dXnCu5 zgnU3;+Oy2E8QR%IuczFn_d#n;j<;j_XZv^|^LuNSTv0iLcTYPon9DtxAhO|v4;(fW z7Vq;@j`xe+YZt{6AqpMUW!<-Q7nL?(aQE;fWrN%EmTA;=cKQxWJRvvOqteqaUMhsweq^Mq@67vYoO*Ul~YA-+JiRI+W ze9DLJ@>8kn2u7EI zT92)m%FS-pOQIYKH8-49%!zB&N|K0oGQ9oVUx2~lPIq;MzQMLI*g5P-trUy8D`5$G zt&V9qWTv74q75AKQpA8*pO+x>LDYGYiQQZtZ*Ip+2J@_cd~CF!aO#Kwa?K?M@fd;d zE;kT$D?NCeA)A^*xPZL-qDo(3o0j*(@MC~#g62+;>BhwL0(gBa^*;Yk8u7Vi2n01QDN<&g4}3Lo?^2I z)hl0l^0)hk5||a>gF_20Gi6CtN00NZsb7lTmK}W-3*9vnC)^_V3vT*`dAL~#&b~*L zORGm8jMWha{zULIDR%Ml=i1p;P9Z%4d9-U|@M*v6 zfL4FE_hP(Sc3ekyCCBjLX}8N9_NtTiT$gI%Pj=6%7z;Mt65dZ*77oCG?-Gf{Fy=$6 zGTJ$bfJsod!{Xi$c3F5!NcKQ5d_3ToaavFucFlnua8w>MDI#Sq(c3NQrD{z-D6Qtb z#R`6~?UU0a1hM%X!W7YM%tEz)ZyAu^TP$vziThAPMDxtt3d!4g{g30$T&pJo&j@p{(GPW~H&2rBQSD`U%r?9|%Iw zOaZ-+dy~UHA=h1^6uTmLfVD-l<6c?JdSopyS$4f`-x2XQnH|NKibdA|LCE4M&*v4U zZ(DA4k|;A63gq=@??yOwwJo1cIe=X~t$-$adl-+Lbt1{3N-h%3u%jl0etx5&M>gYO zhY3w?wnCus%T9wdVV40xxT$-K0&__9?3G8 zzuh_iZ5v#j2IyyRiqgzvc*ih$8^gB{jo9@iP!=RDu=JFnlqsz@6c8Nr${`YrCKA*p zCBVLJ95fVo2e5IFz`q8JTk9P*iFZ!X-|%cF{;Xrqsr=DX5r_exm5i0L^S5CE=s(^T zqhUWmdHC0#ot1S#{JHQ&M}|{ptME{{6yo{(1^ay|(pJvewbzdf9yg*pF>N#I4!*5F z#YT12+%!p|?yrb;hLh3N+Pz+P{K(tN)p@$j5MiynB*+O^*aE>Sv~wvqLoX2uFR;)$Ojw@hlZ zn=c8Odq3jJJjU!X^m`=~KSn>^Y*GtJJ#`k?RLg%*;cAXx17#_oGDzu<(l69KJyOf2 zRfdvo~c}LhPpn4 z)48VC!f`S#qh9LAnQwYXjI5sa=kUFM0&>h+Z> z)T>Iv+6prn8V^6zOV&oODY4K5<}V5{)1?hrV^j8J79rX1)TdH(!*BQ~J^7(t3R0sY zb|OU)Y`(#XzSZg_EH0pT4|lb;UuZgnHBj89T$JtQ8^rC~E8v6C%`jNJJUr$ho5VD8 z^blqh6vmZ3n3CXJQGyGtK}kuE+PJ=Rmk%G19j=)ERu5&_rRm4BWjizVdPRuRr4GOh z1U}z$)Q3l?W5kW1*J;y5^d|;v;(`XWFdAf1kKv%{zKBu|^V$60k?f{+II}$#A-2q4 zP}b;rwgxhANLZs8UDjZ3Xk*;;%?EP%{-;k(KAYWoJML(UOwRs_P!TsA6~^GV5CnJHjQw zSU|4&MqG@@9X*-(CvkE^=Z?xR)4GPF4{OvO0wbCd<5s@LpAuVv=&}qQ!8QYe5Q}VVz zswSMhF=AO#CpBPEA>;ad{-3aYbB|DAxBMt&REU(`ZNc@|@PBtH<1@}J%}Q|a|O?a&K(pP*uL3pxx?1JpeGyWC z>cXF6!~J>Wa_-D>K(Frye)Us3_!X`?7V< zL<25f-McmzU4GyDU3neR4P$xQx0~%+zN>OObMW+*YNMjsnZ^I&lc74wz2EAsu{=?w zf0?f#6XTZcr@%9>{|;iL3vYFS(sqPkL_Nzw9^>w3H2NaV-Iq+_tLM~t=>Y~D_Lor* zKG1hbo(&2p|9=b=Q-nb*W?ey(qXSs>(IR&%TlUj-6AUok`&gA3YR-QTzxVDAx5OlI zBiAkUn#Njd+2%3uI!AHN7=DxIlet$VBuo$b)exOzb1sz8!V=jYIxyTW(vrTUkWAma z@>i~*>5ED_Wi+V!`Kw#w(0}pivCR7m7ZWdC^&jCySn-_scqI?5p&7SunetqJ; zJv*p~Y<(hT;*Q!LvLfYP4Wvd7_7q>y$937RPUX+pYM^}0LY4gM`j`>C1O$R&3j!^WBW_^ZGK3VAU_4Q` z>7#yRyxJy^?>sld_F}ee_fs+EDqNi)5?d?6vZ2HIZg#y7E~;+ksU5=RK84?{F3GKf zHx4)q3QKmxM2mS=9kw_hE_wTJ+Vst`r#_kSH^sj{q8!Is6g{W%Gr{0cm$a*zU&KvG z+Mnl&S|f5l7-JE_QXi0WEa$s_>kEhD@A0w-5Av(BDcNts)u!%LFIi5RU1EJi%K zwNlAgu512c;Lm*;yq*=vBYTy6A2aGcN>_B)Iy1P2&)#094h0H1Y8yM9J+IC#Z;NVH z@nJK)uX&}vlUzL#<|HeKPLboeb$%dJc%fxcfrGYE3g2*BIbJe@;fldV@^eYkAtj`l z0LPr07ov;jz=q@q3>A&m(;kHii>JcM@}yeL1dirUWpScc2cYQKR&C*n05$)?^4S-z zWYa9qOV^e>)TBEcsLa4!ihCfmztyd@q9(##KKCcdLM3DToj6!f6^Gq8QvX`QO_-l3 zhaU`_AhB`mxX*Rcy(V! zw|@mlqZ|>ZSB_MW5(}-c(?2Cb4XqNpsL1PcjWgAgm{y&mhS2!FKY!2dh*C;k{rLA# zmD-8XzXSf4#i~jxd`*NcwMIB@%sO~bV8q$LJwsGGBJB>t3eaVz_M{(&%e&a;{?H90J^cMD-yI`Y}Ol)s)I*Q+4Q&?g^09i?)Pwk_5O?)fEgFWyfJrS{45g& zoOh83hgJ<&r*^>xF3BBZO7QR~D7?Hw(N4Dydw46N>Dp3N#NnL*2F*gNXzm2ox}nR2 z5JLjIZa#5kNnoJXj7&`I9ro~5XEp1y^%fQpj~U~YC(kRJ6y4*7twIF-TthJQ(p|?* z>IpjS2|>D6ZUOB#HM9iA@$i@DW(L_Tff^}3avp|O!&5^{#v#D2Ej7Oo0kpgQzG$35 zgHT54hm_DDRBTM;Ma-|Y=CBmfWGNp_-aW;$P4pi)Wv2~)_e0x)83Q66{(oBzecq#!_{__ z#oTiCG(Te2w&p&sVhT}u%GD2YZP;5zYDaMI$e+Kf{kvxrrZ`!u>IF%xO~0-TP4dEbu96@s9q3Dj%;Jq6D9Sz%#JZ85bS8pYjf{ON8iFhlMB8?@b9$8s-_H?8;5#FiA zhP~VE51eJa)1530F|MV#gM&X{Q!>T$f8#$Ygc9)*hBKAP5D! z>11)ZQz-f7_mHO3*dy)tn1<%}t3VVPv5!k)!DZ-@9EPs;wX$LFx|>7?7|kD7*)J%X@mvf#k&q84#xZ0ueXm z`R;`7&9!d^(C^j%P3reAyhMnXUNBX{pC4*sm~LVq_?fj}RzUH8@(J!>*!94*UwL?G zPUe+^`&Mt=wHP^wr$$f^`=gyZGMUGkVvGaPwP_eEecZ8v-yy}bv28*eW>^a57K z0MoY91eP2(+IOd$Bs<)v|2eB}C@^&%HtG+#!;pGnGMG)LfCf6`EzA)57eqT%?PC)_ z0m?;3ptm%q6H^(6eZ*TeTlt_vm3V^oVtLB`sAxhJZgIWW-uoHPt*74bOMVxpoWy(P z#>#Pm%S)k#cjEV1xZ<4}JyUUB1_@DD`g7F;nw%u&;ZvHtB87nI!4O$iXN_AHvE09+ z#?kaq>EIB>I%h&{NUPrZ2wiVylIa)YV+q*ox5q z?BZOyt^u4k8fFj^!genSAO1^Y{^el=ih9VM!Hy;>BV<6;$#lAb5vuL=z!ir{qeEKo zAw3>l%}!l5a0+q*-Co>lnZr-j8s=KSSLGzjSL<}14SV0`cB6MGTgLHxd9eqJ zGJ}>5`qr%05+12Rce^>OvwN2V1$!sL!7JBzwXrwEi=Rx0Y5+vo{6ciJxjHvFBxIFUirs^H&6Mn#1NeX(b(`{9l@} z`|%Ut6c_2`VslCK-vEH98vVx~GHC1+ZObnfEh3n34x7SZa10m;{tFgfllefr3$X+D z?RTf6XrNqdBPE;OvNH7i;6Prw0$BBUggkGoR$$$Dgt8`ro!4qg7eiOTUNWnml`{}r zF|OSek6Yz18Dpqh6A-YgLu+Mm`YWQ%p4Q4h`Vv!Br~MV9cj};M-%il$CB6#T22`9E zRgz+9;hy}7GI|)>kXV)e*aFRJ&f~^GzQa}rxMYIZw#|e;hnD2l%7{>D}h5 zt&MSrlxr{ovGfbJ@JXmvfNvCcs|Ohz%?m1ze_{+$57KGn<3QDBo?UQFBh*7)uUoA+v;& zqwGkPS-^*TK2$b+WzSui1U}CbOBjZW_=Y=6I(=SIZxVbyII_7CtcbiDDiyI|J@xkX z$KtHe!M3T*x30VNZo9)Gl!iib4pVjJ7++`%IxUAe0SXjuE4+e#pe1H>l4lWr8aSI% zdM%~h;FQK6TDhIv;W!@8!=W};K%>mjpo@y=TY$=>3<7Qc2e|^rdN{K{z}JmHEaxgH zG1axcuw5*FP#kxk{7v+&Gei0XgAW5;k&r-(#YY(ZX8?Wq6h0 z*oJrxX8ql-Q5noQV@ZFD>)nzj`oyP}z~@e|` z?AE=vay`dbxg*pD6BkeHP`$lU&|$v}I5U>M6ZT}~gfmoRN@{l#;D|R^R#(Ta6tGu& zIKzVOBQ|1u?rUpAL65=2ltIR9`vb2&BPp}jrA=soBujN}ME!kipw9^$V`ou~dsy@z zx@2eSEQ*@HVB-x>LtIT|aAQg&5MjTFvvSsW5Z)>sjROpqH+l;>HBY28PoP^?l{hp7 zt(EG9kFZPJ4q_j%M}q6HK_83RK42SF&K9uIbI*nr3rzUlz8yZr4s|W7i*#V_u|_Vt zh41;wD2v7Z`BD86nwyGM)OwYGF_~z*P$`561MQzr6hXPr2Kg(e|AEN8O%KhW&>FwNS&jQKlPLzRg6__5K7972^&0R>ym#@9)%1ImV>A4{~s* z!}P(STUkfhkd6kdz-hK?pddD45?{92pq*IzglfIqht^T+BunAm8BfsJZnXY z$oK0$eeTswT+mpQr0m!rA<92sS9jur;pGx~_LFn%q||aF@iMGG5uYAY?JA12KsKz# z7G4-s_I&=?C-KPwFhWch*^Wc+l;xm!ysIj@aiUU^xt@4s?-%jj9h+v4Jq~C_5-;QI zNBxz6soVdGJF~a6(Z93&aoU7+y+q?E!_Ves^Irppo}zGeVrQL|m*XPU`G{S?hjtoE zF&fRIJSAg9mkN23)B=imJSO6K%q-k_1)F{CH!)nCAJQ$|?HXyaQBV(}Pfc z{m*Z@5;&-@Ak;!W%vwH^JaUp)nhSPd!4JmI>^DCA;fvW|qY! zo~j$io&-@JJ}9TZ%yBh~;A{RJ$Lz3tP)1f%s;HU--P1_qNFN=cgub^rTzwT z@6oR5WE_7}SKBBw2e{MQ>qkc)$Zc=&uq>67lc0S~b=28`P-&3G%}n>!}Jbt9o)gSWBn3sZcuHq$sWW zwy>+fqjt>|yA09uiELWgN>H~NQ;O`~qvc2Ou2Y5zi>Urv5N4d@?sJNBp`{d?rIb(A zis=QtHr}`mwc=rz&ZjzzzIjap1d^7|i3WiJM7%q(_kaXw`xZC=0-`#E(e;kQ0@s4} zW)VHa7A2rJnpp|#Pc#bqRCK?CPL}JA5DwmgUu#rn#ep-?iyiYSX$es@LAKr*Qmt?m zZx$6)+?rm;D)ezBZe2oGKG2}W?#+FJ(H!Ojw0aof>rf?27ntwO1o1vSq3dNqpNhHe z28q0hOE5?c$&{!GNDKLPR1qNK$Kk&?TFyw_^xX``5V=n3AO&MyD*`iKsVQa3zpmTRMfcyFRK&DHCRkZ-2j=8ObN2i-g3s}t5rJI80j5|R4-TJ1z zg%0m0zY#=OZI2oV#0nJyu4H96MDHzOdo}zh-c}|r>Nl#xC&ry_GfX=l?KAK7Qs?3x zyan8F2ENz<#sv}BZTDH`2{OnKtdedvlxLe@MU~ECibyA%2Zhy`X4P4{_=j~{@}n;j9*r9_rUmZSxMWzVE9{bAPF^Ylc#>=^7BS^){9jMU*FfV{fOv zs+dy}nhq)sOzC`rzjx1l$&l$Nc0q+rTKj2V%ij@B(LzPN>WWY`Cz8eI*9RO-&M2Ei zud3{)wtbLsBc?k|0NS=JY|Vu8I;(gLDs%Gb{UgGRKPv_Ewx2&Q)}E4rT~#vDm~;ut zPKr%ksjGV@ka(l%rUHimaE<8wrnek-4;#2|+7Yz`c(ElqTTY8VS9Clq8BAl@#z5%M|}Zz^Ueoe#Yz#r z+w%zs@z z*aGgOg@LnBV8b3ZtUWUhl*uc6Wj4n7(@kg%w$AuR|^Rjtps zzG7|QN-#gMqVjWoHP1eWH`2<9rwyt1*Rz-Hbd_k(mRI>gLhhC%xK|nxC=pa%h zp$JF|p-2-0NRuK(r7H+tnnI)|^d2Gf-V|9-1XMam5Rr9V=}ldP=pxs>zyBnlV*9-J zzM~(`%$##(=1itM^OWzCUORo!)Q-S&SZ0Dm&>Q6C@s;7MbGOdDIsre2aq}7F9bP_L zb?|OsRZk1kXb@Ibj>|h{<#_o4RWBC*hVV$4nw8UFE|E7sDxt!f!ThnBcdEHGs@pNV zi`qOiRT1wIY`Ez|G;_i7;>Y=Lu-Wd*0!GN%zLyuykm4khA4$-^UoeL{PWp*qGRq|c zJe+KXCoZTRl_qfLuTona9@W#;q4elyY9f-}P{NaexQfA&raU7U#v=imD3L}P;?9oW z-}7JM`_aVpqGYRF$g^{Q@X?l71Ze@x6rRF0rmo;Ckj3}El|OAWFWT#LRc?SWGz)6q zf90V&j`a%bL)<{nXxR!Fv&!vFXquxfx;*AkX@Mro+XTk>C$G1>1LUQt+lw$BN@|?G z_=QAU+jIBovg{VeL->tXI&5XQBf(h%O_&VKH)GJnk2^s5E@PJ@JYEiW?+OU{GpzIz zC0K8i7}pDyrIqqQm*Hs&LrdP%-Z0bt^vX_dw;5}eL5!Q&XiFtH$;EqPPs38gYPT+blUQ;5 zwm+1CZz7P>pkT#5Fqn@^assvjGsZ<;!&cSKAZX|I;)~YUIt_P zqB&fUg%T6T-l&hZ&?MxDV4CXzctyZe5Y8+25VcJbESc_nD-_H_@+_yP_mmuu)TRNy zYjm1+F$4k(`f`dbfTF5SR95I1*{F|?Hy8YiUD4({LIrq>Vq9XcAV-W7=FYBaoGI4b z*dc4R>hu8}7@b|MVF8RI!i;`C2MZsGpXh0e+rC^N33MFnecX{Waj%cb`8t^E`K^eU z2cAmONS0{n#M;jUr|To5Yo`PAQ|3i0eY7~LVqUfpUIg=TxZi5;n?I(}zZEcehV3b( zFaJ9U!!FJlH4a#XIi{=R<_~o|;R+kQNPBn5tFchl!90+6PCMPR6rFnk#*>iGVjf$& zg?s7ZhloCEHzJ8|$P*`(6fQ|B&N!L`Oa!NudlFY0yKic+L8lpm@TrKQDs$Deg?Bt5 zIk~v_FeyA`@2l^7;~98FtQ_ywdnT9T$?=m&K|#q7A7w?6xxh9ow$EZ};x7MbqNik! z3~UWpUu@jOAf_YL8JR+P619)8R}fz*3X2W^?U@$ujj0PFqCRc8#SoD>&wIRSis!%_ z0pSPzF+`(XOE^1LfSi-#*Byf7kiln_WPyK?h+q{N`yZT<;QmvHW)5IKx!W@dXC(Hm=%<;3zk5HGXqEM4gSd5Kle=N{$B}HU&rO!4Mh<&<>*5 z4RsGw3yH4-iit8aCyVnePHBGnFxPI+b}|hsI;vcohA?>$EaL@e{zOZmp!`I=k8V0p zgU%hZg2&f|s?Smo1-@_8?wQmj%&+mu`Ks1Lds65#Z}!7J=Nle2*Yv$JPYiML+seJ* zt%t_ZW~k&P%x&5+5tZ;h3abWA=}!UW^-Z8YPUy>6_H{~n9_*#oPvx zL$s2=pg~$4?_uLPoh9vpxTbOYR1Mh3Biyl7^^|$!`Co}u==hyl>fm19mkZ^*uNRRzAuydlB!Qq7|hy_vy+Rb{{`VNO?KePAn+dVsvZk?D3H zi{b0T-R<1zX|EBiWxT}_%+I^gBV~?nk3I~Zazm#cKVej7DMgFCD9uogH7d>~icS7x zrQ174f74YzNl@gWw1B((lY9HK$Xlt@<|+a+Nf>gkUUf6)o(?q3BRNPn)rG?Jh7TRk zthPL-A}Gfd4YY-kzzXS)j&^3nnQKu!q@)hc)G1)qI^L=fSb6CHE5qgFRE6{a^OeIAw$Q z>7D(VWLu4m?*1KCPoiaxcFtiI(_}-J{yv~e@9wM2(8DHP6IMIi-#2wpl@CxD{N#-< zfq{r_Ji;DN1o-rr#_s;@04ROSDhcA^9zpL#L^k$=^8W|LSc5by0(pvBbK1YJ4NMHi z?SG$rm5h<0Sv|zddEkVXKO_!QohYtD>y8`;SZgdTQ&e1h1$|_)6asE_kS~-GKt-h^ zu+;0K7e&v6eQ&&XoFU)+Hjo$PBkXZDCQ}B12qgat_Xs6Agmc-AQDW4(vJwRy0T4?7 zg)(l{s$jw^bD? zsE^bR5-4x}KZpkyZaN5HEfQ)MqNm}cEWrRl%xk}wv3YwYm?*np#DbaC+_t2~~&sv=Pq%yQ+i zmG^nX#!?9)v{%tG{y5aaz`+2a`Y^?}lEj>hGjXq_8KlEtER&y`{q<_CRX~8R$=07k zSe*R$Pq;YwgP1it*kX~IVNd+vVn{Ljp~V7sx!b;)HEP#NM|1wLEZ=IKJR@fy>L6%` zg4;_lwZ=IU^n-1hAZM+j<#L}m-st(;OXq71yDi6Cw9O2h~0k!>J$R?I51k6th*Z zG@r4q0W4u0<;sROGRHEzA54in_JH-_dFMnU8bfij`eqMlrmAgSLrax37^Dm@N^-yhw`C4>#<(x*kckOt~ z?bG6Oh*8qg*}lQ^b({*e=&R|ND{Or)+6$3`U53aL-&aK0;;QhAa)9?P=kBU-^T;tdktaqURG^%&B5vGlI(rP3T*HV1;1KTT z6%~&QuJ;xBI3Z~Yb}mUjeBxq_&l6=*PFR2+2#nf2m;iMx3F2z)Gz1clu^-<1X0~&L zK7OhRs@iEbuEs<%G8sK&hb6k_G7Y*B5}_hUehiquQI;n=;voB_;|&@ElsUN= zt@ckFS9ATGVdhX_Qt1G@on~i_L;~*KS@tr`zllvcdv$!h&|P|xeERf1@NHl~jAjcb zcPkss4T*IzunzGSR9L1dl1)z-L?(RHav?0bX|ymGQ#+=gY!zgQ8yy_M7)zM6!?^iX zWw+>#1{9lBC^k;HpM>6s88qNeHl)psc9u-`+|mK4TC1d47_vFZ(Ijl@au&41-7Is< zyYF&7t9#QK*ihapOKW_J2J0hYLH~;QAk#~ffakpE5_w?kj$&rgMODCxD1-$}2Nphr zUsx3|77#DGm%-#W&>bqkfF{kH=IJkHd4PXgMbjS?dC5Ae9wnS}l!U8npGOmNs{2X= z+A4@~>td(FN6#<86RxkQX8jI7m(l-HSI|A?op@eNfV0Ct1+a)<{?XDmhJAI$QM>Cw z_jsWRkSi$pIagsYcABsM_Sj)0O@}HdMJlNXCidj(=FR0FI{&qU_r=J}!xGd~Ze7eE z;Ws3gF7$E%Yy$Q4r~}oo#q(ZpZWMcFNt!T|aOt54mP%}6PL+9+ESYUOJXrU+1M@MZ?69QOy1~u(ghRu zPI0VCExLU>LR-)yWwh}NkT-4e zDr=RfesMmzEW~dru&^62JoMd}!snIYV$Ju8*-pA{Oh;(PBBwl!j65!g&EIaz6AL+y z7>h^pgytnL_ol6jm7H!p!ZKEI@bXk+&=Ho=7z9i5BKH~(40aQ{~4nrz&Y+U4W?BSw5HWiBsI z3RX}}8{ueORrK=*^rqUyHSfwZspS^ZS{{v5H!~Qn&NtrdGs1fIoSF#E*qkunD|G+J z5hzGMH;LapNqpCaACqJeEOSpNmKHPUD@)hCtig<3eW){e83(hhoI@aKka(OJQj}vl zq!^`lvl?KBp!?Z+qgEB=Wl^RmSEvz=J{_P5?D#3eS-o^UW$BHi`TaD8Zce4yB`Wq@ zfB|SZ40E_>)aUi-#|C_xL+PXr^jI0o%gcGg!{+D0Fx`HlLr)$Bay|}F(>ub-&^wD4 ze3Tw{|KNoFvIqtmd{bF12TQ18Gfi8Pw465NQF8T0wvVHks{qlmMBftTB2y8zu_k8b zNCHOx;=Fr#yOzz}ge^_L2d-tBW943|Of#EXrFN95EkG}cOLa2e zh9z0LEkpv~e%)Z|H?D6T(BUWgq~2(K(Lr2&@4JfdY$s4@>u|l=xo=TUc+pO?7NLFA z(6D7K(y~rTyMai%6Y1FfdEwk&-_PO{^}HS|?Gp}TY+NosvcS`DPA*TB)uS-*XOHjZ z?e2qA(K*MI0ZuA^GM;=`SIM`)Ls(cw42dAYAic4!s024JMPu4Q<^%lrWq$Hfu@}f+ zeuN#v5y+$3*S`~?Xgb9$acK430SA=mC(~zEI)(ZVZuY?j=RDnt?K0Jw${r{?a;Ywo zIkQJ}MABzR&m2-dxb5DKMLs%XlUr-zsSnImu|cMXgxzwvdwSg4%YCDBKvjFp_0P5b z;z}VO1SL(F+|)5Kyjdcny}&lVA}<>k6+ZLNFWv#!d!4YDdkGP*#2mI1y7i zi)s9;&LGff&Qd-3aZlF0xHLkSu0cu3xm9b27z2gLdGzG)cm(Y~S3dX+tng=`Bbf(> z0S*2L9po)j;9kY+U%QEVmgV_IE>pna_3JP7lcxoprTTDx3qA>EQNc+frH^80@QdQi zxf1@lT#o=Rx_>;l_`rbCv7_Re^AZW^Q3WEHmV|y1%}^4?I^hjG)kt$;%3JL)tNwE~ zZ*deA(Lbl34!{Fz>$oJ5JZ6<& z8vR3Lca{i?a$mvB{l;UGf^=iGd}^OG;9gk=6pFiOO+)P9FM_$U42A?Q$cNgLWs0$v z>67}(Q6FwUT3e;-8Pm!-s&(9|PJWc!X)@5q`AMTOygL_^6{al9;sJO?_F?5Ol~Ps` zgb7EVu4n-6x@jBsVUsU1dNedgP!c{ITHuaNP=+U&yS-=&9!HN_9b2NGV98Q}-e?|e zquoXVu2(LiQ5ri8Z~i=%r}^85_E_Y+ z`H9hUH#BN+YR`z?6DRvJ-GT*#XV~L{k*5t~(GzSqA=UKE;o!6;Rm&%%CeIEA;zAxC zG4EIrOW4k;T*<0?^|_{9n*`(xp0Tex%Q+qqtbhO(2)ggoa*n>D+DJBAc8eY?G*K;P zF?UZDr)<}s-`u^Dr&x++x>|F%ZP<&ewz#LY@rkPL*E~i#psGvncGUW>YB+{WDf zEGGTV%W*G1>AMGTqYZ!(fcah6mbA*J!nrbIuu@K&{L^+%)ux6&`ye!qVO3X ze$}FnRU2Ph3KV!!&EdiM^VKI>iV2_o^P9{6!ob*H&QIf%!`x}>s7WAT=To{Q#=2D6 zSf4JQfdK&QgnT723xc8e_3X8ea4v7%@$5)frV0F{ zQem|YKsk4O%xX3OB#JibXvR+DG3~133Wy8N<@BC$Go`e{Qs7|yP1s|Il8>}tmR|XE zFW%$cy(2ng)z}E_Vs_T-O01UC7=Wb4fAbnS@eNSM4|n%6cG*=lTQ4tFJ$FWnjgt=2qnPVv;zr7{sg!>&b70T` zO1PuaH2z&3LbjysWue&Fb+OUt|G^E)ccuK0+)q_88@{u9(f7?G?hXMpSt?($C>saW z#;5iC9WJXjPFbDAhY?cP>8o@_;cZtY!`~DgSHK@$9}^?`r8rx(Y&l(+=n5PggWsMT zaG;?TWf?MyQVZS|rU}1U>g{3WD*H ztYvF{{VO2l*dT8W8&utwqu9XK5GY`&r~?4VVy^(UDREYU3O^?f;8l)l`0Bm@1(6>! zpb(w=70js1I=7eoE@D2t)DR)%47%BezS@b9&*{P%uR;!&Ts?lHzi_V+z!@y-^C0}^ zChhSpl1_QNZa|vIJm<2X5`F3+M$XEBqvV(5HLTh!+Q_pT>HhA$(1w)`keTw$)h!~wIT`kd_q&IR0K6WWA=&mjb7i%Pl75r8d5w`l80a=?Q0u*k=6Ji9K zgp%-IYhlR$hfV248`raA|Fo<*E8huKp$O&}Z`(rACub*2o;zhpwQ`mdn?w&aN?gB< zKAl}#%R@WfH9*@g_}F#S&D|hNENNO-=(<-C3K1cH+DaU2c3>iHXwdX9%kbdpIe1EJ z(wYVUwY{ZU3%?CpyVk#*a5i2qq~K9oZZq?l5*@6%*&{>m(JqV&Xx07^3pB=oH!0F% z;7?WmWyE~F-*(IMrVpk=R8?LNVyENLcES;XjCqH4qfJexLGzZgM*{702 zq5^M}rHxja3D#q7&ZE+r7sc6dl_rG}#IdBYFp2CzYte*oIKNHe?4UJDL_O?Ds0@R5 zwE4&Jy`2+xgL$Oba>$4dc~P(6xmk<4X?Hpz%eX8#r2`|* zD#_RQ29fBIk?S$4zjUTI?3{7tB5a_wu7L{kOyKEEkWjP-)N$ll+CX?_MD^cEkwkQN}+w6LjH-;eUfVLU8)vK^o66xFs)0|F{JRQrLTtyg4D`d|ul~S2#$1?Sy+gHL-si~3M zRPKPBCc|X%UeJyJ1{pM(UXV5d<+LRXYzY=*aWxRh}xA|vs zC~)`rXKLu<%D_L2!q&1@6D?kb2wDGr!UDC}pubF}gDGKmv0)5SpNIrlajej%hYzo} zgFCNMb|CutU0{`iN~}Oc-2juw&CqaW8FMpPSoBIdo}ouVd<7^haSod9?m*<8C70MB zu1kViE;MXt|&-Z{*srN@E`mO15ga0>yAvvS6w2SYgHs%lfU_y^sa zuSfK)Y4n%Yt{}LqUY&kA~!A{|3JDzt(jXxbAi~AlX>b)e6m(r=7$1Ot?-}mm<@rw@GiM9WsP+cR-Gg*2%1fPhaS| zU80D^B;ru(fLsVC2Ws+?sU3Qlsc%lZnAI19pS&o4+h%c1$;|WVEU-joB%x&AJ?hdA z!{%-*!IBLZmYo)csWoy3CxpFxobDI$y~0(8h9r3+h&60<_;P%}x|03l^HSA2MaO_rJzP=w7;tK{%j z$3uiC0`x`ADmg33;Aa_N0J8$K2r%XtdK#cHzcDX#RsC-7rk&D;9Lpom`jnI}b0ek=NLckYo1pagO?#vhPA_feH@Cg8+>TaM`!HS3mMtyz? zQuo+ZQRhpF!g5^G#}Xd&hvxU|nKoo8&mMF~a>k>DJUzpqn`N{UCIz1J0Ycs|R>@m@ z4aF6foinFXVso-Z$Bd-n!`S?k#Eq53T2sZ1=O@@TG+5oEX#vmR$x__i&SlXg3#79e z@+8-4<&2BJ;3Im2k2<^b=a>3_5!t^aL6(fQOux1myg{%3_L5%I=T~>v5q7m~<**k4 zhnf149puv#MFEc0%yQD9)h3DW&tRY5+Z*)p<~_Vq0fh|G!hv}M#DwAQW%ZO;OTg~n z5ihHlI5iPeuw+E6%@RZLf9x>>(3AZD9|wE=RYL(o7%4%6l_3B>?Gl(BJ3K@+Xq?NN z!xM7@$+>_Tj5z9RVVdj(P|XX=-J_wwfCSua=-29h9{V4}q+lWIj82TqTwIaM(nTp{ zV!~yPWgJt(mARxJ&H8!i0C;V~rcvNj5y>#l>eD6|8AM^gfFzP}BqxxWI!6P$T#iJVfYUyttYRVE#|ph~J%tP-~WV zw{U^M|6O2_emOq zkCDeSW8e5CVK!x5KM9^%94+QxP?kq2;rVC~j^L_(62J)%wpvzYE~peNR5j*_vJue} z?*4)d(l3KECmb>I2cS8)8a`RJ{kjh zygLpzXQxjJ#(BSBC*%Uyz5|>~i`)GeF?M}>dtdEh^K)XI^Kdh9!ga(z`pB52lmWg9 z_;Yi-$>b$rth|b_OpPxUG@*1~5v%a-S*TDyY2)y{;f zD=l`J`ghlC7qHk6k-_M7Ta^N@OjKlp1}2Co_s-jouKezx+yw>IGs#|-8fV3Ky7zq= zl^tn5-y)77;*ZX&`SbW)+2g@Ca8|-yh(+a1^OIbXeZ3%5EtoVm5~zu`~z0P z8QNHP>~yC$uW4Fe^kjz>tg%5fL_SP{mEH?1>11+S^A>9Lc9_7uluYhPJtM-JnUH)w z=DAZ`QD6&07$U=v6v?z4YG|G@^{>URpB+3M^=8zOWi%I(xK6*NkqZ=8(bG!V&YHX5(C( z!4m@!MU?{DyV0aqD!4w&)rx{6W}X}FPE!e4C6FEc*nn|ouy1||yZZn&y;RK$XK2p7 zSQqjgZ_N(NODF?&jjS0QiJb9$VAC399k_>}@LSkuV-b|&HK)WRWAF+blL=v*Tt(P0 zsuZ01{yj?i2SS~S_muc>Ck&99-vMX0>g=8T^ar+N7w@OGlhrvpG};pJc6%Z9Ipc`Mo zMq|_F5vlR6-`JaeF8Ke)-u(I1@2|T>9bpH|y+1u%!%Fg;WSC_i#wEdwXIdY+XUfuL zbUZ)d3_8KEc6HI}51+!rx{vHl?s_-;%rOnS_)bBn!M}Sa&SmX>4qxM$3(kIFM0MN+XV?o(sU#|2_=0D|9!JSnmh^`9^SYIG)9Q8038Z87k<4X zr~hyPXQo<1*_reV?P3bpsRwdidQ`jrt-}@m=?tn6s04kTD zl+qG~1x9FGtx2j}1|@?wck>1oFizIq*oV*%M=frdLD(7u6ZH9B)8EIY@+SF+euvRq!lM=HDpoNFsk5?J3Jx8TQT zO<_K33Ou{IAV0L{`;7mNO#1JU73i)hY2W-vW50qRib3I5)0K3p>t+U%nx!*C4)?b& zY1ezUK+$4{4$cHNgokn@=3;UiTb?^)J#?o9-s4az>9!1<>(j*+gz!O01HB;}T80On zT_-jWV~-cThM$iPPq$i=`=F=)k6lSeGkwfN?lam>gX&#tmhV69hx8t|_lNxNGAKW+ zHh(ll@3L>o-4Do8DahjAJ-3_uqHSO(xYSKmITajh*-F86Rz0i(jt!MFyBN>A4+n8H zX*fiII7JyB(1GW7^MCbscm1McL*p)vJWBVDcFyYcB&H={W|p-DEIVqfUdSb45Hsfy zre=m-y~5tdd5>6>H`6-^7E^KZ+u2*3-YVF+2=C9CIOA(MuA^TToWuRmPtEOu3IG^^*x=(o9YGZK)GfZ+5<{GR_`^deb+LjOZ)ePSKp{c5 z=_)a8)~Q5iL`;zY1@^7B)Y1Ui&|x3fgr-7h?gr4f=|D)q64K_=Y0beOZGKTcp48e-9?>zff6Z z!>Uj#q1JZg2$^+{(`SrvRe{18Vys4|WCKF0HO;41M(+`9e)COh!&Y^j8;wOq--FA( z_B!iDL?iP0=_Z5olZ>ytu79P6^O8Q65pCPj1x;8KkyR*gF5r|BKz-35pCh`LUxZJ919QF zJoSfW@_=?$T48;l416H(6~-q8b2BMnzIF~>1D{i0b>s>VIi>U#C1^MAwpl*+*!GIx zGSkZl2_Jr-*1$#vK=*Q zA6GSu?<-?3%2}+ zUBXOoF~-?WK~xF|QNnY8j`ltdaS3=F3Fg==6Bj_#eA3vRS$QU>7L>qD^0ct^RCH>c zHXWzF50J~F_ht#;9suA$YB=mr;W2=d&6hiFh+7kzFt}n}b%iK)_Z(N_i>3q^Ya;N( zk(W8g_z&ZE&Pw+_XO||G!I217gB7|xorGw6IfAsrML0XK(xAl!)%V)7S17$NyZO_v z`36gIuf(5R$h!=DkYw+ZDRo^k~1H=q$c_cnV_A^VU6918vW_YO8!#? z>-Zf5{Vo$uLnB@6C9nYgG>}IFwLF3iFc!epHe4t}FG)DZ5iTALS`&&ECOr=)m1kBzirVT*8r{^Q}K zUGMJNiiIa?rE!inGer+}n70(Hn$xY*<#m&r`CaFbvwjS_lmTcdunFDRiC_Sh7+k_` zfN!q@+4=ElO3to?KHZzmMDVd9K1Y~|#=CM(EjNGUx_cVJTsf*GO=7EaNxKlZkTWQt z%jv%%hT_BU24f!?>PJr+3eY|GmF7hr9*wo+I0M$URLRjmpyt9s7dPBkXC|S`VI;VW zuB;bIYGjJG)1rNIYESEgTy-EP=W&N_2vEjGj{aiqQkIT#@xF?5x-%rzCD|(9Q?xR+ zm^sJm@&^v484T!@i9gi=zsyNpnE#=+AHERYhEUomrEG*h-1|ObmvTtYNdoGp58G3v z>9<^GE@RyvK!Q2+Z}p!Yv<#EIvB^SG9$`vP>YE77+U)QXO*M4Z1bPe;E`B0R*0ZGC zW3r1mwS|ORXO&d)hmZ$@1RhED0^`PP;+T1lOI5m2FEYCEw>m*>!Rrro_V9YXZ^rlO z-AxLGWxN_TFNx2<$&sibB<0mtk82K=Oocu7miO>)Pf@X8}MrTWbU#dozYpnZXmKZ50TEQC};d?)pB1!I1_t#s$j8Sa! z;pwgb5pi*b4YsO!INK^x=`6AxDE1sRlmPgN)`73#>4972y~ybfuJFzBEjJ=Ds_TeF zw7*$m+3};j*yF`^v^#E|_qmYc_f1V^40&3@^5%-!G8fElEH0SG&ZTn!gvDYm)oF_6 z(=S`{<;LFjk_|1o7IospVGAeCVW8J#1Y;M`TDZl3(_88SocZpX#Zy~cgb(SD4q!Ht zG!9hxoKO~u3rEf~z}J>D3k^3Pg*~~f!R#6UPp~36?dLcg{L5Lr=Ma?i=xnnMxgbm?75QAoIDohkJqG@@!UPf=8rDGJBuY#k7!}9SdWYt5rhJDa15@w zLg9R7T4y8vku{jUQ~9+UAga$z-)}W;ytpI3$A}+;H%p>>oT`gCjVhky87Z#XI%!=S zqZ!E(X1A=SWhK;|?0aI5u<)3CyRVclQA@4Pe=B;mua9bd>N>X+O5yY{uNfBVBm2!c z+_BnL2j1BLlpfwoDusp&#Li@Oc3qh`Y@a@`@?TlEMClqT!Y!^(mhGsfX^4CeMU1{9w%Q58Mrg=XSg*cxdij{Es%SVC823)eJcmy{#mm-tlet(yjNd zJ6+{D*MWCqB-y8`iw2fhxVCg}UGVU4e(EM4!V+LOce=#b`2BA`vnYp9Hvq4Nw?AH9 z{Fg;)b;M{lh2G>ZlxS;^v^=M|^7<&9f3f;NS-m75%ui8lv`1xCm4{ktQNy@JwA%^^ zeccu}>8F}E0M!KC)Q5$@WBW3&X7isgD5Rf=s3?F9jGpPYo}D(WGeaQ7a%O2cy=CG{ z>s*2J;~@NW0M3iJs)Q$h2*c9rKPM1HT=_25ogp!LT`7aGwktJ4e|aUMq>xXYl;kp< zQf3msPoS+JIq^>a2dkC}M zS;i7q9l$F8TJ9HO{cG0GVr1C@i*^5)G0db%Er?@D|JEaa0r8}5Z;@0zdt5N^k=Sn` z0P}`A4qDD!E;gT#nhxdVvBg)QFP=FVCFgFLD;iX6&V>h{6-yH0RX)fGyF{u=K&-}c zDMJVGyET#r6n%?pG&Z_%83ByZA{4ccn3~<7@6~PJaRVm;UV!G%>$<#2oICd6-x|IF z(YZhQEh*HPG}24+(_1ypg$Ilm5KN+dw!lY7!8(F5Q0KZt!lwIV5Wnt>ej#Ld(nm|$ zs93_Vv>;oRlNQ^$12EmgB+!G3k1hkdSwn_fUy0mZ4k(S~2GG+2YVWKRb@#oVnz%?t z+9xNpkFZd#Wn_wK0$F zmP#(nBC2l|W=w2f6&)#SG6>Vo5m?$v*l|4grT9IPb_qI^1)D=8Y=)M2?Bts?@5rY$ zZNxhTQQOL^E^j_hM|RGM@_561_<`rHci2b9Q@y4J(6|84YLcA?NzhyrtP!XzOGN+m z9h|$Xlwloil&eTtY`}^xB!9qt0hn^`1@Z`_s#69Unf+iWnkHG`w{sN$RF1t4*Q2Mr z5-3vNLp6nN7B1BXz@#G0lGL|Db<-X1#^GMN8l6VZ)D!}Y1JZyRCMA$3X@DSpH*o`F z50-bDgsD(|wr+?jFhOhtcuZjG7y@2Wlz?Z6J`LAwjv_pzk?K(>IZ1wvEK-2bAlm`@ z^lUV#9}w}p1&_99&{Mvu;3UFPPcPLTcl5@qs*1(Xq+R~FV zCxWtn*DOC9S2gVt%!86?ej_{()1P^LG6De|vBem{@qfu0e3X_w&ZA{A+$o-{Qg;Oa z_v0S+J=knEalcpWRXFso7Tc33sGE7_#9K?`mgPn}dggPb6bbR?#ILU8F0uBQ2_`(X zSscc}ljAwtUq+hps5BDF?8Mf(5B)A1NUGo`RXogV)>h|Hxg!n_f|*Y~@C&tBd?P~T zZft;4Mk1<)azz6RrQf-r-ehh!)TMPViD9hK(*-^NYM9MhxlQa@8-kH;RS_`)>p-0X zO`(_*5|$9g%5f9ufignHM4thUfeIER=tWG50qX;yd&;=bqg2BU-eclkJ*?lq`cd1Q->&b0_tRGDXK zwxj8!Ma1*!Mdk92s#%LK9Ye6NKIW5PJddsO;_J*|K)7^zHtQ^Eu!%JmA#Z}p$%`Eo zV@7F!98f1didx2yRwPWCfcql=ytAgxc&;-;*nG}?NpA3SL%+T5^2824zdG^Ql2buP z7ntbN%9+^+n4c1$_i_OciTZzh`@&voPcQ)#4R$l!uJ`ZV`R=ky>ricg*)cCx5(*Tb z!GV{eAOuiYC@Mn&3v#z*8G2X907>MNF?-Yw$bSXdiO^0{)Nr;Ss}=1kM^nCaV_vs$ z5fMG!xlB|^gt3=P!X1yIqM?QHy=hraHkH|n-!)(_xwlj;TfMZ(=rAWHVAT)2$@qA+ zpZaa4YX2&5-)h+yCE4%hvaDKc_Ne6lATB>GhQdiD6ltQ02o^`!d9)fAH0);2T4-vO z0YyJ4j4->k)4{Z}Ov8pnCc)Xzx9(wg0xMD zql$W+FV#@9-xlo{ici1hOA0&N87Urip4?>mbXUR)UuF8zFv7S`O2>+*=)F5v>0`ZX zXS|Q+Juu6f%y?Ra%zNRj#@RGzdU~#l%X4R0Ehnu>%YLk!z6Xk~(auYL)Z$He`K2BZ z*{}Y#KmVKf?#3e9OOKKdp|LV#4nSvlmau?nxhqThlBY?;zeAf#qmq(V@CT~RR05u=kxdf@=BRJ(yNAAaRknaGKJ;1 zyBvMDn9Z^A?F~07DmfM-YI)o=8*mj(Ld@abY<3BHEB5S1Pn@jN)vRpgE+rI-rj*>X zPnc8h$VhMhEko?Zeykh+ODcbQX)qLrusdrou)feNq!`(r77Kq@h*7X?YE3@t{tp%# zealmBJ_YJBc+2Arl0Pveqz&zuy*ioBeSk~VHcJ=b({!}?y@wBs&R|Hm;J{=~PL|2m zb3Y@+#%*KC3wCAG>6z>baH(%3`V;{>Qr`D8QnbVASwS>PDH?;ah`Z}TUgLiro_anf zOK^UE^V?kV{>9JA^rCYBGu4EFoy6Uc6v-t!u4v~ch8+wkq7BX#{SuKMVNnZL+8pd3^7X?<)j5R>5QTzqcBuyZJDL(;Z zu+nd^Sy$3T{ROnD^tpr=5#Y()K>k>UWtA@O(%;AUwFJsIDoVNM$5Ya`ELSCqie6q2 z#sqTwrINNV(BtO7{G_p~^7D)Pu8cz4TlfDZTby2Ye_;H7pus;EApp7p|2gs9mHcgC z3te8wTnTK=bOEY;S$^vD;&5%2b-_B^blAK%?IsLKyA!}~M>})hJe_t8$c!;=>~WjO zsdkKWe8BC|umITWxGcFeaVY$9+_aBV#+yoXSn>kSNX}IzxctDz2>ehR{PY7aV@l0? z{n5r9L}L25@gn@eGVLv%aHQ7>)gt_tr04~cwZ9Z$L)Qz$c^ol8IjNn|UDW^{N6+kUrUIXGXQ?#j;D{@y2Fscy>KyMLZ~9Ql28V0m&(FiGxF z_r4pyic**arbrqw;8PsN*o$mTmvw)KjqcasD({VZBkxrRjqj~|c`}>&9(fW7n5Qin z=~`>4H1J}LINSe{f1D33?*$H$_!Id*$zZ1a`EqgvAC*Y0BiPI5!h(y!v!cA!+2fH? zy4m7{a*wXdQRMAkksk1MW^*Yhi1ZSk^qv6l61eIHXLM}1m0PoR>?^SQtE2^-s|9kN zRD5^;5mS~_@~*$*;ts$tb;#g|!`*x0!F?D-^n}e=d@c4w&;R*0-rWaL60Z9(<( zWnEs&c)5;yA2qTxgAbIn`T$ItbY)9Ys zYrs#V->A#}^a+sp-xUR+urhtr_(#eK%NmEUh(oiDQ*JSN2k=fdYmTYq5J~uSXVp|E z(@bYoS7@H;Xz)x2u_{=2Ai&hlJGYjPCKGYUBoJ5AUnu*i&|`;=yku_QoneS zJUMr732<|Ib?-)h_`74e^dSo5l8=fIx&S#J2!sO<0mzz-+rLFgd0(|>cAm6LugtcD z;yisIi@+DqNdh>YQQt0HsD3sP(ZEAy)`{qVKb+EXcrpb>t72j!;D@NWp_ZN@YOdaB z<2_A2kkTY1rV{?R0AfE2l+BP+8|Yu3zo8{p!c}IvraqdkI|)Q;))R+@iL)zBKD*y z8`N*o+#Z}NpYv~m)!BNq zK4*u%cgD;lCkk4YVC4qN>sQZJN_9`Re6U?yl1DnCTgT6%Yha-5`vUhRbFpw#c6vp| zKib;GTOIvDcnSmjf%L1FM&PU%F72KpHdelc2D`kWLBUp#*fuZ}$XyccQ4m-}2z z{|LN;M5u)h*#ZRLXLNaHk4;^j9G+=PzjnOb6;``h)c)SdVe4M*`xK4n$+y`(S_0)Q zk%_71C`4K9x>~{d<9`Rm5<9f+#G9rbdNb-gqa zqV|Kw6@rCU+kalX%;NJd*-o_>_NLfz{_gP0tD64@DGy_JUTk-Om2F)7^sc5{p@xDp zPbPb~7n0>^kv$>#y8Q0$7J0_Rg171{Ba&2;o)^V2*JF&EjThAitfTJK$%~t^-e3@6 z3lWsikJfG@Egk2>#-)i3Cyme>b%*ff@L1(s=58Ji$Vc`jaMf5Kp>pFFj~BC*#=TWb zmv~QJOc>|rWn@pMj?WYqwM5Qax4!#$v8)>KbKS0NRbnMl+h};8Zq@I4uD&dzma-bL z>$xxV#4BT{8^F%O5*1V-M!<`dH3R-zb}mh9VCtLY0)vq3;zK9~*8d4*4h#Wyfz`Z6 zOVT@%BhLo@eXc}ZcKXU+Lx}mj+T5nb2K7}8 zQ^Zg`61a4^7eeG8MSKv___VsZjQvySSuehnG;-Ct9(WP?6nk4mXyoxVU!pefCc^h; zao5Hwu=82dyz_CLI7B*9Tz5EZzB&8u%8U03`R*g1-mffQe%Ll|Bb58$s0N-ivQ^ai zTfIct=G&Z)7w#XL`nUp`OI~+aB`3Gx}$l(V7-V)i)Dc$+k zS&3IvjJaGgpGUY`V1-*01i}UbBG_GZM(%{oyYA~#T#pz3X4Pd7GEL8Z>)?BKHM0Gn26j zxVTH;BNxf5xFL@;c5CZd%7@3T@BVPMUY+}=Y3D$^$+a!p$vU5_ zV{8RHXM!4zycz3|zw)f${n+h|KT|$DEamAf3=ul;XHoT?xt%|?z(-J)J_}QGYMq%t zE(t?iU#tELhnr8%shbOjVBMp8PG-@F#l2R`w3-Sn@-)dVDR9pC?$gQ1ee6|6sV#J5 zsPpB%ChOyaf!{pg#@Lqj-`i=m25sE1U+@OGCbB$A)>61 z74o?L-3xae|eR0^2r5L$bh6DWymk`$^zORbNxy`c$cSJQYHR7xNVmM(!9B$`k@`P5{WblsTi z`Wl8>zctA(&G?76-;(|fxdiYDdi4IVv8%Z|S*G?BrF7Un;OO4m-CcfyKlPcRdTByv zd1pg(!%~+aZwtWrG;G9;_z9;+St&qbN~A|TBY#Z21-kFzWUT$;C@c)MX zPfx@&82MUcqyw>IgeAJkC)$6)rpgnbkAYCV=zwMgoH+n>pq~crNN9vjfOUUB(hMlP zILGG#ds%=c67b@GzJ9QOUJHA03A%rk`_S7_!njTffI9T@1dD%_@iZO49XXEMi%bzP zbGN+(!S>7chhn$J|4^HY&)I&>qP#-eIKXRw0-BrOu0pxz2MDqMtB@P-ye zgE3K8uT7ZlQkSrCn};c-*nnLr6QDaDnIVcW_TVDRgJ;lbdy#15Eej9B68i1&YaA6y zg^dVN^}i`&;bo;90?62(FV!a>D2{b}KtX`U7RH?XwCg z&H)|`{(JY$`$|)*O=aF*Tv?K^8n0sA5{m69XsriR?8SpoO>_mqg~+NCsa&?IO|_zU zg-D1p%3E94P++Vpyv3Z+0h`f0rt;bfU2Zs{k~?!^*}8ZjIKMz7Oy|1DwM zPZ<9>h>%pHXEO=Bk&xOec&5WEK6CH{7+?Jsg~GENM~zz{PKa6tqa#4MGP%Di_RcO4&6oGQcs1|SdpfP-Twga|P$ zV8I??+W?5u0#ewCbzl*P4jem^V{SkxJOqThNc&XiH$jI;`($y>-F2vOf>zeR;6D-f zpO#^o^jU@OH2CXX7;uJnGEh&Y)4#s_Lk#i1QiUzDth=u$HZk7yO7!Zo2x=lzifBWAhB zjttSuvCCoJV>bk{R!nNc!zi`{r~&=8(4;?L4J7>-@V?@@&7#xr3BvWupVZ1F=>P*? zVStht-!;vR182$L<3|?&1HOxZiLXVqkSSWiO++S^sly!ISAOa{lBGb;G?{)Brtt@W zo=Up^T;NZs2q9!Z)g|%lY>h#f3^!OB)s-e&ipEzzf`0W$W&_cyl^YWHw*^ZovR%~T zEn2qg$JL0<{P*(%77nv}Yr!Y+Oy`i02g8{Ak zf~SQ=ZKQKIX9e9Ym3(WIu=h~!rv1s^#swpaG|Fd?%n}fl9?RN-%T87%$bm>R#6Jqx z1N^8-R&s?A074OdD7R$IN98FiSiUAzNLIsa_ zM74xi_UfLU*l-QSuF=c^jefPQuDgU%@~hXYH8gL+#M>gG_Y8&Pwb~sb1Zbq6Q^6lN zEj-yZYFTTTxw&8A0CQR@r&T`o-IJ2 zjc}iLIhBRE07n0g)S)AZPpg*G20V<;#-SYn1HmvDbHg|bk?72osyGF+!2P8edf*@~ zG{DFbeu%S>mQv>@w*K6ENd+ydLIfe5tc0>|NsRqnnbTKDI&ot800jWVh4RX-rue}u zCDY09#HW(E;}QEb&kQQ?$^b2^$W{!~_HJ}SoH@S69a9*1SKCLkd4m4eOeOsB< zf}d{mMjOAuWYe;d%5&$UzPM1#%YAc--F56}t4GW=wC2{*IA7m+HO{S=+kp9j zg_iccsT|Qghtx-|&)|>bFFpNoD;xb~&b^(Dm)z<5PYQ&p%GRk4mOdXH-{w3jxprk^ z`-9^pXqgm%_9?ZX@#4muglVcRzZ@>ed>pF#AZ1Zrm+WFX(_8sU>Y*$3O#UHA_s~J?!`L<$nbE^iprNUDITdCfevL2)?!2=IjSA{m7L% z9scRyWzIUlf~%pv8+|UaUtw$Ld|i-E5a6IA0iT)k-kP2{yjwXT551066cGrYO65Q8 zWo&9+jw&H%({-WSvu@3Z9w3=4=cM3}dEzyH&DOq>RI98yVQiwOs7W`U#qVaZz1PNp zeZ!DNM@tctmsxCbMWA}}kPF_OBi5}nCq=$l>?!~6&4KGDp0eo#sP4_BY;|+nAHxS< z|6~5-JCJ`FI1w?Oyrpx`Isa~`eXGm*jouc6?P$iL-%*V3(s)Ce#qcXeca}X{{oxYP zJ;|1XFB0ND&0-`sma_{sbuK}?y+|Cn?Uu$%T8~n$eeBIC683tqtUatc5twhk&*i z^waE=jnW8mv6#G>%QoPKx~cJ|@WG9)5U%WC=v)>_3i|{m;;t7cp>Dib$Cp1rU@HVZb>K;q-U$4 zpO#ENF!?R?o!7^pw(9cP<94$F=QBKr3iifCn>Mw?8Mf?{5POz5p#gJw2BkJushhs; zLfuoa5!TY(J#*dCPKY9kMSaK}*sX(X&pA&Yt_!9Q6K{XGeF>U|sQ(!$u;DI%HCFdt z>>((Dpz7i7?;YewoEu>rwiq+gObjqU)=b_{Ja{LR-XCOQ*)YU3?U@~A88p1Q$Q?$~ z&<`~T_d0$)kz{9;&qRHT6r5Yt#6|R@9{AMeF=EE=G9y@Wq)rr5pek#xiVYP5?Ac^? z_8X|suBSqx3hPi6Gr>DBVH7^Cy}+B<>}W0V7mESw+i%$6>I*Jevcoo*`yKNJiZ-b% zisb7|;D#i=MQv=G%beX|7`_~`WYgZT`-lnw%sU|eq;cfb7s@WO%20akogPD*GHZ|0 z{7mT}{8p1Kyoi(TjO-P-Co{?sNT2b`|T7C(hyc5l|W1TF4 z+xm(liJFjDJ$iYpJlrP2;_9-^Mlx*cG5_t$wwL8ak0vkE^a7HrZ9vabg1O8Y8e+0^)s7Y|1{s;Dv>1JoiE>W)m0nC9^|cyd7( z!^{}_?;unE?n(qPR=PiZ1!deW_cgp2MEU^Esy=62evxf8b*r364?0)=WV~KYx@L5? zJwWU5p0=b2cALg>W#g106Go7YS2>3dXS_QhZO-cc@gBy0c(Hu*td4%Aj+#_y{e6H8 z0ZX;B3+eHFdEiLc?VM-*?IpA@!0pbD@$@avpPr|}d^8%Pe0MQ+enLhRe!`9YX@_$x z9T=qvRe-yS!g(A(31nR`HVy&o;l}P zCTgR^RG8~O)o$R)XQ6fEQR1jBCvGx~{_chXK~7wWQxlms&w<$qB$;iSNc2O)2K>YL z@aiYUJ+H*Sc`FDZYBoDnofj>lxaLP0jA-9s~e0HzH#vMEcsn*xBfi`GTK>;%isJKT_Y zdu0-`b#OF+UW`z>YQ6v!d}18%m`4VSmoOa~ijwPEqNYxY<$AAKH0??VMw*~*Y6%S6 ze63894uf`w>+z2xcH|L^4>B=>LZDMqBBA<%rJX=R_Xd0=jKn?DJa5Py@W|jChpPlw zE5B$di!b|Wt|^!z+La%c+m4vte!2cUK0Nldkkl~`8?%PjQyjC6+ymj=AcKVSA2 ze<49{({IQP9v_d#Xp7(cxtP=Nw{0=k)J$hiDPZO!_csOX)+Q8oL;_wMZ20*hDt8NP zT7b;mF<^h-0n`96F?bUA=fV;6%)xO-V6&!yH&nKEmXaWem{1T<6}cK=Xv@p4F*`1D z?8gtT2o&9lXJM7<^^@&xlarq)94RPZ&?#Whui!O-VC}9Y$h28A z!W4;Z?4cb>T3QOz@p}1#;Nk2P!hY>=r9{#ud!tnOc!7z!EtCqwP$m}DWKE)>CZz9bIZU)4O5@AW#)K> zA2E|T$QsvE6v?^K=Uk(Bxn^9T8Ai+%)1m23}^E5ommR+n#rbw^9&rvSJJ&xK| zWMcv?V4a1fVDquX_mHd<3_`A$bOX}O9(8(s!gRx=X&k6l(V%yEusf-WN)aE-l%8?A zQ@3BB-(BWO;**9<-uG4S)mNh>ghq2ukU-Ftv1~~_3|FrOn~QLh*Rp!0S>UD0NInT^ zYp90DTxVXdjJMS?t~Z|9 z+RMvoVDBG_mI+bmRUgTM^Nlbu`QVymb4}spT!2L$Pd|>E-owy;rMxAdC%yD$?WDb_yKdi+I`2jMYK1X{vFHdi zCrSm@N}uo>hVZ#n7xv$x_n^gf+c1Oz z)@6#Mey-4I_;lPIYFcb@cmRicP*AJ|)5s}?5O&h}m-Y`$%>iZhjZj{G1owsliwotG zL@}ux>IS?nsxzVE0fH-M_u_MNWt;m0mVC>pJo!LdEPdofmm@c)>r1i=2 z*|`dT8HJDt*gtK5NFc`71Oe=zEuU zPa-!&nk5L~2dBn3D>$nM+yI}AR`t!Sfudm=51LRep zUm<;uA&3HTAspOa1VX~fvhw!-{^s|<>C|!#Oyu#*i<|)9IOmE}5u%?Ja0XA$w zpjAQYMGy|wYt?D=U-x_gSSS1gl6W^sLSYp(aEw4Rf>#d`7HC~gC0`mJaaqws$T-}D z!xb>Sqs9G1nM6sfHC0CT@w(8I||#Csrhf$Nh{O zx@5NT{>@|K(JeUbmE_kiRgYds{bQZ{p8@?jjObR{%!z&awO(Fb?&A7GjXo4-9AzrN zKO=)q7|Lv*|DV4*+nGZOJ9;U+uT!WjRg?LoIM39jd}sTD1hsd9~#lL1moEf-qLDkiHt2c_kqVhpa2y?;oC@-%B(H>#rJ$$S3ztD}J zzCSGhuxe99mYrtgL$3AIC@eiVB1y+g+lthC@9@w^r;tiBnWv4$k${*>XW8pDMXbgV zm1?r>xD4SP4JJEhdnL4+**7*zp9&f%Hu_8#U;ha@sMNd8d~a*?^QYqmKlI0AC%e!_ z3cDQ&u`3TgOETT8^uc5K%ppKh>bc=-zq5X*vB)Jfk5-_#_YL%g^Pu1^j%3yIVff!XO*Y6 z!UxRJnWq8fTQW-ui0UzFV`XRZ2`#z{vRHV#Rg&UwZZN94j)g-SS6K!g&$#2u#Np{F zAt)HorH_Zynf4A3KC;_6E4YV>4EF>zwv^;lMMiLi!3^3E>MTYTOp$wJ``%4O0qs8W12u*+%_tNG>=59*k~7l(?b0cbxil#$P$3Xe7)z7)%Ux4gkQ@SnHUhk=@< zCzHi4Pd*PAjC)1)j!!a^#bi51C3?HHMgJ2}~VfNVsYY0Rq3k-OgWr(6F}!nnHWAGP zaEETE5ADkHN^nV7+U}mYPeEuC5DPf9D)Q1ST@?l9ls{c((gA&5PU2KlWeW{|5K5k0*HlNG%Me+U$zpL z%#xvm_duo{JGLzw>XEY=YRbMtu`Czs_=ji3C7G2QFfrV5sw@etKEPS2AJ?cr%2efE z(!mznj-e5iRtL#UHka~ASuUCTL~g)2%dVCXCKW4u z(S#%G||N?g5|GrkH>k{}lV_j#|t zjK#G|-?uYPSWuZluh!!me2gOrk*Q*8v=Y`Gr3Ae&GH9H6UbknQ72v>HH6CMHo|G{* z1cFK6))xgH;YW#G5$h*Ro%0o>jOO!QW>oD;O=eWs<4=4o(mw$Um{A5O7UDV;h$8}{ z7O6_wCuzV9If^r|KlWSf`}2f7$I8J8OA1kq7mpDOeWfrBY;5tX(^&JPL-1f2dzCAk za%bDN-@iHwoK65(L~Vu8+GGZ(E5cM5KVj@Erhd25LA(0meB}n1VoGhALQ{~K3OLTO zVYI=A-PyiAgM)s3TDtd1E$m9Ny}uZ=F}al71gg2wZ9nI~4y)&Q3&9+}Cqw8T#EGW0C8`WXUd%l$;Ga*G-w^8P{vo>imUj01 z4$Ra>^dyNE*EMu0*=S_!FBwmxCz4&kOu(2)#(B$w71e`7Cl>X#n+Y2&<;nS#`YB0b zx?!R*#pq+!!guf$|FB~ahDc_vWDW?`9(pw>43Qg89b&A|N00>k zw~P#`{veFLgk0d1B6#%_()V44Gr)g*{4;qC=pP>g1bh|+q;)t7QDSIZixMVS!_0kb zU#1LmImdiaUU<2QM$0L*;=EBq6ouH(mSp;VsF18%+ zOKOT`jAk6Sr*Y?q%k74X0SE6_L{*ALM#WQXZa1u-)CI8*ehwAOlRyb4LGfZ4m$`g0 z@gFOBmU!CD@>IP0sZ||-(d%n2)b6ZErO|+_2xv^_fM@!qw*IT=Ubws>NHCDOzp_a3a+>TDv=4(ezj_iQH8zp*Y`y z0x+dB=gTRi#WZ8;i*C~C22Shq<>NIxCudXU72P0ROBvs*4f7~r_)u)sDdBQXuCw1l z&gk;d^%DdTJE|y;3Ho$LFN>!hxQyR?ItNp@@{H(TWA}~aT^Zl*4j}S2j6+LY5=u*& zssj(-%yyKOlO3tTJl9~e%6Dv$Foi^cna}fvE+Wa{lF-`AO}E|B4+iWO^{x3Z1}siu zCsjiI;aQ`UJZ9T65>3%^CHT&}2marScHLP03Q~$G`t-KlaUbF^y#E!HHTjSAkq=}DDI%YlI+0O_u+hm>wfBh}x>81=rV-S$Q7PgB zCPnX4CfI&fLet4tZI5#vcS)lq&4ct`438@0d(Kg%bX}pKWto9QYuqKC&9rLqti+Qu zO({j!x(^EaMwRFlp;j!4Wv@4X#pl=9X)ErLTTR??PfV@V0ZkeujHZ~p*73rrt=m3O z5+8Z}G1J%LT z=hVJ{^}gaqImEO&9JlnyC>);Os(4 z(Fl9H>brfg_Z4)TEnBq3OZ0>v+M9J@Qb4}e&kF;`7zd9#yrQg?=4>ix+b{ZAjAP%m*Pql!iBw04ZK zxOIE1RZC53k<6U&1pz(@P%+h=mGW4Y!Z-`MYz|a>qf7FY1YY>Ht;DY?y^ogVD``Ab z@MY2ld;*`aB+$&~{(yWg0#IexKFCR0$lHRKD7_0QMX)otPNvpTQ?-Ee!v#5NOG_3= zTv|VMBLBtuC)q((ko}(c_hOj8RErshkOzMgoV^yGSOP<<`daws0pG z1-F#`1X%phhEw~Y_mStsviN;BsIud$Bx08)P9iUEY! z=seGMwj2J_r>A28V;75gQz1rVIX5wvp z$pK-&^Af-(AUOR-{R-)T=`(02EwQAU^h6NQbWS|>pcrZD4pj{l-|c$VParUVel5u5 zlZqwtGJj&6aiOauRR~9DP|Ulozm4 z@(zMKk@^}k%tCJ>oYd74!#olQ9%|3Fx4f=`2d*0e#z;cx8ncqE{~6lfAE!(-(X2gi zmS$*0Fl#L#cTJGQj)5sgRINmh9tuolsun3qXqrVWFnr?GIdeZAk&%YjH)0BbPtC>K zWRO^$vP#HX$DsHYn?ryL``mR16eYNukZsoJM#j2_UwP|8)rKrS;}F16V^KV!_>*

^y6E299KVRS3`#--vOGV6F$Sv{Rm;qr6xQr$(L)|fw>45b*0Y3(16?EA48^L7R z>XLDe1=kcNf8|J=&{yF4WZB<9o{syAJApm%a1H6o06fLGUMNpo#DLy-etqx6Qf>^h z>SQ!?MK)uK^!)X>ig{;%hwX~p5{n;*7nRs%Bf*__9(L*+aF{abZ@PC&@La4rMQ6lxTT5Yg+ao7!RGI#Q7Mn%xq&zKjJol>FRj^vH zjgo|UQ8Myf_vFj#xo6-{9^dHo&uPDhPnLJe%KaMYfS>k_2$<@4`nA4sy-@H7VdIz{ z>4=7PQzf#cE8ymbKraNWiag$aD^7O5I6F1>cUUKz6v#Oo4;*WXTSA4a0{av)O7)WR z0)`2uPza{*36j#nsHvxhe%;sm3C?M2WcK7cjX9?@^k2}TQ@dt7iuukGO>4Jnc2u0b zq?l;Jgv2{;g=r{Gg4{PvFtKYw!4xkOtR}(|v9l)gl*G~#kIBE8xCuaCF3dM z7wMFc9K;vzC22a_v&mVsmXO9rdJx9i_S~4X*7UQ>gSdx0lSpMOHq15HFr-mdgnh>n{Hq4f>hsuP7GtOjOHe>Rf z_eRBr?`dHQ#Z|Co+BHF@wZ$&-38dzb@@sfd43Q=t=jeL-iH;DO^wnEJOQV>#UdvUp zb+_GxR{11Ec@!(5suW|>=-Ef4@L0+cY`oBrwLNz*6Kgl-3uRD6EO-A`ge)Ly_T3fN ztgyiCw2W~nf0)(=U+MaEn-yE_iZG?>$_h+LGR|c$P=zsyeMFfY?A_0#Z2@&Vl;!FI zzY(a>@GIRg*EsJJx+^O>Y=!m8E%Th^GJl&Sez>x(G_wl{<;D89Vz~S^(~gR}v+){$ z06N=25$Mvtxq#K_-{d%X{Y^OiKjuAC9+2*SgVgDX68sj`*OdYr%}L%5VWz~?95L>e zMMumq-sB>{P^mvxU-1`-a_&?cqrwwg2cen+IuUxH6PqQ7)dH%w0yl#x?vpiT9JS&G zlM#g)itCCT8qn&*?p0A7)zvVS9`p&91Bz&w1y^dhsl&{Y32A2Mbii9>nb!oP%Z4z8 zs@9AxA3qOvo>(-2y304*|JjUwY6wht3Ji`GE0GA+6P5W`%9} z?$1}^QR88@c^v9?3U>e}aY(Gb3{f2f{R4I8{oSr`yt4Oy;wvez7C zL`@S<6GnB+=VYmiS?D?BsSDLv6$-DlviQko^#n@Yn*rD-M7I`$j|gloR#Pw)GyJF`&lCO+nnp#(qx)8w`qQ^yI!NW2TE5=C7-F8zy&fe5yjp-)y z#wuwstl2c?>n_RpvF=&sb&|Q?>iC}?61c8`g4E~EZB9`P9|ZeVMl#kH6jV;TX}Kvp z6L)(?97@1yE+z<}7OXjV*Doj~^5#|FigN;LVSs7lbhJYa`!G^!z|7!W!dd&2vp9z}E&;X)VRL{bfP~ZqY2C${54t6GFVe9csqoO6*8Gz3 zEcgq4kba90Rn68V9!V-IuhIou(dc~EzV2-HJ7u^0PfGfa&sKE##LkfDU4dkXYCc&8 zqtZoZj;16Vk5mHm%g!8_T)v{iy$}L5sWRz=j+{I#@`U01A4)%a^&i%g_}c>i^R4}NMgCi|y}tqW zkM|`01`gu&{|+bfw}}16rG0-};y;?T{x{5K|wzk~H((skBC|7>^RzohG|x&E^Pmz=NNAbC6xGBPp}5-R$+bI3@jAf)ps zs7PqY=RoNA1cXF*#H4ied_p8Vyjt4Vg{7pgs%r`e@-r}kHJC1&m^14Huw0RGmX)*k zItRi)LINS-fIdHt8T{yZ>G@8Kz3crExLD@f|9c-UW(^-mE^)t^{|a(k+Wqok^#4rk zB~&)@y}2@juhUmhi|x75{JA|F1US9i&=rrYd0lnE9*-Hz}68ZKy z?+mh^3aNdl8nw<~`8fUGFa9^%if2>k$!AwxNju8pWcXv@Cz#D2$UZ&tGC!WOCSTio zi(>kMvwAdBx*|yotiGzirf3;AO&pv;V)* zGI3KB#+wE6g>xG<{BObYH@^V1K6aD%v8`a`BKe04__Ne;kC(t)D7|a%UF*Msii~_9 zv$w~aB{E+>+AxS&|1j0R_M8C~dv;{-OH#|1D8Fj~S>{sy(;KAsLeW-bFwq;bQa-c0 zRH)r=#t%(>%=;Q{@fD;ve+tXtQo&1|Tq_tJon&}*)c*h{&nKm3k9ZjGSB+YUaUbif4qr)(@e(e;5G1*8aT`7THJbPt zZ2gUtBn*5wG8v!`@-d^3eo_we!U-}?S>m&`(KA})JChkTmOAdHT(+Dp179u(&R}`{ zir#5e(Fzul_KN%imOq}<9JBZZ)}o*Wj~Cz&34y@s`6#3wN_;s&rP6sLdid22KH8HP zOHQ#Vyzp6ajSb;uq@YkT(1rcCpXs2r{=x%o7vIk!Jt&o3yjQ2`G(cI8J@A6z{ZmkD zX#m|B@)nUx*?MZrntD@DqA`ldpr;j2_P#N7HBhbxBj&W|=^|ITM4@dS|EE_k-7>?( zL5G~8h*Dxmv3Q_|Lt}T+E%$$|l@6kB&QHmlHHS-jV9%Q#B6*~KzmwLD*zmNU74pA} zdFiz4yxoCrm*N~$jG%Cps??-od73{@u%(9?BT?yd2uvJPaKIeym1A!~YU#EF2=^^r z8AH+OT67m}As5_~>BXa!*O}!88(JH$_xsLWSo9HicKb7b#`_YOv|im<(1)Wk>&bh^ z1CCA0hhK&TUv2{i+}*Jsegt3J@ujs)e+QT}az4+H`q8k-!D%$$^@QP95U%TN@xw1v zfF7svBIepKKhvlLx<@OS=F^Y8EGE23wsY9g6q+X;uELI3%(90CH$K6IB(UP^1Kc8$zb4TyrzZSaP)(d}^2K&sb>>yfDK*r<`rqUdeGs6hs*qu3^P`eSTda1qF|k1&TM|MB z1B=7(+x+~wcJibyc(J=R#fsM_Qei~JxL-llc{M_@u{%Bx@-^|?paJKRvKk4Eg4@qt zj=uGdbIkb2Wz#(xFd$0$Zscm7Km5|k;D?`$PS1K7G4vUQfSCsSR75J@jVPSdJ8YF;uquCJtA}+c9$Qi z^EF-%M0-x1)mk)G!x@17_IfUdx1)Eed2TFZpo(jEmdyETMCZLq+pJGdJ$QnK-piAY z36bdFcN0JSg+RS+wvtB5phAmOe|pKcUn?fst>NqAfLIv9PlCPM1$#EsmzvRN{ zZ@p0Fc)1#GWx-02=36m8z5+?~d@L>{-*`A|9-dY$}~>N(qDlhh0~%!#qc{oJd|K z<}fcOj7zR)psyemM{S%~@=Ewcx95XypT=`ZT^7n7SnbNrbmAhJyGDxmemQB#-hH3V zNt~_AsOMs|n%mWcV(|)f^|PK3Tz&qE=v<9rYg0A$CI$iW{s%LR67kNnxguFq_KhjJ zR~|CxJc_9Zj}VdpFkRdVWOiC43eT^r$e_Yk2hcwo)< zbLvY^F<-ZvoO1ikgxYK$$lIo0uk+x{EV71g!a1q#;2HC$N^svFlDPjMcJH>@!)ibC z5gcaYr;f2QBYbpHe$;|3oY@cAvwhY+R!SOsdd*lF6}$^-7)}i4ZQu=y!|n(z;lN-V zDwH@su(YG1wMK^HmD1crAcQs~|V{|oUsBVy|gsLvnrGpvlS&Qi! zbCTFC{r+aqD6Yv}^Xws>LCEgV7rjqOqmjx3YoTk%Y+}B=gpyvCw>fSp!h4uqu06%) z74O2?8+>?|+)DDKDA0_DXW%uj)wEA_N2%eGqj)l1sW`!JwtKUEPhj~|xMtEZWws(v z7yo`M(uTP$5JV)dxMV-Y|M0xZn(R75yqFw=75P#syf)P$cnQGg@lv+y30(FZvdns< ze29Oa>I~W5X!c3LX21>>#7ty0^g=RkGM$j#z-t)<(sxFA39-}72KkT7_C)%;JfYEg zYV?+u^4H+WX1l#>DD*&;;5mFqh(^SYyiNd=N?>);YT2-uLCTZcSbb%4=3@Dpq;h3v za6sezfXwP{nW1XyNL@*Fa#IxLlLi4kWp={nhbLR@_O75#WG*3bte#-|<96vnZ}_-D z3pcTC&wvoAXz{il(q%P{-UGdbNWMXwol%_nE(sK~kuTX!cCX$QTv`!*_!WdzGnVo> zuyxkHUq$Lg=$$av$+y@(QrLv(Ab9f)`!R!O%xIUbU-HMTqJ;(dH*C7^ zjHzL@BHg{|_F#LIDNFTw7t$M@)%;wE&?^D18$CU@uMMmDb1fGq#X)vL2dp2&A0&0! zWTDA$P8Bsw++airx60y{!hOT1`N@y`KoQ0EDn)?^j1SZwTK>WJ{H3j^n&giLtPXuo z7fW3)2xL`d#lBl~zl^b2GPN@j&)0oTB)7Ix$_jKYMKA3=$t)E|xxW0RE^&SmFO0a^ z9L0C%A;UyL7`Ts3vQ)5RLYMW-2kiWLY4$l!LvR3Ur_YSco^2jUm!iz>A!UiM z8ok}!Y73rDVX>~QNsZ$ra@UPF=SZK~!$et=Tn6!%An-)9(BqJ5%TMg++`N&_(L<&T zLXPD({HQq}^7mQkrt);1uU~8wI9CU967pJo$>lZV;SxUIC^Q2@6`>SRf$SZ&BD`MAnzTc=1s? ztFRE0oAW{9G09t&JGS>ba&&o?GV3w2Qw`HPXo{}{W7{_iQX{>V;=od2-kFwWz=x>r?3574t*+rMzi+M%9UnX4Np#9AF733T< z_#x{$aFPVJuI>BW{$d2YT86l35o+&~_ws}MSabS=0x3w|8-8~UW4*+y&vf+)vCk_pbY7D^U(}+?aw4yQ^gYUwXGM6Tm_qw3oP9sj~C`6v?A8?dKo;}ud)rP=t zRK9^&JuOn%cchKj&5IO#oEDXNT{4S5+h;`%Z3M~rcxLjN-W54Vo<`iS7BIx5j71B3lBd6Bh={6s432&ua4_tNZH_`NWoQu_a_rZ3~ zIBK(a%{0*JBG%D>rB&${i>z1b9rxdB=VCqRV7Mpo)bV4+y8aVw_3Qk3H()Qc(>cOf z?Mju|h4mL)Of0z^rwpJk9}gs}rKh)V3ydYc4_ZTi5aVTV^A%*eZdslsy?MOpwsX$B z*>6aBqXKi4k|Gf^HMJCb zwc4yv{NO0qve;Z(mEBCAG~p}g@nlWa^OatEW!Dl<_`?d;NE|fEtevJgg`1#`*$tmC z?$tgwb~fs3Jjz&)Fj}leQtJCW9)ZYAcqaTcq|rwovf$!yT_q56@=_l23l7`cuV3l7 zmu^i$Kt2M<7_D{|#tx!$w+ohY6z~r(Sqwq%nvddGHFFgiW*4V`P(`e$IiH~f;@=#h zE}pHCuF+gOs*P7oyKhpzW)a@VF+C`Uee6m5=rXFbJDB)ktj`B=5~pfl4wVJN{58X@#H7H@rTml zG8UqK`>(Z}-kWyFZu-@Y<==5SM;=mA=EccNyVuSHZ+y1>rH#E_ED=(c>g4bE5yooa z*3lA`U14u9fc9FM11(33J2E^@-JfSjA8q#Sx}_?9v?U{JYHC=- z)VI7crR2^~Gx?HMc*4&7`Si1DTvrZ<jq}-&!uv%E zImp&R9n%iR8q-*e_xdK3-%vJp6+bU$@%H<2lq+s^`&p8G1ra<@)o@8w{m^0$KH$dR z)S~kU^X;&`aO^s&~cN3UE7N{e8D6WDe}eZ718se*|GR@Qrp6BXtA1H8_VA8K4_XF6?A5e zcU|kZFOuNZ^Kk9<1N>`i?LB&Cr8F%%9GLU0Fge1zvB{WL__j+FwP%`dg8xB9p+f~- zDLh-x{)6@S)QFl@Hhz&E){UAGgl=sf%tWCZOhcg@BU zUl!*brR^%7o2zMDZRiZTK0yb)%-8RXCt*|J0I)?OWYd=pqFgV;OHhMH%q$!)Y^;wS z;Z}bIbyn<~B`#${mL<}J>kJ>uq1#?31(gexMQlwRiCGYy= zJ1e8M#|!;K#L3ok6*#$lBVv9I+3;7p$jqMJDxG$o>s;BRXbzmQ=0^c*Qr@KVbuY?Q z_aK?As?$A{uN85L9mGF+u{tYxrAxBJ*rYZ)pW70dCi+rpx{3>(YDXJ(17?ZM?A zt?BQTJ(6i!A6?1Tygkl1Qsn3I5}+hc3fjW3A2HkqYZEJ z$%ABlwh@0mp_%y7Hy6rtoybHleFaI5W+@)ikJ!D`&~e@fl@80crPY~q@siJ-n$VX` z%zRDhIgfX_cD>jacVFJz!&_7ykov#)BE}yTi5C=p$jz~k4RhfjT z7Z?)o7a`2%p#fI2)S1PAxKSP`;zhe(%A>cQpH*La7VHt)nT_Okj{wA8@HO}$lO_J) z!xU!{zO|B_xlIWycZSmUwP8BuRF4Yvj~fK^hgwXE=xnn~E~6i=^>4#8YK>;7+!+nN z+_f6Zb`F6x>^rn5d=S$c&0^{_(*-b5d21?=VdU1Zz7E%GS4@K|I;B0wyfjgkFk9F> zto8A{Ca;-B5C@v!X3Zl|6QLj{$G}@;th#RJ8|fEGDu@$N0!R0Ix32H>@Tf30Dx`I^ zsTR`lhoa1f#mLLANf=lS?}H^1to++(a1L*A-;tzM{nBzJ`O-m^OB-_z7ke?zh*cS< zoiw@^N;Ov;{Y#sVmo}R1(q5MaD0t{lQ;<(ha0Fan$*#;>9t-#i+R~sDpYJ}9x*n

`T&LsxeY-7b?=ciX_rNRvmQY`*>?QGwMb7r&6Gq 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

?3@97}wvLdA{sHoI-!Uq( zs{QydS`&Wch;WhKkz%Qu%VRqWo3EFxEUzrVB&Cx$4Awxt`UfZo?XCAt3VXn=NesEI zStZqY;0zb~Tew}sOn5UpRu5@l3;OkhZvixU=$(y3D`sBc}f06xG#~rxdt^ zkn=u#N{GFtJ-*ZaQdx{vRW~b+!ClBAkd#wbA+94V5qn-p6@;fm)m@G)>M)Z23cXvo zBz}f_&+SK71Kc5zlz{^|A|$Wr5Uu?@;#+-kTCE{ZDn{x3+=&0^TV%sB7FEBmHS9vX z1M^xFDd!RC`k5mJB%LK;h^y(~%b&q3J4x%s=dsrP)&)TyOtg@DL)M0LWNHVOcY&DhZAB10XILS=&U5>k-jsVm2-N|htLQ@mE`1QBs!h`ML zX&VAc3_mxOny$4W*C!rgg=fqmq6<-#?W}|vTt|558?6kLNijs*`1s)^X#5iwl1fq& z=1jxdGTBoh$GesHGkPI8feAop(vNS$cUo52P6XtepS{7}xJmt_Q+|S1K1{j{NdHGeqiBYk3c;5UU)EXm7=h{gS%z z9KgMwI~nz7d5*&!`mjIpA$wg%_qwp(L||#bqa6?40@XGV4KfeQAPkifWRHx&6+J!23ViFwLP)q;w$BL=U87@q!Or-@zzB#TkRNw_$s?e2&1 z=HNoWkNl*Zm;dQP`zlqRdF|yR#6flXb>;*`*HZj10-P=mXZKu#6}o=_9yX8OeWfd= zE7p4qRB|SA)QF&pwAsqMvamLSD?<*K%;b;Cw-jV~#NyJ64jg zKY8xUiI;WmvHZTVIyI3kwOe!J1*2!5J-fhbM(;=V(AUnX(BecMoc;5bxyJ2_&hQ?S z*0W5W`HXlp_-Q8cfbWw^R-D;6G2;IS91|a_+B1;G0fPn*IAocJI~EaF`7P1 zxW{DEEb+go0-_s^5Y9_XkLqir;Eq0|1xg_T6a()}Ci)kb|-IC9b?-avb^a9@ERR+2u1 zL~l7+y1H#V^QzPSA0V_+CR*T9fPv?H`G8Z8(5<#FCow_GBhi|fT2hrQ!S{|J#~4=z z0-U4u2oBM{6)6E{Vu0CByKbm%rIO0n4~eQ!lv!eF0M|d(I>#bG?op2|Z2{4QJ!t z*B;R9_NycZ%O(#@QY48@GEs1g?!vR#F|t2;O#1pLu>clE(z}2}paYoVx4RsQo;rKa zM6|Wl2aZJBI=s>3)es++(rWnZL75J!;DTQsTiJapAL@`4i@%YGbigK zytd2|jN*MsW1ICQmFGRN&zo@T6FTIc38gSeJT^bsaU^MfLPggrjOfqyR3uRY0EZ8y z0?uTp)bg^4Zy>$j>?*(zv{zWajZp)veaMqwP=U71>$D#Y!iUh!px3!?eY(vB@QyK?&_pPsAF2^6OJ^w+M{O1UF6(;9-bR-4MNOyT5Jro!!&l~C01-F( z;$CGV6;}LM!$9H%Pf&WEtnWAs^Ks$dx93rf;+kA)`oP?>%<3NKgq)M6GvQo75=x$? zEjaT>vDj2I!W*TC^`UlltX(7g?XU0gqncjAHQ9q@w#kGRCzUes#NI#E)HDF50=n8MOTK5roFI#}l_KZIzQ ze+q=iK92rvsGIL*tZM5jpSQmu{@TWOOP4HV`-3=pV)>wdnmKvmXXB#=E*ZMw`E(*e z>2FD)Z2MpD-v$_-Cgia6gq>+QC@*L>18l4^=v+#ZH zJ2da{H1sbTs6rAMI2>DW#qZcKtx5p$CPv}6N}hE-XlYSIcMI}4nv&sNDI!q6z|G{P z20B7ogTnHF9of#SqRr3O(qt5^P2xrZZQ!*SFgnMjAJ&;DT3NFytNrmWQj9CZ##{Ox zT7%Ck0~>qS-X+O@__lbSRWw`#rjC>EM;co)+1ls@k}n0tF_^whka;J6t)U+3 z3F5=i>sqw$gj+_31TOG7$yV3o#$>I}TdzheM^{C528b1WmB29PTS-dX4H_aIl70P& z5v{}gE)df*S!MUSU=Av=DV>)9c2+j%sA`E48y$piYi^HSweLIyMyX-#gZjukq}3vo zCE?Ktd6DHR76W)Pu;YJ#;L1p`87{coOu+%C)*5d(QJ%87&I__Ut^FWY1{Tf{52%&S zYbD`W&+^%e-Fzc;F|!`{l}-i+@&SKiUmk3ph<|8M+Z%xr(^JsQ1y!_ESAo6EW#%)2 z-mWrZ1L;psSY&Lf=&U2xJTh?tf0TcX*KmV`+0cc_z*{pfEr#K5hrLYIO!s^0LZd?h z7WfGDScILnbF<~DC!-ZD&olKs0*J;siyoq@4tQr=epm-zK%rR0sphsCWBvW<%YLFdNFQ3pr&8OWfxHOaTh#$LU}VlUqia3;p2N!9DH1C zFFy=b#NbuWKn}xEpftWo(fV@fR4^5o+8hc&1D?8iRk4mT_wpY4LdC9bKunKytt zqz6HhRVG_7g;-7a;tAIv%Zkh}pO_$sK91(8)i3rGP;aMf*{12OZqoN9g|u4?gB3ZV zbUf8738@h*jvMT=Zf49Cz?9MUy%NOJ1l8v!668STRpuExl$Q?M@90_v&wSfXMG|-a zCBi$JVc~9(LO9WY_)3e2h%}}@?1b^RCHjQGYM}Gi)%Zl)gl)K197}uWvK;@iRdp#Y z4S6k9_O4+LeP33(7NE_Tu8r#1Gbz zrHsP@t-O_h{6)9Y!}MNl2}i-hlqO7K5S!!4shkzN z-X*E{F2pmf$ykn|>U}YQ?&B)fAYi_;vJRXb?Ha&TiHYW54Dluz>wAH=ryBu%sF+-O zG>eme^`OOYX^^>hgS$Swy35T+>1g}Y9KsXf6U&sW2r&|&X5D15R4r^!EOkI1UZ$FI z9&;k%iSa?{Ak@O@3l3!^oy$yhkU_V=x%5wUTuyZuQaAR`MkARc^L1Tp+MmHV7te<^ z^q}y#dfaiGy1g3w>&(?bTC%C(Ao2<3!)W-mH`Q(-POM;}*(`cqtC9eXIC z<_~VAM%lx__6pf~IqElC-*H%~8TC9L%Mz`61BBzHb77Yxw)Lu6nzHL0^Q?F1wP85T zc9=>&9z{Ms+aierc)})AfT?JLc09hup%_u^@0R7BNcA8tQ1k^8u*H;9RlhdRFT3E_&-Z+42dK7yKa1K zfZ9XArxvy2itDGC&bDDXXhfJqX?6=oKt;1)Xl@Wn`oSUun`Y%=Yr)n2 zx;{j?Pe^huxdQYjRM3ndDIICk;+SJxFrcGLD6mD&urR&uFlE9?!-)U{G_i4#H}z0t zkS5qzxSOBdjpJZy+R^Z96QA{Ct0~Qyr=t;)^oOy4UB9EP&*1+0@U<{6KPgWBr+~E&lhLk6lA@vY#xG z8UF!HIbO|iJ9X5jP!AdX1FX7*%6)>fz0eioH)4e@@2V*%a+|Y=1c8XIP)0VBlQkPs z>zxx8n}0->?kAL$U|5s!!S7fCj0XK8)hioj;rMtG<>K>KRzFb|hQ=i2C`iI_-SH$J zBa8k4USQ$o%Vb7DM`t7s8(rC47tk}nS6PQE*;mgjd& zwPsBaSyCCw$y$(@&}U8NLyl+roLGU0{3oW1-|SrrAENHD!RS7xKdrI^1<>+-b%tF` zt+p`N&|~RTL=rh2nv^qfd`#m`o(#z3)G-q0nP!mM=pqVLagF^T<5h2~Xjky3SngU& zr#J4Q+=u|jwos`{M;4kL8SS^{ow+dkAVS+5oIHLUsZ&8q?2(o|6aif?JiVhIMf zzp#)3)j_Ft#MGaLFK@Bac$-+EOOa!dtP9vx zAt0}G8Q4M@IOKXOClA2weIIe*RDo~+5fEFMtPrXp>}n1bOMT9nl4^{UF&(-khS=;V z{p9#-B}x`fZeg{kD9~_3{XK3tBk4YlniD#2IP(!K`!lSjgBd_Ss&4hiHdQY`<&&i- z&6K`(EMBER{H=yI+xYG}wm@FmXbwiri@=c|iLl%^T`i0GdTu#FWsP1XfG=}c?9?w8 z45xg2G0=MO`fG7*&wbZg zHU@tBP+1`DwN|kb&PYr^qmlE_&sDX9p0PiuyV*=6%HlZ7BQ7`6O!F`Sb&lmTA*u-G znbhs_aDiz5Ht_(50Ga3cFLlC(NgKviau0b}g_P{VI>==fop1Iwr!p9^AN%;qQhKAV zfj>^;fJN2jxKTOCA3cE&w7;CIj?tyU>ZX&~q&oGmO60MSsL^La4o(k2S+lcbQ--U| z{Y($M%KD9SyEc5Cg{j+N+?O!O!?J9?0Rw6fsv;t1w&cJ|e7!V~zSJn9RG;UoHg9xM#D~vxNh|}9^c!8Q_6caC zBVQd{b6zZ5MZZpcGSEvsoZ^tutvtYP+PnW&F7cx3vdBr#@TsHikR7k%*GksTkWMnD z$3iZ?-tE37Wig$8b2vIz4D&MF_#kn?3t{wT>8d1$iJXq%m*{S8pAPci<0EJ>4yr82 zj~>GoOPWn77p1-kvAMu9M-h8hu_~yPYIvKhMX5Kn>&4(?-*W*tsz~{xuZbzqYEMfX zMEFb`z%*+_4Vag!K@e+6#zYnHu!ZW|m_AozvUs`lrf76ux|_z^Ut5cyHYSo~ct3TD zIx$Ak-qd$dMib+qst7iTzk&I zrHrV=_yd{A07QfdwNmqeE21^vw^uU^S1uDZIDGl3im#GkQ%S!%RtI=0UCs0%eKW7&P()wasO=J^ zx>^!gz#7{#VX?K&mQu!eP>Z9sTzrGzOxW5}6TEvv?hh~J*shx^gZU;Vz9>?3sAtu7 z8L5>C<*QctA@}N*aY$l}35tDj!^2o@kp`50#6ZNw!WgwJ5%yyUTO++dZr(^LY=q{f zE7;Qrh72a*TQMCnNKvwi7VsF&we!?)9)84QOlAtUIhrQy5V=OlsVgBbwO>w>?yuz? zjt$4$uasqwBg(6)df~-VV=3e-N%B0`MhYaH%)@+J6hs-VQF>kS7j3SI>+qT5N}Q-q z%(5a~CI+}S0~#;Cr%~5{q!v{v1Ie|Of`Ld+xR+0LFphu*Sx5>)+Rwx@lads2jHhF> za3Y!05G1WYH(|El2oNz@?jq9i7d~uMhfQZREgoO}FDqkdOR{qYRy4Z^F~>j^-C`9s zAHX%|Xr}Ufecla{f!C|J`l_Z1>(-+uD9WG`B{Z3oZ>OR;;O(xWplvv=w~G6)vFDGn z?$vUG=`05Bvs!W7T)W6bQf`}H6|cZ?o~P0t+AHb4!a&!+35r`!*(68~j+NkBrWQA0 zt>ayoqL&blbI{yBfL?Rj+16wp62j}NN5&^}oDPibfbKm$bBZks7#Xl5>?F{ z^jsONEh%z6t!AVlu2u1P*m{U3(!Z-|ny45;NuN+&b-()9J1cbmh_kMG5^LjlA@TEdY}z)dgW0NZ_gtKCRwo5l&H z$KT&83#kRk^~_b=dJbPE4!QBXt178DC#|>0=T)p~^l32bh)HNcuj)B#Ul+QOW8`nLE8<=zGt==DWxv3nmH78g z-gH@iX}a=H6h8)Q?HF*3BiZ0TzZX?ZSyh`H2=^K?GTeH@cu$pRtk0$YmPtKX9hW@l zy);o!PF7M=uT;MSA}kNxF0(=ff}@@+Z&Zd#v>C4eF{+Hk7~UqLCc?bUs8QjnxAr<^ ze>SnnBx4mNPe1o7a_4L~XGOHl6xr2lG(=cS9YY)vJ0&Tl(sljUX8wqS`C88v znQq0=DBoDswSj+;+_~vM?wx-AIz72Ro=!6aIOA& z-I;x#o>m;~spNzE0g;7WVz=OK?Y8pk)S2 zyzz6P6JhQVR?@TBZ=-3TmJhLhZZw``F-aLM>zbuMAj{L0BlmqZcWk3Wa{vq%@eN2{ zWV`FJ#ns=H53%pR@^8aZbIsp^9gRYPr><;k`2^?!Y(0F#^&x*q%}z5)e=Z~BtUq=V z6HA!#ZB(klO{O_KH ziaC-VZTALEnupL=(YdtM4iY2hFxxwfA`Vrc-+U`SMJ!jW#>OP_e;$iTY8_|b8efuDuI&ZGmGctdXZ*q zvu7ALV}H&>6JIY-SSD1qp9|bf zd+5jbZTbSMj3#w{Wmobgx{F9rqd^UvJoh+9X7`haZND!tIN`_#h-9B%Pd`)>F^zzj zJaFGv!OK`dRIW+#^$yBO71;}h@48QV7hXEv_d}F#h&~lVIV~v1^D_zs@@kX&@di0m ziL%J&!bSz%4b~4U`F0OJzMo8DYE18A{!I1UC3vh$w(vlZ2$O#^;eN4>7M}*ScH7Sbz$J*aPP!S~1PH!Jwe1^@ zJ~YOj7R|gDF!FfK8`z~28)V;-V|u$ep6Y*z>TQ1Bn{;4mGzp(P41Xu#Kl>WsvY7NQ z%A(hW{mUg{AJQw{l8w>aMb}E-mCOzZ1It565yDR%j|E#=32Go6-?=8V5|32wuSU`* z6y+X$`V#eRJ|d#w;F?kZ4lBFZ-i;~wgt-YKy-YWFa9qmu83FI-Kp}dH-gv8kweOIB zvQkWtB6isIb4W(!=!nHnF@f%_=G>UYI3yTg%s|kzd2ILp00YzfE|06m-N^=uW$bQZ zAM=b8{)KpiIW5Uo&{3wJkEZ<^wpPL%9E#XJ5a8rgM=?5*uNm_MRA2W`c{!JdP{LqS zo?4oj3~!GjFlZ*4OU{#;T1#}s8nxvF_O4=h$B-h7izmK3afcOSKNaUPbYHp?xjqvB9K$(E?vHl$%Mr!Op}~p4A<&NC&}Az%#O2*F*is#l zfx{v51XMiYHJ_*eaMo*Cy-XnV2(CoEy z@#X60JLU2@oSam!@Eh*w@~Jtr7PoAXSKR*q?&q#*Gm&j`cFz@A$;698j|*tpH0R3( ztY3Jl8J2X=iOZ0qD|24@#h&P2{zuFq4%u(>VEQBtW_ zMi~qZA>A!yoU|bS08KbL!t-m)ocvX90!GAiBnm(DK48=bF(uu>krJYWz`XftYQ|nP zI5-Nb~CMRe2YLmS9m{x=&AL&bI%!OB}0sps z(~%=Y?-_4D*oy~+7dAOKspAjBlanrcAK%zcU~>JB*N*lW9z0KvAf{c)Ts^;5$XphR^y!jBH(Hw6Cs z0O=#ti?TZN3_s&d+ zNd(S-@I2ep)%>CkDS$-qy;@4Rx-f?^0zL&5evECdghDqAy@(ZQF@-rJOF11$-nbli zFJQpjcUA(duVslGTdTC5OI*@GQ%;AjD)I?-E`Wq1{B><*?`e0y5p(;MINm!nNSs7F zY*^;3Qb;9uJ_$UWQc;ApZ!{{SVV_MF7bAQHR1SQH}V6HV2; zAWli<$B-2=2@=sP)uT^BYuS>BChj)aRF|+h@%C-WM}A9`Jk-#376U=a7Oy0LOXViZ zP!RIjd#FhD^lr877)8U}+~A9N>vc)(@fx@Xx@kt&-le+GNaxW(tIf=MVh2ZF?We{n z5CnG)BWJp9_}Y>IJXf%QJqoZDX7QAtfUf8W_(fUVyaHnuf^{7m!uN9}{HPozDnNM7 zG)I8?X;B?uE+coj^KZ3QfgUU902_lx+I*(qiD+NT#hzk=fckC0_?&akak5{yokwbb|VqCSE`XvOkssF8%s7jo$5G5 z@Ls`zy7vqPL2&8E5G%aZXKHR>yF}NDo~vG#%Og+fYuKL|hmf2fhNl~)nj}oIdJ;}+ z*`i3D;pTINJdq z^amX4k0o8+h-TytR*R5j#8u=T^!HN@gfUQXE@FFO6QDiR zt$RfuJW(8E^mzJeMvv2+%65m5>FpO;}@Mze$1q4FYy^8UK+ z@Wqs_hp|KCM}@qm7^CcpD2}m99U%`5)J~~ER9qqrh;vB%JqjJk^c4J)j+)SLhe4B* zP`HSPOgV2sU89{aUZ0voIk~SlhNKx;5ab$8_UTW_1;T4eGD$c9S9gXkRQAbU>YvAl z(eB(4_$>>90g%#=j$`D~IjMb1AtS1gYIF^cBiw()WVMv=Nyij-T9Q>aS2utl3MyCx z6WZVz6CE8vsGoa_i`z)m$Q_VUSVm^I9G%n6YQk}IE8cQ>7<2$oo-s5qV~RO)U@O^( z<|Mi0B(BwQIi3mNfhCbM)d(~bNMJA^ozHe8bg8|iEV1w1PlPt}2_@`=)x43*)}^?OBBH1V7d}Rjte>arXcMuci>mKWK^Y z_N|e#pHJ{VXQZ_eq9<21Z8f=>JD>|s9uX3(?H1nZ#!xa>9kbk4;LUe`Wf%yaf|AIX z6WPzC@Er4VPl%2E{$|pr3GOq&2%JK-d2PT*t$=fEHs!rsye1dy_*#iJNPhXNh{Kek z2)VWh9#DG_4O+Q3Q%-^n)9wTnaW-u(pnyySU6Y@|Ue$&)P6i!qeIBR3FA+T*YFp=# zF5(%7M(#~q!qJDTXoMMn2Zl;_kilsLyis89;qRbJ6~8%9_8?cYqGW=Ia+a2H0if)hx|)vKG;}?PUkR>R()K7sqD1UAKLvYd568CW z3_Olhnt{l+xwOGYQ(n=AFbZ>CW1v2jY)FFU(*-12_LOKcoYR_~K>Ac1qP(=WNkq$6 zF0xu$!hmpsa{<^^G&9SAZil<=LTM}6w`)0ryNb#gP1pM%q%vV7^ih#lBqaAYe4~kK z($rbcZPCnQy4235=H~PS!V0qzE6Ld@FX55Gc2WEd$Ji!U*Pm<}N{DVmGgZ;kNqOjN z5&nTf80Is7RY3ulN{oV^hz5g%N<24c&cJcsZ)UiC#b>C6@ z9Au9Y)1U9ey@%#29RC1nG+iA!kG3eNp(>^&r$EQ?6!!}e643zo@m?@9o=SWz=h!oKF`APmgcdp4njF z>C+wa;q50!DW){n_xDf4nftl@n{4o1zrmik{lt+7r3MiyNChbm?vX&Sqmk#_(D9XZ zbjcYN8ihnrfS_~(_kPiwO{SRB_8xbeZ8i9+R4JbO~o8b1QihO1+`Bm8dEbi+%XQ2F%*!5 zn${<$1qICZtY)qejyT_wzGz;l+`#z8^j$EKf=|ar0nS*8cuseCQ{#=QK0}XaOHt*# zslr4R6QOtWV)TeO=o4^P)oJj%n6!>1s2)FoD8`sGL{q@a$3q70&7=8LlNz3Cd`qWAh6m|pnUsL<20Wmol8r1Im zSi$7Ap1u9(UN{C?76HULI#rC^1WQAs%;TvhrZ~8U_E26QP;1-=`$tx@7@)R> zaSO}l-M{{S#} zJ@GE$V47F{tW*~-E2UiI!E0kL2_s6ph{zG#8J(Ll+k6 z>u`?evMDtSjxCkV;G9mi?YII6oyka~BBzs&a`2oH5b!WAQdxB6gs=T&O5oi>;{g-4 zltS($mrDNt)>k=h;dIx}U25WYGe3ppqYIDZFB?h&_f_h1QG9EHr}8xyC(#+ge8?2T zVJbFP6wjdRsXmR;t=Ocp;NeI(H0UH(>{N{AuumBBPzPSLPNB*;Px*+&efOs3vAQxB z`D_IXGr7><%e6|O(Y(RtJS|`n;@IgW!8ASxH$~K+P-!wH!5AQPZdKE8j#K_@Vt@yX zIj#>O(u-&lo(p+x(xH&WCn5^C>IgMvq32%Fk5kgKuKGTo^J5gNxsqcLnO+$%~W)N;Za`0AH+zq!~#N zPk}j>Z@_b?24qfZ>OM!E3op2N&Aka^_tT-Nuj2w(iAp?% z{m-E4Yp)5xM*IT-;r9S8-;kw=xuNE#6yeF=X&>V>@se*K>VQ+}6jxG%nTvFw+IQ3b zZk6}g)BFhN$Y15K9urJb@@NT9=mn`TE#%_8?;{2jWq*Q&&&NEpJ3}hJ`%+JmW|SpLW5I@DB>|IDN+N>Z7t*|i z%hXS#@K4O8I1CS%HRSW4G8?I6X=I=rx<4Rlv57Q*qnn2`Hkc2>mc@Nw?1S%lOH7%xuIKf7*Wm}6I zQ1$K@<7jlRX%Q~)!X$Vek-@sXyt7oo`5>$K!cHLO@i3^RLm{3lNiU)$CE^wlA!_z) zjAn)}j|Q+FXSjz<071g}wGIYiL?yW;HLw8?WYG3$LlFmT=|SYmNC-b2XrHWBgZ-|phZfuPcs=nd zB|^1f&+Dgjsc#GEDiotTO$_#snHB1553#@DfXAR}zMRh-)}wcck76nZ-sXF#!WsPl zG;BZ^{ z@GqhhpsC^D-9U&P)5(CRBYUgcB}m~~u>#^3A9*T$ZJ-`X0NcWNRx~!y6WMF%RM3bZ zw?7?RfQW6Nuc23Qh+(#?mok_l{{X##sW}*mROzHv>C)Xlkc61m_G`cpeyVu8yqgo> zYzj9V;j%1J-z09d*2;ToMmo@%Pu3`VJxM;CI+puM_vE_n^kE?Vxp0g5Rip1{X32`@ z6fRUncV{`w5*q%={{Zvr)Z@a*0pFZtub~y%M7uQ{`~yFCiz1951m0arepHfxl0lM~ z;)=5|PZ5X?MMZm3*xrvxBlzpvSE6bCAuY;`I_bQ+Y57t1kV$8YIuxiNCLY>2_%UAW zwK#hztJdteRAHve* z?O?D+!i;~7>U0tNCUowOafbC31S*W=YUaXd>EU#j(UOtg@>>4UkM-0er1R(t&>f;YCp3|XQn)eE zfN&uxkPvjMi3BpIXBF;A`reU0-RtN*E11bBSDg=NC+nzggz4)WR_SX6Lkuye;TWg1 zh|ep&m`y9Num)60xs!z=c5z%;DhYo%D#}1oXzE$f{{T46abuz|MQ@mlKN?s60BZ{x z==ngBRlpL>Gr3H~U4?)$#+7vDDN?u(R=~k(nr~LOJSQp9u-GDud}-=Va3x26i2ndE z^>rFeM#xL}oGl9zFXFta)gEg1maE9}^7jZS$r1A0y+nG$&MDTO%9CWZi%seqp#+-r zakdElH6kE8pd?YXG-eL@kS8Hfc?jOE$P#JMzlXR07fz!D8UPR6`$3~;L(w!`e*=9# z9f2PS#xOs3G+Ik5hBJENpiO;P_dmJ5=R9TsEg}HYumHL9KgevA)-Vni4MwFocr5OU zMMMzso_pu6)&BsIH$=fw+{})Z+QsgPg1Lf|dYsVdXC>J%)xHc33DKb=?vYR(;!EqD z(Hfym1;w1YKDB5=Bk%Uf102tUT$1JoDIl)!&v;5!g*X`dBpUBzmxqH`P!b+k0E0-O zN61tplxUw*&bVSO5$UKH#ed|z@bGI;q9MpGI%2db99LI6q*)lsinl`7ovH?LjW_vlfY*wtXz`2H8N}r8eOeYe{He_ZVW}rES zcwb2)`5KG<>F?(<@Vq7e0KJyRa}koRxlcT=ys~`Spw7FTo@AQ#o3xYV`?r-rdjw;8 z&V9sP9tB(Az+pNxBy`k@fbSG{*E^tZ3Hi)yXEEJD)G^yX0=K?#L^=BA&M&tox(o~}Rdu4jGaf5x|G{`BPYspjKpzrcK!p}~qpIC#kJ z4M1}Uzqm509|`%)Y-i9*R}ndy;&!!%jjCMnM4xEOo~5h3l3o!F zMS~EC>S80fH1U|hyq|s+d#zjCEyQm$*>G2&`FLF>kCT-C9y|bv)!6g`k1-X^!xx~O zQ~~!%lg&@;+eBmtYUUM?pzWX7xw=RQe!%|X-aW!KTtJeQ9g8S5xY8En8lEs^h;s!U$ear@jVi;yubO3~38f#tgBJh~3AB1Wz;fMB4_O22wkNLTI3xbJ^d=-2LZ^ z-#PG${{Rnj-d_)9;7=vorFSQ?flrXp^}_>$;UtR;5dHURhG&A}54h|59?rNBp&eiL zWPDr}IN`7C+TFFd)3_h70mrGJp|dU`#5QB5I`@lH*9`hL3S1hr!s zf5h??i2ndZO$0)J{jrMQygQd2f|`QhO)MP`K6N|FKzjG8%6@@dNWVd@EOhEuDsV<> z2{(^U6qXEt)*!${hT`|Br>sLe)pKuS{K)bo8=MGbOTvUAIf#T8W z`8po4w{U3m1b}=8Q=USiKx2QzRME#Qvr9rX5;*A1j%J5oMtmOVM_>98Q_3QeM2km; zyz9{Cz;yug6gtK}rC0oPNSySx!i>bYMCE#1+E4hR)AS$D1B{cGS8 z1~-5?EmOi~6MLwj4$!0lDE;G)0oR{Oc*urR%~h*onNy)1yAKi60u4o`kMnRUYiQ(i z>Qoa#OuNa@ujFVb4o7p2f9qmH$1jtLPVcy9snDBSyMAERt?AMjCMjOYxG_b-mq&kB zYW6IoK=W1N3BS0U#E}Eg0bb0D331*?+NILkOXTG9NINO)wRif(_9}cVE)BFc_K(BehgM@x86_^Btq5{vpD8X+b*bVHI$M%1CvrI=U=xbHn87?=(GQ{ZLiK%d zF*vzDW9j|c7pOR|IWkp*D)alX(dKhgTr3w>w{n?!_ga?2GKg#1au{ZU>SHZLjOXMA zYUSI3ZD~1)AwX!`3GHsT#OR&I^=Iu80OOoV>hb!W#3a{HLth4x%q9UfNoYW9>)V;3*G!s|j}me!VnP>6%M zD7?*Zgx1sDBkdXPgs>G2+{tc`&Q^{1ihN1U#cBP`m5F{l@_L0C)~@Z{_+HWtly&Zf ztJ$)M5*t_0%Kgh4kq+?QNM1-^u|q=kNoTt4Zj~|#edc)!yqTw*+Rq+Nhi;W+dkut< zZge}T*pXh%fgllN=wvkwYDLxqEP^u{#aN-5XG&%`T98+~@&;vx|w+^~*EFp~|>an20 zf#d}t%DOm;zN8VV3XP!!a3 z7@^U`bUHhyI)gkYo*-2zj>Ta>pqhV*Ng+~AM}m>b7-d?1ZXt{&d_Lr;7@bwk8xZ(diI)wJn7d(6rAF_6TaJ0E+v*ek3#h;{{U7hDMYhxHt#I~%EB%9 zmoM^K7bub$VUjpzPsX16K_x{${jtpC?w!faXpbZaxpHb~6uGWEAFOzBo8`ZNjG4Hc*G~DbYf4a02Q4E9m|E?2 zCvEnt7^k**JH8U9CJ5ilGCdx0T|Do;)$G{Gf_M0|BC_$qhGGN)y_s@t?VvJ{qOAxp zBha~i4XAR7p6+Yf!GX1NksFHlB>wydv`Hiu(fMI&ds8s9y$q!v&>s(c{B+A= zl#D?c0JRywwvuU3lxp^LB1vM1>SuFSSd)~bq@u2FQcuxWd79+M)TpTKpL|M6%$?PN zt_5!o>t7#nKkW5y3rnw_1zZw&!#R#2vdN+XgGtf>e+3W~rco&*I5X!?l)i$){ys(NSH- z5fkL~sQ&<4D~Vy7?l_^#j+X^Dt5hj%X={?Hp5)d2(3Tp%x)Q@)*O-*h^VHM>NG@Ju z8425EuWSNkev$epsBO?A_DNQ~oZ?93_|ceu^H0iK$Y(CVchFQ2d$iHrpZr2qt zBA4@KZwvS0&1XC4QcpEBk(i*dwsKHssd}DMG;q%;iQp!TTnHe8B_K*SFDTIGk)v|* zjSpj2FCj{bAdy^4DMpXchkRB3Wtv`rc-GpNoy>cekj#pICyM0 z*&6pIO7?S?lG)tob^{Nv6J@N zlT!ku9^lsH;NwhUk`QX>2*N?|K^W{R_VmvdhqX%!qUX$lD8SJ^l{r-3t|CE&uWDRK z@VsXvD^yuQekcC`uMZr}Op}{yt}oki{R0YuEnix^xp`v4^1&-mz>&T@zyrZ7j2^pH z)`QwH_me}BR(Gj8>~Vw?mge2Jpas#Jg4`!=)j8>MA9fD`6CaxtjBr{54co@{6Bvw#4 zFv7q6)~RnKm}q+%KGRCNfI{(0Hwog$k)%h2*>P}@MtWiD{{RhhWjmC^j_B2Hg&?uD zkde>3n!US{Od-xusu_v1ls;QS*oqF4!e5ZtOT(ds@>9r$vfr{yiovk4py`qkbR(peA3P(~sXyyzhQ zy1Ac^{iC?6o8v5At5To{pNOcE5b)Qs@M98me>62HDA!V4f|1l??abto>}f8RLs;-j zegS|u4;QGbDFo2j$sjV$)op#nxP;22#DI?rm{dhC{FN1%iRSg^R#Ou@@)``SOBV+2 z&EHMH?xwN~*OE>h@#KI|k4dacsy=@BYPOtA_mfDbPmge#?S;QeF48+a!jV|wj%1mQQM&SXd4X=~Xm8q$v=JKU*> zD(V?bhqKDdQDw({A96(?&|F1wqB$$tfs2UxCnJQRE0UFSeA310wResLl{BQAPB2L! zK49|%8nQwyEce~2dr*x8SjlR917%Ab>Ft|2i=Z3LhTVc2B&X{7MW@LY=f;_PWj zbrzP8a*o~*a@8zcE4w#+Hx)KG^UpAIk01qmHsN>ZG(n|U6Nq1=$Z6psSzd7E`Fsc} z7_jME!}{08D?=O2>xQY2#^cb88i@mB~`0?gbp`P zwu%T3SRd=r%#v^g9$e4n~&aKZNb3h%fj?AivyQ03to3GZ2@$H`prW69w5hzYFPY*A~T$)JS|*C zButDP5t06iW>+Cj4piiS8zEA`P7foI`<=n#h{N*kFlz1hxVo3C{{S*Q$NDNEmSbP} zxh=lMUz|fMT-Kcou`T3UaTcK^4aKx0LPwQz4Y<_CM^M!tTdQa?lx?1;w?PfG19@es z$XKnAZ!5pu09528b6rFPWshP-T_d!7B-W2q*sqT{@Gh!mLnwSVT)0jV9>0%~R1 z8noNXARLiaBmUiS@DHWyQMRrTfzptDVi4>mN5 zxwgAaSg)9?V~Ne84I@59jar>2OOuO`-_cMVC6>}4V-4k#P)H)0%_08&HuYM%_LQVg zrelB}%xc)_EVhw?fxNO!BN*k1Rn_8Q*@X$^cZ$t3!Wr*SWoEaXHIgIhDk``b|Y{1X0`ucbbwzZf%pi)Pr+m5&r-n z^*U!x>Ut4bnyqo0+tegX$Ffur36kc|;E`&^RmAgy$w;VgjfRQJH=nr+LwHHR_@3=hzEf`DNU&Mq*zh!jIAb?I@7t_;E4`h2$ zE|b+q#wvJ6yL!9yq3n|L`pC@0)u9XTchM8aWA{0MinI#i;?taRp|5{0CC%6S1r=(7 zWSZOHkqud17-P^?-OmExxaKp`kixf;_d_8dR91%K<>?&93)~@*=fzm+OF{5ThocHk zNgsD(&{xOq7=6B5SG5U9tnPA}5!AIq&Uj!Bju*L7YueKQ#ro)RLPShS>TCPju>;<2 z?m=O(>;*(6#PEC*0w}5Bw4jv@+aOWA0{9qM@9356$tFl6hCNdVGAZKa9Kng0)KZ&c zZ|5x-Sj%MyDRX$ZmtQc4n3Fk)z_xu_=u{uDd0 zz@YhgAESy2Ha=&$q192rG_H7s{{Y4*N7^Q!gq3*6Z4FHVyS;tGAlvfr_bGotuXBs^ z3QX_)$bIYDQt7z1QKch-@cXD6in6=X9qkJ!a?N>AbSb z@LQ#MCAiYA`C8w@$z1t0dyf>u+iG5+91{}j*I@Q*Ruh;e)1y)8yM?3Bj$qRD0P_^x0XQa)FuCSwP8&uC6=`~7k9-XhywQUS z9a)YA4(P$C^9!D4hg4StkHf<8_;$9{{zarbl8c0UgiR%ej|jywc{5a&@w>N~DhV_? zs<WU#SXeSY=0!X(=hII?uLb{%;Fa!po&O%-S_QM&zR;ioq~r8PXI5R zyVHz`5af7pa}@ABWh?=Ev|9IqA$d$4)%{|^y z-N(Qx$|n(!PeKkxD=&*n2%|-TLGH~`&oMxGNZ^Ws1xZ103`_?+)+7d9FfJRrinR$O z!TN9yEd@;zh_4CeOK#)Oa5tc^ntq7*2vv?(RB%Tj(ts)Z~H?ScHJejDLQju~( zLFy?jMDRfTlHyvq`xk!95Apdp740bv+|HhDRtzrS`K5a*%uVv1N}6FR2Z0>VA8Zz@ zWO4*H$Pp0sa6IvTsi$rrrNbV;PDneL!5kuNi z(oW!7*}{O2H<6m2>=b!%yrZ*FxRK-sk$Ou+hFMeLd1)^T%j$uvh1A)@fGSJP?C%~O z8aJ)ba3{7^cli-a0m14&o+YH9zhTL#tz-ZWWSvb5Wds_B+D~&FGVlt`0 zxkiN4W?kO7e`jU~mH?iCYW~zgYLQ!dkBkn4)RV=bqj4V`kB&6YRQ06hZKt*&d42K} z6IMitZ4;@ErR{TS=@eeBX)VBp^4ceT8@e2G0)zxyi;cuZ`)D4o#6}5Wgt&YU3GVrB zoSav&XM4D%?I=9s6g`?jm$r6l5)W|94>Te#K%k2DoCubQ6d$ZF!fE}YN>Q*tBkrqNE%d~D1esb(5&)~<*FGHct@Kp zf8_nuzB;fjZmn(l==FGp97$|ZVh52dO?wtpGo&;nN18`~ph}C2yVtb}%^l1U7t#BM zsEolSnlcIH%#ql5Nq7oWv)t$k9KKS7Jk{zSYCX(RIL7#?P^SV|3M5VD&q6sv+JII^ z1))pn7EwVy8mTqRfqK+qns!@y!Ph{J~?qc;IRp~KL1Ns!gevB`^*YIdtPO(coUOA0%D$fIiFAF1~I0RH!jc!X4< z5+Lk@dJ)2Iyysm9*cAW|1^9r(2dO2qQbQcanHha+*_`iZ4#$lBqpKJMhSttEJXiGz zP!M4;SxlkoSe4xf!BR&t{Epgkl?9+g{8S1a(ohGW&VN9pf*PLHMvVgnZ?^ zl<**@194)760sdTtH1u`4vM1yQ@cw9Zb(-qr*J2=j+HbMYxctVW~FlOBV269xv5-3 zzg+>NZ^kq3G!Is?@Dcpf0sQTT8CYZyzn!cO2K`Xp9%ePv&Wxa*5M4 zMhG<{Y{EX~li@BokH(+k&~raCQ{1zq&Ac2~%60=4Zj2@q@@t<>E4%b2lcGj2C_eme zT62~?nEH-}lweQarYa&z4=mT*L0Kn;y)t_EFu{q`701exn1A#=tm|_TDY_P3%qyoB z7$kQ5nBsvh@;_H&)c*jZn-3hHam7S57cpG~t;5O$qFG+OmNXX9^4%z5_(pK=IjAOx z$TtI!LJe4FK`+5F9;#|#q_>9XJ_mh3t1E;uJg-(fxKi|)D8>GGk>@>-RlG=1`spgr zfkHkF zwX8hED_+q9ivg5I=tWw~&ebIhVP7(8+TGGu^&$K&uH5^R$_DA#)vMXZcx@70+1{`D z+}TR{9sJbPGKpn~OeK<-Wu40@eA`=aTv-6Tp z+qDFY7`Gjsy^*86tf!Qu0ZyFEvx#0)*#f@o-=<}H;0UhlrG8Qm zMxsHQ=v@gU$C6@^LhR=xz^sQ^Es~8#$lyIp-~s09v8%!1CUf?=Ac4=LgK!vRlI8w z7wSMBE<+O$0P?GN#Asicz^|&67$6B;5k@uueiWPKAJxq>2PPr`+BCz?}e|Lr@+C#EB@^ ziAG>W&~dDz$Qn!B|!s1@I?>;O5)ts z@KwE;o-0{p2#)n@a)mDa^*`k3D#F%3c7|SS @efOz8MAI2N<5-E9vtNT~?m}2Cd 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 payI3fEGFrBm~pI diff --git a/samples/js-menu/data/menu.json b/samples/js-menu/data/menu.json deleted file mode 100644 index d46739205..000000000 --- a/samples/js-menu/data/menu.json +++ /dev/null @@ -1,97 +0,0 @@ -[ - { - "title": "Mozzarella Sticks", - "price": 8, - "description": "Crispy fried mozzarella sticks served with marinara sauce." - }, - { - "title": "Chicken Wings", - "price": 10, - "description": "Crispy fried chicken wings tossed in your choice of sauce." - }, - { - "title": "Nachos", - "price": 12, - "description": "Crispy tortilla chips topped with melted cheese, chili, sour cream, and salsa." - }, - { - "title": "Onion Rings", - "price": 7, - "description": "Crispy fried onion rings served with ranch dressing." - }, - { - "title": "French Fries", - "price": 5, - "description": "Crispy fried french fries." - }, - { - "title": "Mashed Potatoes", - "price": 6, - "description": "Creamy mashed potatoes." - }, - { - "title": "Coleslaw", - "price": 4, - "description": "Homemade coleslaw." - }, - { - "title": "Classic Cheeseburger", - "price": 12, - "description": "A juicy beef patty topped with melted American cheese, lettuce, tomato, and onion on a toasted bun." - }, - { - "title": "Bacon Cheeseburger", - "price": 14, - "description": "A classic cheeseburger with the addition of crispy bacon." - }, - { - "title": "Mushroom Swiss Burger", - "price": 15, - "description": "A beef patty topped with sautéed mushrooms, melted Swiss cheese, and a creamy horseradish sauce." - }, - { - "title": "Chicken Sandwich", - "price": 13, - "description": "A crispy chicken breast on a toasted bun with lettuce, tomato, and your choice of sauce." - }, - { - "title": "Pulled Pork Sandwich", - "price": 14, - "description": "Slow-cooked pulled pork on a toasted bun with coleslaw and barbecue sauce." - }, - { - "title": "Reuben Sandwich", - "price": 15, - "description": "Thinly sliced corned beef, Swiss cheese, sauerkraut, and Thousand Island dressing on rye bread." - }, - { - "title": "House Salad", - "price": 8, - "description": "Mixed greens with your choice of dressing." - }, - { - "title": "Caesar Salad", - "price": 9, - "description": "Romaine lettuce with croutons, Parmesan cheese, and Caesar dressing." - }, - { - "title": "Greek Salad", - "price": 10, - "description": "Mixed greens with feta cheese, olives, tomatoes, cucumbers, and red onions." - }, - { - "title": "Chocolate Lava Cake", - "price": 8, - "description": "A warm, gooey chocolate cake with a molten chocolate center." - }, - { - "title": "Apple Pie", - "price": 7, - "description": "A classic apple pie with a flaky crust and warm apple filling." - }, - { - "title": "Cheesecake", - "price": 8, - "description": "A creamy cheesecake with a graham cracker crust." - } -] diff --git a/samples/js-menu/package.json b/samples/js-menu/package.json deleted file mode 100644 index 1488af432..000000000 --- a/samples/js-menu/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "menu", - "version": "1.0.0", - "description": "Genkit samples for a menu understanding app", - "main": "lib/index.js", - "scripts": { - "start": "node lib/index.js", - "genkit:dev": "genkit start -- tsx --watch src/index.ts", - "compile": "tsc", - "build": "npm run build:clean && npm run compile", - "build:clean": "rimraf ./lib", - "build:watch": "tsc --watch", - "build-and-run": "npm run build && node lib/index.js" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "genkit": "^0.9.0-rc || ^0.9", - "@genkit-ai/dev-local-vectorstore": "^0.9.0-rc || ^0.9", - "@genkit-ai/firebase": "^0.9.0-rc || ^0.9", - "@genkit-ai/evaluator": "^0.9.0-rc || ^0.9", - "@genkit-ai/vertexai": "^0.9.0-rc || ^0.9" - }, - "devDependencies": { - "genkit-cli": "^0.9.0-rc || ^0.9", - "rimraf": "^6.0.1", - "typescript": "^5.3.3" - } -} diff --git a/samples/js-menu/src/01/example.json b/samples/js-menu/src/01/example.json deleted file mode 100644 index 10c76a2ea..000000000 --- a/samples/js-menu/src/01/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "input": { - "question": "Which of your burgers would you recommend for someone like me who loves bacon?" - } -} diff --git a/samples/js-menu/src/01/prompts.ts b/samples/js-menu/src/01/prompts.ts deleted file mode 100644 index c5157cf1e..000000000 --- a/samples/js-menu/src/01/prompts.ts +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { GenerateRequest } from '@genkit-ai/ai/model'; -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { ai } from '../genkit.js'; -import { MenuQuestionInput, MenuQuestionInputSchema } from '../types'; - -// Define a prompt to handle a customer question about the menu. -// This prompt uses definePrompt directly. - -export const s01_vanillaPrompt = ai.definePrompt( - { - name: 's01_vanillaPrompt', - input: { schema: MenuQuestionInputSchema }, - }, - async (input: MenuQuestionInput): Promise => { - const promptText = ` - You are acting as a helpful AI assistant named "Walt" that can answer - questions about the food available on the menu at Walt's Burgers. - Customer says: ${input.question} - `; - - return { - messages: [{ role: 'user', content: [{ text: promptText }] }], - config: { temperature: 0.3 }, - }; - } -); - -// Define another prompt which uses the Dotprompt library -// that also gives us a type-safe handlebars template system, -// and well-defined output schemas. - -export const s01_staticMenuDotPrompt = ai.definePrompt( - { - name: 's01_staticMenuDotPrompt', - model: gemini15Flash, - input: { schema: MenuQuestionInputSchema }, - output: { format: 'text' }, - }, - ` -You are acting as a helpful AI assistant named "Walt" that can answer -questions about the food available on the menu at Walt's Burgers. -Here is today's menu: - -- The Regular Burger $12 - The classic charbroiled to perfection with your choice of cheese - -- The Fancy Burger $13 - Classic burger topped with bacon & Blue Cheese - -- The Bacon Burger $13 - Bacon cheeseburger with your choice of cheese. - -- Everything Burger $14 - Heinz 57 sauce, American cheese, bacon, fried egg & crispy onion bits - -- Chicken Breast Sandwich $12 - Tender juicy chicken breast on a brioche roll. - Grilled, blackened, or fried - -Our fresh 1/2 lb. beef patties are made using choice cut -brisket, short rib & sirloin. Served on a toasted -brioche roll with chips. Served with lettuce, tomato & pickles. -Onions upon request. Substitute veggie patty $2 - -Answer this customer's question, in a concise and helpful manner, -as long as it is about food. - -Question: -{{question}} ? -` -); diff --git a/samples/js-menu/src/02/example.json b/samples/js-menu/src/02/example.json deleted file mode 100644 index 57a597769..000000000 --- a/samples/js-menu/src/02/example.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "question": "I'd like to try something spicy. What do you recommend?" -} diff --git a/samples/js-menu/src/02/flows.ts b/samples/js-menu/src/02/flows.ts deleted file mode 100644 index 4b3f66b8d..000000000 --- a/samples/js-menu/src/02/flows.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ai } from '../genkit.js'; -import { AnswerOutputSchema, MenuQuestionInputSchema } from '../types'; -import { s02_dataMenuPrompt } from './prompts'; - -// Define a flow which generates a response from the prompt. - -export const s02_menuQuestionFlow = ai.defineFlow( - { - name: 's02_menuQuestion', - inputSchema: MenuQuestionInputSchema, - outputSchema: AnswerOutputSchema, - }, - async (input) => { - const { text } = await s02_dataMenuPrompt({ question: input.question }); - return { answer: text }; - } -); diff --git a/samples/js-menu/src/02/prompts.ts b/samples/js-menu/src/02/prompts.ts deleted file mode 100644 index 9ca0519ed..000000000 --- a/samples/js-menu/src/02/prompts.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { ai } from '../genkit.js'; -import { MenuQuestionInputSchema } from '../types'; -import { menuTool } from './tools'; - -// The prompt uses a tool which will load the menu data, -// if the user asks a reasonable question about the menu. - -export const s02_dataMenuPrompt = ai.definePrompt( - { - name: 's02_dataMenu', - model: gemini15Flash, - input: { schema: MenuQuestionInputSchema }, - output: { format: 'text' }, - tools: [menuTool], - }, - ` -You are acting as a helpful AI assistant named Walt that can answer -questions about the food available on the menu at Walt's Burgers. - -Answer this customer's question, in a concise and helpful manner, -as long as it is about food on the menu or something harmless like sports. -Use the tools available to answer menu questions. -DO NOT INVENT ITEMS NOT ON THE MENU. - -Question: -{{question}} ? -` -); diff --git a/samples/js-menu/src/02/tools.ts b/samples/js-menu/src/02/tools.ts deleted file mode 100644 index 0c280f949..000000000 --- a/samples/js-menu/src/02/tools.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { z } from 'genkit'; -import { ai } from '../genkit.js'; -import { MenuItem, MenuItemSchema } from '../types'; - -const menuData: Array = require('../../data/menu.json'); - -export const menuTool = ai.defineTool( - { - name: 'todaysMenu', - description: "Use this tool to retrieve all the items on today's menu", - inputSchema: z.object({}), - outputSchema: z.object({ - menuData: z - .array(MenuItemSchema) - .describe('A list of all the items on the menu'), - }), - }, - async () => Promise.resolve({ menuData: menuData }) -); diff --git a/samples/js-menu/src/03/chats.ts b/samples/js-menu/src/03/chats.ts deleted file mode 100644 index 4a3ab51be..000000000 --- a/samples/js-menu/src/03/chats.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { MessageData, MessageSchema } from '@genkit-ai/ai/model'; -import { z } from 'genkit'; - -// Our flow will take a sessionId along with each question to track the chat history. -// The host application should keep track of these ids somewhere. - -export const ChatSessionInputSchema = z.object({ - sessionId: z.string(), - question: z.string(), -}); - -// The flow will respond with an array of messages, -// which includes all history up until that point -// plus the last exchange with the model. - -export const ChatSessionOutputSchema = z.object({ - sessionId: z.string(), - history: z.array(MessageSchema), -}); - -export type ChatHistory = Array; - -// This is a very simple local storage for chat history. -// Each conversation is identified by a sessionId generated by the application. -// The constructor accepts a preamble of messages, which serve as a system prompt. - -export class ChatHistoryStore { - private preamble: ChatHistory; - private sessions: Map = new Map(); - - constructor(preamble: ChatHistory = []) { - this.preamble = preamble; - } - - write(sessionId: string, history: ChatHistory) { - this.sessions.set(sessionId, history); - } - - read(sessionId: string): ChatHistory { - return this.sessions.get(sessionId) || this.preamble; - } -} diff --git a/samples/js-menu/src/03/example.json b/samples/js-menu/src/03/example.json deleted file mode 100644 index 19ed21af5..000000000 --- a/samples/js-menu/src/03/example.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sessionId": "session123", - "question": "Do you have anything healthy on this menu?" -} diff --git a/samples/js-menu/src/03/flows.ts b/samples/js-menu/src/03/flows.ts deleted file mode 100644 index f71bc3a98..000000000 --- a/samples/js-menu/src/03/flows.ts +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { MessageData } from '@genkit-ai/ai/model'; -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { run } from 'genkit'; -import { ai } from '../genkit.js'; -import { MenuItem } from '../types'; -import { - ChatHistoryStore, - ChatSessionInputSchema, - ChatSessionOutputSchema, -} from './chats'; - -// Load the menu data from a JSON file. -const menuData = require('../../data/menu.json') as Array; - -// Render the preamble prompt that seeds our chat history. -const preamble: Array = [ - { - role: 'user', - content: [ - { - text: "Hi. What's on the menu today?", - }, - ], - }, - { - role: 'user', - content: [ - { - text: - 'I am Walt, a helpful AI assistant here at the restaurant.\n' + - 'I can answer questions about the food on the menu or any other questions\n' + - "you have about food in general. I probably can't help you with anything else.\n" + - "Here is today's menu: \n" + - menuData - .map((r) => `- ${r.title} ${r.price}\n${r.description}`) - .join('\n') + - 'Do you have any questions about the menu?\n', - }, - ], - }, -]; - -// A simple local storage for chat session history. -// You should probably actually use Firestore for this. -const chatHistoryStore = new ChatHistoryStore(preamble); - -// Define a flow which generates a response to each question. - -export const s03_multiTurnChatFlow = ai.defineFlow( - { - name: 's03_multiTurnChat', - inputSchema: ChatSessionInputSchema, - outputSchema: ChatSessionOutputSchema, - }, - async (input) => { - // First fetch the chat history. We'll wrap this in a run block. - // If we were going to a database for the history, - // we might want to have that db result captured in the trace. - let history = await run('fetchHistory', async () => - chatHistoryStore.read(input.sessionId) - ); - - // Generate the response - const llmResponse = await ai.generate({ - model: gemini15Flash, - messages: history, - prompt: { - text: input.question, - }, - }); - - // Add the exchange to the history store and return it - history = llmResponse.messages; - chatHistoryStore.write(input.sessionId, history); - return { - sessionId: input.sessionId, - history: history, - }; - } -); diff --git a/samples/js-menu/src/03/prompts.ts b/samples/js-menu/src/03/prompts.ts deleted file mode 100644 index d332da7b8..000000000 --- a/samples/js-menu/src/03/prompts.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { ai } from '../genkit.js'; -import { DataMenuQuestionInputSchema } from '../types'; - -// This prompt will generate two messages when rendered. -// These two messages will be used to seed the exchange with the model. - -export const s03_chatPreamblePrompt = ai.definePrompt( - { - name: 's03_chatPreamble', - model: gemini15Flash, - input: { schema: DataMenuQuestionInputSchema }, - output: { format: 'text' }, - config: { temperature: 0.3 }, - }, - ` - {{ role "user" }} - Hi. What's on the menu today? - - {{ role "model" }} - I am Walt, a helpful AI assistant here at the restaurant. - I can answer questions about the food on the menu or any other questions - you have about food in general. I probably can't help you with anything else. - Here is today's menu: - {{#each menuData~}} - - {{this.title}} \${{this.price}} - {{this.description}} - {{~/each}} - Do you have any questions about the menu? -` -); diff --git a/samples/js-menu/src/04/example.indexMenuItems.json b/samples/js-menu/src/04/example.indexMenuItems.json deleted file mode 100644 index d528d8ae9..000000000 --- a/samples/js-menu/src/04/example.indexMenuItems.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "title": "White Meat Crispy Chicken Wings", - "description": "All-white meat chicken wings tossed in your choice of wing sauce. Choose from classic buffalo, honey bbq, garlic parmesan, or sweet & sour", - "price": 12.0 - }, - { - "title": "Cheese Fries", - "description": "Fresh fries covered with melted cheddar cheese and bacon", - "price": 8.0 - }, - { - "title": "Reuben", - "description": "Classic Reuben sandwich with corned beef, sauerkraut, Swiss cheese, and Thousand Island dressing on grilled rye bread.", - "price": 12.0 - }, - { - "title": "Grilled Chicken Club Wrap", - "description": "Grilled chicken, bacon, lettuce, tomato, pickles, and cheddar cheese wrapped in a spinach tortilla, served with your choice of dressing", - "price": 12.0 - }, - { - "title": "Buffalo Chicken Sandwich", - "description": "Fried chicken breast coated in your choice of wing sauce, topped with lettuce, tomato, onion, and pickles on a toasted brioche roll.", - "price": 12.0 - }, - { - "title": "Half Cuban Sandwich", - "description": "Slow roasted pork butt, ham, Swiss, and yellow mustard on a toasted baguette", - "price": 12.0 - }, - { - "title": "The Albie Burger", - "description": "Classic burger topped with bacon, provolone, banana peppers, and chipotle mayo", - "price": 13.0 - }, - { - "title": "57 Chevy Burger", - "description": "Heaven burger with your choice of cheese", - "price": 14.0 - }, - { - "title": "Chicken Caesar Wrap", - "description": "Tender grilled chicken, romaine lettuce, croutons, and Parmesan cheese tossed in a creamy Caesar dressing and wrapped in a spinach tortilla", - "price": 10.0 - }, - { - "title": "Kids Hot Dog", - "description": "Kids under 12", - "price": 5.0 - }, - { - "title": "Chicken Fingers", - "description": "Tender chicken strips, grilled or fried", - "price": 8.0 - } -] diff --git a/samples/js-menu/src/04/example.menuQuestion.json b/samples/js-menu/src/04/example.menuQuestion.json deleted file mode 100644 index 21c7c4647..000000000 --- a/samples/js-menu/src/04/example.menuQuestion.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "question": "I'd like something cheesy!" -} diff --git a/samples/js-menu/src/04/flows.ts b/samples/js-menu/src/04/flows.ts deleted file mode 100644 index c223dbe0e..000000000 --- a/samples/js-menu/src/04/flows.ts +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Document } from '@genkit-ai/ai/retriever'; -import { - devLocalIndexerRef, - devLocalRetrieverRef, -} from '@genkit-ai/dev-local-vectorstore'; -import { z } from 'genkit'; -import { ai } from '../genkit.js'; -import { - AnswerOutputSchema, - MenuItem, - MenuItemSchema, - MenuQuestionInputSchema, -} from '../types'; -import { s04_ragDataMenuPrompt } from './prompts'; - -// Define a flow which indexes items on the menu. - -export const s04_indexMenuItemsFlow = ai.defineFlow( - { - name: 's04_indexMenuItems', - inputSchema: z.array(MenuItemSchema), - outputSchema: z.object({ rows: z.number() }), - }, - async (menuItems) => { - // Store each document with its text indexed, - // and its original JSON data as its metadata. - const documents = menuItems.map((menuItem) => { - const text = `${menuItem.title} ${menuItem.price} \n ${menuItem.description}`; - return Document.fromText(text, menuItem); - }); - await ai.index({ - indexer: devLocalIndexerRef('menu-items'), - documents, - }); - return { rows: menuItems.length }; - } -); - -// Define a flow which generates a response to the question, -// by retrieving relevant items from the menu. -// View this flow's trace to see the context that was retrieved, -// and how it was included in the prompt. - -export const s04_ragMenuQuestionFlow = ai.defineFlow( - { - name: 's04_ragMenuQuestion', - inputSchema: MenuQuestionInputSchema, - outputSchema: AnswerOutputSchema, - }, - async (input) => { - // Retrieve the 3 most relevant menu items for the question - const docs = await ai.retrieve({ - retriever: devLocalRetrieverRef('menu-items'), - query: input.question, - options: { k: 3 }, - }); - const menuData: Array = docs.map( - (doc) => (doc.metadata || {}) as MenuItem - ); - - // Generate the response - const response = await s04_ragDataMenuPrompt({ - menuData: menuData, - question: input.question, - }); - return { answer: response.text }; - } -); diff --git a/samples/js-menu/src/04/prompts.ts b/samples/js-menu/src/04/prompts.ts deleted file mode 100644 index 7ed500a5f..000000000 --- a/samples/js-menu/src/04/prompts.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { ai } from '../genkit.js'; -import { DataMenuQuestionInputSchema } from '../types'; - -export const s04_ragDataMenuPrompt = ai.definePrompt( - { - name: 's04_ragDataMenu', - model: gemini15Flash, - input: { schema: DataMenuQuestionInputSchema }, - output: { format: 'text' }, - config: { temperature: 0.3 }, - }, - ` -You are acting as Walt, a helpful AI assistant here at the restaurant. -You can answer questions about the food on the menu or any other questions -customers have about food in general. - -Here are some items that are on today's menu that are relevant to -helping you answer the customer's question: -{{#each menuData~}} -- {{this.title}} \${{this.price}} - {{this.description}} -{{~/each}} - -Answer this customer's question: -{{question}}? -` -); diff --git a/samples/js-menu/src/05/example.visualMenuQuestion.json b/samples/js-menu/src/05/example.visualMenuQuestion.json deleted file mode 100644 index 3c49f36d0..000000000 --- a/samples/js-menu/src/05/example.visualMenuQuestion.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "question": "What kind of burger buns do you have?" -} diff --git a/samples/js-menu/src/05/flows.ts b/samples/js-menu/src/05/flows.ts deleted file mode 100644 index f884c9181..000000000 --- a/samples/js-menu/src/05/flows.ts +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs'; -import { z } from 'genkit'; -import path from 'path'; -import { ai } from '../genkit.js'; -import { - AnswerOutputSchema, - MenuQuestionInputSchema, - TextMenuQuestionInputSchema, -} from '../types'; -import { s05_readMenuPrompt, s05_textMenuPrompt } from './prompts'; - -// Define a flow that takes an image, passes it to Gemini Vision Pro, -// and extracts all of the text from the photo of the menu. -// Note that this example uses a hard-coded image file, as image input -// is not currently available in the Development UI runners. - -export const s05_readMenuFlow = ai.defineFlow( - { - name: 's05_readMenuFlow', - inputSchema: z.void(), // input is data/menu.jpeg - outputSchema: z.object({ menuText: z.string() }), - }, - async (unused) => { - const imageDataUrl = await inlineDataUrl('menu.jpeg', 'image/jpeg'); - const response = await s05_readMenuPrompt({ - imageUrl: imageDataUrl, - }); - return { menuText: response.text }; - } -); - -// Define a flow which generates a response to the question. -// Just returns the llm's text response to the question. - -export const s05_textMenuQuestionFlow = ai.defineFlow( - { - name: 's05_textMenuQuestion', - inputSchema: TextMenuQuestionInputSchema, - outputSchema: AnswerOutputSchema, - }, - async (input) => { - const response = await s05_textMenuPrompt({ - menuText: input.menuText, - question: input.question, - }); - return { answer: response.text }; - } -); - -// Define a third composite flow which chains the first two flows - -export const s05_visionMenuQuestionFlow = ai.defineFlow( - { - name: 's05_visionMenuQuestion', - inputSchema: MenuQuestionInputSchema, - outputSchema: AnswerOutputSchema, - }, - async (input) => { - // Run the first flow to read the menu image. - const menuResult = await s05_readMenuFlow(); - - // Pass the text of the menu and the question to the second flow - // and return the answer as this output. - return s05_textMenuQuestionFlow({ - question: input.question, - menuText: menuResult.menuText, - }); - } -); - -// Helper to read a local file and inline it as a data url - -async function inlineDataUrl( - imageFilename: string, - contentType: string -): Promise { - const filePath = path.join('./data', imageFilename); - const imageData = fs.readFileSync(filePath); - return `data:${contentType};base64,${imageData.toString('base64')}`; -} diff --git a/samples/js-menu/src/05/prompts.ts b/samples/js-menu/src/05/prompts.ts deleted file mode 100644 index 894edd931..000000000 --- a/samples/js-menu/src/05/prompts.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Flash } from '@genkit-ai/vertexai'; -import { z } from 'genkit'; -import { ai } from '../genkit.js'; -import { TextMenuQuestionInputSchema } from '../types'; - -export const s05_readMenuPrompt = ai.definePrompt( - { - name: 's05_readMenu', - model: gemini15Flash, - input: { - schema: z.object({ - imageUrl: z.string(), - }), - }, - output: { format: 'text' }, - config: { temperature: 0.1 }, - }, - ` -Extract _all_ of the text, in order, -from the following image of a restaurant menu. - -{{media url=imageUrl}} -` -); - -export const s05_textMenuPrompt = ai.definePrompt( - { - name: 's05_textMenu', - model: gemini15Flash, - input: { schema: TextMenuQuestionInputSchema }, - output: { format: 'text' }, - config: { temperature: 0.3 }, - }, - ` -You are acting as Walt, a helpful AI assistant here at the restaurant. -You can answer questions about the food on the menu or any other questions -customers have about food in general. - -Here is the text of today's menu to help you answer the customer's question: -{{menuText}} - -Answer this customer's question: -{{question}}? -` -); diff --git a/samples/js-menu/src/genkit.ts b/samples/js-menu/src/genkit.ts deleted file mode 100644 index 6109f4b2a..000000000 --- a/samples/js-menu/src/genkit.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { devLocalVectorstore } from '@genkit-ai/dev-local-vectorstore'; -import { textEmbedding004, vertexAI } from '@genkit-ai/vertexai'; -import { genkit } from 'genkit'; - -// Initialize Genkit - -export const ai = genkit({ - plugins: [ - vertexAI({ location: 'us-central1' }), - devLocalVectorstore([ - { - indexName: 'menu-items', - embedder: textEmbedding004, - embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' }, - }, - ]), - ], -}); diff --git a/samples/js-menu/src/index.ts b/samples/js-menu/src/index.ts deleted file mode 100644 index 5776c2268..000000000 --- a/samples/js-menu/src/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Export all of the example prompts and flows - -// 01 -export { s01_staticMenuDotPrompt, s01_vanillaPrompt } from './01/prompts'; -// 02 -export { s02_menuQuestionFlow } from './02/flows'; -export { s02_dataMenuPrompt } from './02/prompts'; -// 03 -export { s03_multiTurnChatFlow } from './03/flows'; -export { s03_chatPreamblePrompt } from './03/prompts'; -// 04 -export { s04_indexMenuItemsFlow, s04_ragMenuQuestionFlow } from './04/flows'; -export { s04_ragDataMenuPrompt } from './04/prompts'; -// 05 -export { - s05_readMenuFlow, - s05_textMenuQuestionFlow, - s05_visionMenuQuestionFlow, -} from './05/flows'; -export { s05_readMenuPrompt, s05_textMenuPrompt } from './05/prompts'; diff --git a/samples/js-menu/src/types.ts b/samples/js-menu/src/types.ts deleted file mode 100644 index efe7bbc99..000000000 --- a/samples/js-menu/src/types.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as z from 'zod'; - -// The data model for a restaurant menu - -export const MenuItemSchema = z.object({ - title: z.string().describe('The name of the menu item'), - description: z - .string() - .describe('Details including ingredients and preparation'), - price: z.number().describe('Price in dollars'), -}); - -export type MenuItem = z.infer; - -// Input schema for a question about the menu - -export const MenuQuestionInputSchema = z.object({ - question: z.string(), -}); - -// Output schema containing an answer to a question - -export const AnswerOutputSchema = z.object({ - answer: z.string(), -}); - -// Input schema for a question about the menu -// where the menu is provided in JSON data. - -export const DataMenuQuestionInputSchema = z.object({ - menuData: z.array(MenuItemSchema), - question: z.string(), -}); - -// Input schema for a question about the menu -// where the menu is provided as unstructured text. - -export const TextMenuQuestionInputSchema = z.object({ - menuText: z.string(), - question: z.string(), -}); - -// Also export Typescript types for each of these Zod schemas -export type MenuQuestionInput = z.infer; -export type AnswerOutput = z.infer; -export type DataMenuPromptInput = z.infer; -export type TextMenuQuestionInput = z.infer; diff --git a/samples/js-menu/tsconfig.json b/samples/js-menu/tsconfig.json deleted file mode 100644 index e51f33ae3..000000000 --- a/samples/js-menu/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "module": "NodeNext", - "noImplicitReturns": true, - "noUnusedLocals": false, - "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2017", - "skipLibCheck": true, - "esModuleInterop": true - }, - "compileOnSave": true, - "include": ["src"] -} diff --git a/samples/js-schoolAgent/README.md b/samples/js-schoolAgent/README.md deleted file mode 100644 index 35d91f3ab..000000000 --- a/samples/js-schoolAgent/README.md +++ /dev/null @@ -1,107 +0,0 @@ -# School Agent Sample - -A demonstration of a conversational, multi-agent assistant for a school system using GenKit and Google's Gemini Pro. This agent helps parents with attendance reporting and school information queries. - -In this example we have a RoutingAgent which is the main, general-purpose agent. -This agent comes equipped with additional specialized agents, that it can hand-off to as needed. - -These specialized agents are represented as prompts and embedded as tools to the original agent. - -## Agent Tools & Capabilities - -- **Agent Structure**: - - `RoutingAgent`: Main entry point and router, handling general queries and delegating to specialized agents - - `AttendanceAgent`: Specialized agent for absence/tardy reporting - - `GradesAgent`: Manages grade-related inquiries and academic performance - -Each specialized agent has its own set of tools that are only accessible to that specific agent: - -- **AttendanceAgent**: - - `reportAbsence`: Submit absence notifications - - `reportTardy`: Report late arrivals -- **GradesAgent**: - - `getRecentGrades`: Retrieve latest grade information - -The main RoutingAgent cannot directly access these specialized tools - it can only access its own tools and delegate to the specialized agents. This means the specialized agent descriptions need to clearly communicate their capabilities, since the main agent relies on these descriptions for appropriate routing. - -For example, when the RoutingAgent sees a grade-related query, it needs to know from the GradesAgent's description that it can handle grade lookups, even though it can't directly see the `getRecentGrades` tool. - -This architectural pattern: - -- Maintains clear separation of concerns -- Allows specialized agents to evolve independently -- Allows scaling up to a larger number of tools - -NOTE: The agent description is how the generalized agent knows what tools the specialized agent has available. An agent description that is too general may cause the routing agent to mess up by not knowing that a certain functionality was actually available. - -## Prerequisites - -- Node.js and genkit CLI installed -- Google AI API key - -## Getting Started - -1. Install dependencies: - -```bash -npm install -``` - -2. Set up your Google AI API key: - -```bash -export GOOGLE_GENAI_API_KEY=your_api_key_here -``` - -3. Start the development server: - -```bash -npm run genkit:dev -``` - -In your terminal, a commandline chat interface should show up: - -``` -Telemetry API running on http://localhost:4033 -Genkit Developer UI: http://localhost:4000 - -> school-agent@1.0.0 dev -> tsx --no-warnings --watch src/terminal.ts - -bell> Hi there, my name is Bell and I'm here to help! 👋🎉 I'm your friendly AI assistant for parents of Sparkyville High School. I can answer your questions about the school, events, grades, and more. Just ask me! 😊 - -prompt> [insert your chats here] -``` - -You can feel free to tweak the sample. The project builds in watch mode, so any changes will be picked up immediately and should restart the conversation. - -## Usage - -The agent uses a multi-agent architecture: - -- Routing Agent: Acts as the main entry point and router, handling general queries while delegating specialized requests to appropriate agents -- Attendance Agent: Specialized agent focused on absence and tardy reporting -- Grades Agent: Manages academic performance queries, grade reports, and transcript requests - -Example queries: - -- "Evelyn will be late today" -- "What are the upcoming holidays I should be aware of?" -- "Show me my child's current grades" - -## Development - -- `npm run dev` - Run in development mode with hot reloading -- `npm run build` - Build the project -- `npm start` - Run the built version - -## Project Structure - -- `src/` - - `agents/` - - `routingAgent.ts` - Main agent that uses other agents as tools - - `attendanceAgent.ts` - Specialized attendance agent - - `gradesAgent.ts` - Academic performance and grades agent - - `tools.ts` - Tool definitions - - `types.ts` - TypeScript types - - `data.ts` - Sample data diff --git a/samples/js-schoolAgent/package.json b/samples/js-schoolAgent/package.json deleted file mode 100644 index 3ebc1299b..000000000 --- a/samples/js-schoolAgent/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "school-agent", - "version": "1.0.0", - "description": "", - "main": "lib/index.js", - "scripts": { - "start": "node lib/terminal.js", - "dev": "tsx --no-warnings --watch src/terminal.ts", - "genkit:dev": "genkit start -- npm run dev", - "compile": "tsc", - "build": "pnpm build:clean && npm run compile", - "build:clean": "rimraf ./lib", - "build:watch": "tsc --watch" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "genkit": "^0.9.3", - "@genkit-ai/googleai": "^0.9.3", - "google-auth-library": "^9.6.3", - "llm-chunk": "^0.0.1", - "pdf-parse": "^1.1.1" - }, - "devDependencies": { - "genkit-cli": "^0.9.3", - "@types/pdf-parse": "^1.1.4", - "cross-env": "^7.0.3", - "rimraf": "^6.0.1", - "tsx": "^4.19.1", - "typescript": "^5.3.3" - } -} diff --git a/samples/js-schoolAgent/prompts/myPrompt.prompt b/samples/js-schoolAgent/prompts/myPrompt.prompt deleted file mode 100644 index c6ffa8db4..000000000 --- a/samples/js-schoolAgent/prompts/myPrompt.prompt +++ /dev/null @@ -1 +0,0 @@ -{{ role "system" }} your name is {{ @state.userName }}, always introduce yourself) \ No newline at end of file diff --git a/samples/js-schoolAgent/src/attendanceAgent.ts b/samples/js-schoolAgent/src/attendanceAgent.ts deleted file mode 100644 index 044aefd7c..000000000 --- a/samples/js-schoolAgent/src/attendanceAgent.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ai } from './genkit.js'; -import { reportAbsence, reportTardy } from './tools.js'; -import { agentDescription } from './util.js'; - -const tools = [reportAbsence, reportTardy, 'routingAgent']; -const specialization = 'attendance'; - -const toolNames: string[] = tools.map((item) => { - if (typeof item === 'string') { - return item; - } else { - return item.name; - } -}); - -export const attendanceAgent = ai.definePrompt( - { - name: `${specialization}Agent`, - description: agentDescription(specialization, toolNames), - tools, - }, - ` {{ role "system"}} - -You are Bell, a helpful attendance assistance agent for Sparkyville High School. -A parent has been referred to you to handle a ${specialization}-related concern. -Use the tools available to you to assist the parent. - -- Parents may only report absences for their own students. -- If you are unclear about any of the fields required to report an absence or tardy, request clarification before using the tool. -- If the parent asks about anything other than attendance-related concerns that you can handle, transfer to the info agent. - - {{ userContext @state }} - ` -); diff --git a/samples/js-schoolAgent/src/data.ts b/samples/js-schoolAgent/src/data.ts deleted file mode 100644 index b44268d76..000000000 --- a/samples/js-schoolAgent/src/data.ts +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export async function getUpcomingHolidays() { - return [ - { date: '2024-11-28', holiday: 'Thanksgiving Break' }, - { date: '2024-11-29', holiday: 'Thanksgiving Break (Day 2)' }, - ]; -} - -export const EXAMPLE_EVENTS = [ - { - event: 'Freshman Fall Concert', - activity: 'Choir', - location: 'School Auditorium', - startTime: '2024-11-12T19:00', - endTime: '2023-11-12T20:30', - grades: [9], - }, - { - event: 'Fall Pep Rally', - location: 'Football Field', - startTime: '2024-10-27T14:00', - endTime: '2024-10-27T15:30', - grades: [9, 10, 11, 12], - }, - { - event: 'Junior Fall Concert', - activity: 'Choir', - location: 'School Auditorium', - startTime: '2024-11-15T19:00', - endTime: '2024-11-15T20:30', - grades: [11], - }, - { - event: 'Varsity Chess Club Tournament', - activity: 'Chess Club', - location: 'Library', - startTime: '2024-11-04T16:00', - endTime: '2024-11-04T18:00', - grades: [11, 12], - }, - { - event: 'Drama Club Auditions', - activity: 'Drama Club', - location: 'School Auditorium', - startTime: '2024-10-20T15:00', - endTime: '2024-10-20T17:00', - grades: [9, 10, 11, 12], - }, -]; - -export interface GradeEntry { - studentId: number; - subject: string; - grade: string; - date: string; - assignment: string; -} - -export const EXAMPLE_GRADES: GradeEntry[] = [ - { - studentId: 3734, - subject: 'Mathematics', - grade: 'A-', - date: '2024-03-01', - assignment: 'Quadratic Equations Quiz', - }, - { - studentId: 3734, - subject: 'English', - grade: 'B+', - date: '2024-03-05', - assignment: 'Essay: Shakespeare Analysis', - }, - { - studentId: 9433, - subject: 'Physics', - grade: 'A', - date: '2024-03-02', - assignment: 'Forces Lab Report', - }, -]; diff --git a/samples/js-schoolAgent/src/genkit.ts b/samples/js-schoolAgent/src/genkit.ts deleted file mode 100644 index 025c4b30d..000000000 --- a/samples/js-schoolAgent/src/genkit.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { gemini15Pro, googleAI } from '@genkit-ai/googleai'; -import { genkit } from 'genkit'; -import { AgentState } from './types'; - -export const ai = genkit({ - plugins: [googleAI()], - model: gemini15Pro, -}); - -ai.defineHelper( - 'userContext', - (state: AgentState) => `=== User Context - -- The current parent user is ${state?.parentName} -- The current date and time is: ${new Date().toString()} - -=== Registered students of the current user - -${state?.students.map((s) => ` - ${s.name}, student id: ${s.id} grade: ${s.grade}, activities: \n${s.activities.map((a) => ` - ${a}`).join('\n')}`).join('\n\n')}` -); - -export { z } from 'genkit'; diff --git a/samples/js-schoolAgent/src/gradesAgent.ts b/samples/js-schoolAgent/src/gradesAgent.ts deleted file mode 100644 index 58871fc52..000000000 --- a/samples/js-schoolAgent/src/gradesAgent.ts +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ai } from './genkit.js'; -import { getRecentGrades } from './tools.js'; -import { agentDescription } from './util.js'; - -const tools = [getRecentGrades, 'routingAgent']; -const specialization = 'grades'; - -const toolNames: string[] = tools.map((item) => { - if (typeof item === 'string') { - return item; - } else { - return item.name; - } -}); - -export const gradesAgent = ai.definePrompt( - { - name: `${specialization}Agent`, - description: agentDescription(specialization, toolNames), - tools, - }, - ` {{ role "system"}} - -You are Bell, a helpful attendance assistance agent for Sparkyville High School. -A parent has been referred to you to handle a ${specialization}-related concern. -Use the tools available to you to assist the parent. - -Guidelines: -- Parents may only view grades for their own students -- Always verify the student belongs to the parent before sharing grade information -- Be encouraging and positive when discussing grades -- If asked about non-grade related topics, transfer back to the info agent -- Format grade information in a clear, easy-to-read manner - -{{ userContext @state }} - ` -); diff --git a/samples/js-schoolAgent/src/routingAgent.ts b/samples/js-schoolAgent/src/routingAgent.ts deleted file mode 100644 index 3986baa4f..000000000 --- a/samples/js-schoolAgent/src/routingAgent.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { attendanceAgent } from './attendanceAgent'; -import { ai } from './genkit'; -import { gradesAgent } from './gradesAgent'; -import { searchEvents, upcomingHolidays } from './tools.js'; - -export const routingAgent = ai.definePrompt( - { - name: 'routingAgent', - description: `This agent helps with answering inquiries and requests.`, - tools: [searchEvents, attendanceAgent, gradesAgent, upcomingHolidays], - }, - `You are Bell, the friendly AI office receptionist at Sparkyville High School. - - Your job is to help answer inquiries from parents. Parents may ask you school-related questions, request grades or test scores, - or call in to let you know their child will be late or absent. - - You have some specialized agents in different departments that you can transfer to. - - 1. Grades Agent - This agent can provide informtion about previous scores for assignments and tests. - 2. Attendance Agent - This agent can help with attendance requests, such as marking a student as late/tardy or absent. - - Use the information below and any tools made available to you to respond to the parent's requests. - - If the parent has an inquiry that you do not know the answer to, do NOT make the answer up. Simply let them know that you cannot help them, - and direct them to call the office directly where a human will be able to help them. - - === Frequently Asked Questions - - - Classes begin at 8am, students are dismissed at 3:30pm - - Parking permits are issued on a first-come first-serve basis beginning Aug 1 - - {{userContext @state }} -` -); diff --git a/samples/js-schoolAgent/src/terminal.ts b/samples/js-schoolAgent/src/terminal.ts deleted file mode 100644 index 9b3717449..000000000 --- a/samples/js-schoolAgent/src/terminal.ts +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Message, ToolRequestPart } from 'genkit'; -import { createInterface } from 'node:readline'; -import { ai } from './genkit.js'; -import { routingAgent } from './routingAgent.js'; - -const rl = createInterface({ - input: process.stdin, - output: process.stdout, -}); - -const EXAMPLE_USER_CONTEXT = { - parentId: 4112, - parentName: 'Francis Smith', - students: [ - { - id: 3734, - name: 'Evelyn Smith', - grade: 9, - activities: ['Choir', 'Drama Club'], - }, - { id: 9433, name: 'Evan Smith', grade: 11, activities: ['Chess Club'] }, - ], -}; - -// ANSI color codes for terminal output -const COLORS = { - BELL: '\x1b[33m', - PROMPT: '\x1b[36m', - RESET: '\x1b[0m', -}; - -// Helper to print colored text -function printColored(prefix: string, text: string, color: string) { - console.log(`${color}${prefix}>${COLORS.RESET}`, text); -} - -// Get initial greeting from AI -async function getGreeting() { - const { text } = await ai.generate( - 'Come up with a short friendly greeting for yourself talking to a parent as Bell, the helpful AI assistant for parents of Sparkyville High School. Feel free to use emoji.' - ); - return text; -} - -// Process and display the chat response stream -async function handleChatResponse( - stream: AsyncIterable<{ text: string }>, - response: Promise, - startMessageCount: number -) { - console.log(); - process.stdout.write(`${COLORS.BELL}bell>${COLORS.RESET} `); - - for await (const chunk of stream) { - process.stdout.write(chunk.text); - } - - // Extract and display tools used - const toolsUsed = (await response).messages - .slice(startMessageCount) - .filter((m: Message) => m.role === 'model') - .map((m: Message) => - m.content - .filter((p) => !!p.toolRequest) - .map( - (p) => - `${p.toolRequest?.name}(${JSON.stringify(p.toolRequest?.input)})` - ) - ) - .flat() - .filter((t: ToolRequestPart) => !!t); - - console.log('\nTools Used:', toolsUsed); -} - -// Main chat loop -async function handleUserInput(chat: any): Promise { - return new Promise((resolve) => { - rl.question(`\n${COLORS.PROMPT}prompt>${COLORS.RESET} `, async (input) => { - try { - const startMessageCount = chat.messages.length; - const { stream, response } = await chat.sendStream(input); - await handleChatResponse(stream, response, startMessageCount); - resolve(); - } catch (e) { - console.log('Error:', e); - resolve(); - } - }); - }); -} - -async function main() { - const chat = ai - .createSession({ initialState: EXAMPLE_USER_CONTEXT }) - .chat(routingAgent); - - const greeting = await getGreeting(); - console.log(); - printColored('bell', greeting, COLORS.BELL); - - while (true) { - await handleUserInput(chat); - } -} - -setTimeout(main, 0); diff --git a/samples/js-schoolAgent/src/tools.ts b/samples/js-schoolAgent/src/tools.ts deleted file mode 100644 index b0e3b848b..000000000 --- a/samples/js-schoolAgent/src/tools.ts +++ /dev/null @@ -1,147 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { EXAMPLE_EVENTS, EXAMPLE_GRADES, getUpcomingHolidays } from './data.js'; -import { ai, z } from './genkit.js'; -import { AgentState } from './types.js'; - -export const searchEvents = ai.defineTool( - { - name: 'searchEvents', - description: - 'use this when asked about any time/location for school events including extra curriculars like clubs', - inputSchema: z.object({ - activity: z - .string() - .optional() - .describe( - 'if looking for a particular activity, provide it here. must be an exact match for an activity name' - ), - grade: z - .number() - .optional() - .describe('restrict searched events to a particular grade level'), - }), - }, - async ({ activity, grade }) => { - return EXAMPLE_EVENTS.filter( - (e) => !grade || e.grades.includes(grade) - ).filter( - (e) => !activity || e.activity?.toLowerCase() === activity?.toLowerCase() - ); - } -); - -function checkIsParent(studentId: number, state: AgentState) { - const student = state.students.find((s) => s.id === studentId); - if (!student) { - throw new Error( - `Unable to process request for student ID ${studentId}. Parents can only submit requests for their registered children.` - ); - } - return student; -} - -export const reportAbsence = ai.defineTool( - { - name: 'reportAbsence', - description: - 'use this tool to mark a specific student as absent on one or more days', - inputSchema: z.object({ - studentId: z.number().describe('the id of the student'), - date: z.string().describe('the date of the absence in YYYY-MM-DD format'), - reason: z.string().describe('the provided reason for the absence'), - excused: z - .boolean() - .describe('whether the absence is excused by the parent'), - }), - }, - async (input) => { - const student = checkIsParent( - input.studentId, - ai.currentSession().state! - ); - console.log( - `[TOOL] Absence reported for ${student.name} (ID: ${input.studentId}) on ${input.date}` - ); - return { ok: true, message: 'Absence successfully recorded' }; - } -); - -export const reportTardy = ai.defineTool( - { - name: 'reportTardy', - description: - 'use this tool to mark a specific student tardy for a given date', - inputSchema: z.object({ - studentId: z.number().describe('the id of the student'), - date: z.string().describe('the date of the tardy'), - reason: z.string().describe('the provided reason reason for the tardy'), - eta: z - .string() - .describe( - 'the time the student is expected to arrive at school in HH:MMam/pm format' - ), - excused: z - .boolean() - .describe('whether the absense is excused by the parent'), - }), - }, - async (input) => { - checkIsParent(input.studentId, ai.currentSession().state!); - console.log( - '[TOOL] Student', - input.studentId, - 'has been reported tardy for', - input.date - ); - return { ok: true }; - } -); - -export const upcomingHolidays = ai.defineTool( - { - name: 'upcomingHolidays', - description: 'can retrieve information about upcoming holidays', - outputSchema: z.string(), - }, - async () => JSON.stringify(await getUpcomingHolidays()) -); - -export const getRecentGrades = ai.defineTool( - { - name: 'getRecentGrades', - description: 'retrieves recent grades for a specific student', - inputSchema: z.object({ - studentId: z.number().describe('the id of the student'), - subject: z.string().optional().describe('optional subject filter'), - limit: z - .number() - .optional() - .describe('number of recent grades to return'), - }), - }, - async ({ studentId, subject, limit = 5 }) => { - checkIsParent(studentId, ai.currentSession().state!); - let grades = EXAMPLE_GRADES.filter((g) => g.studentId === studentId); - if (subject) { - grades = grades.filter( - (g) => g.subject.toLowerCase() === subject.toLowerCase() - ); - } - return grades.slice(0, limit); - } -); diff --git a/samples/js-schoolAgent/src/types.ts b/samples/js-schoolAgent/src/types.ts deleted file mode 100644 index 542b2351f..000000000 --- a/samples/js-schoolAgent/src/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export interface AgentState { - parentId: number; - parentName: string; - students: { - id: number; - name: string; - grade: number; - activities: string[]; - }[]; -} diff --git a/samples/js-schoolAgent/src/util.ts b/samples/js-schoolAgent/src/util.ts deleted file mode 100644 index e66f628fe..000000000 --- a/samples/js-schoolAgent/src/util.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export const agentDescription = (specialization: string, tools: string[]) => ` -Transfer to this agent when the user asks about ${specialization}. -This agent can perform the following functions: ${tools.map((t) => t).join(', ')}. -Do not mention that you are transferring, just do it.`; diff --git a/samples/js-schoolAgent/tsconfig.json b/samples/js-schoolAgent/tsconfig.json deleted file mode 100644 index b73ccd04d..000000000 --- a/samples/js-schoolAgent/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "module": "NodeNext", - "moduleResolution": "NodeNext", - "noImplicitReturns": true, - "noUnusedLocals": false, - "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2017", - "skipLibCheck": true, - "esModuleInterop": true - }, - "compileOnSave": true, - "include": ["src"] -} diff --git a/samples/prompts/README.md b/samples/prompts/README.md deleted file mode 100644 index 35f1a1735..000000000 --- a/samples/prompts/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Prompts Samples - -These sample shows off several of the prompting techniques show in [docs/prompts.md](/docs/prompts.md) - -These examples use Google Gemini, set your API key in the `GOOGLE_GENAI_API_KEY` environment variable. - -You can run these prompts in the Developer UI with `genkit start` - -or invoke them with e.g. `genkit flow:run simplePrompt` diff --git a/samples/prompts/package.json b/samples/prompts/package.json deleted file mode 100644 index 081931c36..000000000 --- a/samples/prompts/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "prompts", - "version": "1.0.0", - "description": "", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node lib/index.js", - "genkit:dev": "genkit start -- tsx --watch src/index.ts", - "build": "tsc", - "build:watch": "tsc --watch" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "genkit": "^0.9.0-rc || ^0.9", - "@genkit-ai/googleai": "^0.9.0-rc || ^0.9", - "express": "^4.21.0", - "zod": "^3.23.8" - }, - "devDependencies": { - "genkit-cli": "^0.9.0-rc || ^0.9", - "typescript": "^5.5.4" - } -} diff --git a/samples/prompts/src/index.ts b/samples/prompts/src/index.ts deleted file mode 100644 index 9149c0358..000000000 --- a/samples/prompts/src/index.ts +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2024 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Import the Genkit core libraries and plugins. -import { googleAI } from '@genkit-ai/googleai'; -import { genkit, z } from 'genkit'; - -const ai = genkit({ - plugins: [ - googleAI(), // Provide the key via the GOOGLE_GENAI_API_KEY environment variable or arg { apiKey: 'yourkey'} - ], -}); - -const simplePrompt = ai.defineFlow('simplePrompt', () => - ai.generate({ - model: 'googleai/gemini-1.5-flash', - prompt: 'You are a helpful AI assistant named Walt, say hello', - }) -); - -const simpleTemplate = ai.defineFlow('simpleTemplate', () => { - const name = 'Fred'; - return ai.generate({ - model: 'googleai/gemini-1.5-flash', - prompt: `You are a helpful AI assistant named Walt. Say hello to ${name}.`, - }); -}); - -const helloDotprompt = ai.definePrompt( - { - name: 'helloPrompt', - model: 'googleai/gemini-1.5-flash', - input: { - schema: z.object({ name: z.string() }), - }, - }, - `You are a helpful AI assistant named Walt. Say hello to {{name}}` -); - -const simpleDotprompt = ai.defineFlow('simpleDotprompt', () => { - return helloDotprompt({ name: 'Fred' }); -}); - -const outputSchema = z.object({ - short: z.string(), - friendly: z.string(), - likeAPirate: z.string(), -}); - -const threeGreetingsPrompt = ai.definePrompt( - { - name: 'threeGreetingsPrompt', - model: 'googleai/gemini-1.5-flash', - input: { - schema: z.object({ name: z.string() }), - }, - output: { - format: 'json', - schema: outputSchema, - }, - }, - `You are a helpful AI assistant named Walt. Say hello to {{name}}, write a response for each of the styles requested` -); - -const threeGreetings = ai.defineFlow('threeGreetingsPrompt', async () => { - const response = await threeGreetingsPrompt({ name: 'Fred' }); - return response.output?.likeAPirate; -}); - -// Start a flow server, which exposes your flows as HTTP endpoints. This call -// must come last, after all of your plug-in configuration and flow definitions. -// You can optionally specify a subset of flows to serve, and configure some -// HTTP server options, but by default, the flow server serves all defined flows. -ai.startFlowServer({ - flows: [threeGreetings, simpleTemplate, simpleDotprompt, simplePrompt], -}); diff --git a/samples/prompts/tsconfig.json b/samples/prompts/tsconfig.json deleted file mode 100644 index efbb566bf..000000000 --- a/samples/prompts/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compileOnSave": true, - "include": ["src"], - "compilerOptions": { - "module": "commonjs", - "noImplicitReturns": true, - "outDir": "lib", - "sourceMap": true, - "strict": true, - "target": "es2017", - "skipLibCheck": true, - "esModuleInterop": true - } -}

V>CQtIQEiQldJ1Upqs~zToTZT(yF!3*U)|iys zJ7m0$VsS&szy%X~6K8(jed8HtkXJ%IGSi)<{mce;0TCxiz>UAVS5{(4&(2 zoD&PDb$K;o-Tq~-drxU$u#aMHi+LNaBPpaS zD)5PC6h}e4c0|m1lFjmN5ULe?D*GVpt=i$z^rhpu5xXlL`oorFx2R3hf;VfwWC@Nq zEfDY9&d5<4-s{RR9#78f{R-+^yuH2DF-MZ)%o!`m5A`v;2~>blQeQ*+`O*tNyqx3* zl>R!mM&?^^^^RtI3+fV-d^b>XD8Z1)eTx^GpWq8Ft2yVo$`;fk#c3o`y;l&KL)q5JoYK`uv|`J#@^<>Bom^&=?3H!VrK9!Nhb z7#A|8Hn9vca3|@NBOjWM5;IueKp(yF;ihlK#soL5HHIi9N6l_8p&fK%j<-iuz;z_c(Gh)g@mUri5zbS}qCVoh z-=dykQn-sGi8QM6%*vo__}VBsx3;61I6Bl{X(Z8)R=mmu_j7u~-T^_p1Cs9iCl6BI z%IOzY$H-zJk+tQ6sAf@^;o5uO=U=i^AEcKjZsWWsmy>&CVy!tRS(>-JDl?R(PKKEn~1xMI04=cSmF=$bDO$?oP;L&m7(WGOw(b}DTS>to+DQ!#e z=xZ+z9#KzmYjpurWbgh|2^-MZWBZpT$eiCB9JDSCR;8Giwb(s9LRc-S~<$Kka&`A5>4^BahSd>OPuU4?lDaxeWIqr7({GC>s#t_TH zLJRS4ukR>PfsD1k&!+wYF5%Y4^N0`t)LhyK7a9hC#gB;Xs-6`RXlnD!ve=GO!VMv)N!i%i7r~$XwUJazUgy9IBFX6Zqm$U zRvqHg{pMj07{^}qWrvINQASak=T^yEDLC_RQt7QvJyiJnjbr88Ct=ykhg|s06RqfB zm@iue^5!B)hfYy11T`R~PJfaOUbnrvY&~B}S!1s!)s~<5h~PZgpU{cJ@CD->*MBNx zm+gLm?lVgN$a6!j&R@V1(*fi#SHf-;;wk3Lf{NJ651S>8Yive2Oxx!R3i%b&z zc<~z0=<)Of7D)p>4;TLL{Je<5IRetiObC2J1m|t`h7HQBormG)igYXE4;ZTDf}B{~ z`*U8&*Q1)gDCb~Wk17wY*sS70_am!RdwFTB=llh2HQ`%BSJAsU1LpDeAlB6I;eldg zyS^)TKZYyBGZF){u6hPuzj;xlsN+ktZ2y`RyBcw<94_}}eZBT^ED}yU%Gg|D46Hn6 zK`k{>gpJgA29Pq~4Aorc_(Pv@u~Rnpjfm*eaa%nZ{}pz4i-__--% zC;WjDA>-b1OxQ`}vg=wyb2U$###Mq!#GQO2DQI&7|*r*qHmH>;>bhYGjdGQ2NZpXD+7 zbSf)e(l);?XK#jQOO3v-yZJ8I)$cBYIRJyRG#DINrVzlU=dQytKfmjnc zggo{u4E5pgfl4D}KTs8b%u!-d+W@tKK#|GE@jbgMxXiha)(#DQ*_xUPE|(ql_DwuG zF%p3DO#y{Ypr-q2fK#nmRLg_@GnvIc)V}&_wCGMS#?LQXdNj-F@?7}T=t)r3kADG& zrVj~0rr(dy9^p_qA?ql;{fHYNjH9o9E-{y$=7GP&xZ#G!vYW`Oiyaiw=FJU=jAC|o=KZq@w)`A@c!KZDfjpfUMdGfKmCtToK}`^z4R;52_dpPG>1-F%kFpH7 z6ReFn?@k7bE{el0K7$;>t@_VU-Et3V3BOmr8QVW!^>lMm**eHh(=P>?q?Z!HuYcTE z1u>x#DB7+Td^(LlgeZM}pnr~K3+o*1+>BY^`@mPpTTRE*(d@#g?cgL%cbGB50<@Vw z;x{@^+0V>|@ez8(iksQ(Pww@G$+_qL1YFLh*7S&QB;$z?mW>UkjW7<|346elXOl_K z$#E_b20k|BB1Ne3l0P!K_T20@s6L@kUqVs+&6RYm`mGC5#)Rpb!xnOBQCyV|wr=iL zK>L9I zIE%f~@q1mlC%A{;*vEW}Rv)re4IEofk!V>mabz zQ{MZV3;TE_&wG?aQS3Lh;jBX?&Ys&@Bdl1P#Y?=hGW+c?Ck8RiQi2uzp|MgylPW(= zJUU)Il~`Av@n@mENEhli9)8t;jZTR~XUHyE9Z{JpeL)hLcnCc3=;^8&3rcJAca~jVn zvB8|zqE{2C4Fr4Ar^bml{ac`pD!KzhkC+KC2pc(I0?~l@T=YZyfA+{UcPHIvuQJwO zzOFk|aivd|PM{ax=T+JYWi!Q|e^;E_qW|_}r^r`mhw73%A;3T)x=*b4DG-`}n^AB8s)3hL(Lrmha_tY<~fU zj>Z~BUkoU*p-NANARh-6L?lp*AJ~TSxkGos%ZOhy1~?``mG7*&IUW*(@*Yk}>w4rY zLL1{ST=inClfZBL>z>QRy~vL;+KU45bq8BiHLjRv_<_grIn;AHxs`tbEiyCC-<=$d zg#kTy0-j<;*Krp@Wm!EnBYbhDrt9XW*uE4*4Z$Go`bpU}$e2sz?L?v@uLwh)W;LQf zuM<8Au$*s0QKR?bV#NS1)cNIjD#}Sq!r)I}vn_@cEJD;DPvXfd7zFogd7^Wi%5my$ z0sXj_P?g zlnFt|m@aKa3X(d0Nz@juefA9#EcXE>O}Rktp1LlARlWv_?+bVR1$;~vHrvBK?0aig8iOeM!*N}1Hm=zxr=J1$KM!Z4mZD^_Y(C(Nv%F7d%Q8%=-9XCn zFF_D}3 zro&WU<#Dm@IX>v0{g(kfF9UK;D9bzkU@4ji@ZzL*8fTQ<39$L+)=+)|;o6Yp$t)yM zt*uS^wZon55CpZc_>;y_or@d$-bYPe--9qUDjy4a{!2c1`N*454ll*~K;YnL!8z}a z1Ne`iyHm?Lr@uAbNF~y)vucAgg#LTK(Z(UmYr)L)&cJ^p*Kp~tT45tSwJ}(R(>DXo z2CVmnobz^n5(#auB@(+=6&9s#q}={1y1-L z`P9Mi17s^eX;ET4ck}GaQVmR4oCBy2=XTV@aLf{ge0R|%o_`(39Zc4>S55V%D*c0h zeuYjZ7f}dvMKj!5lCVJ6OeagTs_9!{S(`1==?&Ay=0N4mBfG=HE}crtH=Gwu{lg4u zpS^zvOgi;K+xXJnue$s1G@Mq4_$t*R%knq>`8#Lhr)IEB*vHXF<2Rm!m_yQ2ip=^~ zuR}Y^7YJH6r#WU8sjZ-+0slU{7omg4bN^A2AU$U1^z7i*^pvW~RQ$+ZpwaH;RRYRp zJo{gOfHG7pzCkvUMn-bkv3c3wH057K@BQ}7yLuE(4(`9aOny##0bP&mK1|gIPt{x& zUU-2AJ~m`xw`$hOMw?51y|bMszd8SErp^%Q9M9)16KGU25g@-DyjCGra@=#OnKG}O zBFccloEsC9G^OF9n;IIzK0)~TzQ{+=+w7a5$1Ln9YPVwf$8PbGQ|0?P*kcLk^{KJjITT$c|TW^mv zuG;o+`S;Pv1Zg;kSkHV(YgT~OKQ`#RRL_QB$HrsKW6YMd*p{M%)y9%}qu8{Vk;*Uf z2e8U#r0awJwpLd09J2zGqNl`Bhqz+0~*(=XODi?j^m@{3m-y)onDDaI3!tdv~F~qS@^I;wG+w->Q zd@cKaE>ZS^X1;uRA9^J5D1PC}CaZI-6D0VBitFgN>e@!ewGTr6D@n&{EeGBo)jbSM z_GY66w)cGi>yDhy6e8HjOS>6rb({V2q0;$;XAom6fyFVpc*?!|QKaG-oiCbai!jL$ zpTVVkxblOZ4-ytre`++p4HwT_KT%kBTJ=N1^H1twp@u+Z+k1rKocUIHDnyrT^_JEba=%qCNmk8+kg%Hm^e-=6iBXWDqO)s6|6@n?N*We5 zovu||>Cf4Pvr_?@s-YjPgyU-)Nm2^-^cRu-I6tz@Lltzkq-3>E2?C_UeX4TWLZ6|Iti&qy&^o zb!t!<96MH#{Z8d9HaeLVh=Usgky%Tho__k&b}XVtIu&$RXz*>7l+{+X#P5p#V&VM@8hY-~mPNpAfs_B3;) zcc?FbF=fML(i`qrf!DUYo5n?t&;J;Bf%Qb^xKXFsvpZ+SKv4A}k<`n#ab%?xUd`s- zq?Z2Ke_#s?N_fH2{5xOBS!#O6>H!;@@0b^D2vdmucwQ&}gS;cSJ8X6_vE=wKz?Kyl zezW`PAH$ZoADe5|_LyCurmWF|z8uf5eVq*M?R*xxP1eGnTzGL{5j&GklzqUQVII(A zsh$~KwbHMYF>vVxcT_B|>=pzj0<7NXy! z!$OMSj|`&2`l%r=)+BnO*#V76#4_ZXH~P5wFjLlNhg`m$qB2v~*QselcO7r}=&Nf) zx&7VewHM7g^lK1YWov6%E5BviXv4)xBE6k?SGuHJ24xCojR zS4{fNNCk}x2Py0G-9>r(7Tciyey%yO2qq!nvam*_UGqTTzc78>(N z5P7mX5>6C-J+^KwHsDQNNbCKWnV8mx2;7xs#;S9A!e?z?pzug4Ett?E+@!i>z`yMT zbDCb+Xl2kiyjJp=M~rbKj?B6(mX%>q&V-sHY=AB+fGCY!2+a|xnn|>Y{l4{ zv5$l*f!h(whLvfS$}(@W#zi4nP>K9ht*aO_-d#1>gR0}B*zj*vcjd?B3!A^o--BSr z3r2{T;b9!_9l}{N#{uzd(12P@hFWRlyGwWNw_rvog+88JEq(BA{-|bjIg8E*;q5KF zDd%D(?g4%&!G-y0xxWAl4C9ZQ|7i8npoHP=L@{Xw@#_(i5u#B1xdmOKa>j|BenrUa z2c=>p!@a;@8NK~L0br3Q>m3I2`PZj;z~#5k_HXbf>q)^aD_9cCfp3v}*+`!Y zy#7fdZ+k`;ThNOzd=aG$BC-5&5_|Sx!a8@iU@&XHpaNqYBa6y!TS!G88X(#@<@c^X zh$l+){3U2TMU4 zMq@G)IAc!|EEq_~G0x1>^^~r6GXj`$8#5D18ZGGm%Q;H$`q~m7ivAyoqF%UMv_}le zdyD*Ua^WxI$hO{}`bNMvuAtabA$Hoy;{t5u_LM zYdgu5pG!1!`^_qe<-z|+B=I*Jv6;CS6JM9JKIMAIM?jsnlSSYDXZk5oLP3Iq7X#EU z2xq^w0SKg%@?Qr3D(XLC{c-EJZE=tNWruswU_Q`~M91e?v<+ zEcydK3AVNXgy9H)dc5wR)EU>O!Cuy~>W*UjMpRn zYwaW^HtSX%%+jN#nQ5KmE9YxXYRUi6k|#;E`ZaCL&oJc7H?KTQRB*P&&B7kO%+3zh zVPmQeGboVW#sbYp4qGfo-F$4C(%Uy}Q#ot#1y7nfKwh z^QPN@gHi*m zz;F)G9mNBM`ZLwO?o_4!G6f_Y0;M*W1|IJN&@(dyi7`$F z)}d>T&!o56e!M(W_!RTCTf!L01yJS`UhdBYQQ14N6?8*KK|CHfH#OA`u8lBDQ=N87 znUIG-TqZ?##YU01wenPd*Na5Ng4FX#Q|a zSv9SuRjR*ksk)dvc`ni^r0qSv@DY2nE483tjS(x1 z&ItHZZ^E@jBi$*d)SR0$qRx>vu_Wp_?*b1qhv{ts-s!KW^|WvcGD-sNy9bOaGA>M1 zi8^r!TebOSoA$-ieZu8jv&eY(!z#!fP`-NK1_K*SeoBKXCSJR?wR^&vSp|`QY&#gT zTsgK_1GNe~kMOdw`2=rDj9cPY2%TxTNiH3IaMo%(S~dKa_eNX^wAc(jT1{6Kr6Kwz z{diVSk%p68P#!F}H1rgslmouVcd%&3d;8}GJX>y5HXE#aIe}E@3Teo9EFeM*$V+)Pph7-G0 zS0DGD{{^TI=`>GaH<>vaPL0~P(^jioBYnO7{dD0-36aF94J@#`|N89IZa5GA27ccC z?pK3v$5Bj7INnX=ttwpNV=b$cbwu{%O<6{I1}vFqvdU5%Dz8?vUNNr%NBcslyy)w1 zi@ag?$GD=>tY5)ta{vda(zY##+2!3U>PA0&@ubm9XCfgj$5%ZO*Kf)KD2FcixonOh zlqpj$8?!eD#|83Q?8lW=1Y(vNh?gzbv)9dkRs6W>kv|;Sy;(`%S1FUu8pNl{&*9w}H;@?Y*!-<(yRXo5V7j*+oQJ9S5h+yv zqSGITjlDb^E@oTb>f28+#tLv;Jj=fWvADC~zOr0$ssqEB=j7dIn8zFfTWa%ync17xGQG1YE#)i$n0im*~@3E(qkRPO^S+DoscRI6gCa*vR47_ zw!Z5&-;p2EbX!7}ilZJe2LL@wC(bS`4(T!&x_&|GHSVc>A>OMCAo_MK#CO71C)KU{ z<%=OTdyyxNhImY_y%m9qCpnfP4239eEX_LljvxV{wi?hB%wkuiWj*d4K2F2QL`ki7 zmri}A!@i>+lRarIdfccBY2IC&HB7ZfJAXO<$%{l;Am8rV9A4d~!}>-r@o7gyp~+`U zA&`u&MoB_umTFV~ zDha(O+;fo#rk5h0tBwCeh|)uvFV5B05T#|MT;=b-EVGx7lH>Q~n7KuFS1& zx;Hl`5aA^}GP0|o91e)CM+EC$RWnnqec8a4&&`?M1E-7gXLOgbM_BB<&LSI*evcQ# zF|6;QcL8GT74#RdB3o%+BxqB$9^=CuIYvVhNcxZ%JSZXTO+nhjeD@f^qHW$#SrA2z z`NptVBQ6M8s#NpP7yJIp2D)tZeMzFsCmn6inv!VKeqcc_O)L?!|iJQ8_v6ZwwA3!F!D)!E-Kn`QcKTHmlu{# zh+1KJg3;Jpv|~>t)m7q47=qNc&LhG=aBJ@EsiBtBSYd#gQ`F>ow0#4Aj;yP0E^A=6 zx3Pu#XX3`o4ch<^75MQi;kG5EhsdJ0Wv8sXsAs}3yP4+u)HYgnn@^>Z29q^26PuG4 zAGsvCb=c7QRb!VxDFjJ#-}}S0fzxP`j$D~&Mb_v5qT5E8wjwxRE@L={*+ zC65rDUN|~JBCnUiliO481Phn#S?o&)@x1H zDe|%mNN>*?!Ag&8!@Cc25_T_0|3G+9reli(l^olud6UAU30Sn>bwv=W?#Qg+;HHz} z=xi)^zx-!hsOl3$%s70)8O`{lux04bIHPu>PKrj81h7dLnD^iks@@Serk!q8Va<3y;-aLV5ZAAL7!$iI;7w#73<^Ki9 z=X~rE$6h+&H%@J4@FbX$2qt)q_I35V9a%}~!^l?T+A8;1t@oTpOTdvZ4rva#Oyz?h z-=+etNl7#ovG>UOq0nhxF8jmIisqGd8?{I~yoE#dX`SxtuR%>aA7p;z)S+*MkZxxR zGS|vbq+3^ZmC(FgGm7Ix*+wQcn+i*w#LLbDWTE<%<<=&)nmGu@w^LWob8~lM28g_E zb4y}JEM|roiIMVN<&&kmcK{(y)CUB#P;M%1&$In`kuut+V@x0Cy6f^omYOo;DOh)f zmoct^t+j4_{iX41>hAt;6>2?PEiLvI3(guj?E#ieI-53p6k04EPwKsnk66*luWjeQ zJ+3u};PoU%VLq$|5o|Ade;>-5RS_pQV$@hVJ96t3AGR8uOXfKOmrTjwK}#e$HtZ&Y ztMdrE(P|()bFA^SR1P^SWuu{)6jG=%g{BVI>6vJlbk)uRPwA{1PIOH-ttLk=U*PDV(ikD86NId5u= zwxu2x{B1@qf;xVF-Sz2?`0o3$#Y$bhv-W#I7eNWBIk1hyqrZzL~A-R1b>qEO;c62JBv#Qd2n(*u6Lx%DDtgVAy$ zjBzyhm3(M{NBi2vG@b?2M?orjpt5B_!L@D+ZH0(D^+aA)`P)zy<~;eT{pD_jahCO1 z#I^CS30}uGB79(jUB5!z&Pd$H ztDXeR02a1Gj@(##TDI$@wDOX7ge^fZ?kL5r)(Yy34TujWeAxKCiXPk`=Tuv{;q>^6 zb9Rdt+gRf&RQQ%}#+Fib8JJ7YdFV}=6#M-ACR)Iv7e0VJdq0C}k&Rhn7u6UqFcop? zE$AXHkyd5R?EFl5W#ZM`;Y~Vx(xSA@MLF?QfAf&CR@6G6U^85N%zy{VwiyRaKilP5 z*M1Ycejr0f^{CxL9SXKosK=pQ(K&VLNI=%ymeH(mZW#%*oHQWk@oC*6A=Pt4QRej0yTvW4?e z^poMAnSc5+yJ-ypKe5jjp$|j#$vzzeF^(K6z2o(lrY(7!3t?gq43L6Qgl7%Ufc45< zlcu?Q&G#sh54IIw^Kz_EIt$tHEe(wo+m@SyLMM$skU3I*{d{1zrwOYaC@*)w>gC41 zO5r`z087o(!4JK8ID`R8#xP9Yb%ayByD4l3~VTVk=)V8%~WVDM-oFIU&n74D3 za5>+SLUl|9JOXkUA^Bwvcf)T4J@R8alTyS(+%m0H4&8EPc2SWati7`8%e;$oZ>^W(UjX`Y5oABFziCyB6MK(nwg1&TC39q+^CLy#D|v9=G+}J) zNld=}(!MUN7=oF){k@s!_{rFqF-Z+u2&$I_Z5NyLSTc}&CGU$AjpGd;{xeh3@6pAd z0jh8=T}6lAkT*4WFP7F;ZYdtIHC8lT3fM?O-}}L80%DKm zWRi@E2rG}}0doWF?ASaQ`e$|!%HLz%wndYEJHNM(@5%9V&txB|WvbsIv5FvaJYq7J zBBaK6E{{n$x^5`fe!8!de`6;`zYeLORcb6%f;O8ugNeVRA^l18 z$}S%>LEOjJ#8!Hj*F}&~Nllh99EFyc4Z(nY+iTR9P?w)%V2U@gKEvwApj>!+NT#_i z(&U(NP>s0ohnO{$8I92^4B*O_n%-oyFel4c9=t~j@|9jA-wU9 zewFKd+Or*eElm!MH&?Q_QPl<|GN+Vm($n{7U#8v~zLRJ+)FJ9%q(jA9%;8WF`>-UE z>;4$^>@=3rC70R)) z*HEE5`thaE;WJrY=|QTmc@#pc$iutdKb7$Ma34X_im=z|h)qV#IBUmV%2nX|bPQ4} z*53o{rv`;CUV~VM!W&LK6-7WrN4xkRqxFaDmd#`#uRp&=I=+P7Ke5GCne+RJ4>|n+ zq`lXOzW>Ys$!DAXZe8b z5NfomlbfxIDjgVAJ{g#0oSsR->sYjT3g|DlzW_<^Ee=WH2lIVZo+`gAVj zO5|6#s%Gw8oA_}TxKNiT2u96qo_tRfIc7B0CGA7@1w$MD%J7|DWLLJgyH7|83h8w= z<{A@EVMfKr$`&xBo3BPbc&1?8Wxq|;fG0KUng{H~R~h8C%rIFM+-`R~Mk2n z3GFXhs^%vV_llfod#PI|r=nX?5q%a65S)Lhn9J9;U%8Uu9Mf)-x`#ypC8L7p%0;}y zP&DK8b2z8g?IRbaPQJM1qQFdxD%=5`Lcs~w~C80odz!jLTO51)sNmw3!m*v_-FbR8XIaTnc@8m5Bz z8ru4*cAZNN^MdTTP$d4(z^P{i4x}@ln@)yD)lF|z5r(q|hW`Ys?qZU>Rc{M=Fywl- zLg-Nj8iNP_0^UXcr}t|oWSTFBXEY`{Oi5V3M*b2guBooAjw-8{4u}Vlbxun<&Gr7K zWP|+$3;@T*<{dO6@w6PnE)+_-gG@ftO&rjZ{Q`WO;Usq{a7?eYS=O1LFI;5d>m}eT zhNAzvJTlC%Zbx`Dl{u)g`ufI`gwppgs1EJyNA_-Qe4Rn6P@d30hA_-}1&j9l;s@$9 zA4D4iL&Xx4jVdg%(q7hZ`Z|6B1%6jT%%%9pXum>5znRJK`Jr7P2e<{NFfbWG zS=j9y=iJV*x@a1i>Y6dS{$5RdeCigm>Z}Ppn%PPd7J!9VICyY+=2YW*l@`_;w#gH2RL2 z_NZHNiW)mB`wH0diq(MiD3Lq$<`I6YuvjRgA|a<$M6b+`2q*=o#twMSmsy|D<6J3Z zkY>>RjRYr#jn40ppXsyT0Ta7{PKYIr!sy%y=sVsE?HCEhf!d`ESb%WA0AnIh3xGWg zQAI#57HnYr6pHE%sQj*j&6$kF%j2)nw_8@>gfC5N?1m+sSaU!##`!LG++ki3(fvvn zimLmzRFFcS&|B9LV-gs%lo&!Vh(0AcwmzvLcW&6IhB6?E5n&spo{sOQo+56*rjc^G zN>4zbL-c_|nwF6mr5<$wH>f2eC*el|1d~^vmS}*$lAgtS6aMnZl zb&_S9-Pnbz7&|O`aZ1$9C|>gLCZ6MSfw5wVeZPvKK81Z>QH`LDJI{?7To^BBa;P_I z8$zWxAV<(qy^YnY9oeLx3gLG}SqV0F)HoShtVt!}!pSF12VL13 znt9m)5$v#ZmdtQ7=e-d2FH}N`WGv#gmMf6(+aj)rHXg3nkfG}btcacp)CWH8#T^q=zY#@pe%N+9wz2Zu74NaIz&i$!k6g?V zWSlAkAMwL7u~(0^Q};;7`8|fjhx9!(LS<~RjZXM@!Dc0LQ2uxiaH|I2Pn!8XOl?qP z=h|L%LfYevKRU4scIr!uK11)+R+9+={WD%Jp&Rs>0Vy}d=0+F1NiP98lDJ(*f~gOI zcZ4&ArL`(_*0wT*FIj;#*slW@=yc89MorTy6KLa)yttJ^`hDXK_Fj7?z5eMXe)NAx zD|#9G=Ryny$x&~}v~!v3H5(18wOn3D9W4)TKjey=1~@b|+FXfQWIpT19Kr;4yq%K# z6F3<8-)iN84YZ7$wFypkO5}61OPAnv?=xv%K&k6YAv2*-P7v0UG(nARyEl7Y_W_V? zYlUx#q$T3cdoh0LoGc6^V0FF^E0GBbS*`27=Dqc!iBSQBM(VOt*q=16!|Qy`2ZkMc zyc%KZKcX%uqbpV%*!3s1RXL}5pew5+-ca|v*;MRI5}R=zU8}T4LE&%`3ZjKkO;&y? zj;QxHnDT7(;5R~jVDA-&itn+>S%#%O)m;NZQu)vRGl{~ebGaEpd2fWEA3?c$HWs_o zCX)j3oCo}5kj?BbO5WWkWyT4snu^F_=3bh$2PFQ@6)M8c2|C$Q2s_O=D=j}Ybt`od zAi3o=4Jt5%j@aLV!r4ZHc>=(fFM)1zljVTG(y6k^qNdFwEq5y0ic8^uR}C(z_nTE8 zuX7x4bix^x0BgyrPfkWtd}MBzG`h+eW@3K&1inW2HOO%fy9g7kbSa2z;OTPJNj;tz zc&~}4%ddk9US%Hh-R9eWeFSdWU@mqNy#Q{FXe;9xq% zg6|E=(NxdfIF=;eMMz+MzlUsS{8l;auG^OgzuR$k1CSmYVYIn0+xz`+4@0v_+n|#P zjXSp6MWe>WLGFje5Ne2kTeXYg&wh#khcc=11^e#ps+Nv`@(XpDeH=|T4a&WJzC5dB zNS7L57n{@a&-J7sCGI4Audu(cQ=vez%44$jmusSJzJFgNJ%O?5f`;Vw&+FF}_EpW^ z8W;-nPmeFHr!4W_tkS2L3K zd;t8HWuG$IvP=ovUO6zz;n06gb1MU+4Mj5$52SC>gfW)LyEZoA*{C)29F|ca ziQ)$EETU?%Z4|>OJ`4^jsXEzH>z%9(+)kL-HF>q@=pJ`tlYL>O^r`v={@5Asd0pHA zPZsIaM!dM{C8Sn2t*E_yJBNuG?S*bX518@yWPGvaO+1`++Cfng)U)3tK&plapW;4= z)eiYt47VQvH46WT4Dw?pFl$aT9l5}>JDSxv#A*sLr^;6=nbV;74mL`lrYI=yL`zdmnhBvW*_xd&o~>UJQO# z4Gph2?U&yswCv8NE0eeT995h(P=-g4enc%O@BQ5B6_~^ETR?kP?L5EU#P-Sgyk8h1 zsd~hUNE%tX^ZWOsWp;O+a-em6{-gx8$U3>MbXrCPspRb4iOI}H=kd94q4eueq8WGMJMX?zU6+%XI#nqus`5R0s46 ztN?#YZ~nzGT{eK@uuwh*!cY$=BtQ$9zOZ1QG*r+usaAH^6G)9%;Flvo8#l1x5QZ@8 zBaPq&3cc(Qz^-q6qo(;&Y5vSQ%+Pri>MU@rhTz4k+PBs>%)C*p{B_DJ*W6OuxALvk z(#z`_hX-z z+F0mMfw|hBys4=?KM9i)aT&$Q! zJR$U?^g*O;(zxj|7&G{)0+?0X`Aq8Y^cQf;Zz41Abk{~)ec51AP+=#H6KP4GzZo8u ze##Pqvy0*^plnWzvT3+HRdug*p$o-4dN}by8ih9@69<$dee6LHj3-=|DVO45iz0XM zmPh3Ba@T6b1@d(ZgUR5bSLR>6+&Mcf!)p$^pe;G7FQ8ZP)zJs@vh#p^N26!vLRWq-yU(sirgj369KeoMs?G1Sg5W!s1X=S-a8rj1|*Eu_#R2Y_i3 z)s&a&Y(?s}p%I*)z;pS!WR875)ct4h3eVbgZ}PX}-~Reh__|J}1Hwi;MBAPHrZ3Go zvD)W#vs>Wx16rC~#>ejoLD4q&FNF$5)jNWaFsZ)TEuFweaZ~@x8L9cy+O=C6(R0SF za45z3gDTs}c3D*~8zQVeb{TBPTIk8d%v+bN;9QX>h+ZNEj_IcrwxrcHf;^&j7;FsM<5WOq*HHSGesMQ3;b(k3WKwvkoc~IuDjQ=8#HBr4 z#n<{}<{t2uUIliWz*R&ldC1U0aCCqzFLe>fugzP>#ea8mJJQtwqS>0UJt}2aPk#Av1BrM*(vWol`=0a+Va9#z9#gA4t;Hv z;JFrF9P_?i5lDF;)&CWcPt>_~c7~VyACZOpJIyW7t^erZa-tjy*=f@t%$82Pu~o!CHWOr2C|BO5O6gN z^a!sb1|%Y{ZIBteSDdhkWFzVK<&KaHpbtx6wyCaCPUJu)UGktU9W~()X!Fk}@P=rC zYjU9p`0I#mO@{%hFHq_u7Jj9i!QH$5(f9fK)MA%9;N8y~WmqC--Ltv|kb3WG8I z_Q#XeI(vCKf$k1&H;a9Fa%wiysq zwMy1yNI-wNepUFT?OFa)$C0K^yHt&==03!IXK8t=a8`w4p17i#kf@$4%lTW2ttrgT zZIOu++!rgVp)Mecrb5I90z{F7^NM7c`$*LsEe{%gyV93HqTU(?@ zh6<0T6IH43VVrb2sYqq@(xRCEY0?kG9GzJ)SK49U%&IwEKWJM32KiOO2FG|Z7`^D4 zg%O=JulhZiUnNKy^kT6S5|JHYA)qB{7OyvY+fs~6R(&K^TEzz9QdRM+vDqon8}dkfB006E2j7e_rujYj@YVOT8RZ9!JyoZto3*-wVSaOS(-6 zDiYUpS{)O9t76t#4DQe}3$%N$5~oZTfv0-}tlNbhci8 z{*m7!50d^LM$qpPI?mKkTF{QVB#0!FaH><+Co}GVVWeWgp=x=uOeWu%r%IdhLM%E* zZ>DO_+^V|QlyBlWPvPONCsT=tr5O%t{l3E7i~d}s^swAXD||dRSM;%_&geTDlHEM2 zQ^h$pBe+}|9F_EiMu>vej5OruU|1fS$)hOIceI0}g395Vqd|rPP=#DRX+*T3ER37D z@=k=tw~tWcUHNcDZ^CRMn#t{l$eLbJPQ2eF=Ofrceqh+94fZBJ&y**Q&wXUK){OQX zU3S`-8G_aVld=IXe!rW^UV6uGJCwL-BS$Z0|NZj-gxurhBffOifx7{K+r2aCxq&Fs zE0IKl;_dI`Rzh2|24HSB#<8&}RGlI^cJgNQJ@U#*g-jI0ce$KFrJuqM?|&7Z&9POm zY1EtMgo+e1pHo6uW%|oHK`5|K)1p&&{^%Vg`fTxSqg@3@n{e0E>~*nML5`ZCw)P;+ z@on*{x0`+i8V?*w&&+aD4?nfnn;SA7kio1KBeZ zNkaw{Y_(M)g{eLfHsG=F-aC~4f}=0>@@8vylgOCpJ8P8b6mX&%(bjf3fVK+r--Nu= z0mXTPej@JF*zpRQlbGWU6RmW~en&J!{$Bw0KncJ2)cUnWJ9)OSGtI6aN~X=D95B+8 zQBsXEP^EYvA-AYbaFx=nhniV5Tv?q;UBSe;{);SO-UY75p^ zg%xp}L3d1z>JpWJq<~{wt7d}=GJ~}gs!~RpDpwTXqBN)>OBDeJYE^oDMOFvFSZBhl zL29btqNWpoDe2Os0fLC<3@z!Axxg4aInFNVD=$Tc53k>vtxlq?=y*dho4nU6FJu|I zJmAi2HBV6vp`hkfRM)GOsWoKaMivHzKp5^w4q@jV6`~UgR_&DXi6{cb%%D%qNXLp9`6^ z5Y7|aYSlLl;@ct52B~$bsyxbMfj&KL7He*{S6&tY9}S_<5T(xmop@5A1gd7SRj>+` zHLBEBg#@si0fw_wI>+m=4sf|?D^E*>LDhn!9S(y73p~PhV%n7pj26MsPH}5owY6!G za|z5Add*Fs784+z+TB*Fx%hq{=WmD6XiUjZfR41rm9Jp10u&$<$fRD|sF&h>S&&m| zl@!iq;=(3vEli5HEn0+g4YQ)qoaHP8>+p1Sp`^~7D!`Fmr6uX2rvUb+8kIyMf_@QX zH+uD5><(WCX(}~Znulf32&HV)HOIdN-eQ@1-p}s0OTz2g*`5I7GlN>aIAE^r&-nED z>}X%jRh-R|58KvOPB8oHD=Id#%fZuNOa%9|>xK+#RPY`zCz}{AgJ6>|;;KlYmP8qT z*1EI1=igagB4i`yXV*ym7+!1=-)CaUi1yg$>+BR%0AHYbVVvUfbs5l02<2UrG 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