diff --git a/.github/workflows/primary.yml b/.github/workflows/primary.yml index b674ae321..f7ee7649c 100644 --- a/.github/workflows/primary.yml +++ b/.github/workflows/primary.yml @@ -10,6 +10,7 @@ on: - ".github/workflows/primary.yml" branches: - canary + workflow_dispatch: {} concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b58a9eaf5..bfde59405 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,9 +11,12 @@ concurrency: cancel-in-progress: true permissions: - contents: read + contents: write id-token: write - +env: + DEBUG: napi:* + APP_NAME: baml + MACOSX_DEPLOYMENT_TARGET: "10.13" jobs: build-wasm: runs-on: ubuntu-latest @@ -39,7 +42,7 @@ jobs: uses: actions/setup-node@v3 with: cache: "pnpm" - node-version: 18 + node-version: 20 cache-dependency-path: | typescript/**/pnpm-lock.yaml - name: Install Dependencies @@ -63,7 +66,8 @@ jobs: uses: actions/upload-artifact@v4 with: name: baml-vscode.vsix - path: typescript/vscode-ext/packages/baml-${{ steps.build.outputs.version }}.vsix + path: typescript/vscode-ext/packages/baml-extension-${{ steps.build.outputs.version }}.vsix + if-no-files-found: error # Upload the artifact (helpful for debugging and manual downloads) - name: Upload VSCode Extension Artifact @@ -71,6 +75,7 @@ jobs: with: name: baml-out path: typescript/vscode-ext/packages/vscode/out + if-no-files-found: error # upload the lang server artifact - name: Upload VSCode Lang Server Extension Artifact @@ -78,12 +83,14 @@ jobs: with: name: language-server path: typescript/vscode-ext/packages/language-server/out + if-no-files-found: error - name: VSCode Playground Artifact uses: actions/upload-artifact@v4 with: name: vscode-playground path: typescript/vscode-ext/packages/web-panel/dist + if-no-files-found: error build-release: strategy: @@ -99,9 +106,10 @@ jobs: # host: windows-latest # node_build: pnpm build --target aarch64-pc-windows-msvc - - target: aarch64-unknown-linux-gnu - host: ubuntu-latest - node_build: pnpm build --target aarch64-unknown-linux-gnu --use-napi-cross + # maturin doesn't support aarch64-linux-gnu + # - target: aarch64-unknown-linux-gnu + # host: ubuntu-latest + # node_build: pnpm build --target aarch64-unknown-linux-gnu --use-napi-cross - target: x86_64-apple-darwin host: macos-latest @@ -135,7 +143,6 @@ jobs: cache: pnpm cache-dependency-path: | engine/language_client_typescript/pnpm-lock.yaml - typescript/**/pnpm-lock.yaml # Install rust - uses: dtolnay/rust-toolchain@stable with: @@ -206,8 +213,9 @@ jobs: python-version: "3.8" - uses: actions/download-artifact@v4 with: - name: wheels-* + pattern: wheels-* + - run: mkdir dist && mv wheels-*/* dist # authz is managed via OIDC configured at https://pypi.org/manage/project/baml-py/settings/publishing/ # it is pinned to this github actions filename, so renaming this file is not safe!! - name: Publish package to PyPI @@ -218,6 +226,8 @@ jobs: environment: release needs: [build-release, build-wasm] runs-on: ubuntu-latest + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -245,7 +255,8 @@ jobs: - uses: actions/download-artifact@v4 with: - name: bindings-* + pattern: bindings-* + path: engine/language_client_typescript/artifacts - name: create npm dirs run: pnpm napi create-npm-dirs @@ -259,68 +270,76 @@ jobs: if: ${{ !startsWith(github.ref, 'refs/tags/test-release') }} run: | npm publish --access public + working-directory: engine/language_client_typescript env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - publish-vscode: - environment: release - needs: [build-release, build-wasm] - if: ${{ !startsWith(github.ref, 'refs/tags/test-release') }} + # publish-vscode: + # environment: release + # needs: [build-release, build-wasm] + # if: ${{ !startsWith(github.ref, 'refs/tags/test-release') }} + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + + # # Get all the artifacts + # - name: Get artifact + # uses: actions/download-artifact@v4 + # with: + # name: baml-vscode.vsix + # path: typescript/vscode-ext/packages + # - name: Get artifact + # uses: actions/download-artifact@v4 + # with: + # name: baml-out + # path: typescript/vscode-ext/packages/vscode/out + # - name: Get artifact + # uses: actions/download-artifact@v4 + # with: + # name: language-server + # path: typescript/vscode-ext/packages/language-server/out + # - name: Get artifact + # uses: actions/download-artifact@v4 + # with: + # pattern: vscode-playground + # path: typescript/vscode-ext/packages/web-panel/dist + + # - name: setup pnpm + # uses: pnpm/action-setup@v3 + # with: + # version: 9.0.6 + # package_json_file: typescript/package.json + # run_install: false + # # Set up Node.js + # - name: Setup Node.js + # uses: actions/setup-node@v3 + # with: + # cache: "pnpm" + # node-version: 20 + # cache-dependency-path: typescript/pnpm-lock.yaml + + # - name: Install Dependencies + # run: pnpm install --frozen-lockfile + # working-directory: typescript/ + # - name: Publish + # if: ${{ !startsWith(github.ref, 'refs/tags/test-release') }} + # run: | + # pnpm run vscode:publish --no-git-tag-version -p ${{ secrets.VSCODE_PAT }} + # working-directory: typescript/vscode-ext/packages + + release-github: runs-on: ubuntu-latest + needs: [publish-to-pypi, publish-to-npm] steps: - uses: actions/checkout@v4 - # Get all the artifacts - - name: Get artifact - uses: actions/download-artifact@v4 - with: - name: baml-vscode.vsix - path: typescript/vscode-ext/packages - - name: Get artifact - uses: actions/download-artifact@v4 - with: - name: baml-out - path: typescript/vscode-ext/packages/vscode/out - - name: Get artifact - uses: actions/download-artifact@v4 - with: - name: language-server - path: typescript/vscode-ext/packages/language-server/out - - name: Get artifact - uses: actions/download-artifact@v4 - with: - name: vscode-playground - path: typescript/vscode-ext/packages/web-panel/dist - - # Set up Node.js - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - cache: "pnpm" - node-version: 18 - cache-dependency-path: typescript/pnpm-lock.yaml - - - name: Install Dependencies - run: pnpm install --frozen-lockfile - working-directory: typescript/ - - name: Publish - if: ${{ !startsWith(github.ref, 'refs/tags/test-release') }} + - name: Get Changelog + id: latest_release run: | - pnpm run vscode:publish --pre-release --no-git-tag-version -p ${{ secrets.VSCODE_PAT }} - working-directory: typescript/vscode-ext/packages - - release-github: - runs-on: ubuntu-latest - needs: [publish-to-pypi, publish-to-npm, publish-vscode] - steps: - - name: Build Changelog - id: github_release - uses: mikepenz/release-changelog-builder-action@v4 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + echo "::set-output name=changelog::$(awk '/^## \[/{if (p) exit; p=1} p' CHANGELOG.md)" - name: Create Release - uses: mikepenz/action-gh-release@v0.2.0-a03 #softprops/action-gh-release + uses: mikepenz/action-gh-release@v1 #softprops/action-gh-release with: - body: ${{steps.github_release.outputs.changelog}} + body: ${{steps.latest_release.outputs.changelog}} diff --git a/.gitignore b/.gitignore index 15e8215d2..a82d4d444 100644 --- a/.gitignore +++ b/.gitignore @@ -122,6 +122,10 @@ $RECYCLE.BIN/ /dist /node_modules /out/ +engine/language_client_typescript/*.d.ts +engine/language_client_typescript/*.d.ts.map +engine/language_client_typescript/*.js +!engine/language_client_typescript/cli.js engine/language_client_ruby/**/*.bundle engine/target/ Cargo.lock diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..a96417897 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,110 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. + +## [0.45.0](https://github.com/boundaryml/baml/compare/0.44.0..0.45.0) - 2024-06-29 + +### Bug Fixes + +- Fixed streaming in Python Client which didn't show result until later (#726) - ([e4f2daa](https://github.com/boundaryml/baml/commit/e4f2daa9e85bb1711d112fb0c87c0d769be0bb2d)) - Anish Palakurthi +- Improve playground stability on first load (#732) - ([2ac7b32](https://github.com/boundaryml/baml/commit/2ac7b328e89400cba0d9eb4f6d09c6a03feb71a5)) - Anish Palakurthi +- Add improved static analysis for jinja (#734) - ([423faa1](https://github.com/boundaryml/baml/commit/423faa1af5a594b7f78f7bb5620e3146a8989da5)) - hellovai + +### Documentation + +- Docs for Dynamic Types (#722) [https://docs.boundaryml.com/docs/calling-baml/dynamic-types](https://docs.boundaryml.com/docs/calling-baml/dynamic-types) + +### Features + +- Show raw cURL request in Playground (#723) - ([57928e1](https://github.com/boundaryml/baml/commit/57928e178549cb3e5118ce374aab5d0fbad7038b)) - Anish Palakurthi +- Support bedrock as a provider (#725) - ([c64c665](https://github.com/boundaryml/baml/commit/c64c66522a1d496493a30f593103209acd201364)) - Samuel Lijin + +## [0.44.0](https://github.com/boundaryml/baml/compare/0.43.0..0.44.0) - 2024-06-26 + +### Bug Fixes +- Fix typebuilder for random enums (#721) + +## [0.43.0](https://github.com/boundaryml/baml/compare/0.42.0..0.43.0) - 2024-06-26 + +### Bug Fixes +- fix pnpm lockfile issue (#720) + +## [0.42.0](https://github.com/boundaryml/baml/compare/0.41.0..0.42.0) - 2024-06-26 + +### Bug Fixes + +- correctly propagate LICENSE to baml-py (#695) - ([3fda880](https://github.com/boundaryml/baml/commit/3fda880bf39b32191b425ae75e8b491d10884cf6)) - Samuel Lijin + +### Miscellaneous Chores + +- update jsonish readme (#685) - ([b19f04a](https://github.com/boundaryml/baml/commit/b19f04a059ba18d54544cb278b6990b95170d3f3)) - Samuel Lijin + +### Vscode + +- add link to tracing, show token counts (#703) - ([64aa18a](https://github.com/boundaryml/baml/commit/64aa18a9cc34071655141c8f6e2ad04ac90e7be1)) - Samuel Lijin + +## [0.41.0] - 2024-06-20 + +### Bug Fixes + +- rollback git lfs, images broken in docs rn (#534) - ([6945506](https://github.com/boundaryml/baml/commit/694550664fa45b5f76987e2663c9d7e7a9a6a2d2)) - Samuel Lijin +- search for markdown blocks correctly (#641) - ([6b8abf1](https://github.com/boundaryml/baml/commit/6b8abf1ccf55bbe7c3bc1046c78081126e01f134)) - Samuel Lijin +- restore one-workspace-per-folder (#656) - ([a464bde](https://github.com/boundaryml/baml/commit/a464bde566199ace45285a78a7f542cd7217fb65)) - Samuel Lijin +- ruby generator should be ruby/sorbet (#661) - ([0019f39](https://github.com/boundaryml/baml/commit/0019f3951b8fe2b49e62eb11d869516b8088e9cb)) - Samuel Lijin +- ruby compile error snuck in (#663) - ([0cb2583](https://github.com/boundaryml/baml/commit/0cb25831788eb8b3eb0a38383917f6d1ffb5633a)) - Samuel Lijin + +### Documentation + +- add typescript examples (#477) - ([532481c](https://github.com/boundaryml/baml/commit/532481c3df4063b37a8834a5fe2bbce3bb37d2f5)) - Samuel Lijin +- add titles to code blocks for all CodeGroup elems (#483) - ([76c6b68](https://github.com/boundaryml/baml/commit/76c6b68b27ee37972fa226be0b4dfe31f7b4b5ec)) - Samuel Lijin +- add docs for round-robin clients (#500) - ([221f902](https://github.com/boundaryml/baml/commit/221f9020d850e6d24fe2fd8a684081726a0659af)) - Samuel Lijin +- add ruby example (#689) - ([16e187f](https://github.com/boundaryml/baml/commit/16e187f6698a1cc86a37eedf2447648d810370ad)) - Samuel Lijin + +### Features + +- implement `baml version --check --output json` (#444) - ([5f076ac](https://github.com/boundaryml/baml/commit/5f076ace1f92dc2141b231c9e62f4dc23f7fef18)) - Samuel Lijin +- show update prompts in vscode (#451) - ([b66da3e](https://github.com/boundaryml/baml/commit/b66da3ee355fcd6a8677d834ecb05af44cbf8f20)) - Samuel Lijin +- add tests to check that baml version --check works (#454) - ([be1499d](https://github.com/boundaryml/baml/commit/be1499dfa82ff8ab923a16d45290758120d95015)) - Samuel Lijin +- parse typescript versions in version --check (#473) - ([b4b2250](https://github.com/boundaryml/baml/commit/b4b2250c37b900db899256159bbfc3aa2ec819cb)) - Samuel Lijin +- implement round robin client strategies (#494) - ([599fcdd](https://github.com/boundaryml/baml/commit/599fcdd2a45c5b1e935f36769784ca944566b88c)) - Samuel Lijin +- add integ-tests support to build (#542) - ([f59cf2e](https://github.com/boundaryml/baml/commit/f59cf2e1a9ec7edbe174f4bc7ff9391f2cff3208)) - Samuel Lijin +- make ruby work again (#650) - ([6472bec](https://github.com/boundaryml/baml/commit/6472bec231b581076ee7edefaab2e7979b2bf336)) - Samuel Lijin +- Add RB2B tracking script (#682) - ([54547a3](https://github.com/boundaryml/baml/commit/54547a34d40cd40a43767919dbc9faa68a82faea)) - hellovai + +### Miscellaneous Chores + +- add nodemon config to typescript/ (#435) - ([231b396](https://github.com/boundaryml/baml/commit/231b3967bc947c4651156bc55fd66552782824c9)) - Samuel Lijin +- finish gloo to BoundaryML renames (#452) - ([88a7fda](https://github.com/boundaryml/baml/commit/88a7fdacc826e78ef21c6b24745ee469d9d02e6a)) - Samuel Lijin +- set up lfs (#511) - ([3a43143](https://github.com/boundaryml/baml/commit/3a431431e8e38dfc68763f15ccdcd1d131f23984)) - Samuel Lijin +- add internal build tooling for sam (#512) - ([9ebacca](https://github.com/boundaryml/baml/commit/9ebaccaa542760cb96382ae2a91d780f1ade613b)) - Samuel Lijin +- delete clients dir, this is now dead code (#652) - ([ec2627f](https://github.com/boundaryml/baml/commit/ec2627f59c7fe9edfff46fcdb65f9b9f0e2e072c)) - Samuel Lijin +- consolidate vscode workspace, bump a bunch of deps (#654) - ([82bf6ab](https://github.com/boundaryml/baml/commit/82bf6ab1ad839f84782a7ef0441f21124c368757)) - Samuel Lijin +- Add RB2B tracking script to propmt fiddle (#681) - ([4cf806b](https://github.com/boundaryml/baml/commit/4cf806bba26563fd8b6ddbd68296ab8bdfac21c4)) - hellovai +- Adding better release script (#688) - ([5bec282](https://github.com/boundaryml/baml/commit/5bec282d39d2250b39ef4aba5d6bba9830a35988)) - hellovai + +### [AUTO + +- patch] Version bump for nightly release [NIGHTLY:cli] [NIGHTLY:vscode_ext] [NIGHTLY:client-python] - ([d05a22c](https://github.com/boundaryml/baml/commit/d05a22ca4135887738adbce638193d71abca42ec)) - GitHub Action + +### Build + +- fix baml-core-ffi script (#521) - ([b1b7f4a](https://github.com/boundaryml/baml/commit/b1b7f4af0991ef6453f888f27930f3faaae337f5)) - Samuel Lijin +- fix engine/ (#522) - ([154f646](https://github.com/boundaryml/baml/commit/154f6468ec0aa6de1b033ee1cbc76e60acc363ea)) - Samuel Lijin + +### Integ-tests + +- add ruby test - ([c0bc101](https://github.com/boundaryml/baml/commit/c0bc10126ea32d099f1398f2c5faa08b111554ba)) - Sam Lijin + +### Readme + +- add function calling, collapse the table (#505) - ([2f9024c](https://github.com/boundaryml/baml/commit/2f9024c28ba438267de37ac43c6570a2f0398b5a)) - Samuel Lijin + +### Release + +- bump versions for everything (#662) - ([c0254ae](https://github.com/boundaryml/baml/commit/c0254ae680365854c51c7a4e58ea68d1901ea033)) - Samuel Lijin + +### Vscode + +- check for updates on the hour (#434) - ([c70a3b3](https://github.com/boundaryml/baml/commit/c70a3b373cb2346a0df9a1eba0ebacb74d59b53e)) - Samuel Lijin + + diff --git a/README.md b/README.md index fb358f9f7..76f366849 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,9 @@ # BAML -An LLM function is a prompt template with some defined input variables, and a specific output type like a class, enum, union, optional string, etc. - -**BAML is a configuration file format to write better and cleaner LLM functions.** +**BAML is a domain-specific-language to write and test LLM functions.** +An LLM function is a prompt template with some defined input variables, and a specific output type like a class, enum, union, optional string, etc. With BAML you can write and test a complex LLM function in 1/10 of the time it takes to setup a python LLM testing environment. ## Try it out in the playground -- [PromptFiddle.com](https://promptfiddle.com) @@ -53,7 +52,7 @@ Share your creations and ask questions in our [Discord](https://discord.gg/BTNBe ## Starter projects - [BAML + NextJS 14](https://github.com/BoundaryML/baml-examples/tree/main/nextjs-starter) -- [BAML + FastAPI + Streaming](https://github.com/BoundaryML/baml-examples/tree/main/fastapi-starter) +- [BAML + FastAPI + Streaming](https://github.com/BoundaryML/baml-examples/tree/main/python-fastapi-starter) ## A BAML LLM Function @@ -177,7 +176,7 @@ Python: `baml-cli init` ### 4. OR use these starter projects: - [NextJS 14](https://github.com/BoundaryML/baml-examples/tree/main/nextjs-starter) -- [FastAPI](https://github.com/BoundaryML/baml-examples/tree/main/fastapi-starter) +- [FastAPI](https://github.com/BoundaryML/baml-examples/tree/main/python-fastapi-starter) ## Observability @@ -225,7 +224,7 @@ Here's how BAML differs from these frameworks: **Aliasing object fields in Zod** -``` +```typescript const UserSchema = z.object({ first_name: z.string(), }).transform((user) => ({ @@ -247,7 +246,7 @@ Zod: not possible Pydantic: -``` +```python class Sentiment(Enum): HAPPY = ("ecstatic") SAD = ("sad") diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 000000000..3105778ce --- /dev/null +++ b/cliff.toml @@ -0,0 +1,99 @@ +# git-cliff ~ configuration file +# https://git-cliff.org/docs/configuration + +[changelog] +# template for the changelog footer +header = """ +# Changelog\n +All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.\n +""" +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{% if version %}\ + {% if previous.version %}\ + ## [{{ version | trim_start_matches(pat="v") }}]($REPO/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }} + {% else %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} + {% endif %}\ +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits + | filter(attribute="scope") + | sort(attribute="scope") %} + - **({{commit.scope}})**{% if commit.breaking %} [**breaking**]{% endif %} \ + {{ commit.message }} - ([{{ commit.id | truncate(length=7, end="") }}]($REPO/commit/{{ commit.id }})) - {{ commit.author.name }} + {%- endfor -%} + {% raw %}\n{% endraw %}\ + {%- for commit in commits %} + {%- if commit.scope -%} + {% else -%} + - {% if commit.breaking %} [**breaking**]{% endif %}\ + {{ commit.message }} - ([{{ commit.id | truncate(length=7, end="") }}]($REPO/commit/{{ commit.id }})) - {{ commit.author.name }} + {% endif -%} + {% endfor -%} +{% endfor %}\n +### UNMATCHED +{% for commit in commits %} + {%- if commit.group -%} + {% else -%} + - {% if commit.breaking %} [**breaking**]{% endif %}\ + {{ commit.message | split(pat="\n") | first }} - ([{{ commit.id | truncate(length=7, end="") }}]($REPO/commit/{{ commit.id }})) - {{ commit.author.name }} + {% endif -%} +{% endfor %}\n +""" +# template for the changelog footer +footer = """ + +""" +# remove the leading and trailing whitespace from the templates +trim = true +# postprocessors +postprocessors = [ + { pattern = '\$REPO', replace = "https://github.com/boundaryml/baml" }, # replace repository URL +] + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# filter out the commits that are not conventional +filter_unconventional = false +# process each line of a commit as an individual commit +split_commits = false +# regex for preprocessing the commit messages +commit_preprocessors = [ + # { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/orhun/git-cliff/issues/${2}))"}, # replace issue numbers +] +# regex for parsing and grouping commits +commit_parsers = [ + { message = "^feat", group = "Features" }, + { message = "^fix", group = "Bug Fixes" }, + { message = "^doc", group = "Documentation" }, + { message = "^perf", group = "Performance" }, + { message = "^refactor", group = "Refactoring" }, + { message = "^style", group = "Style" }, + { message = "^revert", group = "Revert" }, + { message = "^test", group = "Tests" }, + { message = "^chore\\(version\\):", skip = true }, + { message = "^chore", group = "Miscellaneous Chores" }, + { body = ".*security", group = "Security" }, +] +# protect breaking changes from being skipped due to matching a skipping commit_parser +protect_breaking_commits = false +# filter out the commits that are not matched by commit parsers +filter_commits = false +# regex for matching git tags +tag_pattern = "^[0-9].[0-9]+.[0-9]+$" +# regex for skipping tags +skip_tags = "" +# regex for ignoring tags +ignore_tags = "" +# sort the tags topologically +topo_order = false +# sort the commits inside sections by oldest/newest order +sort_commits = "oldest" +# limit the number of commits included in the changelog. +# limit_commits = 42 diff --git a/docs/contact.mdx b/docs/contact.mdx new file mode 100644 index 000000000..be61879fb --- /dev/null +++ b/docs/contact.mdx @@ -0,0 +1,15 @@ +--- +title: "Contact Us" +--- + +BAML is here to serve its users: we always want to hear your feedback, whether +it's a bug, feature request, or just general comment. + +You can reach us using: + + - [Discord](/discord) (fastest for a "how do i... ?") + - [GitHub](https://github.com/BoundaryML/baml/issues) (for bugs and feature requests) + - Email: [contact@boundaryml.com](mailto:contact@boundaryml.com) + - Twitter: [@boundaryml](https://twitter.com/boundaryml) + +We try our best to respond as quickly as possible, so don't hesitate to reach out! \ No newline at end of file diff --git a/docs/docs/calling-baml/calling-functions.mdx b/docs/docs/calling-baml/calling-functions.mdx new file mode 100644 index 000000000..436b47612 --- /dev/null +++ b/docs/docs/calling-baml/calling-functions.mdx @@ -0,0 +1,106 @@ +--- +title: "Calling BAML Functions" +--- + +Once you've [generated the BAML client] and set your environment variables, +you can call BAML functions from your code. + +You can check out more examples in the [BAML Examples] repo. + +[generated the BAML client]: /docs/calling-baml/generate-baml-client +[BAML Examples]: https://github.com/BoundaryML/baml-examples/tree/main + +We’ll use `function ClassifyMessage(input: string) -> Category` for our example: + + +```rust +enum Category { + Refund + CancelOrder + TechnicalSupport + AccountIssue + Question +} + +function ClassifyMessage(input: string) -> Category { + client GPT4o + prompt #" + Classify the following INPUT into ONE + of the following categories: + + INPUT: {{ input }} + + {{ ctx.output_format }} + + Response: + "# +} +``` + + + + + +BAML will generate `b.ClassifyMessage()` for you, which you can use like so: + +```python main.py +import asyncio + +from baml_client import b +from baml_client.types import Category + +async def main(): + category = await b.ClassifyMessage("I want to cancel my order") + print(category) + assert category == Category.CancelOrder + +if __name__ == '__main__': + asyncio.run(main()) +``` + + + + +BAML will generate `b.ClassifyMessage()` for you, which you can use like so: + +```ts main.ts +import { b } from './baml_client' +import { Category } from './baml_client/types' +import assert from 'assert' + +const main = async () => { + const category = await b.ClassifyMessage('I want to cancel my order') + console.log(category) + assert(category == Category.CancelOrder) +} + +if (require.main === module) { + main() +} + +``` + + + + +BAML will generate `Baml.Client.ClassifyMessage()` for you, which you can use like so: + +```ruby main.rb +require_relative "baml_client/client" + +$b = Baml.Client + +def main + category = $b.ClassifyMessage(input: "I want to cancel my order") + puts category + category == Baml::Types::Category::CancelOrder +end + +if __FILE__ == $0 + puts main +end + +``` + + + \ No newline at end of file diff --git a/docs/docs/calling-baml/concurrent-calls.mdx b/docs/docs/calling-baml/concurrent-calls.mdx new file mode 100644 index 000000000..a673e37ab --- /dev/null +++ b/docs/docs/calling-baml/concurrent-calls.mdx @@ -0,0 +1,85 @@ +--- +title: "Concurrent function calls" +--- + +We’ll use `function ClassifyMessage(input: string) -> Category` for our example: + + +```rust +enum Category { + Refund + CancelOrder + TechnicalSupport + AccountIssue + Question +} + +function ClassifyMessage(input: string) -> Category { + client GPT4o + prompt #" + Classify the following INPUT into ONE + of the following categories: + + INPUT: {{ input }} + + {{ ctx.output_format }} + + Response: + "# +} +``` + + + + + +You can make concurrent `b.ClassifyMessage()` calls like so: + +```python main.py +import asyncio + +from baml_client import b +from baml_client.types import Category + +async def main(): + await asyncio.gather( + b.ClassifyMessage("I want to cancel my order"), + b.ClassifyMessage("I want a refund") + ) + +if __name__ == '__main__': + asyncio.run(main()) +``` + + + + +You can make concurrent `b.ClassifyMessage()` calls like so: + +```ts main.ts +import { b } from './baml_client' +import { Category } from './baml_client/types' +import assert from 'assert' + +const main = async () => { + const category = await Promise.all( + b.ClassifyMessage('I want to cancel my order'), + b.ClassifyMessage('I want a refund'), + ) +} + +if (require.main === module) { + main() +} + +``` + + + + +BAML Ruby (beta) does not currently support async/concurrent calls. + +Please [contact us](/contact) if this is something you need. + + + \ No newline at end of file diff --git a/docs/docs/calling-baml/dynamic-clients.mdx b/docs/docs/calling-baml/dynamic-clients.mdx new file mode 100644 index 000000000..e69de29bb diff --git a/docs/docs/calling-baml/dynamic-types.mdx b/docs/docs/calling-baml/dynamic-types.mdx new file mode 100644 index 000000000..a07d981e2 --- /dev/null +++ b/docs/docs/calling-baml/dynamic-types.mdx @@ -0,0 +1,193 @@ + + +Sometimes you have a **output schemas that change at runtime** -- for example if you have a list of Categories that you need to classify that come from a database, or your schema is user-provided. + + +**Dynamic types are types that can be modified at runtime**, which means you can change the output schema of a function at runtime. + +Here are the steps to make this work: +1. Add `@@dynamic` to the class or enum definition to mark it as dynamic + +```rust baml +enum Category { + VALUE1 // normal static enum values that don't change + VALUE2 + @@dynamic // this enum can have more values added at runtime +} + +function DynamicCategorizer(input: string) -> Category { + client GPT4 + prompt #" + Given a string, classify it into a category + {{ input }} + + {{ ctx.output_format }} + "# +} + +``` + +2. Create a TypeBuilder and modify the existing type. All dynamic types you define in BAML will be available as properties of `TypeBuilder`. Think of the typebuilder as a registry of modified runtime types that the baml function will read from when building the output schema in the prompt. + + + +```python python +from baml_client.type_builder import TypeBuilder +from baml_client import b + +async def run(): + tb = TypeBuilder() + tb.Category.add_value('VALUE3') + tb.Category.add_value('VALUE4') + # Pass the typebuilder in the baml_options argument -- the last argument of the function. + res = await b.DynamicCategorizer("some input", { "tb": tb }) + # Now res can be VALUE1, VALUE2, VALUE3, or VALUE4 + print(res) + +``` + +```typescript TypeScript +import TypeBuilder from '../baml_client/type_builder' +import { + b +} from '../baml_client' + +async function run() { + const tb = new TypeBuilder() + tb.Category.addValue('VALUE3') + tb.Category.addValue('VALUE4') + const res = await b.DynamicCategorizer("some input", { tb: tb }) + // Now res can be VALUE1, VALUE2, VALUE3, or VALUE4 + console.log(res) +} +``` + + +```ruby Ruby (beta) +Not available yet +``` + + +### Dynamic BAML Classes +Existing BAML classes marked with @@dynamic will be available as properties of `TypeBuilder`. + +```rust BAML +class User { + name string + age int + @@dynamic +} + +function DynamicUserCreator(user_info: string) -> User { + client GPT4 + prompt #" + Extract the information from this chunk of text: + "{{ user_info }}" + + {{ ctx.output_format }} + "# +} +``` + +Modify the `User` schema at runtime: + + + +```python python +from baml_client.type_builder import TypeBuilder +from baml_client import b + +async def run(): + tb = TypeBuilder() + tb.User.add_property('email', 'string') + tb.User.add_property('address', 'string') + res = await b.DynamicUserCreator("some user info", { "tb": tb }) + # Now res can have email and address fields + print(res) + +``` + +```typescript TypeScript +import TypeBuilder from '../baml_client/type_builder' +import { + b +} from '../baml_client' + +async function run() { + const tb = new TypeBuilder() + tb.User.add_property('email', tb.string()) + tb.User.add_property('address', tb.string()) + const res = await b.DynamicUserCreator("some user info", { tb: tb }) + // Now res can have email and address fields + console.log(res) +} +``` + + +### Creating new dynamic classes or enums not in BAML +Here we create a new `Hobbies` enum, and a new class called `Address`. + + + + +```python python +from baml_client.type_builder import TypeBuilder +from baml_client import b + +async def run(): + tb = TypeBuilder() + const hobbiesEnum = tb.add_enum('Hobbies') + hobbiesEnum.add_value('Soccer') + hobbiesEnum.add_value('Reading') + + address_class = tb.add_class('Address') + address_class.add_property('street', tb.string()) + + tb.User.add_property('hobby', hobbiesEnum.type().optional()) + tb.User.add_property('address', addressClass.type().optional()) + res = await b.DynamicUserCreator("some user info", { "tb": tb }) + # Now res might have the hobby property, which can be Soccer or Reading + print(res) + +``` + +```typescript TypeScript +import TypeBuilder from '../baml_client/type_builder' +import { + b +} from '../baml_client' + +async function run() { + const tb = new TypeBuilder() + const hobbiesEnum = tb.addEnum('Hobbies') + hobbiesEnum.addValue('Soccer') + hobbiesEnum.addValue('Reading') + + const addressClass = tb.addClass('Address') + addressClass.addProperty('street', tb.string()) + + + tb.User.addProperty('hobby', hobbiesEnum.type().optional()) + tb.User.addProperty('address', addressClass.type()) + const res = await b.DynamicUserCreator("some user info", { tb: tb }) + // Now res might have the hobby property, which can be Soccer or Reading + console.log(res) +} +``` + + +### Adding descriptions to dynamic types + + + +```python python +tb = TypeBuilder() +tb.User.add_property("email", tb.string()).description("The user's email") +``` + +```typescript TypeScript +const tb = new TypeBuilder() +tb.User.addProperty("email", tb.string()).description("The user's email") +``` + + \ No newline at end of file diff --git a/docs/docs/calling-baml/generate-baml-client.mdx b/docs/docs/calling-baml/generate-baml-client.mdx new file mode 100644 index 000000000..c797a2aaf --- /dev/null +++ b/docs/docs/calling-baml/generate-baml-client.mdx @@ -0,0 +1,133 @@ +--- +title: "Generate the BAML Client" +--- + +This page assumes you've already defined a function in BAML. If you +haven't done that yet, check out [how to define a function]. + +[how to define a function]: /docs/snippets/functions + +Once you've defined a function in BAML, you need to generate code in your +language of choice to call that function: we call this generating the BAML client. + +If you use VSCode, the [BAML extension] will re-generate the client every time +you save a BAML file. Otherwise, you can generate the client manually: + +[BAML extension]: https://marketplace.visualstudio.com/items?itemName=Boundary.baml-extension + + + +```bash Python +pipx run baml-cli generate --from path/to/baml_src + +# If using your local installation, venv or conda: +pip install baml-py +baml-cli generate --from path/to/baml_src + +# If using poetry: +poetry add baml-py +poetry run baml-cli generate --from path/to/baml_src + +# If using pipenv: +pipenv install baml-py +pipenv run baml-cli generate --from path/to/baml_src +``` + +```bash TypeScript +npx @boundaryml/baml generate --from path/to/baml_src + +# If using npm: +npm install @boundaryml/baml +npm run baml-cli generate --from path/to/baml_src + +# If using pnpm: +pnpm install @boundaryml/baml +pnpm run baml-cli generate --from path/to/baml_src + +# If using pnpm: +yarn add @boundaryml/baml +yarn run baml-cli generate --from path/to/baml_src +``` + +```bash Ruby (beta) +bundle add baml +bundle exec baml-cli generate --from path/to/baml_src +``` + + + +## Best Practices + +### Define a `generator` clause + +If you created your project using `baml-cli init`, then one has already been generated for you! + +Each `generator` that you define in your BAML project will tell `baml-cli +generate` to generate code for a specific target language. You can define +multiple `generator` clauses in your BAML project, and `baml-cli generate` will +generate code for each of them. + + + +```rust Python +generator target { + // Valid values: "python/pydantic", "typescript", "ruby/sorbet" + output_type "python/pydantic" + // Where the generated code will be saved (relative to baml_src/) + output_dir "../" +} +``` + +```rust TypeScript +generator target { + // Valid values: "python/pydantic", "typescript", "ruby/sorbet" + output_type "typescript" + // Where the generated code will be saved (relative to baml_src/) + output_dir "../" +} +``` + +```rust Python +generator target { + // Valid values: "python/pydantic", "typescript", "ruby/sorbet" + output_type "ruby/sorbet" + // Where the generated code will be saved (relative to baml_src/) + output_dir "../" +} +``` + + + + +### Generate the BAML client on-demand + +Although you can check in the generated BAML client, we recommend that you +instead add it to your `.gitignore` and generate it on-demand when you +build/release your code: + + - this will make your PRs more readable; + - this will save you from handling merge conflicts in generated code; and + - this will ensure a single source-of-truth for your BAML code (and prevent + your client from falling out of sync with your BAML code). + +To add the generated client to your `.gitignore`, you can run: + +```bash +echo "baml_client" >> .gitignore +``` + +and then you just need to run `baml-cli generate` in your CI/CD build/release +workflows. Here's what that might look like in a GitHub Actions workflow file: + +```yaml +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + # Install your Python/Node/Ruby (beta) dependencies here + + - name: Generate BAML client + run: baml-cli generate --from baml_src +``` \ No newline at end of file diff --git a/docs/docs/calling-baml/multi-modal.mdx b/docs/docs/calling-baml/multi-modal.mdx new file mode 100644 index 000000000..efc3fc047 --- /dev/null +++ b/docs/docs/calling-baml/multi-modal.mdx @@ -0,0 +1,94 @@ + +## Multi-modal input + +### Images +Calling a BAML function with an `image` input argument type (see [image types](/docs/snippets/supported-types)) + +```python Python +from baml_py import Image +from baml_client import b + +async def test_image_input(): + # from URL + res = await b.TestImageInput( + img=Image.from_url( + "https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png" + ) + ) + + # Base64 image + image_b64 = "iVBORw0K...." + res = await b.TestImageInput( + img=Image.from_base64("image/png", image_b64) + ) +``` + +```typescript TypeScript +import { b } from '../baml_client' +import { Image } from "@boundaryml/baml" +... + + // URL + let res = await b.TestImageInput( + Image.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png'), + ) + + // Base64 + const image_b64 = "iVB0R..." + let res = await b.TestImageInput( + Image.fromBase64('image/png', image_b64), + ) + +``` + +```ruby Ruby (beta) +we're working on it! +``` + + + +### Audio +Calling functions that have `audio` types. See [audio types](/docs/snippets/supported-types) + + +```python Python +from baml_py import Audio +from baml_client import b + +async def run(): + # from URL + res = await b.TestAudioInput( + img=Audio.from_url( + "https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png" + ) + ) + + # Base64 + b64 = "iVBORw0K...." + res = await b.TestAudioInput( + img=Audio.from_base64("image/png", b64) + ) +``` + +```typescript TypeScript +import { b } from '../baml_client' +import { Audio } from "@boundaryml/baml" +... + + // URL + let res = await b.TestAudioInput( + Audio.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.mp4'), + ) + + // Base64 + const audio_base64 = ".." + let res = await b.TestAudioInput( + Audio.fromBase64('image/png', audio_base64), + ) + +``` + +```ruby Ruby (beta) +we're working on it! +``` + diff --git a/docs/docs/calling-baml/set-env-vars.mdx b/docs/docs/calling-baml/set-env-vars.mdx new file mode 100644 index 000000000..1d2eb91e6 --- /dev/null +++ b/docs/docs/calling-baml/set-env-vars.mdx @@ -0,0 +1,81 @@ +--- +title: "Set Environment Variables" +--- + + +The generated BAML client will capture all environment variables when you import it, +and will not be able to see any environment variables you load after importing +the BAML client. + +Any of the following strategies are compatible with BAML: + + - set environment variables in your `Dockerfile` + - set environment variables in your `next.config.js` + - set environment variables in your Kubernetes manifest + - load environment variables from secrets-store.csi.k8s.io + - load environment variables from a secrets provider such as [Infisical](https://infisical.com/) / [Doppler](https://www.doppler.com/) + - dotenv (`.env` file) cli (e.g. `dotenv -e .env python myscript.py`) + +If BAML doesn't work for your use case, please [contact us]! + + +## Loading env variables in your program + +If you do anything to load environment variables in-process - e.g. using a +`.env` file - make sure to do it before importing the BAML client. + + + +```python Python +import dotenv +dotenv.load_dotenv() + +# Wait to import the BAML client until after loading environment variables +from baml_client import b +``` + +```typescript TypeScript +import dotenv from 'dotenv' +dotenv.config() + +// Wait to import the BAML client until after loading environment variables +import { b } from 'baml-client' +``` + +```ruby Ruby (beta) +require 'dotenv/load' + +# Wait to import the BAML client until after loading environment variables +require 'baml_client' +``` + + + + + +## Environment Variables in BAML + +Environment variables are primarily used in clients to propagate authorization +credentials, such as API keys, like so: + +```rust + +client GPT4o { + provider baml-openai-chat + options { + model gpt-4o + api_key env.OPENAI_API_KEY + } +} +``` + +We do not currently support any other mechanisms for providing authorization +credentials, including but not limited to: + + - exchanging refresh tokens for ephemeral authorization tokens + - fetching credentials from a secret storage service, such as AWS Secrets + Manager or HashiCorp Vault + +Please [contact us] if you need support for these use cases. + +[contact us]: /contact \ No newline at end of file diff --git a/docs/docs/calling-baml/streaming.mdx b/docs/docs/calling-baml/streaming.mdx new file mode 100644 index 000000000..d0acde4f5 --- /dev/null +++ b/docs/docs/calling-baml/streaming.mdx @@ -0,0 +1,229 @@ +--- +title: "Streaming BAML Functions" +--- + +Now that we know how to [call BAML functions], let's learn how to stream +BAML function calls. + +You can check out more examples in the [BAML Examples] repo. + +[call BAML functions]: /docs/calling-baml/calling-functions +[BAML Examples]: https://github.com/BoundaryML/baml-examples/tree/main + +This time, we'll use `function ExtractReceiptInfo(email: string) -> ReceiptInfo` for our example: + + + +```rust +class ReceiptItem { + name string + description string? + quantity int + price float +} + +class ReceiptInfo { + items ReceiptItem[] + total_cost float? +} + +function ExtractReceiptInfo(email: string) -> ReceiptInfo { + client GPT4o + prompt #" + Given the receipt below: + + {{ email }} + + {{ ctx.output_format }} + "# +} +``` + + + + + +BAML will generate `b.stream.ExtractReceiptInfo()` for you, which you can use like so: + +```python main.py +import asyncio +from baml_client import b, partial_types, types + +# Using both async iteration and get_final_response() from a stream +async def example1(receipt: str): + stream = b.stream.ExtractReceiptInfo(receipt) + + async for partial in stream: + print(f"partial: parsed {len(partial.items)} items (object: {partial})") + + final = await stream.get_final_response() + print(f"final: {len(final.items)} items (object: {final})") + +# Using only async iteration of a stream +async def example2(receipt: str): + async for partial in b.stream.ExtractReceiptInfo(receipt): + print(f"partial: parsed {len(partial.items)} items (object: {partial})") + +# Using only get_final_response() of a stream +# +# In this case, you should just use b.ExtractReceiptInfo(receipt) instead, +# which is faster and more efficient. +async def example3(receipt: str): + final = await b.stream.ExtractReceiptInfo(receipt).get_final_response() + print(f"final: {len(final.items)} items (object: {final})") + +receipt = """ +04/14/2024 1:05 pm + +Ticket: 220000082489 +Register: Shop Counter +Employee: Connor +Customer: Sam +Item # Price +Guide leash (1 Pair) uni UNI +1 $34.95 +The Index Town Walls +1 $35.00 +Boot Punch +3 $60.00 +Subtotal $129.95 +Tax ($129.95 @ 9%) $11.70 +Total Tax $11.70 +Total $141.65 +""" + +if __name__ == '__main__': + asyncio.run(example1(receipt)) + asyncio.run(example2(receipt)) + asyncio.run(example3(receipt)) +``` + + + +BAML will generate `b.stream.ExtractReceiptInfo()` for you, which you can use like so: + +```ts main.ts +import { b } from './baml_client' + +// Using both async iteration and getFinalResponse() from a stream +const example1 = async (receipt: string) => { + const stream = b.stream.ExtractReceiptInfo(receipt) + + for await (const partial of stream) { + console.log(`partial: ${partial.items?.length} items (object: ${partial})`) + } + + const final = await stream.getFinalResponse() + console.log(`final: ${final.items.length} items (object: ${final})`) +} + +// Using only async iteration of a stream +const example2 = async (receipt: string) => { + for await (const partial of b.stream.ExtractReceiptInfo(receipt)) { + console.log(`partial: ${partial.items?.length} items (object: ${partial})`) + } +} + +// Using only getFinalResponse() of a stream +// +// In this case, you should just use b.ExtractReceiptInfo(receipt) instead, +// which is faster and more efficient. +const example3 = async (receipt: string) => { + const final = await b.stream.ExtractReceiptInfo(receipt).getFinalResponse() + console.log(`final: ${final.items.length} items (object: ${final})`) +} + +const receipt = ` +04/14/2024 1:05 pm + +Ticket: 220000082489 +Register: Shop Counter +Employee: Connor +Customer: Sam +Item # Price +Guide leash (1 Pair) uni UNI +1 $34.95 +The Index Town Walls +1 $35.00 +Boot Punch +3 $60.00 +Subtotal $129.95 +Tax ($129.95 @ 9%) $11.70 +Total Tax $11.70 +Total $141.65 +` + +if (require.main === module) { + example1(receipt) + example2(receipt) + example3(receipt) +} +``` + + + +BAML will generate `Baml.Client.stream.ExtractReceiptInfo()` for you, +which you can use like so: + +```ruby main.rb +require_relative "baml_client/client" + +$b = Baml.Client + +# Using both iteration and get_final_response() from a stream +def example1(receipt) + stream = $b.stream.ExtractReceiptInfo(receipt) + + stream.each do |partial| + puts "partial: #{partial.items&.length} items" + end + + final = stream.get_final_response + puts "final: #{final.items.length} items" +end + +# Using only iteration of a stream +def example2(receipt) + $b.stream.ExtractReceiptInfo(receipt).each do |partial| + puts "partial: #{partial.items&.length} items" + end +end + +# Using only get_final_response() of a stream +# +# In this case, you should just use BamlClient.ExtractReceiptInfo(receipt) instead, +# which is faster and more efficient. +def example3(receipt) + final = $b.stream.ExtractReceiptInfo(receipt).get_final_response + puts "final: #{final.items.length} items" +end + +receipt = <<~RECEIPT + 04/14/2024 1:05 pm + + Ticket: 220000082489 + Register: Shop Counter + Employee: Connor + Customer: Sam + Item # Price + Guide leash (1 Pair) uni UNI + 1 $34.95 + The Index Town Walls + 1 $35.00 + Boot Punch + 3 $60.00 + Subtotal $129.95 + Tax ($129.95 @ 9%) $11.70 + Total Tax $11.70 + Total $141.65 +RECEIPT + +if __FILE__ == $0 + example1(receipt) + example2(receipt) + example3(receipt) +end +``` + + + \ No newline at end of file diff --git a/docs/docs/home/comparisons/langchain.mdx b/docs/docs/comparisons/langchain.mdx similarity index 100% rename from docs/docs/home/comparisons/langchain.mdx rename to docs/docs/comparisons/langchain.mdx diff --git a/docs/docs/home/comparisons/marvin.mdx b/docs/docs/comparisons/marvin.mdx similarity index 90% rename from docs/docs/home/comparisons/marvin.mdx rename to docs/docs/comparisons/marvin.mdx index 55bc0018c..deec96766 100644 --- a/docs/docs/home/comparisons/marvin.mdx +++ b/docs/docs/comparisons/marvin.mdx @@ -77,12 +77,7 @@ enum RequestType { INQUIRY @alias("general inquiry") } -function ClassifyRequest { - input string - output RequestType -} - -impl { +function ClassifyRequest(input: string) -> RequestType { client GPT4 // choose even open source models prompt #" You are an expert classifier that always maintains as much semantic meaning @@ -91,11 +86,10 @@ impl { TEXT: --- - Reset my password + {{ input }} --- - LABELS: - {#print_enum(RequestType)} + {{ ctx.output_format }} The best label for the text is: "# @@ -129,5 +123,3 @@ Marvin was a big source of inspiration for us -- their approach is simple and el BAML does have some limitations we are continuously working on. Here are a few of them: 1. It is a new language. However, it is fully open source and getting started takes less than 10 minutes. We are on-call 24/7 to help with any issues (and even provide prompt engineering tips) 1. Developing requires VSCode. You _could_ use vim and we have workarounds but we don't recommend it. -1. Explicitly defining system / and user prompts. We have worked with many customers across healthcare and finance and have not seen any issues but we will support this soon. -1. BAML does not support images. Until this is available you can definitely use BAML alongside other frameworks. \ No newline at end of file diff --git a/docs/docs/home/comparisons/pydantic.mdx b/docs/docs/comparisons/pydantic.mdx similarity index 98% rename from docs/docs/home/comparisons/pydantic.mdx rename to docs/docs/comparisons/pydantic.mdx index 3fae14463..658afce8c 100644 --- a/docs/docs/home/comparisons/pydantic.mdx +++ b/docs/docs/comparisons/pydantic.mdx @@ -342,10 +342,7 @@ Here we use a "GPT4" client, but you can use any model. See [client docs](/docs/ {/* ```rust -function ExtractResume { - input (resume_text: string) - output Resume -} + class Education { school string @@ -359,18 +356,18 @@ class Resume { education Education[] } -impl version1 { +function ExtractResume(resume_text: string) -> Resume { client GPT4 prompt #" Parse the following resume and return a structured representation of the data in the schema below. Resume: --- - {#input.resume_text} + {{ input.resume_text }} --- Output in this JSON format: - {#print_type(output)} + {{ ctx.output_format }} Output JSON: "# diff --git a/docs/docs/get-started/debugging/enable-logging.mdx b/docs/docs/get-started/debugging/enable-logging.mdx new file mode 100644 index 000000000..a1ebd19f0 --- /dev/null +++ b/docs/docs/get-started/debugging/enable-logging.mdx @@ -0,0 +1,10 @@ +You can add logging to determine what the BAML runtime is doing. + +To enable logging, set the `BAML_LOG` environment variable: +``` +BAML_LOG=info +``` + +BAML uses the rust `log` crate for logging. You can see more information on how to better configure the `log` crate [here](https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html). + +Just instead of using the `RUST_LOG` environment variable, use the `BAML_LOG` environment variable. diff --git a/docs/docs/get-started/debugging/vscode-playground.mdx b/docs/docs/get-started/debugging/vscode-playground.mdx new file mode 100644 index 000000000..891f7798b --- /dev/null +++ b/docs/docs/get-started/debugging/vscode-playground.mdx @@ -0,0 +1,28 @@ +## General debugging strategy +- Check [Discord (#announcements channel)](https://discord.gg/BTNBeXGuaS) / [Github](https://github.com/BoundaryML/baml/issues) for any known issues +- Close the playground and reopen it +- Try reloading the entire window by pressing `Ctrl + Shift + P` or `Cmd + Shift + P` and typing `Developer: Reload Window` +- Ensure your VSCode Extension for BAML is up-to-date (It should should it its up-to-date in the Extensions tab in VSCode) + + +- If nothing works, please file an issue on [Github](https://github.com/BoundaryML/baml/issues), ideally with a screenshot of the error and the steps to reproduce it. + +## Common Issues +### No code lens in BAML files + +This can happen in two cases: +1. You have syntax error in some `.baml` file. You can check the error in the `Problems` tab in VSCode or running the `generate` command in the terminal (See [Generate](/docs/calling-baml/generate-baml-client)) + +2. BAML extension is broken. Please try the tools above! + +### BAML extension is not working + +### Tests hanging + +We've seen sparse repros of this, but closing the playground and reopening it should fix it. + +### Tests failing to run + +You can debug the actual network request being made by BAML by opening developer tools: + + diff --git a/docs/docs/get-started/deploying/docker.mdx b/docs/docs/get-started/deploying/docker.mdx new file mode 100644 index 000000000..362bc2732 --- /dev/null +++ b/docs/docs/get-started/deploying/docker.mdx @@ -0,0 +1,30 @@ + +When you develop with BAML, the BAML VScode extension generates a `baml_client` directory (on every save) with all the generated code you need to use your AI functions in your application. + +We recommend you add `baml_client` to your `.gitignore` file to avoid committing generated code to your repository, and re-generate the client code when you build and deploy your application. + +You _could_ commit the generated code if you're starting out to not deal with this, just make sure the VSCode extension version matches your baml package dependency version (e.g. `baml-py` for python and `@boundaryml/baml` for TS) so there are no compatibility issues. + +To build your client you can use the following command. See also [Generating Clients](/docs/calling-baml/generate-baml-client): + + + +```dockerfile python Dockerfile +RUN baml-cli generate --from path-to-baml_src +``` + +```dockerfile TypeScript Dockerfile +# Do this early on in the dockerfile script before transpiling to JS +RUN npx baml-cli generate --from path-to-baml_src +``` + +```dockerfile Ruby Dockerfile +RUN bundle add baml +RUN bundle exec baml-cli generate --from path/to/baml_src +``` + + + +### Current limitations +- We do not yet support `alpine` images. BAML will not properly build for those platforms. Let us know if you need to support lighter weight alpine images, and we'll prioritize it. + diff --git a/docs/docs/get-started/deploying/nextjs.mdx b/docs/docs/get-started/deploying/nextjs.mdx new file mode 100644 index 000000000..40e542651 --- /dev/null +++ b/docs/docs/get-started/deploying/nextjs.mdx @@ -0,0 +1,41 @@ +To deploy a NextJS with BAML, take a look at the starter template: +https://github.com/BoundaryML/baml-examples/tree/main/nextjs-starter + +All you need is to modify the `nextjs.config.mjs` to allow BAML to run properly: +```JS +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + serverComponentsExternalPackages: ["@boundaryml/baml"], + }, + webpack: (config, { dev, isServer, webpack, nextRuntime }) => { + config.module.rules.push({ + test: /\.node$/, + use: [ + { + loader: "nextjs-node-loader", + options: { + outputPath: config.output.path, + }, + }, + ], + }); + + return config; + }, +}; + +export default nextConfig; +``` + +and change your `package.json` to build the baml client automatically (and enable logging in dev mode if you want): + +```json + "scripts": { + "dev": "BAML_LOG=info next dev", + "build": "pnpm generate && next build", + "start": "next start", + "lint": "next lint", + "generate": "baml-cli generate --from ./baml_src" + }, +``` \ No newline at end of file diff --git a/docs/docs/get-started/interactive-demos.mdx b/docs/docs/get-started/interactive-demos.mdx new file mode 100644 index 000000000..f6a627cc7 --- /dev/null +++ b/docs/docs/get-started/interactive-demos.mdx @@ -0,0 +1,19 @@ +--- +title: "Interactive Demos" +--- + +## Interactive playground +You can try BAML online over at [Prompt Fiddle](https://www.promptfiddle.com) + + +## Examples built with BAML + +You can find the code here: https://github.com/BoundaryML/baml-examples/tree/main/nextjs-starter + + +| Example | Link | +| - | - | +| Streaming Simple Objects | https://baml-examples.vercel.app/examples/stream-object | +| RAG + Citations | https://baml-examples.vercel.app/examples/rag | +| Generative UI / Streaming charts | https://baml-examples.vercel.app/examples/book-analyzer | +| Getting a recipe | https://baml-examples.vercel.app/examples/get-recipe | diff --git a/docs/docs/get-started/quickstart/editors-other.mdx b/docs/docs/get-started/quickstart/editors-other.mdx new file mode 100644 index 000000000..23ca4f837 --- /dev/null +++ b/docs/docs/get-started/quickstart/editors-other.mdx @@ -0,0 +1,11 @@ +--- +title: "Other Editors" +--- + +We currently don't have support for other editors, but we are working on it. If you have a favorite editor that you would like to see support for, please let us know by [opening an issue](https://github.com/boundaryml/baml/issues/new?title=Add%20%20Editor%20Support&body=Hi%21%20I%20use%20%3Ceditor%3E%20please%20add%20support.). + +To get around this you can: + +1. Use [Prompt Fiddle](https://www.promptfiddle.com) to write your code and then copy it to your editor. + +2. Use the CLI. See [Generate the BAML Client](/docs/calling-baml/generate-baml-client) diff --git a/docs/docs/get-started/quickstart/editors-vscode.mdx b/docs/docs/get-started/quickstart/editors-vscode.mdx new file mode 100644 index 000000000..799572744 --- /dev/null +++ b/docs/docs/get-started/quickstart/editors-vscode.mdx @@ -0,0 +1,72 @@ +--- +title: "VSCode" +--- + +We provide a BAML VSCode extension: https://marketplace.visualstudio.com/items?itemName=Boundary.baml-extension + + +| Feature | Supported | +|---------|-----------| +| Syntax highlighting for BAML files | ✅ | +| Code snippets for BAML | ✅ | +| LLM playground for testing BAML functions | ✅ | +| Jump to definition for BAML files | ✅ | +| Jump to definition between Python/TS files and BAML files | ✅ | +| Auto generate `baml_client` on save | ✅ | +| BAML formatter | ❌ | + + + For any issues, see the [troubleshooting](/docs/get-started/debugging/vscode-playground) page. + + +## Opening BAML Playground + +Once you open a `.baml` file, in VSCode, you should see a small button over every BAML function: `Open Playground`. + + + +Or type `BAML Playground` in the VSCode Command Bar (`CMD + Shift + P` or `CTRL + Shift + P`) to open the playground. + + + +## Setting Env Variables + +Click on the `Settings` button in top right of the playground and set the environment variables. + +It should have an indicator saying how many unset variables are there. + + + +The playground should persist the environment variables between closing and opening VSCode. + + + You can set environment variables lazily. If anything is unset you'll get an error when you run the function. + + + + Environment Variables are stored in VSCode's local storage! We don't save any additional data to disk, or send them across the network. + + + +## Running Tests + +- Click on the `Run All Tests` button in the playground. + +- Press the `▶️` button next to an individual test case to run that just that test case. + + +## Switching Functions + +The playground will automatically switch to the function you're currently editing. + +To manually change it, click on the current function name in the playground (next to the dropdown) and search for your desired function. + +## Switching Test Cases + +The test case with the highlighted background is the currently rendered test case. Clicking on a different test case will render that test case. + + + +You can toggle between seeing the results of all test cases or all test cases for the current function. + + diff --git a/docs/docs/get-started/quickstart/python.mdx b/docs/docs/get-started/quickstart/python.mdx new file mode 100644 index 000000000..8dee33156 --- /dev/null +++ b/docs/docs/get-started/quickstart/python.mdx @@ -0,0 +1,73 @@ +Here's a sample repository: +https://github.com/BoundaryML/baml-examples/tree/main/python-fastapi-starter + +To set up BAML in python do the following: + + + + https://marketplace.visualstudio.com/items?itemName=boundary.BAML + + - syntax highlighting + - testing playground + - prompt previews + + + In your VSCode User Settings, highly recommend adding this to get better autocomplete for python in general, not just BAML. + + ```json + { + "python.analysis.typeCheckingMode": "basic" + } + ``` + + + + ```bash + pip install baml-py + ``` + + + This will give you some starter BAML code in a `baml_src` directory. + + ```bash + baml-cli init + ``` + + + + This command will help you convert `.baml` files to `.py` files. Everytime you modify your `.baml` files, + you must re-run this command, and regenerate the `baml_client` folder. + + + If you download our [VSCode extension](https://marketplace.visualstudio.com/items?itemName=Boundary.baml-extension), it will automatically generate `baml_client` on save! + + + ```bash + baml-cli generate + ``` + + + If `baml_client` doesn't exist, make sure to run the previous step! + + ```python main.py + from baml_client import b + from baml_client.types import Resume + + async def example(raw_resume: str) -> Resume: + # BAML's internal parser guarantees ExtractResume + # to be always return a Resume type + response = await b.ExtractResume(raw_resume) + return response + + async def example_stream(raw_resume: str) -> Resume: + stream = b.stream.ExtractResume(raw_resume) + async for msg in stream: + print(msg) # This will be a PartialResume type + + # This will be a Resume type + final = stream.get_final_response() + + return final + ``` + + \ No newline at end of file diff --git a/docs/docs/get-started/quickstart/ruby.mdx b/docs/docs/get-started/quickstart/ruby.mdx new file mode 100644 index 000000000..f1ed0bdf8 --- /dev/null +++ b/docs/docs/get-started/quickstart/ruby.mdx @@ -0,0 +1,73 @@ +Here's a sample repository: https://github.com/BoundaryML/baml-examples/tree/main/ruby-example + +To set up BAML in ruby do the following: + + + + https://marketplace.visualstudio.com/items?itemName=boundary.BAML + + - syntax highlighting + - testing playground + - prompt previews + + + + ```bash + bundle init + bundle add baml sorbet-runtime sorbet-struct-comparable + ``` + + + This will give you some starter BAML code in a `baml_src` directory. + + ```bash + bundle exec baml-cli init + ``` + + + + + This command will help you convert `.baml` files to `.rb` files. Everytime you modify your `.baml` files, + you must re-run this command, and regenerate the `baml_client` folder. + + + If you download our [VSCode extension](https://marketplace.visualstudio.com/items?itemName=Boundary.baml-extension), it will automatically generate `baml_client` on save! + + + ```bash + bundle exec baml-cli generate + ``` + + + + If `baml_client` doesn't exist, make sure to run the previous step! + + ```ruby main.rb + require_relative "baml_client/client" + + def example(raw_resume) + # r is an instance of Baml::Types::Resume, defined in baml_client/types + r = Baml.Client.ExtractResume(resume: raw_resume) + + puts "ExtractResume response:" + puts r.inspect + end + + def example_stream(raw_resume) + stream = Baml.Client.stream.ExtractResume(resume: raw_resume) + + stream.each do |msg| + # msg is an instance of Baml::PartialTypes::Resume + # defined in baml_client/partial_types + puts msg.inspect + end + + stream.get_final_response + end + + example 'Grace Hopper created COBOL' + example_stream 'Grace Hopper created COBOL' + ``` + + + diff --git a/docs/docs/get-started/quickstart/typescript.mdx b/docs/docs/get-started/quickstart/typescript.mdx new file mode 100644 index 000000000..7e16b0da2 --- /dev/null +++ b/docs/docs/get-started/quickstart/typescript.mdx @@ -0,0 +1,90 @@ +Here's a sample repository: +https://github.com/BoundaryML/baml-examples/tree/main/nextjs-starter + +To set up BAML in typescript do the following: + + + + https://marketplace.visualstudio.com/items?itemName=boundary.BAML + + - syntax highlighting + - testing playground + - prompt previews + + + + ```bash npm + npm install @boundaryml/baml + ``` + + ```bash pnpm + pnpm add @boundaryml/baml + ``` + + ```bash yarn + yarn add @boundaryml/baml + ``` + + + + This will give you some starter BAML code in a `baml_src` directory. + + ```bash npm + npx baml-cli init + ``` + + ```bash pnpm + pnpx baml-cli init + ``` + + ```bash yarn + yarn baml-cli init + ``` + + + + + This command will help you convert `.baml` files to `.ts` files. Everytime you modify your `.baml` files, + you must re-run this command, and regenerate the `baml_client` folder. + + + If you download our [VSCode extension](https://marketplace.visualstudio.com/items?itemName=Boundary.baml-extension), it will automatically generate `baml_client` on save! + + + ```json package.json + { + "scripts": { + // Add a new command + "baml-generate": "baml-cli generate", + // Always call baml-generate on every build. + "build": "npm run baml-generate && tsc --build", + } + } + ``` + + + If `baml_client` doesn't exist, make sure to run `npm run baml-generate` + + ```typescript index.ts + import {b} from "baml_client" + import type {Resume} from "baml_client/types" + + async function Example(raw_resume: string): Resume { + // BAML's internal parser guarantees ExtractResume + // to be always return a Resume type + const response = await b.ExtractResume(raw_resume); + return response; + } + + async function ExampleStream(raw_resume: string): Resume { + const stream = b.stream.ExtractResume(raw_resume); + for await (const msg of stream) { + console.log(msg) // This will be a Partial type + } + + // This is guaranteed to be a Resume type. + return await stream.get_final_response(); + } + ``` + + \ No newline at end of file diff --git a/docs/docs/home/overview.mdx b/docs/docs/get-started/what-is-baml.mdx similarity index 70% rename from docs/docs/home/overview.mdx rename to docs/docs/get-started/what-is-baml.mdx index 5593c2ca6..72ad88aa9 100644 --- a/docs/docs/home/overview.mdx +++ b/docs/docs/get-started/what-is-baml.mdx @@ -1,13 +1,13 @@ --- title: What is BAML? -"og:description": BAML is a configuration file format to write better and cleaner LLM functions. +"og:description": BAML is a domain-specific language to get structured data from LLMs "og:image": https://mintlify.s3-us-west-1.amazonaws.com/gloo/images/v3/AITeam.png "twitter:image": https://mintlify.s3-us-west-1.amazonaws.com/gloo/images/v3/AITeam.png --- -An LLM function is a prompt template with some defined input variables, and a specific output type like a class, enum, union, optional string, etc. +**BAML is a domain-specific language to write and test LLM functions.** -**BAML is a configuration file format to write better and cleaner LLM functions.** +In BAML, prompts are treated like functions. An LLM function is a prompt template with some defined input variables, and a specific output type like a class, enum, union, optional string, etc. With BAML you can write and test a complex LLM function in 1/10 of the time it takes to setup a python LLM testing environment. @@ -17,12 +17,16 @@ With BAML you can write and test a complex LLM function in 1/10 of the time it t Share your creations and ask questions in our [Discord](https://discord.gg/BTNBeXGuaS). +## Demo video + + + ## Features ### Language features -- **Python and Typescript support**: Plug-and-play BAML with other languages +- **Python / Typescript / Ruby support**: Plug-and-play BAML with other languages - **JSON correction**: BAML fixes bad JSON returned by LLMs (e.g. unquoted keys, newlines, comments, extra quotes, and more) -- **Wide model support**: Ollama, Openai, Anthropic. Tested on small models like Llama2 +- **Wide model support**: Ollama, Openai, Anthropic, Gemini. Tested on small models like Llama2 - **Streaming**: Stream structured partial outputs - **Resilience and fallback features**: Add retries, redundancy, to your LLM calls @@ -51,4 +55,4 @@ Share your creations and ask questions in our [Discord](https://discord.gg/BTNBe - [BAML + FastAPI + Streaming](https://github.com/BoundaryML/baml-examples/tree/main/fastapi-starter) ## First steps -We recommend checking the examples in [PromptFiddle.com](https://promptfiddle.com). Once you're ready to start, [install the toolchain](./installation) and read the [guides](../guides/overview). +We recommend checking the examples in [PromptFiddle.com](https://promptfiddle.com). Once you're ready to start, [install the toolchain](/docs/get-started/quickstart/python) and read the [guides](/docs/calling-baml/calling-functions). diff --git a/docs/docs/guides/hello_world/baml-project-structure.mdx b/docs/docs/guides/hello_world/baml-project-structure.mdx deleted file mode 100644 index 84643385d..000000000 --- a/docs/docs/guides/hello_world/baml-project-structure.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "BAML Project Structure" ---- - -At a high level, you will define your AI prompts and interfaces in BAML files. -The BAML compiler will then generate Python or Typescript code for you to use in -your application, depending on the generators configured in your `main.baml`: - -```rust main.baml -generator MyGenerator{ - output_type typescript - output_dir "../" -} -``` - -Here is the typical project structure: - -```bash -. -├── baml_client/ # Generated code -├── baml_src/ # Prompts and baml tests live here -│ └── foo.baml -# The rest of your project (not generated nor used by BAML) -├── app/ -│ ├── __init__.py -│ └── main.py -└── pyproject.toml - -``` - -1. `baml_src/` is where you write your BAML files with the AI -function declarations, prompts, retry policies, etc. It also contains -[generator](/docs/syntax/generator) blocks which configure how and where to -transpile your BAML code. - -2. `baml_client/` is where the BAML compiler will generate code for you, -based on the types and functions you define in your BAML code. Here's how you'd access the generated functions from baml_client: - - -```python Python -from baml_client import baml as b - -async def use_llm_for_task(): - await b.CallMyLLM() -``` - -```typescript TypeScript -import b from '@/baml_client' - -const use_llm_for_task = async () => { - await b.CallMyLLM(); -}; -``` - - - - - **You should never edit any files inside baml_client directory** as the whole - directory gets regenerated on every `baml build` (auto runs on save if using - the VSCode extension). - - - - If you ever run into any issues with the generated code (like merge - conflicts), you can always delete the `baml_client` directory and it will get - regenerated automatically on save. - - -### imports - -BAML by default has global imports. Every entity declared in any `.baml` file is available to all other `.baml` files under the same `baml_src` directory. You **can** have multiple `baml_src` directories, but no promises on how the VSCode extension will behave (yet). diff --git a/docs/docs/guides/hello_world/testing-ai-functions.mdx b/docs/docs/guides/hello_world/testing-ai-functions.mdx deleted file mode 100644 index 7fac24b87..000000000 --- a/docs/docs/guides/hello_world/testing-ai-functions.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Testing AI functions" ---- - - -One important way to ensure your AI functions are working as expected is to write unit tests. This is especially important when you're working with AI functions that are used in production, or when you're working with a team. - -To test functions: -1. Install the VSCode extension -2. Create a test in any .baml file: -```rust -test MyTest { - functions [ExtractResume] - args { - resume_text "hello" - } -} - -``` -3. Run the test in the VSCode extension! - -We have more capabilities like assertions coming soon! \ No newline at end of file diff --git a/docs/docs/guides/hello_world/writing-ai-functions.mdx b/docs/docs/guides/hello_world/writing-ai-functions.mdx deleted file mode 100644 index e3584ab5f..000000000 --- a/docs/docs/guides/hello_world/writing-ai-functions.mdx +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: "BAML AI functions in 2 minutes" ---- - - -### Pre-requisites - -Follow the [installation](/v3/home/installation) instructions. - -{/* The starting project structure will look something like this: */} -{/* */} - -## Overview - -Before you call an LLM, ask yourself what kind of input or output youre -expecting. If you want the LLM to generate text, then you probably want a -string, but if you're trying to get it to collect user details, you may want it -to return a complex type like `UserDetails`. - -Thinking this way can help you decompose large complex prompts into smaller, -more measurable functions, and will also help you build more complex workflows -and agents. - -# Extracting a resume from text - -The best way to learn BAML is to run an example in our web playground -- [PromptFiddle.com](https://promptfiddle.com). - -But at a high-level, BAML is simple to use -- prompts are built using [Jinja syntax](https://jinja.palletsprojects.com/en/3.1.x/) to make working with strings easier. But we extended jinja to add type-support, static analysis of your template variables, and we have a real-time preview of prompts in the BAML VSCode extension no matter how much logic your prompts use. - -Here's an example from PromptFiddle: - -```rust baml_src/main.baml -client GPT4Turbo { - provider openai - options { - model gpt-4-turbo - api_key env.OPENAI_API_KEY - } -} -// Declare the Resume type we want the AI function to return -class Resume { - name string - education Education[] @description("Extract in the same order listed") - skills string[] @description("Only include programming languages") -} - -class Education { - school string - degree string - year int -} - -// Declare the function signature, with the prompt that will be used to make the AI function work -function ExtractResume(resume_text: string) -> Resume { - // An LLM client we define elsewhere, with some parameters and our API key - client GPT4Turbo - - // The prompt uses Jinja syntax - prompt #" - Parse the following resume and return a structured representation of the data in the schema below. - - Resume: - --- - {{ resume_text }} - --- - - {# special macro to print the output instructions. #} - {{ ctx.output_format }} - - JSON: - "# -} -``` -That's it! If you use the VSCode extension, everytime you save this .baml file, it will convert this configuration file into a usable Python or TypeScript function in milliseconds, with full types. - -All your types become Pydantic models in Python, or type definitions in Typescript (soon we'll support generating Zod types). - - -## 2. Usage in Python or TypeScript - -Our VSCode extension automatically generates a **baml_client** in the language of choice. (Click the tabs for Python or TypeScript) - - - -```python Python -from baml_client import baml as b -# BAML types get converted to Pydantic models -from baml_client.types import Resume -import asyncio - -async def main(): - resume_text = """Jason Doe -Python, Rust -University of California, Berkeley, B.S. -in Computer Science, 2020 -Also an expert in Tableau, SQL, and C++ -""" - - # this function comes from the autogenerated "baml_client". - # It calls the LLM you specified and handles the parsing. - resume = await b.ExtractResume(resume_text) - - # Fully type-checked and validated! - assert isinstance(resume, Resume) - - -if __name__ == "__main__": - asyncio.run(main()) -``` - -```typescript TypeScript -import b from 'baml_client' - -async function main() { - const resume_text = `Jason Doe -Python, Rust -University of California, Berkeley, B.S. -in Computer Science, 2020 -Also an expert in Tableau, SQL, and C++ -` - - // this function comes from the autogenerated "baml_client". - // It calls the LLM you specified and handles the parsing. - const resume = await b.ExtractResume(resume_text) - - // Fully type-checked and validated! - assert resume.name === "Jason Doe" -} - -if (require.main === module) { - main(); -} -``` - - - - - The BAML client exports async versions of your functions, so you can parallelize things easily if you need to. To run async functions sequentially you can easily just wrap them in the `asyncio.run(....)`. - - Let us know if you want synchronous versions of your functions instead! - - -## Further reading -- Browse more PromptFiddle [examples](https://promptfiddle.com) -- See other types of [function signatures](/docs/syntax/function) possible in BAML. \ No newline at end of file diff --git a/docs/docs/guides/improve_results/diagnose.mdx b/docs/docs/guides/improve_results/diagnose.mdx deleted file mode 100644 index 97da6264e..000000000 --- a/docs/docs/guides/improve_results/diagnose.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Improve my prompt automatically" ---- - -Use **Boundary Studio** to automatically improve your prompt by using the **Diagnose** feature! We use **GPT-4 powered analysis** to provide you with improvements you can make to your prompt. We aim to incorporate all the best learnings we've acquired from working with many different customers and models. - -We have more improvements here planned, like different suggestions depending on your model being used and task type. - -To access it: -1. Click on the "comment" icon on one of the requests. -2. Click on the "Diagnose" tab. - - - - -This feature is limited for users on the free tier, and available as many times as needed for paid users. diff --git a/docs/docs/guides/improve_results/fine_tune.mdx b/docs/docs/guides/improve_results/fine_tune.mdx deleted file mode 100644 index d7c5d3ca5..000000000 --- a/docs/docs/guides/improve_results/fine_tune.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Fine-tune a model using my production data" ---- - -Reach out to us on Discord if you want to improve performance, reduce costs or latencies using fine-tuned models! We are working on seamless integrations with fine-tuning platforms. \ No newline at end of file diff --git a/docs/docs/guides/overview.mdx b/docs/docs/guides/overview.mdx deleted file mode 100644 index 1e8b2eccd..000000000 --- a/docs/docs/guides/overview.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Table of contents" ---- - -These tutorials assume you've already done the [Learn BAML](/docs/guides/hello_world/level0) tutorials first and have a hang of some of the basics. - -Ping us on [Discord](https://discord.gg/BTNBeXGuaS) if you have any questions! - \ No newline at end of file diff --git a/docs/docs/guides/prompt_engineering/chat-prompts.mdx b/docs/docs/guides/prompt_engineering/chat-prompts.mdx deleted file mode 100644 index 3e25606f5..000000000 --- a/docs/docs/guides/prompt_engineering/chat-prompts.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "System vs user prompts" ---- - -See [PromptFiddle demo](https://promptfiddle.com/chat-roles) \ No newline at end of file diff --git a/docs/docs/guides/prompt_engineering/conditional_rendering.mdx b/docs/docs/guides/prompt_engineering/conditional_rendering.mdx deleted file mode 100644 index 8f70ece36..000000000 --- a/docs/docs/guides/prompt_engineering/conditional_rendering.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Conditionally generate the prompt based on the input variables" ---- - -Prompts use Jinja syntax to render variables. You can use any jinja syntax you like. - -Examples coming soon! \ No newline at end of file diff --git a/docs/docs/guides/prompt_engineering/serialize_complex_input.mdx b/docs/docs/guides/prompt_engineering/serialize_complex_input.mdx deleted file mode 100644 index f82d0b4a5..000000000 --- a/docs/docs/guides/prompt_engineering/serialize_complex_input.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Customize input variables" ---- - -Examples coming soon! \ No newline at end of file diff --git a/docs/docs/guides/prompt_engineering/serialize_list.mdx b/docs/docs/guides/prompt_engineering/serialize_list.mdx deleted file mode 100644 index b5bda6733..000000000 --- a/docs/docs/guides/prompt_engineering/serialize_list.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Serialize a List of chat messages into a prompt" ---- - -Example coming soon! \ No newline at end of file diff --git a/docs/docs/guides/prompt_engineering/strategies.mdx b/docs/docs/guides/prompt_engineering/strategies.mdx deleted file mode 100644 index 820db3911..000000000 --- a/docs/docs/guides/prompt_engineering/strategies.mdx +++ /dev/null @@ -1 +0,0 @@ -# TODO: add symbol tuning here \ No newline at end of file diff --git a/docs/docs/guides/resilience/fallback.mdx b/docs/docs/guides/resilience/fallback.mdx deleted file mode 100644 index 6fec86273..000000000 --- a/docs/docs/guides/resilience/fallback.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Fall-back to another model on failure" ---- - -Checkout the [Fallback API reference](/docs/syntax/client/redundancy) to learn how to make a BAML client fall-back to a different LLM on failure. \ No newline at end of file diff --git a/docs/docs/guides/resilience/retries.mdx b/docs/docs/guides/resilience/retries.mdx deleted file mode 100644 index 26b885ce5..000000000 --- a/docs/docs/guides/resilience/retries.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Add retries to my AI function (and different retry policies)." ---- - -Checkout the [retry_policy reference](/docs/syntax/client/retry) to add retries to your AI function. \ No newline at end of file diff --git a/docs/docs/guides/streaming/streaming.mdx b/docs/docs/guides/streaming/streaming.mdx deleted file mode 100644 index c96e4d8d2..000000000 --- a/docs/docs/guides/streaming/streaming.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Streaming structured data" ---- - -### Streaming partial objects -The following returns an object that slowly gets filled in as the response comes in. This is useful if you want to start processing the response before it's fully complete. -You can stream anything from a `string` output type, to a complex object. - -Example: -``` -{"prop1": "hello"} -{"prop1": "hello how are you"} -{"prop1": "hello how are you", "prop2": "I'm good, how are you?"} -{"prop1": "hello how are you", "prop2": "I'm good, how are you?", "prop3": "I'm doing great, thanks for asking!"} -``` - -### Python -```python FastAPI -from baml_client import b - -@app.get("/extract_resume") -async def extract_resume(resume_text: str): - async def stream_resume(resume): - stream = b.stream.ExtractResume(resume_text) - async for chunk in stream: - yield str(chunk.model_dump_json()) + "\n" - - return StreamingResponse(stream_resume(resume), media_type="text/plain") -``` - - -### TypeScript -```typescript -import { b } from '../baml_client'; // or whatever path baml_client is in - -export async function streamText() { - const stream = b.stream.MyFunction(MyInput(...)); - for await (const output of stream) { - console.log(`streaming: ${output}`); // this is the output type of my function - } - - const finalOutput = await stream.getFinalResponse(); - console.log(`final response: ${finalOutput}`); -} -``` - diff --git a/docs/docs/guides/testing/test_with_assertions.mdx b/docs/docs/guides/testing/test_with_assertions.mdx deleted file mode 100644 index be3e76f59..000000000 --- a/docs/docs/guides/testing/test_with_assertions.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "Evaluate results with assertions or using LLM Evals" ---- - - - -# Python guide -To add assertions to your tests, or add more complex testing scenarios, you can use pytest to test your functions, since Playground BAML tests don't currently support assertions. - -### Example -```python test_file.py -from baml_client import baml as b -from baml_client.types import Email -from baml_client.testing import baml_test -import pytest - -# Run `poetry run pytest -m baml_test` in this directory. -# Setup Boundary Studio to see test details! -@pytest.mark.asyncio -async def test_get_order_info(): - order_info = await b.GetOrderInfo(Email( - subject="Order #1234", - body="Your order has been shipped. It will arrive on 1st Jan 2022. Product: iPhone 13. Cost: $999.99" - )) - - assert order_info.cost == 999.99 -``` - - Make sure your test file, the Test class AND/or the test function is prefixed with `Test` or `test` respectively. Otherwise, pytest will not pick up your tests. E.g. `test_foo.py`, `TestFoo`, `test_foo` - - - -Run `pytest -k 'order_info'` to run this test. To show have pytest show print statements add the `-s` flag. - - - Make sure you are running these commands from your python virtual environment - (or **`poetry shell`** if you use poetry) - - -For more advanced testing scenarios, helpful commands, and gotchas, check out the [Advanced Guide](./advanced_testing_guide) - - - -### Using an LLM eval -You can also declare a new BAML function that you can use in your tests to validate results. - -This is helpful for testing more ambiguous LLM free-form text generations. You can measure anything from sentiment, to the tone of of the text. - -For example, the following GPT-4-powered function can be used in your tests to assert that a given generated sentence is professional-sounding: - -```rust -enum ProfessionalismRating { - GREAT - OK - BAD -} - -function ValidateProfessionalism { - // The string to validate - input string - output ProfessionalismRating -} - -impl v1 { - client GPT4 - prompt #" - Is this text professional-sounding? - - Use the following scale: - {#print_enum(ProfessionalismRating)} - - Sentence: {#input} - - ProfessionalismRating: - "# -} -``` - -```python -from baml_client import baml as b -from baml_client.types import Email, ProfessionalismRating -from baml_client.testing import baml_test - -@baml_test -async def test_message_professionalism(): - order_info = await b.GetOrderInfo(Email( - subject="Order #1234", - body="Your order has been shipped. It will arrive on 1st Jan 2022. Product: iPhone 13. Cost: $999.99" - )) - - assert order_info.cost == 999.99 - - professionalism_rating = await b.ValidateProfessionalism(order_info.body) - assert professionalism_rating == b.ProfessionalismRating.GREAT -``` - diff --git a/docs/docs/guides/testing/unit_test.mdx b/docs/docs/guides/testing/unit_test.mdx deleted file mode 100644 index 808b45880..000000000 --- a/docs/docs/guides/testing/unit_test.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Test an AI function" ---- - - -There are two types of tests you may want to run on your AI functions: - -- Unit Tests: Tests a single AI function (using the playground) -- Integration Tests: Tests a pipeline of AI functions and potentially buisness logic - -For integration tests, see the [Integration Testing Guide](/docs/guides/testing/test_with_assertions). \ No newline at end of file diff --git a/docs/docs/home/baml-in-2-min.mdx b/docs/docs/home/baml-in-2-min.mdx deleted file mode 100644 index 6b129cc18..000000000 --- a/docs/docs/home/baml-in-2-min.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "BAML in 2 minutes" -url: "/docs/guides/hello_world/writing-ai-functions" ---- diff --git a/docs/docs/home/faq.mdx b/docs/docs/home/faq.mdx deleted file mode 100644 index a890a3943..000000000 --- a/docs/docs/home/faq.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: FAQs ---- - - - -You don't! BAML files get converted into Python or Typescript using the BAML CLI. You can run the generated code locally or in the cloud. - - -Contact us at contact@boundaryml.com for more details. We have a free tier available. - - -Nope. We do not proxy LLM calls for you. BAML just generates a bunch of python or TypeScript code you can run on your machine. If you opt-in to our logging and analytics we only send logs to our backend. Deploying your app is like deploying any other python/TS application. - - - -BAML isn't a full-fledged language -- it's more of a configuration file / templating language. You can load it into your code as if it were YAML. Think of it as an extension of [Jinja](https://jinja.palletsprojects.com/en/3.1.x/) or Handlebars. - -Earlier we tried making a YAML-based sdk, and even a Python SDK, but they were not powerful enough. - - - - We are working on more tools like [PromptFiddle.com](https://promptfiddle.com) to make it easier to edit prompts for non-engineers, but we want to make sure all your prompts can be backed by a file in your codebase and versioned by Git. - - - - Typescript, Python, and Ruby - Contact us for more - - - - - The VSCode extension and BAML are free to use (Open Source as well!). We only charge for usage of - Boundary Studio, our observability platform. Contact us for pricing. We do have a hobbyist tier and a startup tier available. - - diff --git a/docs/docs/home/installation.mdx b/docs/docs/home/installation.mdx deleted file mode 100644 index 819e00d3a..000000000 --- a/docs/docs/home/installation.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Installation ---- - - - - [https://marketplace.visualstudio.com/items?itemName=boundary.BAML](https://marketplace.visualstudio.com/items?itemName=boundary.Baml-extension) - - If you are using python, [enable typechecking in VSCode's](https://code.visualstudio.com/docs/python/settings-reference#_python-language-server-settings) `settings.json`: - ``` - "python.analysis.typecheckingMode": "basic" - ``` - - - - ```bash Python - pip install baml-py - ``` - - ```bash Typescript - npm install @boundaryml/baml - ``` - - - - - ```bash Python - # Should be installed via pip install baml-py - baml-cli init - ``` - - ```bash Typescript (npx) - npx baml-cli init - ``` - - ```bash Typescript (pnpx) - pnpx baml-cli init - ``` - - - - - [PromptFiddle](https://promptfiddle.com): Interactive examples to learn BAML. (recommended) - - [BAML Tutorials](docs/guides): Advanced guides on using BAML. - - [BAML Syntax](/v3/syntax): Documentation for BAML syntax. - - [BAML Starters for NextJS and FastAPI](https://github.com/BoundaryML/baml-examples/tree/main) - - - -## Ensure BAML extension can generate your Python / TS client - -Save a `.baml` file using VSCode, and you should see a successful generation message pop up! - -You can also run `baml-cli generate --from path-to-baml-src` to generate the client code manually. \ No newline at end of file diff --git a/docs/docs/home/roadmap.mdx b/docs/docs/home/roadmap.mdx deleted file mode 100644 index ea05334a8..000000000 --- a/docs/docs/home/roadmap.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Roadmap" ---- - -### Language Support - -Features are available in all languages at equal parity unless otherwise noted. - -| Language Support | Status | Notes | -| ---------------- | ------ | ----------------------------------- | -| Python | ✅ | | -| TypeScript | ✅ | | -| Ruby | 🚧 | Alpha release, contact us to use it | - -Contact us on Discord if you have a language you'd like to see supported. diff --git a/docs/docs/home/running-tests.mdx b/docs/docs/home/running-tests.mdx deleted file mode 100644 index 62879ebd6..000000000 --- a/docs/docs/home/running-tests.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Running Tests" ---- - -## Using the playground - -Use the playground to run tests against individual function impls. - - - -## From BAML Studio - -Coming soon -You can also create tests from production logs in BAML Studio. Any weird or atypical -user inputs can be used to create a test case with just 1 click. - -## Programmatically - -Tests can also be defined using common testing frameworks like pytest. [Learn more](/v3/syntax/function-testing). diff --git a/docs/docs/observability/overview.mdx b/docs/docs/observability/overview.mdx new file mode 100644 index 000000000..a62924c39 --- /dev/null +++ b/docs/docs/observability/overview.mdx @@ -0,0 +1,14 @@ +--- +title: "Enabling" +--- + +To enable observability with BAML, you'll first need to sign up for a [Boundary Studio](https://app.boundaryml.com) account. + +Once you've signed up, you'll be able to create a new project and get your project token. + +Then simply add the following environment variables prior to running your application: + +```bash +export BOUNDARY_PROJECT_ID=project_uuid +export BOUNDARY_SECRET=your_token +``` diff --git a/docs/docs/guides/boundary_studio/tracing-tagging.mdx b/docs/docs/observability/tracing-tagging.mdx similarity index 94% rename from docs/docs/guides/boundary_studio/tracing-tagging.mdx rename to docs/docs/observability/tracing-tagging.mdx index 1d8c25b35..fd603595e 100644 --- a/docs/docs/guides/boundary_studio/tracing-tagging.mdx +++ b/docs/docs/observability/tracing-tagging.mdx @@ -29,10 +29,10 @@ async def pre_process_text(text): @trace async def full_analysis(book: Book): - sentiment = await baml.ClassifySentiment.get_impl("v1").run( + sentiment = await baml.ClassifySentiment( pre_process_text(book.content) ) - book_analysis = await baml.AnalyzeBook.get_impl("v1").run(book) + book_analysis = await baml.AnalyzeBook(book) return book_analysis @@ -67,7 +67,7 @@ To add a custom tag, you can import **update_trace_tags(..)** as below: from baml_client.tracing import set_tags, trace import typing -@trace() +@trace async def pre_process_text(text): set_tags(userId="1234") diff --git a/docs/docs/snippets/class.mdx b/docs/docs/snippets/class.mdx new file mode 100644 index 000000000..c5f9d0230 --- /dev/null +++ b/docs/docs/snippets/class.mdx @@ -0,0 +1,115 @@ +--- +title: "class" +--- + +Classes consist of a name, a list of properties, and their [types](/docs/snippets/supported-types). +In the context of LLMs, classes describe the type of the variables you can inject into prompts and extract out from the response. + + + Note properties have no `:` + + + +```llvm Baml +class Foo { + property1 string + property2 int? + property3 Bar[] + property4 MyEnum +} +``` + +```python Python Equivalent +from pydantic import BaseModel +from path.to.bar import Bar +from path.to.my_enum import MyEnum + +class Foo(BaseModel): + property1: str + property2: Optional[int]= None + property3: List[Bar] + property4: MyEnum +``` + +```typescript Typescript Equivalent +import z from "zod"; +import { BarZod } from "./path/to/bar"; +import { MyEnumZod } from "./path/to/my_enum"; + +const FooZod = z.object({ + property1: z.string(), + property2: z.number().int().nullable().optional(), + property3: z.array(BarZod), + property4: MyEnumZod, +}); + +type Foo = z.infer; +``` + + + +## Class Attributes + + +If set, will allow you to add fields to the class dynamically at runtime (in your python/ts/etc code). See [dynamic classes](/docs/calling-baml/dynamic-types) for more information. + + + +```rust BAML +class MyClass { + property1 string + property2 int? + + @@dynamic // allows me to later propert3 float[] at runtime +} +``` + +## Field Attributes + +When prompt engineering, you can also alias values and add descriptions. + + +Aliasing renames the field for the llm to potentially "understand" your value better, while keeping the original name in your code, so you don't need to change your downstream code everytime. + +This will also be used for parsing the output of the LLM back into the original object. + + + +This adds some additional context to the field in the prompt. + + + +```rust BAML +class MyClass { + property1 string @alias("name") @description("The name of the object") + age int? @description("The age of the object") +} +``` + +## Constraints + +Classes may have any number of properties. +Property names must follow these rules: +- Must start with a letter +- Must contain only letters, numbers, and underscores +- Must be unique within the class +- classes cannot be self-referential (cannot have a property of the same type as the class itself) + +The type of a property can be any [supported type](/docs/snippets/supported-types) + +### Default values + +- Not yet supported. For optional properties, the default value is `None` in python. + +## Inheritance + +Never supported. Like rust, we take the stance that [composition is better than inheritance](https://www.digitalocean.com/community/tutorials/composition-vs-inheritance). + diff --git a/docs/docs/snippets/clients/fallback.mdx b/docs/docs/snippets/clients/fallback.mdx new file mode 100644 index 000000000..c1561110d --- /dev/null +++ b/docs/docs/snippets/clients/fallback.mdx @@ -0,0 +1,75 @@ +--- +title: fallback +--- + +You can use the `fallback` provider to add more resilliancy to your application. + +A fallback will attempt to use the first client, and if it fails, it will try the second client, and so on. + +You can nest fallbacks inside of other fallbacks. + +```rust BAML +client SuperDuperClient { + provider fallback + options { + strategy [ + ClientA + ClientB + ClientC + ] + } +} +``` + +## Options + + + The list of client names to try in order. Cannot be empty. + + +## retry_policy + +Like any other client, you can specify a retry policy for the fallback client. See [retry_policy](retry-policy) for more information. + +The retry policy will test the fallback itself, after the entire strategy has failed. + +```rust BAML +client SuperDuperClient { + provider fallback + retry_policy MyRetryPolicy + options { + strategy [ + ClientA + ClientB + ClientC + ] + } +} +``` + +## Nesting multiple fallbacks + +You can nest multiple fallbacks inside of each other. The fallbacks will just chain as you would expect. + +```rust BAML +client SuperDuperClient { + provider fallback + options { + strategy [ + ClientA + ClientB + ClientC + ] + } +} + +client MegaClient { + provider fallback + options { + strategy [ + SuperDuperClient + ClientD + ] + } +} +``` \ No newline at end of file diff --git a/docs/docs/snippets/clients/overview.mdx b/docs/docs/snippets/clients/overview.mdx new file mode 100644 index 000000000..e2a8f88da --- /dev/null +++ b/docs/docs/snippets/clients/overview.mdx @@ -0,0 +1,54 @@ +Clients are used to configure how LLMs are called. + +Here's an example of a client configuration: + +```rust BAML +client MyClient { + provider openai + options { + model gpt-4o // Configure which model is used + temperature 0.7 // Pass additional options to the model + } +} +``` + +Usage: + +```rust BAML +function MakeHaiku(topic: string) -> string { + client MyClient + prompt #" + Write a haiku about {{ topic }}. + "# +} +``` + +## Fields + + +This configures which provider to use. The provider is responsible for handling the actual API calls to the LLM service. The provider is a required field. + +The configuration modifies the URL request BAML runtime makes. + +| Provider Name | Docs | Notes | +| -------------- | -------------------------------- | ---------------------------------------------------------- | +| `openai` | [OpenAI](providers/openai) | Anything that follows openai's API exactly | +| `ollama` | [Ollama](providers/ollama) | Alias for an openai client but with default ollama options | +| `azure-openai` | [Azure OpenAI](providers/azure) | | +| `anthropic` | [Anthropic](providers/anthropic) | | +| `google-ai` | [Google AI](providers/gemini) | | +| `fallback` | [Fallback](fallback) | Used to chain models conditional on failures | +| `round-robin` | [Round Robin](round-robin) | Used to load balance | + + + + + The name of the retry policy. See [Retry + Policy](/docs/snippets/clients/retry). + + + + These vary per provider. Please see provider specific documentation for more + information. Generally they are pass through options to the POST request made + to the LLM. + diff --git a/docs/docs/snippets/clients/providers/anthropic.mdx b/docs/docs/snippets/clients/providers/anthropic.mdx new file mode 100644 index 000000000..15344d59d --- /dev/null +++ b/docs/docs/snippets/clients/providers/anthropic.mdx @@ -0,0 +1,117 @@ +--- +title: anthropic +--- + +The `anthropic` provider supports all APIs that use the same interface for the `/v1/messages` endpoint. + +For `ollama` ([Docs](ollama)) or `azure` ([Docs](azure)) we recommend using the respective provider instead as there are more checks. + +Example: +```rust BAML +client MyClient { + provider anthropic + options { + model "claude-3-5-sonnet-20240620" + temperature 0 + } +} +``` + +The options are passed through directly to the API, barring a few. Here's a shorthand of the options: + +## Non-forwarded options + + Will be passed as a bearer token. **Default: `env.ANTHROPIC_API_KEY`** + + `Authorization: Bearer $api_key` + + + + The base URL for the API. **Default: `https://api.anthropic.com`** + + + + The default role for any prompts that don't specify a role. **Default: `system`** + + We don't have any checks for this field, you can pass any string you wish. + + + + Additional headers to send with the request. + + Unless specified with a different value, we inject in the following headers: + ``` + "anthropic-version" "2023-06-01" + ``` + +Example: +```rust +client MyClient { + provider anthropic + options { + api_key env.MY_ANTHROPIC_KEY + model "claude-3-5-sonnet-20240620" + headers { + "X-My-Header" "my-value" + } + } +} +``` + + +## Forwarded options + + BAML will auto construct this field for you from the prompt, if necessary. + Only the first system message will be used, all subsequent ones will be cast to the `assistant` role. + + + + BAML will auto construct this field for you from the prompt + + + + BAML will auto construct this field for you based on how you call the client in your code + + + + The model to use. + +| Model | Description | +| --- | --- | +| `claude-3-5-sonnet-20240620` | | +| `claude-3-opus-20240229` | | +| `claude-3-sonnet-20240229` | | +| `claude-3-haiku-20240307` | | + + + +See anthropic docs for the latest list of all models. You can pass any model name you wish, we will not check if it exists. + + + + The maximum number of tokens to generate. **Default: `4069`** + + + +For all other options, see the [official anthropic API documentation](https://docs.anthropic.com/en/api/messages). \ No newline at end of file diff --git a/docs/docs/snippets/clients/providers/aws-bedrock.mdx b/docs/docs/snippets/clients/providers/aws-bedrock.mdx new file mode 100644 index 000000000..c96456d0f --- /dev/null +++ b/docs/docs/snippets/clients/providers/aws-bedrock.mdx @@ -0,0 +1,80 @@ +--- +title: aws-bedrock +description: AWS Bedrock provider for BAML +--- + +The `aws-bedrock` provider supports all text-output models available via the [`Converse` API](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html). + +Example: + +```rust BAML +client MyClient { + provider aws-bedrock + options { + api_key env.MY_OPENAI_KEY + model "gpt-3.5-turbo" + temperature 0.1 + } +} +``` + +## Authorization + +We use the AWS SDK under the hood, which will respect [all authentication mechanisms supported by the SDK](https://docs.rs/aws-config/latest/aws_config/index.html), including but not limited to: + + - `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` as set in your environment variables + - loading the specified `AWS_PROFILE` from `~/.aws/config` + - built-in authn for services running in EC2, ECS, Lambda, etc. + +## Forwarded options + + + BAML will auto construct this field for you from the prompt + + + + The model to use. + +| Model | Description | +| --------------- | ------------------------------ | +| `anthropic.claude-3-haiku-20240307-v1:0` | Fastest + Cheapest | +| `anthropic.claude-3-sonnet-20240307-v1:0` | Smartest | +| `meta.llama3-8b-instruct-v1:0` | | +| `meta.llama3-70b-instruct-v1:0` | | +| `mistral.mistral-7b-instruct-v0:2` | | +| `mistral.mixtral-8x7b-instruct-v0:1` | | + +Run `aws bedrock list-foundation-models | jq '.modelSummaries.[].modelId` to get a list of available foundation models; you can also use any custom models you've deployed. + +Note that to use any of these models you'll need to [request model access]. + +[request model access]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html + + + + + Additional inference configuration to send with the request; see [AWS Bedrock documentation](https://docs.rs/aws-sdk-bedrockruntime/latest/aws_sdk_bedrockruntime/types/struct.InferenceConfiguration.html). + +Example: + +```rust BAML +client MyClient { + provider aws-bedrock + options { + inference_configuration { + max_tokens 1000 + temperature 1.0 + top_p 0.8 + stop_sequence ["_EOF"] + } + } +} +``` + + diff --git a/docs/docs/snippets/clients/providers/azure.mdx b/docs/docs/snippets/clients/providers/azure.mdx new file mode 100644 index 000000000..f4745b2dd --- /dev/null +++ b/docs/docs/snippets/clients/providers/azure.mdx @@ -0,0 +1,111 @@ +--- +title: azure-openai +--- + +For `azure-openai`, we provide a client that can be used to interact with the OpenAI API hosted on Azure using the `/chat/completions` endpoint. + +Example: +```rust BAML +client MyClient { + provider azure-openai + options { + resource_name "my-resource-name" + deployment_id "my-deployment-id" + // Alternatively, you can use the base_url field + // base_url "https://my-resource-name.openai.azure.com/openai/deployments/my-deployment-id" + api_version "2024-02-01" + api_key env.AZURE_OPENAI_API_KEY + } +} +``` + + + `api_version` is required. Azure will return not found if the version is not specified. + + + +The options are passed through directly to the API, barring a few. Here's a shorthand of the options: + +## Non-forwarded options + + Will be injected via the header `API-KEY`. **Default: `env.AZURE_OPENAI_API_KEY`** + + `API-KEY: $api_key` + + + + The base URL for the API. **Default: `https://${resource_name}.openai.azure.com/openai/deployments/${deployment_id}`** + + May be used instead of `resource_name` and `deployment_id`. + + + + See the `base_url` field. + + + + See the `base_url` field. + + + + The default role for any prompts that don't specify a role. **Default: `system`** + + We don't have any checks for this field, you can pass any string you wish. + + + + Will be passed via a query parameter `api-version`. + + + + Additional headers to send with the request. + +Example: +```rust BAML +client MyClient { + provider azure-openai + options { + resource_name "my-resource-name" + deployment_id "my-deployment-id" + api_version "2024-02-01" + api_key env.AZURE_OPENAI_API_KEY + headers { + "X-My-Header" "my-value" + } + } +} +``` + + +## Forwarded options + + BAML will auto construct this field for you from the prompt + + + BAML will auto construct this field for you based on how you call the client in your code + + +For all other options, see the [official Azure API documentation](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions). diff --git a/docs/docs/snippets/clients/providers/gemini.mdx b/docs/docs/snippets/clients/providers/gemini.mdx new file mode 100644 index 000000000..48537cafe --- /dev/null +++ b/docs/docs/snippets/clients/providers/gemini.mdx @@ -0,0 +1,89 @@ +--- +title: google-ai +--- + +The `google-ai` provider supports the `https://generativelanguage.googleapis.com/v1/models/{model_id}/generateContent` and `https://generativelanguage.googleapis.com/v1/models/{model_id}/streamGenerateContent` endpoint. + + +BAML will automatically pick `streamGenerateContent` if you call the streaming interface. + + +Example: +```rust BAML +client MyClient { + provider google-ai + options { + model "gemini-1.5-flash" + } +} +``` + +The options are passed through directly to the API, barring a few. Here's a shorthand of the options: + +## Non-forwarded options + + Will be passed as the `x-goog-api-key` header. **Default: `env.GOOGLE_API_KEY`** + + `x-goog-api-key: $api_key` + + + + The base URL for the API. **Default: `https://generativelanguage.googleapis.com/v1`** + + + + The default role for any prompts that don't specify a role. **Default: `user`** + + We don't have any checks for this field, you can pass any string you wish. + + + + The model to use. **Default: `gemini-1.5-flash`** + + We don't have any checks for this field, you can pass any string you wish. + +| Model | Input(s) | Optimized for | +| --- | --- | --- | +| `gemini-1.5-pro` | Audio, images, videos, and text | Complex reasoning tasks such as code and text generation, text editing, problem solving, data extraction and generation | +| `gemini-1.5-flash` | Audio, images, videos, and text | Fast and versatile performance across a diverse variety of tasks | +| `gemini-1.0-pro` | Text | Natural language tasks, multi-turn text and code chat, and code generation | + +See the [Google Docs](https://ai.google.dev/gemini-api/docs/models/gemini) for the latest models. + + + + Additional headers to send with the request. + +Example: +```rust BAML +client MyClient { + provider google-ai + options { + model "gemini-1.5-flash" + headers { + "X-My-Header" "my-value" + } + } +} +``` + + +## Forwarded options + + BAML will auto construct this field for you from the prompt + + + +For all other options, see the [official Google Gemini API documentation](https://ai.google.dev/api/rest/v1/models/generateContent). diff --git a/docs/docs/snippets/clients/providers/ollama.mdx b/docs/docs/snippets/clients/providers/ollama.mdx new file mode 100644 index 000000000..3c83f1ea8 --- /dev/null +++ b/docs/docs/snippets/clients/providers/ollama.mdx @@ -0,0 +1,91 @@ +--- +title: ollama +--- + +For `ollama`, we provide a client that can be used to interact with [ollama](https://ollama.com/) `/chat/completions` endpoint. + +What is ollama? Ollama is an easy way to run LLMs locally! + +Example: +```rust BAML +client MyClient { + provider ollama + options { + model llama2 + } +} +``` + +The options are passed through directly to the API, barring a few. Here's a shorthand of the options: + +## Non-forwarded options + + The base URL for the API. **Default: `http://localhost:11434/v1`** + Note the `/v1` at the end of the URL. See [Ollama's OpenAI compatability](https://ollama.com/blog/openai-compatibility) + + + + The default role for any prompts that don't specify a role. **Default: `system`** + + We don't have any checks for this field, you can pass any string you wish. + + + + Additional headers to send with the request. + +Example: +```rust BAML +client MyClient { + provider ollama + options { + model llama2 + headers { + "X-My-Header" "my-value" + } + } +} +``` + + +## Forwarded options + + BAML will auto construct this field for you from the prompt + + + BAML will auto construct this field for you based on how you call the client in your code + + + The model to use. + +| Model | Description | +| --- | --- | +| `llama3` | Meta Llama 3: The most capable openly available LLM to date | +| `qwen2` | Qwen2 is a new series of large language models from Alibaba group | +| `phi3` | Phi-3 is a family of lightweight 3B (Mini) and 14B (Medium) state-of-the-art open models by Microsoft | +| `aya` | Aya 23, released by Cohere, is a new family of state-of-the-art, multilingual models that support 23 languages. | +| `mistral` | The 7B model released by Mistral AI, updated to version 0.3. | +| `gemma` | Gemma is a family of lightweight, state-of-the-art open models built by Google DeepMind. Updated to version 1.1 | +| `mixtral` | A set of Mixture of Experts (MoE) model with open weights by Mistral AI in 8x7b and 8x22b parameter sizes. | + +See ollama docs for the list of ollama models. [Model Library](https://ollama.com/library) + +To use a specific version you would do: `"mixtral:8x22b"` + + + +For all other options, see the [official OpenAI API documentation](https://platform.openai.com/docs/api-reference/chat/create). diff --git a/docs/docs/snippets/clients/providers/openai.mdx b/docs/docs/snippets/clients/providers/openai.mdx new file mode 100644 index 000000000..310298120 --- /dev/null +++ b/docs/docs/snippets/clients/providers/openai.mdx @@ -0,0 +1,94 @@ +--- +title: openai +--- + +The `openai` provider supports all APIs that use the same interface for the `/chat` endpoint. + + + For `ollama` ([Docs](ollama)) or `azure-openai` ([Docs](azure)) we recommend + using the respective provider instead. + + +Example: + +```rust BAML +client MyClient { + provider openai + options { + api_key env.MY_OPENAI_KEY + model "gpt-3.5-turbo" + temperature 0.1 + } +} +``` + +The options are passed through directly to the API, barring a few. Here's a shorthand of the options: + +## Non-forwarded options + + + Will be passed as a bearer token. **Default: `env.OPENAI_API_KEY`** + `Authorization: Bearer $api_key` + + + + The base URL for the API. **Default: `https://api.openai.com/v1`** + + + + The default role for any prompts that don't specify a role. **Default: + `system`** We don't have any checks for this field, you can pass any string + you wish. + + + + Additional headers to send with the request. + +Example: + +```rust BAML +client MyClient { + provider openai + options { + api_key env.MY_OPENAI_KEY + model "gpt-3.5-turbo" + headers { + "X-My-Header" "my-value" + } + } +} +``` + + + +## Forwarded options + + + BAML will auto construct this field for you from the prompt + + + BAML will auto construct this field for you based on how you call the client in your code + + + The model to use. + +| Model | Description | +| --------------- | ------------------------------ | +| `gpt-3.5-turbo` | Fastest + Cheapest | +| `gpt-4o` | Fast + text + image | +| `gpt-4-turbo` | Smartest + text + image + code | + +See openai docs for the list of openai models. You can pass any model name you wish, we will not check if it exists. + + + +For all other options, see the [official OpenAI API documentation](https://platform.openai.com/docs/api-reference/chat/create). diff --git a/docs/docs/snippets/clients/providers/other.mdx b/docs/docs/snippets/clients/providers/other.mdx new file mode 100644 index 000000000..33ee98a34 --- /dev/null +++ b/docs/docs/snippets/clients/providers/other.mdx @@ -0,0 +1,28 @@ +--- +title: Others (e.g. openrouter) +--- + +Since many model providers are settling on following the OpenAI Chat API spec, the recommended way to use them is to use the `openai` provider. + +Please report an [issue](https://github.com/BoundaryML/baml/issues) if you encounter something that doesn't work as expected. + +## Examples + +### OpenRouter + +https://openrouter.ai - A unified interface for LLMs + +```rust BAML +client MyClient { + provider openai + options { + base_url "https://openrouter.ai/api/v1" + api_key env.OPENROUTER_API_KEY + model "openai/gpt-3.5-turbo" + headers { + "HTTP-Referer" "YOUR-SITE-URL" // Optional + "X-Title" "YOUR-TITLE" // Optional + } + } +} +``` diff --git a/docs/docs/snippets/clients/providers/vertex.mdx b/docs/docs/snippets/clients/providers/vertex.mdx new file mode 100644 index 000000000..b3668ef78 --- /dev/null +++ b/docs/docs/snippets/clients/providers/vertex.mdx @@ -0,0 +1,7 @@ +--- +title: vertex-ai +--- + +We don't currently offer `vertex-ai` as a provider. If you'd like to see it, please comment on this issue: [Support Vertex AI provider](https://github.com/BoundaryML/baml/issues/706). + +You can instead use gemini-models with the `google-ai` provider, [see here](gemini). \ No newline at end of file diff --git a/docs/docs/snippets/clients/retry.mdx b/docs/docs/snippets/clients/retry.mdx new file mode 100644 index 000000000..5201a69e6 --- /dev/null +++ b/docs/docs/snippets/clients/retry.mdx @@ -0,0 +1,85 @@ +--- +title: retry_policy +--- + +A retry policy can be attached to any `client` and will attempt to retry requests that fail due to a network error. + +```rust BAML +retry_policy MyPolicyName { + max_retries 3 +} +``` + +Usage: +```rust BAML +client MyClient { + provider anthropic + retry_policy MyPolicyName + options { + model "claude-3-sonnet-20240229" + api_key env.ANTHROPIC_API_KEY + } +} +``` + +## Fields + + Number of **additional** retries to attempt after the initial request fails. + + + + The strategy to use for retrying requests. Default is `constant_delay(delay_ms=200)`. + +| Strategy | Docs | Notes | +| --- | --- | --- | +| `constant_delay` | [Docs](#constant-delay) | | +| `exponential_backoff` | [Docs](#exponential-backoff) | | + +Example: +```rust BAML +retry_policy MyPolicyName { + max_retries 3 + strategy { + type constant_delay + delay_ms 200 + } +} +``` + + + +## Strategies + +### constant_delay + + Configures to the constant delay strategy. + + + + The delay in milliseconds to wait between retries. **Default: 200** + + + +### exponential_backoff + + Configures to the exponential backoff strategy. + + + + The initial delay in milliseconds to wait between retries. **Default: 200** + + + + The multiplier to apply to the delay after each retry. **Default: 1.5** + + + + The maximum delay in milliseconds to wait between retries. **Default: 10000** + \ No newline at end of file diff --git a/docs/docs/snippets/clients/round-robin.mdx b/docs/docs/snippets/clients/round-robin.mdx new file mode 100644 index 000000000..e968dd643 --- /dev/null +++ b/docs/docs/snippets/clients/round-robin.mdx @@ -0,0 +1,85 @@ +--- +title: round-robin +--- + +The `round_robin` provider allows you to distribute requests across multiple clients in a round-robin fashion. After each call, the next client in the list will be used. + +```rust BAML +client MyClient { + provider round-robin + options { + strategy [ + ClientA + ClientB + ClientC + ] + } +} +``` + +## Options + + + The list of client names to try in order. Cannot be empty. + + + + The index of the client to start with. + + **Default is `random(0, len(strategy))`** + + In the [BAML Playground](/docs/get-started/quickstart/editors-vscode.mdx), Default is `0`. + + +## retry_policy + +When using a retry_policy with a round-robin client, it will rotate the strategy list after each retry. + +```rust BAML +client MyClient { + provider round-robin + retry_policy MyRetryPolicy + options { + strategy [ + ClientA + ClientB + ClientC + ] + } +} +``` + +## Nesting multiple round-robin clients + +You can nest multiple round-robin clients inside of each other. The round-robin as you would expect. + +```rust BAML +client MyClient { + provider round-robin + options { + strategy [ + ClientA + ClientB + ClientC + ] + } +} + +client MegaClient { + provider round-robin + options { + strategy [ + MyClient + ClientD + ClientE + ] + } +} + +// Calling MegaClient will call: +// MyClient(ClientA) +// ClientD +// ClientE +// MyClient(ClientB) +// etc. +``` diff --git a/docs/docs/snippets/enum.mdx b/docs/docs/snippets/enum.mdx new file mode 100644 index 000000000..af432eece --- /dev/null +++ b/docs/docs/snippets/enum.mdx @@ -0,0 +1,109 @@ +--- +title: "enum" +--- + +Enums are useful for classification tasks. BAML has helper functions that can help you serialize an enum into your prompt in a neatly formatted list (more on that later). + +To define your own custom enum in BAML: + + +```rust BAML +enum MyEnum { + Value1 + Value2 + Value3 +} +``` + +```python Python Equivalent +from enum import StrEnum + +class MyEnum(StrEnum): + Value1 = "Value1" + Value2 = "Value2" + Value3 = "Value3" +``` + +```typescript Typescript Equivalent +enum MyEnum { + Value1 = "Value1", + Value2 = "Value2", + Value3 = "Value3", +} +``` + + + +- You may have as many values as you'd like. +- Values may not be duplicated or empty. +- Values may not contain spaces or special characters and must not start with a number. + +## Enum Attributes + + +This is the name of the enum rendered in the prompt. + + + + +If set, will allow you to add/remove/modify values to the enum dynamically at runtime (in your python/ts/etc code). See [dynamic enums](/docs/calling-baml/dynamic-types) for more information. + + + +```rust BAML +enum MyEnum { + Value1 + Value2 + Value3 + + @@alias("My Custom Enum") + @@dynamic // allows me to later skip Value2 at runtime +} +``` + +## Value Attributes + +When prompt engineering, you can also alias values and add descriptions, or even skip them. + + +Aliasing renames the values for the llm to potentially "understand" your value better, while keeping the original name in your code, so you don't need to change your downstream code everytime. + +This will also be used for parsing the output of the LLM back into the enum. + + + +This adds some additional context to the value in the prompt. + + + +Skip this value in the prompt and during parsing. + + + +```rust BAML +enum MyEnum { + Value1 @alias("complete_summary") @description("Answer in 2 sentences") + Value2 + Value3 @skip + Value4 @description(#" + This is a long description that spans multiple lines. + It can be useful for providing more context to the value. + "#) +} +``` + + +See more in [prompt syntax docs](prompt-syntax/what-is-jinja) diff --git a/docs/docs/snippets/functions/classification.mdx b/docs/docs/snippets/functions/classification.mdx new file mode 100644 index 000000000..b40e0775c --- /dev/null +++ b/docs/docs/snippets/functions/classification.mdx @@ -0,0 +1,77 @@ +You can write functions to classify elements using [Enums](/docs/snippets/enum). + +Here is such an example: + +```rust BAML +enum Category { + Refund + CancelOrder @description("some description") + TechnicalSupport @alias("technical-help") // or alias the name + AccountIssue + Question +} + +function ClassifyMessage(input: string) -> Category { + client GPT4Turbo + prompt #" + {# + This automatically injects good instructions + for classification since BAML knows + Category is an enum. + #} + {{ ctx.output_format }} + + {{ _.role('user') }} + {{ input }} + + {{ _.role('assistant') }} + Response: + "# +} +``` +If you use BAML Playground, you can see what we inject into the prompt, with full transparency. + +The neat part about BAML is that you don't need to parse the enums out of the answer yourself. It _will just work_. BAML's fuzzy parsing detects when the LLM prints something like: +```text +Based on the information provided, I think the answer is Refund +``` +and will give you the actual `Category.Refund` when you call the function. We will add more knobs so you can make this parsing more or less strict. + +## Usage + +```python python +from baml_client import b +from baml_client.types import Category + +... + result = await b.ClassifyMessage("I want to cancel my order") + assert result == Category.CancelOrder +``` + +```typescript typescript +import b from 'baml_client' +import { Category } from 'baml_client/types' + +... + const result = await b.ClassifyMessage("I want to cancel my order") + assert(result === Category.Cancel) + +```ruby ruby +require_relative "baml_client/client" + +$b = Baml.Client + +def main + category = $b.ClassifyMessage(input: "I want to cancel my order") + puts category == Baml::Types::Category::CancelOrder +end + +if __FILE__ == $0 + main +end +``` + + +## Handling Dynamic Categories (e.g. user-provided, or from a database) +To handle dynamic categories you can use [dynamic enums](/docs/calling-baml/dynamic-types) to build your enum at runtime. + diff --git a/docs/docs/snippets/functions/extraction.mdx b/docs/docs/snippets/functions/extraction.mdx new file mode 100644 index 000000000..3dd195aec --- /dev/null +++ b/docs/docs/snippets/functions/extraction.mdx @@ -0,0 +1,75 @@ +Here is how we can get structured data from a chunk of text or even an image (using a union input type): + +```rust BAML +class CharacterDescription { + name string + clothingItems string[] + hairColor string? @description(#" + The color of the character's hair. + "#) + spells Spells[] +} + +class Spells { + name string + description string +} + +function DescribeCharacter(image_or_paragraph: image | string) -> CharacterDescription { + client GPT4o + prompt #" + {{ _.role("user")}} + + Describe this character according to the schema provided: + {{ image_or_paragraph }} + + + {{ ctx.output_format }} + + Before you answer, explain your reasoning in 3 sentences. + "# +} +``` + +If you open up the **VSCode Playground** you will be able to test this function instantly. + +## Usage + +See [image docs](/docs/snippets/supported-types#image) + + +```python python +from baml_client import b +from baml_client.types import CharacterDescription +from baml_py import Image + +... + result = await b.DescribeCharacter("...") + assert isinstance(result, CharacterDescription) + + result_from_image = await b.DescribeCharacter(Image.from_url("http://...")) +``` + +```typescript typescript +import { Image } from "@boundaryml/baml" +import b from 'baml_client' +import { Category } from 'baml_client/types' + +... + const result = await b.DescribeCharacter("...") + // result == interface CharacterDescription + + const result_from_image = await b.DescribeCharacter(Image.fromUrl("http://...")) +``` + +```ruby ruby +require_relative "baml_client/client" + +$b = Baml.Client + +# images are not supported in Ruby +def example + stream = $b.DescribeCharacter("Bob the builder wears overalls") +end +``` + \ No newline at end of file diff --git a/docs/docs/snippets/functions/function-calling.mdx b/docs/docs/snippets/functions/function-calling.mdx new file mode 100644 index 000000000..5f3997836 --- /dev/null +++ b/docs/docs/snippets/functions/function-calling.mdx @@ -0,0 +1,61 @@ +--- +title: Function Calling / Tools +--- +"Function calling" is a technique for getting an LLM to choose a function to call for you. + +The way it works is: +1. You define a task with certain function(s) +2. Ask the LLM to **choose which function to call** +3. **Get the function parameters from the LLM** for the appropriate function it choose +4. **Call the functions** in your code with those parameters + +In BAML, you can get represent a `tool` or a `function` you want to call as a BAML `class`, and make the function output be that class definition. + +```rust BAML +class WeatherAPI { + city string @description("the user's city") + timeOfDay string @description("As an ISO8601 timestamp") +} + +function UseTool(user_message: string) -> WeatherAPI { + client GPT4Turbo + prompt #" + Extract the info from this message + --- + {{ user_message }} + --- + + {# special macro to print the output schema. #} + {{ ctx.output_format }} + + JSON: + "# +} +``` + +## Choosing multiple Tools + +To choose ONE tool out of many, you can use a union: +```rust BAML +function UseTool(user_message: string) -> WeatherAPI | MyOtherAPI { + .... // same thing +} +``` + +If you use [VSCode Playground](/docs/get-started/quickstart/editors-vscode), you can see what we inject into the prompt, with full transparency. + +## Choosing N Tools +To choose many tools, you can use a union of a list: +```rust BAML +function UseTool(user_message: string) -> (WeatherAPI | MyOtherAPI)[] { + .... // same thing +} +``` + +## Function-calling APIs vs Prompting +Injecting your function schemas into the prompt, as BAML does, outperforms function-calling across all benchmarks for major providers (see [Berkeley's Function-calling Leaderboard](https://gorilla.cs.berkeley.edu/leaderboard.html), where "Prompt" outperforms "FC"). + +Keep in mind that "JSON mode" is nearly the same thing as "prompting", but it enforces the LLM response is ONLY a JSON blob. +BAML does not use JSON mode since it allows developers to use better prompting techniques like chain-of-thought, to allow the LLM to express its reasoning before printing out the actual schema. BAML's parser can find the json schema(s) out of free-form text for you. + +BAML may support native function-calling APIs in the future (please let us know more about your use-case so we can prioritize accordingly) \ No newline at end of file diff --git a/docs/docs/snippets/functions/overview.mdx b/docs/docs/snippets/functions/overview.mdx new file mode 100644 index 000000000..81237f247 --- /dev/null +++ b/docs/docs/snippets/functions/overview.mdx @@ -0,0 +1,128 @@ +A **function** is the contract between the application and the AI model. It defines the desired **input** and a **guaranteed output**. + +Here is a simple BAML function to extract a resume. Note the input is a chunk of resume_text, and the output is an actual resume class. Read [prompt syntax](/docs/snippets/prompt-syntax/what-is-jinja) to learn more about the prompt and what Jinja templating is. + +```rust BAML +class Resume { + name string + education Education[] @description("Extract in the same order listed") + skills string[] @description("Only include programming languages") +} + +class Education { + school string + degree string + year int +} + +function ExtractResume(resume_text: string) -> Resume { + client GPT4Turbo + // The prompt uses Jinja syntax. Change the models or this text and watch the prompt preview change! + prompt #" + Parse the following resume and return a structured representation of the data in the schema below. + + Resume: + --- + {{ resume_text }} + --- + + {# special macro to print the output instructions. #} + {{ ctx.output_format }} + + JSON: + "# +} +``` + +A function signature directly translates into the same function in the language of your choice, and BAML's fuzzy parser will handle fixing any common json mistakes LLMs make. Here's how you call it: + + +```python python +from baml_client import b +from baml_client.types import Resume + +async def main(): +resume_text = """Jason Doe\nPython, Rust\nUniversity of California, Berkeley, B.S.\nin Computer Science, 2020\nAlso an expert in Tableau, SQL, and C++\n""" + + # this function comes from the autogenerated "baml_client". + # It calls the LLM you specified and handles the parsing. + resume = await b.ExtractResume(resume_text) + + # Fully type-checked and validated! + assert isinstance(resume, Resume) + +``` + +```typescript typescript +import b from 'baml_client' + +async function main() { + const resume_text = `Jason Doe\nPython, Rust\nUniversity of California, Berkeley, B.S.\nin Computer Science, 2020\nAlso an expert in Tableau, SQL, and C++` + + // this function comes from the autogenerated "baml_client". + // It calls the LLM you specified and handles the parsing. + const resume = await b.ExtractResume(resume_text) + + // Fully type-checked and validated! + resume.name === 'Jason Doe' +} +``` + +```ruby ruby + +require_relative "baml_client/client" +b = Baml.Client + +# Note this is not async +res = b.TestFnNamedArgsSingleClass( + myArg: Baml::Types::Resume.new( + key: "key", + key_two: true, + key_three: 52, + ) +) +``` + + + +## Complex input types + +If you have a complex input type you can import them from `baml_client` and use them when calling your function. Imagine we injected `class Resume` into a different baml function called AnalyzeResume. Here's what the call looks like: + + +```python Python +from baml_client.types import Resume +from baml_client import b +... + await b.AnalyzeResume( + Resume(name="Mark", education=[...])) + +```` + +```typescript typescript +import { Resume, b } from "baml_client" + +... + await b.AnalyzeResume({ + name: "Mark", + education: [...] + }) +```` + +```ruby Ruby +require_relative "baml_client/client" +b = Baml.Client +... +res = b.AnalyzeResume( + myArg: Baml::Types::Resume.new( + name: "key", + education: [...] + ) +) +``` + + + +See more at [Calling functions](/docs/calling-baml/calling-functions) + +Checkout [PromptFiddle](https://promptfiddle.com) to see various interactive BAML function examples. diff --git a/docs/docs/snippets/prompt-syntax/comments.mdx b/docs/docs/snippets/prompt-syntax/comments.mdx new file mode 100644 index 000000000..a6e648177 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/comments.mdx @@ -0,0 +1 @@ +Use `{# ... #}` inside the `prompt` to add comments diff --git a/docs/docs/snippets/prompt-syntax/conditionals.mdx b/docs/docs/snippets/prompt-syntax/conditionals.mdx new file mode 100644 index 000000000..3bf1f53e2 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/conditionals.mdx @@ -0,0 +1,13 @@ +Use conditional statements to control the flow and output of your templates based on conditions: + +```jinja2 +function MyFunc(user: User) -> string { + prompt #" + {% if user.is_active %} + Welcome back, {{ user.name }}! + {% else %} + Please activate your account. + {% endif %} + "# +} +``` diff --git a/docs/docs/snippets/prompt-syntax/ctx.mdx b/docs/docs/snippets/prompt-syntax/ctx.mdx new file mode 100644 index 000000000..771cbad72 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/ctx.mdx @@ -0,0 +1,38 @@ +--- +title: ctx (accessing metadata) +--- + +If you try rendering `{{ ctx }}` into the prompt (literally just write that out!), you'll see all the metadata we inject to run this prompt within the playground preview. + +In the earlier tutorial we mentioned `ctx.output_format`, which contains the schema, but you can also access client information: + + +## Usecase: Conditionally render based on client provider + +In this example, we render the list of messages in XML tags if the provider is Anthropic (as they recommend using them as delimiters). See also [template_string](/docs/snippets/template-string) as it's used in here. + +```jinja2 +template_string RenderConditionally(messages: Message[]) #" + {% for message in messages %} + {%if ctx.client.provider == "anthropic" %} + {{ message.user_name }}: {{ message.content }} + {% else %} + {{ message.user_name }}: {{ message.content }} + {% endif %} + {% endfor %} +"# + +function MyFuncWithGPT4(messages: Message[]) -> string { + client GPT4o + prompt #" + {{ RenderConditionally(messages)}} + "# +} + +function MyFuncWithAnthropic(messages: Message[]) -> string { + client Claude35 + prompt #" + {{ RenderConditionally(messages )}} + #" +} +``` \ No newline at end of file diff --git a/docs/docs/snippets/prompt-syntax/loops.mdx b/docs/docs/snippets/prompt-syntax/loops.mdx new file mode 100644 index 000000000..7667ace4b --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/loops.mdx @@ -0,0 +1,40 @@ +Here's how you can iterate over a list of items, accessing each item's attributes: + +```jinja2 +function MyFunc(messages: Message[]) -> string { + prompt #" + {% for message in messages %} + {{ message.user_name }}: {{ message.content }} + {% endfor %} + "# +} +``` + +## loop + +Jinja provides a `loop` object that can be used to access information about the loop. Here are some of the attributes of the `loop` object: + + +| Variable | Description | +|------------------|-----------------------------------------------------------------------------| +| loop.index | The current iteration of the loop. (1 indexed) | +| loop.index0 | The current iteration of the loop. (0 indexed) | +| loop.revindex | The number of iterations from the end of the loop (1 indexed) | +| loop.revindex0 | The number of iterations from the end of the loop (0 indexed) | +| loop.first | True if first iteration. | +| loop.last | True if last iteration. | +| loop.length | The number of items in the sequence. | +| loop.cycle | A helper function to cycle between a list of sequences. See the explanation below. | +| loop.depth | Indicates how deep in a recursive loop the rendering currently is. Starts at level 1 | +| loop.depth0 | Indicates how deep in a recursive loop the rendering currently is. Starts at level 0 | +| loop.previtem | The item from the previous iteration of the loop. Undefined during the first iteration. | +| loop.nextitem | The item from the following iteration of the loop. Undefined during the last iteration. | +| loop.changed(*val) | True if previously called with a different value (or not called at all). | + +```jinja2 +prompt #" + {% for item in items %} + {{ loop.index }}: {{ item }} + {% endfor %} +"# +``` \ No newline at end of file diff --git a/docs/docs/snippets/prompt-syntax/output-format.mdx b/docs/docs/snippets/prompt-syntax/output-format.mdx new file mode 100644 index 000000000..414f29657 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/output-format.mdx @@ -0,0 +1,132 @@ +--- +title: ctx.output_format +--- + +`{{ ctx.output_format }}` is used within a prompt template (or in any template_string) to print out the function's output schema into the prompt. It describes to the LLM how to generate a structure BAML can parse (usually JSON). + +Here's an example of a function with `{{ ctx.output_format }}`, and how it gets rendered by BAML before sending it to the LLM. + +**BAML Prompt** + +```rust +class Resume { + name string + education Education[] +} +function ExtractResume(resume_text: string) -> Resume { + prompt #" + Extract this resume: + --- + {{ resume_text }} + --- + + {{ ctx.output_format }} + "# +} +``` + +**Rendered prompt** + +```text +Extract this resume +--- +Aaron V. +Bachelors CS, 2015 +UT Austin +--- + +Answer in JSON using this schema: +{ + name: string + education: [ + { + school: string + graduation_year: string + } + ] +} +``` + +## Controlling the output_format + +`ctx.output_format` can also be called as a function with parameters to customize how the schema is printed, like this: +```text + +{{ ctx.output_format(prefix="If you use this schema correctly and I'll tip $400:\n", always_hoist_enums=true)}} +``` + +Here's the parameters: + +The prefix instruction to use before printing out the schema. + +```text +Answer in this schema correctly I'll tip $400: +{ + ... +} +``` +BAML's default prefix varies based on the function's return type. + +| Fuction return type | Default Prefix | +| --- | --- | +| Primitive (String) | | +| Primitive (Other) | `Answer as a: ` | +| Enum | `Answer with any of the categories:\n` | +| Class | `Answer in JSON using this schema:\n` | +| List | `Answer with a JSON Array using this schema:\n` | +| Union | `Answer in JSON using any of these schemas:\n` | +| Optional | `Answer in JSON using this schema:\n` | + + + + +Whether to inline the enum definitions in the schema, or print them above. **Default: false** + + +**Inlined** +``` + +Answer in this json schema: +{ + categories: "ONE" | "TWO" | "THREE" +} +``` + +**hoisted** +``` +MyCategory +--- +ONE +TWO +THREE + +Answer in this json schema: +{ + categories: MyCategory +} +``` + +BAML will always hoist if you add a [description](/docs/snippets/enum#aliases-descriptions) to any of the enum values. + + + + + +**Default: ` or `** + +If a type is a union like `string | int` or an optional like `string?`, this indicates how it's rendered. + + +BAML renders it as `property: string or null` as we have observed some LLMs have trouble identifying what `property: string | null` means (and are better with plain english). + +You can always set it to ` | ` or something else for a specific model you use. + + +## Why BAML doesn't use JSON schema format in prompts +BAML uses "type definitions" or "jsonish" format instead of the long-winded json-schema format. +The tl;dr is that json schemas are +1. 4x more inefficient than "type definitions". +2. very unreadable by humans (and hence models) +3. perform worse than type definitions (especially on deeper nested objects or smaller models) + +Read our [full article on json schema vs type definitions](https://www.boundaryml.com/blog/type-definition-prompting-baml) diff --git a/docs/docs/snippets/prompt-syntax/roles.mdx b/docs/docs/snippets/prompt-syntax/roles.mdx new file mode 100644 index 000000000..685453f66 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/roles.mdx @@ -0,0 +1,83 @@ +--- +title: _.role +--- + +BAML prompts are compiled into a `messages` array (or equivalent) that most LLM providers use: + +BAML Prompt -> `[{ role: "user": content: "hi there"}, { role: "assistant", ...}]` + +By default, BAML puts everything into a single message with the `system` role if available (or whichever one is best for the provider you have selected). +When in doubt, the playground always shows you the current role for each message. + +To specify a role explicitly, add the `{{ _.role("user")}}` syntax to the prompt +```jinja2 +prompt #" + {{ _.role("system") }} Everything after + this element will be a system prompt! + + {{ _.role("user")}} + And everything after this + will be a user role +"# +``` +Try it out in [PromptFiddle](https://www.promptfiddle.com) + + + BAML may change the default role to `user` if using specific APIs that only support user prompts, like when using prompts with images. + + +We use `_` as the prefix of `_.role()` since we plan on adding more helpers here in the future. + +## Example -- Using `_.role()` in for-loops + +Here's how you can inject a list of user/assistant messages and mark each as a user or assistant role: + +```rust BAML +class Message { + role string + message string +} + +function ChatWithAgent(input: Message[]) -> string { + client GPT4o + prompt #" + {% for m in messages %} + {{ _.role(m.role) }} + {{ m.message }} + {% endfor %} + "# +} +``` + +```rust BAML +function ChatMessages(messages: string[]) -> string { + client GPT4o + prompt #" + {% for m in messages %} + {{ _.role("user" if loop.index % 2 == 1 else "assistant") }} + {{ m }} + {% endfor %} + "# +} +``` + +## Example -- Using `_.role()` in a template string + +```rust BAML +template_strings YouAreA(name: string, job: string) #" + {{ _.role("system") }} + You are an expert {{ name }}. {{ job }} + + {{ ctx.output_format }} + {{ _.role("user") }} +"# + +function CheckJobPosting(post: string) -> bool { + client GPT4o + prompt #" + {{ YouAreA("hr admin", "You're role is to ensure every job posting is bias free.") }} + + {{ post }} + "# +} +``` diff --git a/docs/docs/snippets/prompt-syntax/variables.mdx b/docs/docs/snippets/prompt-syntax/variables.mdx new file mode 100644 index 000000000..b79b53ef3 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/variables.mdx @@ -0,0 +1,2 @@ + +See [template_string](/docs/snippets/template-string) to learn how to add variables in .baml files \ No newline at end of file diff --git a/docs/docs/snippets/prompt-syntax/what-is-jinja.mdx b/docs/docs/snippets/prompt-syntax/what-is-jinja.mdx new file mode 100644 index 000000000..05b70c177 --- /dev/null +++ b/docs/docs/snippets/prompt-syntax/what-is-jinja.mdx @@ -0,0 +1,82 @@ +--- +title: What is Jinja / Cookbook +--- + +BAML Prompt strings are essentially [Jinja](https://jinja.palletsprojects.com/en/3.1.x/templates/) templates, which offer the ability to express logic and data manipulation within strings. Jinja is a very popular and mature templating language amongst python developers, so github copilot or GPT4 can already help you write most of the logic you want. + +## Jinja Cookbook + +When in doubt -- use the BAML VSCode Playground preview. It will show you the fully rendered prompt, even when it has complex logic. + +### Basic Syntax + +- `{% ... %}`: Use for executing statements such as for-loops or conditionals. +- `{{ ... }}`: Use for outputting expressions or variables. +- `{# ... #}`: Use for comments within the template, which will not be rendered. + +### Loops / Iterating Over Lists + +Here's how you can iterate over a list of items, accessing each item's attributes: + +```jinja2 +function MyFunc(messages: Message[]) -> string { + prompt #" + {% for message in messages %} + {{ message.user_name }}: {{ message.content }} + {% endfor %} + "# +} +``` + +### Conditional Statements + +Use conditional statements to control the flow and output of your templates based on conditions: + +```jinja2 +function MyFunc(user: User) -> string { + prompt #" + {% if user.is_active %} + Welcome back, {{ user.name }}! + {% else %} + Please activate your account. + {% endif %} + "# +} +``` + +### Setting Variables + +You can define and use variables within your templates to simplify expressions or manage data: + +```jinja2 +function MyFunc(items: Item[]) -> string { + prompt #" + {% set total_price = 0 %} + {% for item in items %} + {% set total_price = total_price + item.price %} + {% endfor %} + Total price: {{ total_price }} + "# +} +``` + +### Including other Templates + +To promote reusability, you can include other templates within a template. See [template strings](/docs/snippets/template-string): + +```rust +template_string PrintUserInfo(arg1: string, arg2: User) #" + {{ arg1 }} + The user's name is: {{ arg2.name }} +"# + +function MyFunc(arg1: string, user: User) -> string { + prompt #" + Here is the user info: + {{ PrintUserInfo(arg1, user) }} + "# +} +``` + +### Built-in filters +See [jinja docs](https://jinja.palletsprojects.com/en/3.1.x/templates/#list-of-builtin-filters) \ No newline at end of file diff --git a/docs/docs/snippets/supported-types.mdx b/docs/docs/snippets/supported-types.mdx new file mode 100644 index 000000000..05a08b2bc --- /dev/null +++ b/docs/docs/snippets/supported-types.mdx @@ -0,0 +1,286 @@ +--- +title: Supported Types +--- + +Here's a list of all the types you can extract from LLMs with BAML: + +## Primitive types +* `bool` +* `int` +* `float` +* `string` +* `null` + +## Multimodal Types +See [calling a function with multimodal types](/docs/snippets/calling-baml/multi-modal) + +### `image` + +You can use an image like this for models that support them: + +```rust +function DescribeImage(myImg: image) -> string { + client GPT4Turbo + prompt #" + {{ _.role("user")}} + Describe the image in four words: + {{ myImg }} + "# +} +``` +You cannot name as variable "image" at the moment as it is a reserved keyword. + +Calling a function with an image type: + +```python Python +from baml_py import Image +from baml_client import b + +async def test_image_input(): + # from URL + res = await b.TestImageInput( + img=Image.from_url( + "https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png" + ) + ) + + # Base64 image + image_b64 = "iVBORw0K...." + res = await b.TestImageInput( + img=Image.from_base64("image/png", image_b64) + ) +``` + +```typescript TypeScript +import { b } from '../baml_client' +import { Image } from "@boundaryml/baml" +... + + // URL + let res = await b.TestImageInput( + Image.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png'), + ) + + // Base64 + let res = await b.TestImageInput( + Image.fromBase64('image/png', image_b64), + ) +``` + +```ruby Ruby +(we're working on it!) +``` + + +### `audio` + +Example +```rust +function DescribeSound(myAudio: audio) -> string { + client GPT4Turbo + prompt #" + {{ _.role("user")}} + Describe the audio in four words: + {{ myAudio }} + "# +} +``` +Calling functions that have `audio` types. + + +```python Python +from baml_py import Audio +from baml_client import b + +async def run(): + # from URL + res = await b.TestAudioInput( + img=Audio.from_url( + "https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png" + ) + ) + + # Base64 + b64 = "iVBORw0K...." + res = await b.TestAudioInput( + img=Audio.from_base64("image/png", b64) + ) +``` + +```typescript TypeScript +import { b } from '../baml_client' +import { Audio } from "@boundaryml/baml" +... + + // URL + let res = await b.TestAudioInput( + Audio.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.mp4'), + ) + + // Base64 + const audio_base64 = ".." + let res = await b.TestAudioInput( + Audio.fromBase64('image/png', audio_base64), + ) + +``` + +```ruby Ruby +we're working on it! +``` + + +## Composite/Structured Types + +### enum + +**See also:** [Enum](/docs/syntax/enum) + +A user-defined type consisting of a set of named constants. +Use it when you need a model to choose from a known set of values, like in classification problems + +```rust +enum Name { + Value1 + Value2 @description("My optional description annotation") +} +``` +### class + +**See also:** [Class](/docs/syntax/class) + +Classes are for user-defined complex data structures. + +Use when you need an LLM to call another function (e.g. OpenAI's function calling), you can model the function's parameters as a class. You can also get models to return complex structured data by using a class. + +**Example:** +Note that properties have no `:` +```rust +class Car { + model string + year int @description("Year of manufacture") +} +``` + +### Optional (?) +A type that represents a value that might or might not be present. + +Useful when a variable might not have a value and you want to explicitly handle its absence. +**Syntax:** `?` + +**Example:** `int?` or `(MyClass | int)?` + +### Union (|) + +A type that can hold one of several specified types. + +This can be helpful with **function calling**, where you want to return different types of data depending on which function should be called. +- **Syntax:** `|` +- **Example:** `int | string` or `(int | string) | MyClass` or `string | MyClass | int[]` + + Order is important. `int | string` is not the same as `string | int`. +
+ For example, if you have a `"1"` string, it will be parsed as an `int` if + you use `int | string`, but as a `string` if you use `string | int`. +
+ +### List/Array ([]) +A collection of elements of the same type. +- **Syntax:** `[]` +- **Example:** `string[]` or `(int | string)[]` or `int[][]` + + +
    +
  • Array types can be nested to create multi-dimensional arrays
  • +
  • An array type cannot be optional
  • +
+
+ +### ❌ Dictionary + +- Not yet supported. Use a `class` instead. + +### ❌ Set + +- Not yet supported. Use a `List` instead. + +### ❌ Tuple + +- Not yet supported. Use a `class` instead. + +## Examples and Equivalents + +Here are some examples and what their equivalents are in different languages. + +### Example 1 + + +```baml Baml +int?|string[]|MyClass +```` + +```python Python Equivalent +Union[Optional[int], List[str], MyClass] +``` + +```typescript TypeScript Equivalent +(number | null) | string[] | MyClass +``` + + + +### Example 2 + + +```baml Baml +string[] +``` + +```python Python Equivalent +List[str] +``` + +```typescript TypeScript Equivalent +string[] +``` + + + +### Example 3 + + +```baml Baml +(int|float)[] +``` +```python Python Equivalent +List[Union[int, float]] +``` + +```typescript TypeScript Equivalent +number[] +``` + + + +### Example 4 + + +```baml Baml +(int? | string[] | MyClass)[] +``` + +```python Python Equivalent +Optional[List[Union[Optional[int], List[str], MyClass]]] +``` + +```typescript TypeScript Equivalent +((number | null) | string[] | MyClass)[] +``` + + + +## ⚠️ Unsupported +- `any/json` - Not supported. We don't want to encourage its use as it defeats the purpose of having a type system. if you really need it, for now use `string` and call `json.parse` yourself or use [dynamic types](/docs/calling-baml/dynamic-types) +- `datetime` - Not yet supported. Use a `string` instead. +- `duration` - Not yet supported. We recommend using `string` and specifying that it must be an "ISO8601 duration" in the description, which you can parse yourself into a duration. +- `units (currency, temperature)` - Not yet supported. Use a number (`int` or `float`) and have the unit be part of the variable name. For example, `temperature_fahrenheit` and `cost_usd` (see [@alias](/docs/snippets/class#aliases-descriptions)) diff --git a/docs/docs/syntax/comments.mdx b/docs/docs/snippets/syntax/comments.mdx similarity index 99% rename from docs/docs/syntax/comments.mdx rename to docs/docs/snippets/syntax/comments.mdx index d29f2ebed..6fe8d6448 100644 --- a/docs/docs/syntax/comments.mdx +++ b/docs/docs/snippets/syntax/comments.mdx @@ -33,4 +33,4 @@ Multiline comments are denoted via `{//` and `//}`. bar //} ``` - + diff --git a/docs/docs/snippets/syntax/dictionaries.mdx b/docs/docs/snippets/syntax/dictionaries.mdx new file mode 100644 index 000000000..81e71a03f --- /dev/null +++ b/docs/docs/snippets/syntax/dictionaries.mdx @@ -0,0 +1,34 @@ +Dictionaries in BAML have this syntax. You'll see them mainly in `tests` declared in BAML, and `clients`. + +```baml BAML +{ + key1 value1 + key2 { + nestedKey1 nestedValue1 + } +} +``` +Note they do not use `:` + +You can use unquoted or quoted strings, booleans, numbers and nested dictionaries as values. + +```rust BAML +{ + key1 "value1" + key2 { + nestedKey1 1 + nestedKey2 true + } +} +``` + +**Dictionary with multiline string as a value**: + +```rust BAML +{ + key1 #" + This is a + multiline string + "# +} +``` \ No newline at end of file diff --git a/docs/docs/snippets/syntax/lists.mdx b/docs/docs/snippets/syntax/lists.mdx new file mode 100644 index 000000000..958b790d5 --- /dev/null +++ b/docs/docs/snippets/syntax/lists.mdx @@ -0,0 +1,22 @@ +If you have to declare a list in a .baml file you can use this syntax: +```rust baml +{ + key1 [value1, value2, value3], + key2 [ + value1, + value2, + value3 + ] + key3 [ + { + key1 value1, + key2 value2 + } + { + key1 value1, + key2 value2 + } + ] +} +``` +The commas are optional if doing a multiline list. \ No newline at end of file diff --git a/docs/docs/syntax/strings.mdx b/docs/docs/snippets/syntax/strings.mdx similarity index 93% rename from docs/docs/syntax/strings.mdx rename to docs/docs/snippets/syntax/strings.mdx index 657fa726d..512f63533 100644 --- a/docs/docs/syntax/strings.mdx +++ b/docs/docs/snippets/syntax/strings.mdx @@ -63,4 +63,4 @@ python#" return 1 "# ``` -these are not functional code blocks they are can just be used for documentation purposes. +these are not functional code blocks -- they are only used for documentation purposes. diff --git a/docs/docs/snippets/template-string.mdx b/docs/docs/snippets/template-string.mdx new file mode 100644 index 000000000..2525921de --- /dev/null +++ b/docs/docs/snippets/template-string.mdx @@ -0,0 +1,35 @@ +Writing prompts requires a lot of string manipulation. BAML has a `template_string` to let you combine different string templates together. Under-the-hood they use [jinja](/docs/snippets/prompt-syntax/what-is-jinja) to evaluate the string and its inputs. + +Think of template strings as functions that have variables, and return a string. They can be used to define reusable parts of a prompt, or to make the prompt more readable by breaking it into smaller parts. + +Example +```rust BAML +// Inject a list of "system" or "user" messages into the prompt. +template_string PrintMessages(messages: Message[]) #" + {% for m in messages %} + {{ _.role(m.role) }} + {{ m.message }} + {% endfor %} +"# + +function ClassifyConversation(messages: Message[]) -> Category[] { + client GPT4Turbo + prompt #" + Classify this conversation: + {{ PrintMessages(messages) }} + + Use the following categories: + {{ ctx.output_format}} + "# +} +``` + +In this example we can call the template_string `PrintMessages` to subdivide the prompt into "user" or "system" messages using `_.role()` (see [message roles](/docs/snippets/prompt-syntax/roles)). This allows us to reuse the logic for printing messages in multiple prompts. + +You can nest as many template strings inside each other and call them however many times you want. + + + The BAML linter may give you a warning when you use template strings due to a static analysis limitation. You can ignore this warning. If it renders in the playground, you're good! + +Use the playground preview to ensure your template string is being evaluated correctly! + diff --git a/docs/docs/snippets/test-cases.mdx b/docs/docs/snippets/test-cases.mdx new file mode 100644 index 000000000..48690915d --- /dev/null +++ b/docs/docs/snippets/test-cases.mdx @@ -0,0 +1,109 @@ +You can test your BAML functions in the VSCode Playground by adding a `test` snippet into a BAML file: + +```rust +enum Category { + Refund + CancelOrder + TechnicalSupport + AccountIssue + Question +} + +function ClassifyMessage(input: string) -> Category { + client GPT4Turbo + prompt #" + ... truncated ... + "# +} + +test Test1 { + functions [ClassifyMessage] + args { + input "Can't access my account using my usual login credentials, and each attempt results in an error message stating 'Invalid username or password.' I have tried resetting my password using the 'Forgot Password' link, but I haven't received the promised password reset email." + } +} +``` +See the [interactive examples](https://promptfiddle.com) + +The BAML playground will give you a starting snippet to copy that will match your function signature. + + +BAML doesn't use between key-value pairs `:` except in function parameters + + +## Complex object inputs + +Objects are injected as dictionaries +```rust +class Message { + user string + content string +} + +function ClassifyMessage(messages: Messages[]) -> Category { +... +} + +test Test1 { + functions [ClassifyMessage] + args { + messages [ + { + user "hey there" + content #" + You can also add a multi-line + string with the hashtags + Instead of ugly json with \n + "# + } + ] + } +} +``` + +## Images +An `image` input type is translated into this object (assuming the function signature is `function MyFunction(myImage: image) -> ...`): + +URL input +``` +test Test1 { + args { + myImage { + url "https...." + } + } +} +``` +base64 input +``` +test Test1 { + args { + myImage { + base64 "base64string" + media_type "image/png" + } + } +} +``` +file input (coming soon) + + +## Audio +Audio inputs are similar to images: + +URL input +``` +... + { + url "https//domain.com/somefile.mp3" + } +... +``` +Base64 input +``` +{ + media_type "audio/mp3" + base64 "base64string" +} +``` +file input (coming soon) \ No newline at end of file diff --git a/docs/docs/syntax/class.mdx b/docs/docs/syntax/class.mdx deleted file mode 100644 index f5b0fc74b..000000000 --- a/docs/docs/syntax/class.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "class" ---- - -Classes consist of a name, a list of properties, and their [types](/docs/syntax/type). -In the context of LLMs, classes describe the type of the variables you can inject into prompts and extract out from the response. In python, classes are represented by [pydantic](https://pydantic-docs.helpmanual.io/) models. - - -```llvm Baml -class Foo { - property1 string - property2 int? - property3 Bar[] - property4 MyEnum -} -``` - -```python Python Equivalent -from pydantic import BaseModel -from path.to.bar import Bar -from path.to.my_enum import MyEnum - -class Foo(BaseModel): - property1: str - property2: Optional[int]= None - property3: List[Bar] - property4: MyEnum -``` - -```typescript Typescript Equivalent -import z from "zod"; -import { BarZod } from "./path/to/bar"; -import { MyEnumZod } from "./path/to/my_enum"; - -const FooZod = z.object({ - property1: z.string(), - property2: z.number().int().nullable().optional(), - property3: z.array(BarZod), - property4: MyEnumZod, -}); - -type Foo = z.infer; -``` - - - -## Properties - -Classes may have any number of properties. -Property names must follow: - -- Must start with a letter -- Must contain only letters, numbers, and underscores -- Must be unique within the class - -The type of a property can be any [supported type](/docs/syntax/type) - -### Default values - -- Not yet supported. For optional properties, the default value is `None` in python. - -## Inheritance - -Not supported. Like rust, we take the stance that [composition is better than inheritance](https://www.digitalocean.com/community/tutorials/composition-vs-inheritance). - -## aliases, descriptions -Classes support aliases, descriptions, and other kinds of attributes. See the [prompt engineering docs](./prompt_engineering/class) diff --git a/docs/docs/syntax/client/client.mdx b/docs/docs/syntax/client/client.mdx deleted file mode 100644 index fd309a96c..000000000 --- a/docs/docs/syntax/client/client.mdx +++ /dev/null @@ -1,229 +0,0 @@ ---- -title: client ---- - -A **client** is the mechanism by which a function calls an LLM. - -## Syntax - -```rust -client Name { - provider ProviderName - options { - // ... - } -} -``` - -- `Name`: The name of the client (can be any [a-zA-Z], numbers or `_`). Must start with a letter. - -## Properties - -| Property | Type | Description | Required | -| -------------- | -------------------- | -------------------------------------------------- | -------- | -| `provider` | name of the provider | The provider to use. | Yes | -| `options` | key-value pair | These are passed through directly to the provider. | No | -| `retry_policy` | name of the policy | [Learn more](/docs/syntax/client/retry) | No | - -## Providers - -BAML ships with the following providers (you can can also write your own!): - -- LLM client providers - - `openai` - - `azure-openai` - - `anthropic` - - `google-ai` - - `ollama` -- Composite client providers - - `fallback` - - `round-robin` - -There are two primary types of LLM clients: chat and completion. BAML abstracts -away the differences between these two types of LLMs by putting that logic in -the clients. - -You can call a chat client with a single completion prompt and it will -automatically map it to a chat prompt. Similarly you can call a completion -client with multiple chat prompts and it will automatically map it to a -completion prompt. - -### OpenAI/Azure - -Provider names: - -- `openai-azure` - -You must pick the right provider for the type of model you are using. For -example, if you are using a GPT-3 model, you must use a `chat` provider, but if -you're using the instruct model, you must use a `completion` provider. - -You can see all models supported by OpenAI [here](https://platform.openai.com/docs/models). - -Accepts any options as defined by [OpenAI/Azure SDK](https://github.com/openai/openai-python/blob/9e6e1a284eeb2c20c05a03831e5566a4e9eaba50/src/openai/types/chat/completion_create_params.py#L28) - -See [Azure Docs](https://learn.microsoft.com/en-us/azure/ai-services/openai/quickstart?tabs=command-line,python&pivots=programming-language-python#create-a-new-python-application) to learn how to get your Azure API key. - -```rust -// A client that uses the OpenAI chat API. -client MyGPT35Client { - // Since we're using a GPT-3 model, we must use a chat provider. - provider openai - options { - model gpt-3.5-turbo - // Set the api_key parameter to the OPENAI_API_KEY environment variable - api_key env.OPENAI_API_KEY - } -} - -// A client that uses the OpenAI chat API. -client MyAzureClient { - // I configured the deployment to use a GPT-3 model, - // so I must use a chat provider. - provider openai-azure - options { - api_key env.AZURE_OPENAI_KEY - // This may change in the future - api_version "2023-05-15" - api_type azure - azure_endpoint env.AZURE_OPENAI_ENDPOINT - model "gpt-35-turbo-default" - } -} -``` - - -### Anthropic - -Provider names: - -- `anthropic` - -Accepts any options as defined by [Anthropic SDK](https://github.com/anthropics/anthropic-sdk-python/blob/fc90c357176b67cfe3a8152bbbf07df0f12ce27c/src/anthropic/types/completion_create_params.py#L20) - -```rust -client MyClient { - provider baml-anthropic - options { - model claude-2 - max_tokens_to_sample 300 - } -} -``` -### Google - -Provider names: -- `google-ai` - -Accepts any options as defined by the [Gemini SDK](https://ai.google.dev/gemini-api/docs/get-started/tutorial?lang=rest#configuration). - -```rust -client MyGoogleClient { - provider google-ai - options{ - model "gemini-1.5-pro-001" - } -} -``` - -### Ollama - -- BAML Python Client >= 0.18.0 -- BAML Typescript Client >= 0.0.6 - -Provider names: - -- `ollama` - -Accepts any options as defined by [Ollama SDK](https://github.com/ollama/ollama/blob/main/docs/api.md#generate-a-chat-completion). - -```rust -client MyOllamaClient { - provider ollama - options { - model llama2 - } -} -``` -#### Requirements - -1. For Ollama, in your terminal run `ollama serve` -2. In another window, run `ollama run llama2` (or your model), and you should be good to go. -3. If your Ollama port is not 11434, you can specify the endpoint manually. - -```rust -client MyClient { - provider ollama - options { - model llama2 - options { - temperature 0 - base_url "http://localhost:" // Default is 11434 - } - } -} -``` - - -This is not the Vertex AI Gemini API, but the Google Generative AI Gemini API, which supports the same models but at a different endpoint. - - -### Fallback - -The `baml-fallback` provider allows you to define a resilient client, by -specifying strategies for re-running failed requests. See -[Fallbacks/Redundancy](/docs/syntax/client/redundancy) for more information. - -### Round Robin - -The `baml-round-robin` provider allows you to load-balance your requests across -multiple clients. Here's an example: - -```rust -client MyClient { - provider round-robin - options { - strategy [ - MyGptClient - MyAnthropicClient - ] - } -} -``` - -This will alternate between `MyGptClient` and `MyAnthropicClient` for successive -requests, starting from a randomly selected client (so that if you run multiple -instances of your application, they won't all start with the same client). - -If you want to control which client is used for the first request, you can specify -a `start` index, which tells BAML to start with the client at index `start`, like -so: - -```rust -client MyClient { - provider baml-round-robin - options { - start 1 - strategy [ - MyGptClient - MyAnthropicClient - ] - } -} -``` - -## Other providers -You can use the `openai` provider if the provider you're trying to use has the same ChatML response format (i.e. HuggingFace via their Inference Endpoint or your own local endpoint) - -Some providers ask you to add a `base_url`, which you can do like this: - -```rust -client MyClient { - provider openai - options { - model some-custom-model - api_key env.OPEN - base_url "https://some-custom-url-here" - } -} -``` \ No newline at end of file diff --git a/docs/docs/syntax/client/redundancy.mdx b/docs/docs/syntax/client/redundancy.mdx deleted file mode 100644 index 3e11ce8f8..000000000 --- a/docs/docs/syntax/client/redundancy.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Fallbacks/Redundancy ---- - -Many LLMs are subject to fail due to transient errors. Setting up a fallback allows you to switch to a different LLM when prior LLMs fail (e.g. outage, high latency, rate limits, etc). - -To accomplish this, instead of new syntax, you can simple define a `client` using a `baml-fallback` provider. - -The `baml-fallback` provider takes a `strategy` option, which is a list of `client`s to try in order. If the first client fails, the second client is tried, and so on. - -```rust -client MySafeClient { - provider baml-fallback - options { - // First try GPT4 client, if it fails, try GPT35 client. - strategy [ - GPT4, - GPT35 - // If you had more clients, you could add them here. - // Anthropic - ] - } -} - -client GPT4 { - provider baml-openai-chat - options { - // ... - } -} - -client GPT35 { - provider baml-openai-chat - options { - // ... - } -} -``` - -Fallbacks are triggered on any error. - -Errors codes are: -| Name | Error Code | -| ----------------- | -------------------- | -| BAD_REQUEST | 400 | -| UNAUTHORIZED | 401 | -| FORBIDDEN | 403 | -| NOT_FOUND | 404 | -| RATE_LIMITED | 429 | -| INTERNAL_ERROR | 500 | -| SERVICE_UNAVAILABLE | 503 | -| UNKNOWN | 1 | diff --git a/docs/docs/syntax/client/retry.mdx b/docs/docs/syntax/client/retry.mdx deleted file mode 100644 index 0584bc561..000000000 --- a/docs/docs/syntax/client/retry.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: retry_policy ---- - -Many LLMs are subject to fail due to transient errors. The retry policy allows you to configure how many times and how the client should retry a failed operation before giving up. - -## Syntax - -```rust -retry_policy PolicyName { - max_retries int - strategy { - type constant_delay - delay_ms int? // defaults to 200 - } | { - type exponential_backoff - delay_ms int? // defaults to 200 - max_delay_ms int? // defaults to 10000 - multiplier float? // defaults to 1.5 - } -} -``` - -### Properties - -| Name | Description | Required | -| ------------- | ----------------------------------------------------------------------- | -------------------------------------- | -| `max_retries` | The maximum number of times the client should retry a failed operation. | YES | -| `strategy` | The strategy to use for retrying failed operations. | NO, defauts to `constant_delay(200ms)` | - -You can read more about specific retry strategy param: - -- [constant_delay](https://tenacity.readthedocs.io/en/latest/api.html?highlight=wait_exponential#tenacity.wait.wait_fixed) -- [exponential_backoff](https://tenacity.readthedocs.io/en/latest/api.html?highlight=wait_exponential#tenacity.wait.wait_exponential) - -## Conditions for retrying - -If the client encounters a transient error, it will retry the operation. The following errors are considered transient: -| Name | Error Code | Retry | -| ----------------- | -------------------- | --- | -| BAD_REQUEST | 400 | NO | -| UNAUTHORIZED | 401 | NO | -| FORBIDDEN | 403 | NO | -| NOT_FOUND | 404 | NO | -| RATE_LIMITED | 429 | YES | -| INTERNAL_ERROR | 500 | YES | -| SERVICE_UNAVAILABLE | 503 | YES | -| UNKNOWN | 1 | YES | - -The UNKNOWN error code is used when the client encounters an error that is not listed above. This is usually a temporary error, but it is not guaranteed. - -## Example - - - Each client may have a different retry policy, or no retry policy at all. But - you can also reuse the same retry policy across multiple clients. - - -```rust -// in a .baml file - -retry_policy MyRetryPolicy { - max_retries 5 - strategy { - type exponential_backoff - } -} - -// A client that uses the OpenAI chat API. -client MyGPT35Client { - provider baml-openai-chat - // Set the retry policy to the MyRetryPolicy defined above. - // Any impl that uses this client will retry failed operations. - retry_policy MyRetryPolicy - options { - model gpt-3.5-turbo - api_key env.OPENAI_API_KEY - } -} -``` diff --git a/docs/docs/syntax/enum.mdx b/docs/docs/syntax/enum.mdx deleted file mode 100644 index 7b0feb15a..000000000 --- a/docs/docs/syntax/enum.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "enum" ---- - -Enums are useful for classification tasks. BAML has helper functions that can help you serialize an enum into your prompt in a neatly formatted list (more on that later). - -To define your own custom enum in BAML: - - -```rust BAML -enum MyEnum { - Value1 - Value2 - Value3 -} -``` - -```python Python Equivalent -from enum import StrEnum - -class MyEnum(StrEnum): - Value1 = "Value1" - Value2 = "Value2" - Value3 = "Value3" -``` - -```typescript Typescript Equivalent -enum MyEnum { - Value1 = "Value1", - Value2 = "Value2", - Value3 = "Value3", -} -``` - - - -- You may have as many values as you'd like. -- Values may not be duplicated or empty. -- Values may not contain spaces or special characters and must not start with a number. diff --git a/docs/docs/syntax/function-testing.mdx b/docs/docs/syntax/function-testing.mdx deleted file mode 100644 index 9799409bf..000000000 --- a/docs/docs/syntax/function-testing.mdx +++ /dev/null @@ -1,279 +0,0 @@ ---- -title: "Unit Testing" ---- - -There are two types of tests you may want to run on your AI functions: - -- Unit Tests: Tests a single AI function -- Integration Tests: Tests a pipeline of AI functions and potentially buisness logic - -We support both types of tests using BAML. - -## Using the playground - -Use the playground to run tests against individual functions - - - -## Baml CLI - -You can run tests defined - -## From BAML Studio - -Coming soon -You can also create tests from production logs in BAML Studio. Any weird or atypical -user inputs can be used to create a test case with just 1 click. - -## JSON Files (`__tests__` folder) - -Unit tests created by the playground are stored in the `__tests__` folder. - -The project structure should look like this: - -```bash -. -├── baml_client/ -└── baml_src/ - ├── __tests__/ - │ ├── YourAIFunction/ - │ │ ├── test_name_monkey.json - │ │ └── test_name_cricket.json - │ └── YourAIFunction2/ - │ └── test_name_jellyfish.json - ├── main.baml - └── foo.baml -``` - -You can manually create tests by creating a folder for each function you want to test. Inside each folder, create a json file for each test case you want to run. The json file should be named `test_name.json` where `test_name` is the name of the test case. - -To see the structure of the JSON file, you can create a test using the playground and then copy the JSON file into your project. - - - The BAML compiler reads the `__tests__` folder and generates a pytest file for - you so you don't have to manually write test boilerplate code. - - -## Programmatic Testing (using pytest) - -For python, you can leverage **pytest** to run tests. All you need is to add a **@baml_test** decorator to your test functions to get your test data visualized on the baml dashboard. - -### Running tests - - - Make sure you are running these commands from your python virtual environment - (or **`poetry shell`** if you use poetry) - - -```bash -# From your project root -# Lists all tests -pytest -m baml_test --collect-only -``` - -```bash -# From your project root -# Runs all tests -# For every function -pytest -m baml_test -``` - -To run tests for a subdirectory - -```bash -# From your project root -# Note the underscore at the end of the folder name -pytest -m baml_test ./your-tests-folder/ -``` - -To run tests that have a specific name or group name - -```bash -# From your project root -pytest -m baml_test -k test_group_name -``` - -You can read more about the `-k` arg of pytest here ([PyTest Docs](https://docs.pytest.org/en/latest/example/markers.html#using-k-expr-to-select-tests-based-on-their-name)) - -`-k` will match any tests with that given name. - -To run a specific test case in a test group - -```bash -# From your project root -pytest -m baml_test -k 'test_group_name and test_case_name' -``` - -### Unit Test an AI Function - -Section in progress.. - -### Integration Tests (test a pipeline calling multiple functions) - - - TypeScript support for testing is still in closed alpha - please contact us if you would like to use it! - - - - -```python Test Pipeline -# Import your baml-generated LLM functions -from baml_client import baml as b - -# Import testing library -from baml_client.testing import baml_test - -# Mark this as a baml test (recorded on dashboard and does some setup) -@baml_test -async def test_pipeline(): - message = "I am ecstatic" - response = await b.ClassifySentiment(message) - assert response == Sentiment.POSITIVE - response = await b.GetHappyResponse(message) -``` - - - - - Make sure your test file, the Test class and/or test function is prefixed with - `test` or `Test` respectively. Otherwise, pytest will not pick up your tests. - - -### Parameterized Tests - -Parameterized tests allow you declare a list of inputs and expected outputs for a test case. baml will run the test for each input and compare the output to the expected output. - -```python -from baml_client.testing import baml_test -# Import your baml-generated LLM functions -from baml_client import baml -# Import any custom types defined in .baml files -from baml_client.types import Sentiment - -@baml_test -@pytest.mark.parametrize( - "input, expected_output", - [ - ("I am ecstatic", Sentiment.POSITIVE), - ("I am sad", Sentiment.NEGATIVE), - ("I am angry", Sentiment.NEGATIVE), - ], -) -async def test_sentiments(input, expected_output): - response = await baml.ClassifySentiment(input) - assert response == expected_output -``` - -This will generate 3 test_cases on the dashboard, one for each input. - -### Using custom names for each test - -The parametrize decorator also allows you to specify a custom name for each test case. See below on how we name each test case using the ids parameter. - -```python -from baml_client import baml as b -from baml_client.types import Sentiment, IClassifySentiment - -test_cases = [ - {"input": "I am ecstatic", "expected_output": Sentiment.POSITIVE, "id": "ecstatic-test"}, - {"input": "I am sad", "expected_output": Sentiment.NEGATIVE, "id": "sad-test"}, - {"input": "I am angry", "expected_output": Sentiment.NEGATIVE, "id": "angry-test"}, -] - -@b.ClassifySentiment.test -@pytest.mark.parametrize( - "test_case", - test_cases, - ids=[case['id'] for case in test_cases] -) -# Note the argument name "test_case" is set by the first parameter in the parametrize() decorator -async def test_sentiments(ClassifySentimentImpl: IClassifySentiment, test_case): - response = await ClassifySentimentImpl(test_case["input"]) - assert response == test_case["expected_output"] -``` - -### Grouping Tests by Input Type - -Alternatively, you can group things together logically by defining one test case or test class per input type your testing. In our case, we'll split up all Positive sentiments into their own group. - -```python -from baml_client.testing import baml_test -# Import your baml-generated LLM functions -from baml_client import baml -# Import any custom types defined in .baml files -from baml_client.types import Sentiment - -@baml_test -@pytest.mark.asyncio -@pytest.mark.parametrize( - # Note we only need to pass in one variable to the test, the "input". - "input", - [ - "I am ecstatic", - "I am super happy!" - ], -) -class TestHappySentiments: - async def test_sentiments(input, expected_output): - response = await baml.ClassifySentiment(input) - assert response == Sentiment.POSITIVE - -@baml_test -@pytest.mark.asyncio -@pytest.mark.parametrize( - # Note we only need to pass in one variable to the test, the "input". - "input", - [ - "I am sad", - "I am angry" - ], -) -class TestSadSentiments: - async def test_sentiments(input, expected_output): - response = await baml.ClassifySentiment(input) - assert response == Sentiment.NEGATIVE -``` - -Alternatively you can just write a test function for each input type. - -```python -from baml_client.testing import baml_test -from baml_client import baml -from baml_client.types import Sentiment - -@baml_test -@pytest.mark.asyncio -@pytest.mark.parametrize( - "input", - [ - "I am ecstatic", - "I am super happy!", - "I am thrilled", - "I am overjoyed", - ], -) -async def test_happy_sentiments(input): - response = await baml.ClassifySentiment(input) - assert response == Sentiment.POSITIVE - -@baml_test -@pytest.mark.asyncio -@pytest.mark.parametrize( - "input", - [ - "I am sad", - "I am angry", - "I am upset", - "I am frustrated", - ], -) -async def test_sad_sentiments(input): - response = await baml.ClassifySentiment(input) - assert response == Sentiment.NEGATIVE -``` diff --git a/docs/docs/syntax/function.mdx b/docs/docs/syntax/function.mdx deleted file mode 100644 index 338480230..000000000 --- a/docs/docs/syntax/function.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "function" ---- - -A **function** is the contract between the application and the AI model. It defines the desired **input** and **output**. - - - - -With baml, you can modify the implementation of a function and keep the application logic that uses the -function unchanged. - -Checkout [PromptFiddle](https://promptfiddle.com) to see various BAML function examples. \ No newline at end of file diff --git a/docs/docs/syntax/generator.mdx b/docs/docs/syntax/generator.mdx deleted file mode 100644 index fa788dc7d..000000000 --- a/docs/docs/syntax/generator.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: generator ---- - -The `generator` configuration needs to be added anywhere in .baml files to generate the `baml_client` in Python or Typescript. - -We recommend running **baml init** to have this setup for you with sane defaults. - -Here is how you can add a generator block: - -```rust -generator MyGenerator{ - output_type typescript // or python/pydantic, ruby - output_dir ../ -} -``` - -| Property | Description | Options | Default | -| ------------------- | ------------------------------------------------ | --------------------------------- | ---------------------------------------------- | -| output_type | The language of the generated client | python/pydantic, ruby, typescript | | -| output_dir | The directory where we'll output the generated baml_client | | ../ | diff --git a/docs/docs/syntax/overview.mdx b/docs/docs/syntax/overview.mdx deleted file mode 100644 index 29f7a8ef9..000000000 --- a/docs/docs/syntax/overview.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: BAML Project Structure ---- - -A BAML project has the following structure: - -```bash -. -├── baml_client/ # Generated code -├── baml_src/ # Prompts live here -│ └── foo.baml -# The rest of your project (not generated nor used by BAML) -├── app/ -│ ├── __init__.py -│ └── main.py -└── pyproject.toml - -``` - -1. `baml_src/` is the directory where you write your BAML files with the AI - function declarations, prompts, retry policies, etc. It also contains - [generator](/syntax/generator) blocks which configure how and where to - transpile your BAML code. - -2. `baml_client/` is the directory where BAML will generate code, and where you'll - import the generated code from. - - - -```python Python -from baml_client import baml as b - -await b.YourAIFunction() -``` - -```typescript TypeScript -import b from "@/baml_client"; - -await b.YourAIFunction(); -``` - - - -3. `baml_src/__tests__/` are where your unit tests live. The `.json` files - store the test inputs that can be loaded, deleted, created, and ran using - the BAML VSCode extension. You can also write programmatic python/TS tests - anywhere you like. See [here](/v3/syntax/function-testing) for more - information. - - - **You should never edit any files inside baml_client directory** as the whole - directory gets regenerated on every `baml build` (auto runs on save if using - the VSCode extension). - - - - If you ever run into any issues with the generated code (like merge - conflicts), you can always delete the `baml_client` directory and it will get - regenerated automatically once you fix any other conflicts in your `.baml` - files. - - -### imports - -BAML by default has global imports. Every entity declared in any `.baml` file -is available to all other `.baml` files under the same `baml_src` directory. -You **can** have multiple `baml_src` directories, but no promises on how the -VSCode extension will behave (yet). diff --git a/docs/docs/syntax/prompt_engineering/overview.mdx b/docs/docs/syntax/prompt_engineering/overview.mdx deleted file mode 100644 index 9f044879f..000000000 --- a/docs/docs/syntax/prompt_engineering/overview.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Prompt Syntax ---- - -Prompts are written using the [Jinja templating language](https://jinja.palletsprojects.com/en/3.0.x/templates/). - -There are **2 jinja macros** (or functions) that we have included into the language for you. We recommend viewing what they do using the VSCode preview (or in [promptfiddle.com](promptfiddle.com)), so you can see the full string transform in real time. - -1. **`{{ _.role("user") }}`**: This divides up the string into different message roles. -2. **`{{ ctx.output_format }}`**: This prints out the output format instructions for the prompt. -You can add your own prefix instructions like this: `{{ ctx.output_format(prefix="Please please please format your output like this:")}}`. We have more parameters you can customize. Docs coming soon. -3. **`{{ ctx.client }}`**: This prints out the client model the function is using - -"ctx" is contextual information about the prompt (like the output format or client). "_." is a special namespace for other BAML functions. - - - -Here is what a prompt with jinja looks like using these macros: - -```rust -enum Category { - Refund - CancelOrder - TechnicalSupport - AccountIssue - Question -} - -class Message { - role string - message string -} - - -function ClassifyConversation(messages: Message[]) -> Category[] { - client GPT4Turbo - prompt #" - Classify this conversation: - {% for m in messages %} - {{ _.role(m.role) }} - {{ m.message }} - {% endfor %} - - Use the following categories: - {{ ctx.output_format}} - "# -} -``` - -### Template strings -You can create your own typed templates using the `template_string` keyword, and call them from a prompt: - -```rust -// Extract the logic out of the prompt: -template_string PrintMessages(messages: Message[]) -> string { - {% for m in messages %} - {{ _.role(m.role) }} - {{ m.message }} - {% endfor %} -} - -function ClassifyConversation(messages: Message[]) -> Category[] { - client GPT4Turbo - prompt #" - Classify this conversation: - {{ PrintMessages(messages) }} - - Use the following categories: - {{ ctx.output_format}} - "# -} -``` - -### Conditionals -You can use these special variables to write conditionals, like if you want to change your prompt depending on the model: - - ```rust - {% if ctx.client.name == "GPT4Turbo" %} - // Do something - {% endif %} - ``` - -You can use conditionals on your input objects as well: - - ```rust - {% if messages[0].role == "user" %} - // Do something - {% endif %} - ``` diff --git a/docs/docs/syntax/type-deserializer.mdx b/docs/docs/syntax/type-deserializer.mdx deleted file mode 100644 index 461b97620..000000000 --- a/docs/docs/syntax/type-deserializer.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Parsing and Deserialization ---- - -Baml uses a custom `Deserializer` to parse a string into the desired type. **You don't have to do anything to enable to deserializer, it comes built in.** - -Instead of doing the following, you can rely on BAML to do the parsing for you. - -```python -# Example parsing code you might be writing today -# without baml -import json - -openai_response_text = await openai.completions.create( - ... -) -response = SomePydanticModel(**json.loads(openai_response_text)) - -``` - -## Examples - - - -| LLM Output | Desired Type | Baml Output | How | -| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ | --------------- | ------------------------------------------------------------------------------------------ | -| `great` | Style | `Style.GREAT` | We handle case insensitivity | -| `"great"` | Style | `Style.GREAT` | We handle extra quotes | -| `great` | Style[] | `[Style.GREAT]` | Non-array types are automatically wrapped in an array | -| `{ "feeling": "great" }` | Style | `Style.GREAT` | When looking for a singular value, we can parse dictionaries of 1 keys as singular objects | -|
Some text that goes before...
\```json
{"feeling": "great"}
\```
Some text that came after
| Style | `Style.GREAT` | We can find the inner json object and parse it even when surrounded by lots of text | - - -Note, we can apply the same parsing logic to any type, not just enums. e.g. in the -case of numbers, we can remove commas and parse the number. This page outlines all -the rules we use to parse each type. - - - The deserializer makes 0 external calls and runs fully locally! - - -## Error handling - -All parsing errors are handled by the `Deserializer` and will raise a `DeserializerException`. - - - -```python Python -from baml_client import baml as b -from baml_client import DeserializerException - -try: - response = await b.SomeAIFunction(query="I want to buy a car") -except DeserializerException as e: - # The parser was not able read the response as the expected type - print(e) -``` - -```typescript TypeScript -import b, { DeserializerException } from "@/baml_client"; - -const main = async () => { - try { - await b.ClassifyMessage("I want to cancel my order"); - } catch (e) { - if (e instanceof DeserializerException) { - // The parser was not able read the response as the expected type - console.log(e); - } - throw e; - } -}; - -if (require.main === module) { - main(); -} -``` - - - -## Primitive Types - -TODO: Include a section on how each type is parsed and coerced from other types. - -## Composite/Structured Types - -### enum - -**See:** [Prompt engineering > Enum > @alias](/docs/syntax/prompt_engineering/enum#deserialization-with-alias) - -### class - -**See:** [Prompt engineering > Class](/docs/syntax/class) - -### Optional (?) - -If the type is optional, the parser will attempt to parse the value as the type, or return `null` if we failed to parse. - -### Union (|) - -Unions are parsed in left to right order. The first type that successfully parses the value will be returned. -If no types are able to parse the value, a `DeserializerException` will be raised. - -### List/Array ([]) - -Lists parse each element in the list as the type specified in the list. - -- It will always return a list, even if the list is empty. -- If an element fails to parse, it is skipped and not included in the final list. -- If the value is not a list, the parser will attempt to parse the value as the type and return a list with a single element. diff --git a/docs/docs/syntax/type.mdx b/docs/docs/syntax/type.mdx deleted file mode 100644 index b7e33be6e..000000000 --- a/docs/docs/syntax/type.mdx +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Supported Types ---- - -## Primitive Types - -### ✅ bool - -- **When to use it:** When you need to represent a simple true/false condition. -- **Syntax:** `bool` - -### ✅ int - -- **When to use it:** When you want numeric values -- **Syntax:** `int` - -### ✅ float - -- **When to use it:** When dealing with numerical values that require precision (like measurements or monetary values). -- **Syntax:** `float` - -### ✅ string - -- **Syntax:** `string` - -### ✅ char - -- **When to use it:** When you need to represent a single letter, digit, or other symbols. -- **Syntax:** `char` - -### ✅ null - -- **Syntax:** `null` - -### ✅ Images - -You can use an image like this: - -```rust -function DescribeImage(myImg: image) -> string { - client GPT4Turbo - prompt #" - {{ _.role("user")}} - Describe the image in four words: - {{ myImg }} - "# -} -``` - -### ⚠️ bytes - -- Not yet supported. Use a `string[]` or `int[]` instead. - -### ⚠️ any/json - -- Not supported. - - We don't want to encourage its use as it defeats the purpose of having a - type system. if you really need it, for now use `string` and call - `json.parse` yourself. Also, message us on discord so we can understand your - use case and consider supporting it. - - -### Dates/Times - -#### ⚠️ datetime - -- Not yet supported. Use a `string` or `int` (milliseconds since epoch) instead. - -#### ⚠️ datetime interval - -- Not yet supported. Use a `string` or `int` (milliseconds since epoch) instead. - -### ⚠️ Unit Values (currency, temperature, etc) - -Many times you may want to represent a number with a unit. For example, a -temperature of 32 degrees Fahrenheit or cost of $100.00. - -- Not yet supported. We recommend using a number (`int` or `float`) and having - the unit be part of the variable name. For example, `temperature_fahrenheit` - and `cost_usd` (see [@alias](/docs/syntax/class#alias)). - - - - -## Composite/Structured Types - -### ✅ enum - -**See also:** [Enum](/docs/syntax/enum) - -A user-defined type consisting of a set of named constants. -- **When to use it:** Use it when you need a model to choose from a known set of values, like in classification problems -- **Syntax:** - -```rust -enum Name { - Value1 - Value2 -} -``` - -- **Example:** - -```rust -enum Color { - Red - Green - Blue -} -``` - -### ✅ class - -**See also:** [Class](/docs/syntax/class) - -- **What it is:** User-defined complex data structures. -- **When to use it:** When you need an LLM to call another function (e.g. OpenAI's function calling), you can model the function's parameters as a class. You can also get models to return complex structured data by using a class. -- **Syntax:** - -```rust -class ClassName { - ... -} -``` - -- **Example:** - -```rust -class Car { - model string - year int -} -``` - -### ✅ Optional (?) - -- **What it is:** A type that represents a value that might or might not be present. -- **When to use it:** When a variable might not have a value and you want to explicitly handle its absence. -- **Syntax:** `?` -- **Example:** `int?` or `(MyClass | int)?` - -### ✅ Union (|) - -- **What it is:** A type that can hold one of several specified types. -- **When to use it:** When a variable can legitimately be of more than one type. This can be helpful with function calling, where you want to return different types of data depending on which function should be called. -- **Syntax:** `|` -- **Example:** `int | string` or `(int | string) | MyClass` or `string | MyClass | int[]` - - Order is important. `int | string` is not the same as `string | int`. -
- For example, if you have a `"1"` string, it will be parsed as an `int` if - you use `int | string`, but as a `string` if you use `string | int`. -
- -### ✅ List/Array ([]) - -- **What it is:** A collection of elements of the same type. -- **When to use it:** When you need to store a list of items of the same type. -- **Syntax:** `[]` -- **Example:** `string[]` or `(int | string)[]` or `int[][]` - - -
    -
  • Array types can be nested to create multi-dimensional arrays
  • -
  • An array type cannot be optional
  • -
-
- -### ❌ Dictionary - -- Not yet supported. Use a `class` instead. - -### ❌ Set - -- Not yet supported. Use a `List` instead. - -### ❌ Tuple - -- Not yet supported. Use a `class` instead. - -## Examples and Equivalents - -Here are some examples and what their equivalents are in different languages. - -### Example 1 - - -```baml Baml -int?|string[]|MyClass -```` - -```python Python Equivalent -Union[Optional[int], List[str], MyClass] -``` - -```typescript TypeScript Equivalent -(number | null) | string[] | MyClass -``` - - - -### Example 2 - - -```baml Baml -string[] -``` - -```python Python Equivalent -List[str] -``` - -```typescript TypeScript Equivalent -string[] -``` - - - -### Example 3 - - -```baml Baml -(int|float)[] -``` -```python Python Equivalent -List[Union[int, float]] -``` - -```typescript TypeScript Equivalent -number[] -``` - - - -### Example 4 - - -```baml Baml -(int? | string[] | MyClass)[] -``` - -```python Python Equivalent -Optional[List[Union[Optional[int], List[str], MyClass]]] -``` - -```typescript TypeScript Equivalent -((number | null) | string[] | MyClass)[] -``` - - diff --git a/docs/images/docs_latest/vscode/code-lens.png b/docs/images/docs_latest/vscode/code-lens.png new file mode 100644 index 000000000..c397169f9 Binary files /dev/null and b/docs/images/docs_latest/vscode/code-lens.png differ diff --git a/docs/images/docs_latest/vscode/dev-tools.png b/docs/images/docs_latest/vscode/dev-tools.png new file mode 100644 index 000000000..9fbab7c0e Binary files /dev/null and b/docs/images/docs_latest/vscode/dev-tools.png differ diff --git a/docs/images/docs_latest/vscode/extension-status.png b/docs/images/docs_latest/vscode/extension-status.png new file mode 100644 index 000000000..05041a2a7 Binary files /dev/null and b/docs/images/docs_latest/vscode/extension-status.png differ diff --git a/docs/images/docs_latest/vscode/open-playground.png b/docs/images/docs_latest/vscode/open-playground.png new file mode 100644 index 000000000..5645ca1d9 Binary files /dev/null and b/docs/images/docs_latest/vscode/open-playground.png differ diff --git a/docs/images/docs_latest/vscode/playground-preview.png b/docs/images/docs_latest/vscode/playground-preview.png new file mode 100644 index 000000000..31a4c9f39 Binary files /dev/null and b/docs/images/docs_latest/vscode/playground-preview.png differ diff --git a/docs/images/docs_latest/vscode/test-case-buttons.png b/docs/images/docs_latest/vscode/test-case-buttons.png new file mode 100644 index 000000000..91ffc7877 Binary files /dev/null and b/docs/images/docs_latest/vscode/test-case-buttons.png differ diff --git a/docs/images/docs_latest/vscode/test-cases.png b/docs/images/docs_latest/vscode/test-cases.png new file mode 100644 index 000000000..20660f8d4 Binary files /dev/null and b/docs/images/docs_latest/vscode/test-cases.png differ diff --git a/docs/mint.json b/docs/mint.json index 0191cb60e..45a21b030 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -1,6 +1,7 @@ { "$schema": "https://mintlify.com/schema.json", "name": "BoundaryML", + "logo": { "light": "/logo/favicon.png", "dark": "/logo/favicon.png" @@ -20,137 +21,149 @@ }, "anchors": [ { - "name": "Open Boundary Studio", - "icon": "sparkles", - "url": "https://app.boundaryml.com" - }, - { - "name": "Join our Discord", + "name": "Community", "icon": "discord", - "url": "https://discord.gg/BTNBeXGuaS" - }, - { - "name": "Schedule a call", - "icon": "phone", - "url": "https://calendly.com/boundaryml/meeting-with-founders" + "url": "/discord" } ], "topbarCtaButton": { "type": "github", "url": "https://github.com/boundaryml/baml" }, - "tabs": [ - { - "name": "Guides & Examples", - "url": "docs/guides" - }, + "redirects": [ { - "name": "BAML Syntax Reference", - "url": "docs/syntax" + "source": "/discord", + "destination": "https://discord.gg/BTNBeXGuaS" } ], "navigation": [ { - "group": "Overview", - "pages": ["docs/home/overview", "docs/home/faq"] - }, - { - "group": "Quickstart", + "group": "Get started", "pages": [ - "docs/home/installation", - "docs/home/baml-in-2-min", - "docs/home/roadmap" - ] - }, - { - "group": "Comparisons", - "pages": [ - "docs/home/comparisons/marvin", - "docs/home/comparisons/pydantic" + "docs/get-started/what-is-baml", + "docs/get-started/interactive-demos", + { + "group": "Quickstart", + "pages": [ + "docs/get-started/quickstart/python", + "docs/get-started/quickstart/typescript", + "docs/get-started/quickstart/ruby", + "docs/get-started/quickstart/editors-vscode", + "docs/get-started/quickstart/editors-other" + ] + }, + { + "group": "Debugging", + "pages": [ + "docs/get-started/debugging/vscode-playground", + "docs/get-started/debugging/enable-logging" + ] + }, + { + "group": "Deploying BAML Projects", + "pages": [ + "docs/get-started/deploying/docker", + "docs/get-started/deploying/nextjs" + ] + } ] }, { - "group": "Hello World", + "group": "BAML Snippets", "pages": [ - "docs/guides/hello_world/writing-ai-functions", - "docs/guides/hello_world/testing-ai-functions", - "docs/guides/hello_world/baml-project-structure" + { + "group": "General BAML Syntax", + "pages": [ + "docs/snippets/syntax/comments", + "docs/snippets/syntax/strings", + "docs/snippets/syntax/lists", + "docs/snippets/syntax/dictionaries" + ] + }, + "docs/snippets/supported-types", + { + "group": "LLM Clients", + "pages": [ + "docs/snippets/clients/overview", + { + "group": "providers", + "pages": [ + "docs/snippets/clients/providers/anthropic", + "docs/snippets/clients/providers/aws-bedrock", + "docs/snippets/clients/providers/azure", + "docs/snippets/clients/providers/gemini", + "docs/snippets/clients/providers/ollama", + "docs/snippets/clients/providers/openai", + "docs/snippets/clients/providers/vertex", + "docs/snippets/clients/providers/other" + ] + }, + { + "group": "provider strategies", + "pages": [ + "docs/snippets/clients/fallback", + "docs/snippets/clients/round-robin" + ] + }, + "docs/snippets/clients/retry" + ] + }, + { + "group": "Functions", + "pages": [ + "docs/snippets/functions/overview", + "docs/snippets/functions/classification", + "docs/snippets/functions/extraction", + "docs/snippets/functions/function-calling" + ] + }, + "docs/snippets/class", + "docs/snippets/enum", + { + "group": "Prompt Syntax", + "pages": [ + "docs/snippets/prompt-syntax/what-is-jinja", + "docs/snippets/prompt-syntax/output-format", + "docs/snippets/prompt-syntax/roles", + "docs/snippets/prompt-syntax/variables", + "docs/snippets/prompt-syntax/conditionals", + "docs/snippets/prompt-syntax/loops", + "docs/snippets/prompt-syntax/comments", + "docs/snippets/prompt-syntax/ctx" + ] + }, + "docs/snippets/template-string", + "docs/snippets/test-cases" ] }, { - "group": "Overview", + "group": "Calling BAML Functions", "pages": [ - "docs/syntax/overview", - "docs/syntax/generator", - "docs/syntax/comments", - "docs/syntax/strings", - "docs/syntax/function" + "docs/calling-baml/generate-baml-client", + "docs/calling-baml/set-env-vars", + "docs/calling-baml/calling-functions", + "docs/calling-baml/streaming", + "docs/calling-baml/concurrent-calls", + "docs/calling-baml/multi-modal", + "docs/calling-baml/dynamic-types", + "docs/calling-baml/dynamic-clients" ] }, { - "group": "Types", - "pages": ["docs/syntax/type", "docs/syntax/enum", "docs/syntax/class"] - }, - { - "group": "prompt", + "group": "Observability [Paid]", "pages": [ - "docs/syntax/prompt_engineering/overview" + "docs/observability/overview", + "docs/observability/tracing-tagging" ] }, { - "group": "client", - "pages": [ - "docs/syntax/client/client", - "docs/syntax/client/retry", - "docs/syntax/client/redundancy" - ] + "group": "Comparisons", + "pages": ["docs/comparisons/marvin", "docs/comparisons/pydantic"] }, - { - "group": "How-to Guides", - "pages": [ - "docs/guides/overview", - { - "group": "Prompt engineering", - "icon": "sparkles", - "pages": ["docs/guides/prompt_engineering/chat-prompts"] - }, - { - "group": "Testing", - "pages": [ - "docs/guides/testing/unit_test", - "docs/guides/testing/test_with_assertions" - ], - "icon": "flask-vial" - }, - { - "group": "Resilience / Reliability", - "pages": [ - "docs/guides/resilience/retries", - "docs/guides/resilience/fallback" - ], - "icon": "shield-check" - }, - { - "group": "Observability", - "icon": "chart-mixed", - "pages": ["docs/guides/boundary_studio/tracing-tagging"] - }, - { - "group": "Improve LLM results", - "pages": [ - "docs/guides/improve_results/diagnose", - "docs/guides/improve_results/fine_tune" - ], - "icon": "bolt" - }, - { - "group": "Streaming", - "icon": "water", - "pages": ["docs/guides/streaming/streaming"] - } - ] + "group": "Reference", + "pages": ["contact"] } ], "footerSocials": { @@ -158,7 +171,7 @@ "github": "https://github.com/BoundaryML/baml" }, "modeToggle": { - "default": "dark", + "default": "light", "isHidden": false }, "analytics": { diff --git a/engine/.gitignore b/engine/.gitignore deleted file mode 100644 index a7456499a..000000000 --- a/engine/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -target -*.env -**/__pycache__ -test_logs/** -*.so \ No newline at end of file diff --git a/engine/.vscode/settings.json b/engine/.vscode/settings.json deleted file mode 100644 index 4f3c62aba..000000000 --- a/engine/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "[rust]": { - "editor.formatOnSave": true, - }, -} \ No newline at end of file diff --git a/engine/Cargo.lock b/engine/Cargo.lock index 20fcdc380..9312aabe7 100644 --- a/engine/Cargo.lock +++ b/engine/Cargo.lock @@ -26,6 +26,18 @@ dependencies = [ "memchr", ] +[[package]] +name = "ambassador" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06baa18a48752d8177eca1bafa9970b2dc649a81b98d6dde9ae83bea1867030b" +dependencies = [ + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -301,17 +313,6 @@ version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" -[[package]] -name = "async-trait" -version = "0.1.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -335,6 +336,340 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "aws-config" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2368fb843e9eec932f7789d64d0e05850f4a79067188c657e572f1f5a7589df0" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-sdk-sso", + "aws-sdk-ssooidc", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand 2.1.0", + "hex", + "http 0.2.12", + "hyper 0.14.29", + "ring", + "time", + "tokio", + "tracing", + "url", + "zeroize", +] + +[[package]] +name = "aws-credential-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16838e6c9e12125face1c1eff1343c75e3ff540de98ff7ebd61874a89bcfeb9" +dependencies = [ + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "zeroize", +] + +[[package]] +name = "aws-runtime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a4a5e448145999d7de17bf44a886900ecb834953408dae8aaf90465ce91c1dd" +dependencies = [ + "aws-credential-types", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand 2.1.0", + "http 0.2.12", + "http-body 0.4.6", + "percent-encoding", + "pin-project-lite", + "tracing", + "uuid", +] + +[[package]] +name = "aws-sdk-bedrockruntime" +version = "1.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb59d04e42baf3f80956e3703f219228f254206774ccda6a756dd8921ac5603d" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sso" +version = "1.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8aee358b755b2738b3ffb8a5b54ee991b28c8a07483a0ff7d49a58305cc2609" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-ssooidc" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d5ce026f0ae73e06b20be5932150dd0e9b063417fd7c3acf5ca97018b9cbd64" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sts" +version = "1.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c820248cb02e4ea83630ad2e43d0721cdbccedba5ac902cd0b6fb84d7271f205" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31eed8d45759b2c5fe7fd304dd70739060e9e0de509209036eabea14d0720cce" +dependencies = [ + "aws-credential-types", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "form_urlencoded", + "hex", + "hmac", + "http 0.2.12", + "http 1.1.0", + "once_cell", + "percent-encoding", + "sha2", + "time", + "tracing", +] + +[[package]] +name = "aws-smithy-async" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62220bc6e97f946ddd51b5f1361f78996e704677afc518a4ff66b7a72ea1378c" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "aws-smithy-eventstream" +version = "0.60.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6363078f927f612b970edf9d1903ef5cef9a64d1e8423525ebb1f0a1633c858" +dependencies = [ + "aws-smithy-types", + "bytes", + "crc32fast", +] + +[[package]] +name = "aws-smithy-http" +version = "0.60.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a7de001a1b9a25601016d8057ea16e31a45fdca3751304c8edf4ad72e706c08" +dependencies = [ + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.60.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-query" +version = "0.60.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-runtime" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db83b08939838d18e33b5dbaf1a0f048f28c10bd28071ab7ce6f245451855414" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "fastrand 2.1.0", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "http-body 1.0.0", + "httparse", + "hyper 0.14.29", + "hyper-rustls 0.24.2", + "once_cell", + "pin-project-lite", + "pin-utils", + "rustls 0.21.12", + "tokio", + "tracing", +] + +[[package]] +name = "aws-smithy-runtime-api" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b570ea39eb95bd32543f6e4032bce172cb6209b9bc8c83c770d08169e875afc" +dependencies = [ + "aws-smithy-async", + "aws-smithy-types", + "bytes", + "http 0.2.12", + "http 1.1.0", + "pin-project-lite", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe321a6b21f5d8eabd0ade9c55d3d0335f3c3157fc2b3e87f05f34b539e4df5" +dependencies = [ + "base64-simd", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http 1.1.0", + "http-body 0.4.6", + "http-body 1.0.0", + "http-body-util", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", + "serde", + "time", + "tokio", + "tokio-util", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.60.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d123fbc2a4adc3c301652ba8e149bf4bc1d1725affb9784eb20c953ace06bf55" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2009a9733865d0ebf428a314440bbe357cc10d0c16d86a8e15d32e9b47c1e80e" +dependencies = [ + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "rustc_version", + "tracing", +] + [[package]] name = "backtrace" version = "0.3.72" @@ -352,7 +687,7 @@ dependencies = [ [[package]] name = "baml" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "baml-lib", @@ -393,7 +728,7 @@ dependencies = [ [[package]] name = "baml-fmt" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "baml-lib", @@ -415,7 +750,7 @@ dependencies = [ [[package]] name = "baml-lib" -version = "0.40.0" +version = "0.45.0" dependencies = [ "base64 0.13.1", "dissimilar", @@ -453,13 +788,23 @@ dependencies = [ [[package]] name = "baml-runtime" -version = "0.40.0" +version = "0.45.0" dependencies = [ + "ambassador", "anyhow", "async-std", - "async-trait", + "aws-config", + "aws-credential-types", + "aws-sdk-bedrockruntime", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", "baml-types", "base64 0.22.1", + "bytes", "cfg-if", "chrono", "clap 4.5.6", @@ -469,17 +814,20 @@ dependencies = [ "dissimilar", "dunce", "either", + "enum_dispatch", "env_logger", "envy", "eventsource-stream", "expect-test", "fastrand 2.1.0", "futures", + "futures-timer", "hostname", + "http-body 1.0.0", "include_dir", "indexmap 2.2.6", "indoc", - "instant", + "infer", "internal-baml-codegen", "internal-baml-core", "internal-baml-jinja", @@ -490,11 +838,13 @@ dependencies = [ "mime", "mime_guess", "pin-project-lite", - "reqwest 0.11.27", + "reqwest 0.12.5", "reqwest-eventsource", + "send_wrapper 0.6.0", "serde", "serde-wasm-bindgen 0.6.5", "serde_json", + "shell-escape", "static_assertions", "stream-cancel", "strsim 0.11.1", @@ -502,6 +852,7 @@ dependencies = [ "strum_macros", "test-log", "tokio", + "url", "uuid", "walkdir", "wasm-bindgen", @@ -514,7 +865,7 @@ dependencies = [ [[package]] name = "baml-schema-build" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "baml-runtime", @@ -533,6 +884,7 @@ dependencies = [ "serde", "serde-wasm-bindgen 0.4.5", "serde_json", + "time", "uuid", "walkdir", "wasm-bindgen", @@ -545,7 +897,7 @@ dependencies = [ [[package]] name = "baml-types" -version = "0.40.0" +version = "0.45.0" dependencies = [ "indexmap 2.2.6", "minijinja", @@ -590,6 +942,16 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "basic-toml" version = "0.1.9" @@ -608,7 +970,7 @@ dependencies = [ "bitflags 2.5.0", "cexpr", "clang-sys", - "itertools", + "itertools 0.12.1", "lazy_static", "lazycell", "proc-macro2", @@ -659,12 +1021,28 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +[[package]] +name = "bytes-utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" +dependencies = [ + "bytes", + "either", +] + [[package]] name = "cc" version = "1.0.99" @@ -680,6 +1058,17 @@ dependencies = [ "nom", ] +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -873,6 +1262,15 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -966,6 +1364,15 @@ dependencies = [ "parking_lot_core", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derive_builder" version = "0.20.0" @@ -1024,6 +1431,7 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", + "subtle", ] [[package]] @@ -1059,6 +1467,18 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "enumflags2" version = "0.7.10" @@ -1324,6 +1744,10 @@ name = "futures-timer" version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] [[package]] name = "futures-util" @@ -1409,6 +1833,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "handlebars" version = "4.5.0" @@ -1471,6 +1914,21 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + [[package]] name = "hostname" version = "0.3.1" @@ -1575,7 +2033,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", "httparse", @@ -1598,6 +2056,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", + "h2 0.4.5", "http 1.1.0", "http-body 1.0.0", "httparse", @@ -1617,9 +2076,28 @@ dependencies = [ "futures-util", "http 0.2.12", "hyper 0.14.29", - "rustls", + "log", + "rustls 0.21.12", + "rustls-native-certs", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.3.1", + "hyper-util", + "rustls 0.23.10", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", ] [[package]] @@ -1635,6 +2113,22 @@ dependencies = [ "tokio-native-tls", ] +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.3.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + [[package]] name = "hyper-util" version = "0.1.5" @@ -1755,6 +2249,15 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" +[[package]] +name = "infer" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" +dependencies = [ + "cfb", +] + [[package]] name = "instant" version = "0.1.13" @@ -1766,7 +2269,7 @@ dependencies = [ [[package]] name = "internal-baml-codegen" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "askama", @@ -1786,7 +2289,7 @@ dependencies = [ [[package]] name = "internal-baml-core" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "baml-types", @@ -1820,7 +2323,7 @@ dependencies = [ [[package]] name = "internal-baml-diagnostics" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "colored", @@ -1833,7 +2336,7 @@ dependencies = [ [[package]] name = "internal-baml-jinja" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "askama", @@ -1850,7 +2353,7 @@ dependencies = [ [[package]] name = "internal-baml-parser-database" -version = "0.40.0" +version = "0.45.0" dependencies = [ "baml-types", "colored", @@ -1872,7 +2375,7 @@ dependencies = [ [[package]] name = "internal-baml-prompt-parser" -version = "0.40.0" +version = "0.45.0" dependencies = [ "internal-baml-diagnostics", "internal-baml-schema-ast", @@ -1884,7 +2387,7 @@ dependencies = [ [[package]] name = "internal-baml-schema-ast" -version = "0.40.0" +version = "0.45.0" dependencies = [ "baml-types", "either", @@ -1919,6 +2422,15 @@ version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -1951,7 +2463,7 @@ checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" [[package]] name = "jsonish" -version = "0.40.0" +version = "0.45.0" dependencies = [ "anyhow", "assert-json-diff", @@ -2264,6 +2776,21 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2358,6 +2885,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "outref" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" + [[package]] name = "overload" version = "0.1.1" @@ -2536,6 +3069,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "pretty_assertions" version = "1.4.0" @@ -2784,6 +3323,12 @@ dependencies = [ "regex-syntax 0.8.3", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -2807,12 +3352,12 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", + "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", "hyper 0.14.29", - "hyper-rustls", - "hyper-tls", + "hyper-rustls 0.24.2", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", @@ -2821,22 +3366,20 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", - "rustls-pemfile", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls", - "tokio-util", + "tokio-rustls 0.24.1", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", "webpki-roots", "winreg 0.50.0", @@ -2844,31 +3387,39 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "base64 0.22.1", "bytes", + "encoding_rs", "futures-core", "futures-util", + "h2 0.4.5", "http 1.1.0", "http-body 1.0.0", "http-body-util", "hyper 1.3.1", + "hyper-rustls 0.27.2", + "hyper-tls 0.6.0", "hyper-util", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile 2.1.2", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", + "system-configuration", "tokio", + "tokio-native-tls", "tokio-util", "tower-service", "url", @@ -2891,7 +3442,7 @@ dependencies = [ "mime", "nom", "pin-project-lite", - "reqwest 0.12.4", + "reqwest 0.12.5", "thiserror", ] @@ -2943,6 +3494,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.37.27" @@ -2978,10 +3538,35 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.23.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki 0.102.4", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -2991,6 +3576,22 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3001,6 +3602,17 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustls-webpki" +version = "0.102.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.17" @@ -3085,6 +3697,21 @@ dependencies = [ "serde", ] +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +dependencies = [ + "futures-core", +] + [[package]] name = "seq-macro" version = "0.3.5" @@ -3199,6 +3826,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + [[package]] name = "shell-words" version = "1.1.0" @@ -3367,6 +4000,12 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "sugar_path" version = "1.2.0" @@ -3401,6 +4040,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + [[package]] name = "system-configuration" version = "0.5.1" @@ -3518,6 +4163,37 @@ dependencies = [ "once_cell", ] +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3579,7 +4255,18 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.10", + "rustls-pki-types", "tokio", ] @@ -3630,9 +4317,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -3751,9 +4450,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -3761,6 +4460,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8parse" version = "0.2.1" @@ -3808,6 +4513,12 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "vte" version = "0.11.1" @@ -4218,6 +4929,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + [[package]] name = "yansi" version = "0.5.1" diff --git a/engine/Cargo.toml b/engine/Cargo.toml index 7e0cdd16a..06418b383 100644 --- a/engine/Cargo.toml +++ b/engine/Cargo.toml @@ -32,6 +32,7 @@ default-members = [ anyhow = "1.0" askama = "0.12.1" base64 = "0.22.1" +bytes = "1.6.0" cfg-if = "1.0.0" dashmap = "5.5.3" derive_builder = "0.20.0" @@ -39,24 +40,27 @@ either = "1.8.1" env_logger = "0.11.3" futures = { version = "0.3.30", features = ["executor"] } log = "0.4.20" +http-body = "1.0.0" indexmap = { version = "2.1.0", features = ["serde"] } indoc = "2.0.1" -instant = "0.1" regex = "1.10.4" serde_json = { version = "1", features = ["float_roundtrip", "preserve_order"] } serde = { version = "1", features = ["derive"] } static_assertions = "1.1.0" strum = { version = "0.26.2", features = ["derive"] } strum_macros = "0.26.2" +time = { version = "0.3.36", features = ["formatting"] } +pin-project-lite = "0.2.14" walkdir = "2.5.0" web-time = "1.1.0" + baml-types = { path = "baml-lib/baml-types" } internal-baml-codegen = { path = "language-client-codegen" } internal-baml-core = { path = "baml-lib/baml-core" } internal-baml-jinja = { path = "baml-lib/jinja" } [workspace.package] -version = "0.40.0" +version = "0.45.0" authors = ["Boundary "] description = "BAML Toolchain" diff --git a/engine/baml-cli/src/main.rs b/engine/baml-cli/src/main.rs index c8f17f153..b149ee761 100644 --- a/engine/baml-cli/src/main.rs +++ b/engine/baml-cli/src/main.rs @@ -2,14 +2,23 @@ use colored::*; use std::io::Write; +#[allow(dead_code)] mod builder; +#[allow(dead_code)] mod command; +#[allow(dead_code)] mod errors; +#[allow(dead_code)] mod import_command; +#[allow(dead_code)] mod init_command; +#[allow(dead_code)] mod runtime_test_command; +#[allow(dead_code)] mod shell; +#[allow(dead_code)] mod update; +#[allow(dead_code)] mod version_command; use clap::{Args, Parser, Subcommand, ValueEnum}; @@ -118,6 +127,7 @@ pub enum OutputType { Json, } +#[allow(dead_code)] pub(crate) fn main() { const NAME: &str = concat!("[", clap::crate_name!(), "]"); env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")) diff --git a/engine/baml-cli/src/runtime_test_command/run_state.rs b/engine/baml-cli/src/runtime_test_command/run_state.rs index 114e4c624..cbbf335f9 100644 --- a/engine/baml-cli/src/runtime_test_command/run_state.rs +++ b/engine/baml-cli/src/runtime_test_command/run_state.rs @@ -11,7 +11,7 @@ use tokio::{ }; use baml_runtime::{ - BamlRuntime, InternalRuntimeInterface, RuntimeContext, RuntimeContextManager, TestResponse, + BamlRuntime, InternalRuntimeInterface, RuntimeContextManager, TestResponse, }; use super::filter::FilterArgs; diff --git a/engine/baml-cli/src/shell.rs b/engine/baml-cli/src/shell.rs index b368424c5..866db9903 100644 --- a/engine/baml-cli/src/shell.rs +++ b/engine/baml-cli/src/shell.rs @@ -1,6 +1,7 @@ use std::process::Command; // Function for safely running a shell command (including chained commands) +#[allow(dead_code)] pub fn build_shell_command(cmd: Vec) -> Command { // Check if the command is a chained command (i.e. contains a pipe or a semicolon or a double ampersand) let is_chained = cmd @@ -14,6 +15,7 @@ pub fn build_shell_command(cmd: Vec) -> Command { } } +#[allow(dead_code)] fn build_chained_shell_command(cmd: Vec) -> Command { let shell_command = cmd .iter() @@ -42,6 +44,7 @@ fn build_chained_shell_command(cmd: Vec) -> Command { cmd } +#[allow(dead_code)] fn build_single_shell_command(cmd: Vec) -> Command { let mut cmd_ = Command::new(cmd[0].clone()); cmd_.args(&cmd[1..]); diff --git a/engine/baml-cli/src/version_command.rs b/engine/baml-cli/src/version_command.rs index 1e8d1794c..2ff1c4d77 100644 --- a/engine/baml-cli/src/version_command.rs +++ b/engine/baml-cli/src/version_command.rs @@ -1,5 +1,5 @@ -use crate::{builder::get_src_dir, shell::build_shell_command, update::UPDATE_CHANNEL}; use crate::{errors::CliError, OutputType}; +use crate::{shell::build_shell_command, update::UPDATE_CHANNEL}; use colored::Colorize; use dunce::canonicalize; @@ -178,6 +178,7 @@ dependencies } /// This is redundant with GeneratorLanguage.parse_version +#[allow(dead_code)] fn extract_client_version(package_version_command: &str, output: &str) -> Result { let package_version_command = shellwords::split(package_version_command) .map_err(|e| CliError::StringError(e.to_string()))?; @@ -223,6 +224,7 @@ fn extract_client_version(package_version_command: &str, output: &str) -> Result } /// This is redundant with GeneratorLanguage.parse_version +#[allow(dead_code)] pub fn get_client_version( project_root: &str, package_version_command: &str, diff --git a/engine/baml-lib/baml-core/src/ir/ir_helpers/to_baml_arg.rs b/engine/baml-lib/baml-core/src/ir/ir_helpers/to_baml_arg.rs index 479a08722..73b66eb6a 100644 --- a/engine/baml-lib/baml-core/src/ir/ir_helpers/to_baml_arg.rs +++ b/engine/baml-lib/baml-core/src/ir/ir_helpers/to_baml_arg.rs @@ -1,4 +1,4 @@ -use baml_types::{BamlMap, BamlValue, TypeValue}; +use baml_types::{BamlMap, BamlMediaType, BamlValue, TypeValue}; use crate::ir::{FieldType, IntermediateRepr}; @@ -27,7 +27,7 @@ impl ParameterError { pub fn validate_arg( ir: &IntermediateRepr, field_type: &FieldType, - value: &BamlValue, + value: &BamlValue, // original value passed in by user scope: &mut ScopeStack, allow_implicit_cast_to_string: bool, ) -> Option { @@ -57,18 +57,23 @@ pub fn validate_arg( TypeValue::Bool if matches!(value, BamlValue::Bool(_)) => Some(value.clone()), TypeValue::Null if matches!(value, BamlValue::Null) => Some(value.clone()), TypeValue::Image => match value { - BamlValue::Image(v) => Some(BamlValue::Image(v.clone())), + BamlValue::Media(v) => Some(BamlValue::Media(v.clone())), BamlValue::Map(kv) => { if let Some(BamlValue::String(s)) = kv.get("url") { - Some(BamlValue::Image(baml_types::BamlImage::url(s.to_string()))) + Some(BamlValue::Media(baml_types::BamlMedia::url( + BamlMediaType::Image, + s.to_string(), + None, + ))) } else if let ( Some(BamlValue::String(s)), - Some(BamlValue::String(media_type)), + Some(BamlValue::String(media_type_str)), ) = (kv.get("base64"), kv.get("media_type")) { - Some(BamlValue::Image(baml_types::BamlImage::base64( + Some(BamlValue::Media(baml_types::BamlMedia::base64( + BamlMediaType::Image, s.to_string(), - media_type.to_string(), + media_type_str.to_string(), ))) } else { scope.push_error(format!( @@ -83,6 +88,38 @@ pub fn validate_arg( None } }, + TypeValue::Audio => match value { + BamlValue::Media(v) => Some(BamlValue::Media(v.clone())), + BamlValue::Map(kv) => { + if let Some(BamlValue::String(s)) = kv.get("url") { + Some(BamlValue::Media(baml_types::BamlMedia::url( + BamlMediaType::Audio, + s.to_string(), + None, + ))) + } else if let ( + Some(BamlValue::String(s)), + Some(BamlValue::String(media_type_str)), + ) = (kv.get("base64"), kv.get("media_type")) + { + Some(BamlValue::Media(baml_types::BamlMedia::base64( + BamlMediaType::Audio, + s.to_string(), + media_type_str.to_string(), + ))) + } else { + scope.push_error(format!( + "Invalid audio: expected `url` or (`base64` and `media_type`), got `{}`", + value + )); + None + } + } + _ => { + scope.push_error(format!("Expected type {:?}, got `{}`", t, value)); + None + } + }, _ => { scope.push_error(format!("Expected type {:?}, got `{}`", t, value)); None @@ -121,6 +158,7 @@ pub fn validate_arg( BamlValue::Class(_, obj) | BamlValue::Map(obj) => match ir.find_class(name) { Ok(c) => { let mut fields = BamlMap::new(); + for f in c.walk_fields() { if let Some(v) = obj.get(f.name()) { if let Some(v) = validate_arg( @@ -140,6 +178,25 @@ pub fn validate_arg( )); } } + let is_dynamic = c.item.attributes.get("dynamic_type").is_some(); + if is_dynamic { + for (key, value) in obj { + if !fields.contains_key(key) { + fields.insert(key.clone(), value.clone()); + } + } + } else { + // We let it slide here... but we should probably emit a warning like this: + // for key in obj.keys() { + // if !fields.contains_key(key) { + // scope.push_error(format!( + // "Unexpected field `{}` for class {}. Mark the class as @@dynamic if you want to allow additional fields.", + // key, name + // )); + // } + // } + } + Some(BamlValue::Class(name.to_string(), fields)) } Err(_) => { diff --git a/engine/baml-lib/baml-core/src/ir/json_schema.rs b/engine/baml-lib/baml-core/src/ir/json_schema.rs index 87f7e8322..152df8516 100644 --- a/engine/baml-lib/baml-core/src/ir/json_schema.rs +++ b/engine/baml-lib/baml-core/src/ir/json_schema.rs @@ -193,6 +193,17 @@ impl<'db> WithJsonSchema for FieldType { "required": ["url"], }), + TypeValue::Audio => json!({ + // anyOf either an object that has a uri, or it has a base64 string + "type": "object", + "properties": { + "url": { + "type": "string", + // "format": "uri", + } + }, + "required": ["url"], + }), }, FieldType::List(item) => json!({ "type": "array", diff --git a/engine/baml-lib/baml-core/src/ir/mod.rs b/engine/baml-lib/baml-core/src/ir/mod.rs index 125fe6566..120559de3 100644 --- a/engine/baml-lib/baml-core/src/ir/mod.rs +++ b/engine/baml-lib/baml-core/src/ir/mod.rs @@ -3,13 +3,11 @@ mod json_schema; pub mod repr; mod walker; -use internal_baml_schema_ast::ast; pub use ir_helpers::{ ClassFieldWalker, ClassWalker, ClientWalker, EnumValueWalker, EnumWalker, FunctionWalker, IRHelper, RetryPolicyWalker, TemplateStringWalker, TestCaseWalker, }; -pub(super) use json_schema::WithJsonSchema; pub(super) use repr::IntermediateRepr; // Add aliases for the IR types diff --git a/engine/baml-lib/baml-core/src/ir/repr.rs b/engine/baml-lib/baml-core/src/ir/repr.rs index ae63ba69a..070fa4b39 100644 --- a/engine/baml-lib/baml-core/src/ir/repr.rs +++ b/engine/baml-lib/baml-core/src/ir/repr.rs @@ -10,8 +10,7 @@ use internal_baml_parser_database::{ ClassWalker, ClientWalker, ConfigurationWalker, EnumValueWalker, EnumWalker, FieldWalker, FunctionWalker, TemplateStringWalker, VariantWalker, }, - ParserDatabase, PromptAst, RetryPolicyStrategy, ToStringAttributes, WithSerialize, - WithStaticRenames, + ParserDatabase, PromptAst, RetryPolicyStrategy, ToStringAttributes, WithStaticRenames, }; use internal_baml_schema_ast::ast::{self, FieldArity, WithName, WithSpan}; @@ -294,7 +293,7 @@ impl WithRepr for ast::FieldType { fn repr(&self, db: &ParserDatabase) -> Result { Ok(match self { ast::FieldType::Identifier(arity, idn) => type_with_arity( - (match idn { + match idn { ast::Identifier::Primitive(t, ..) => FieldType::Primitive(*t), ast::Identifier::Local(name, _) => match db.find_type(idn) { Some(Either::Left(_class_walker)) => Ok(FieldType::Class(name.clone())), @@ -302,7 +301,7 @@ impl WithRepr for ast::FieldType { None => Err(anyhow!("Field type uses unresolvable local identifier")), }?, _ => bail!("Field type uses unsupported identifier type"), - }), + }, arity, ), ast::FieldType::List(ft, dims, _) => { @@ -1102,6 +1101,14 @@ pub struct TestCase { } impl WithRepr for ConfigurationWalker<'_> { + fn attributes(&self, _db: &ParserDatabase) -> NodeAttributes { + NodeAttributes { + meta: IndexMap::new(), + overrides: IndexMap::new(), + span: Some(self.span().clone()), + } + } + fn repr(&self, db: &ParserDatabase) -> Result { Ok(TestCase { name: self.name().to_string(), diff --git a/engine/baml-lib/baml-core/src/ir/walker.rs b/engine/baml-lib/baml-core/src/ir/walker.rs index 1e34aae1e..3b0bd80a9 100644 --- a/engine/baml-lib/baml-core/src/ir/walker.rs +++ b/engine/baml-lib/baml-core/src/ir/walker.rs @@ -265,6 +265,10 @@ impl<'a> Walker<'a, (&'a Function, &'a TestCase)> { &self.item.1.elem } + pub fn span(&self) -> Option<&crate::Span> { + self.item.1.attributes.span.as_ref() + } + pub fn test_case_params( &self, env_values: &HashMap, @@ -340,6 +344,10 @@ impl<'a> Walker<'a, &'a Client> { pub fn span(&self) -> Option<&crate::Span> { self.item.attributes.span.as_ref() } + + pub fn options(&self) -> &Vec<(String, Expression)> { + &self.elem().options + } } impl<'a> Walker<'a, &'a RetryPolicy> { diff --git a/engine/baml-lib/baml-core/src/validate/generator_loader/mod.rs b/engine/baml-lib/baml-core/src/validate/generator_loader/mod.rs index 93c5d2b90..a32c80b6b 100644 --- a/engine/baml-lib/baml-core/src/validate/generator_loader/mod.rs +++ b/engine/baml-lib/baml-core/src/validate/generator_loader/mod.rs @@ -33,7 +33,7 @@ fn parse_generator( Err(errors) => errors, }; - log::info!("Failed to parse generator as v2 generator, moving on to v1 and v0."); + log::trace!("Failed to parse generator as v2 generator, moving on to v1 and v0."); if let Ok(gen) = v1::parse_generator(ast_generator, &diagnostics.root_path) { diagnostics.push_warning(DatamodelWarning::new( @@ -46,7 +46,7 @@ fn parse_generator( return None; }; - log::info!("Failed to parse generator as v1 generator, moving on to v0."); + log::trace!("Failed to parse generator as v1 generator, moving on to v0."); if let Ok(gen) = v0::parse_generator(ast_generator, &diagnostics.root_path) { diagnostics.push_warning(DatamodelWarning::new( diff --git a/engine/baml-lib/baml-core/src/validate/validation_pipeline/validations/clients.rs b/engine/baml-lib/baml-core/src/validate/validation_pipeline/validations/clients.rs index a21475a26..7d8331920 100644 --- a/engine/baml-lib/baml-core/src/validate/validation_pipeline/validations/clients.rs +++ b/engine/baml-lib/baml-core/src/validate/validation_pipeline/validations/clients.rs @@ -1,4 +1,4 @@ -use internal_baml_diagnostics::{DatamodelError, DatamodelWarning}; +use internal_baml_diagnostics::{DatamodelError}; use crate::validate::validation_pipeline::context::Context; @@ -20,6 +20,7 @@ pub(super) fn validate(ctx: &mut Context<'_>) { "baml-fallback", "fallback", "google-ai", + "aws-bedrock", ]; let suggestions: Vec = allowed_providers diff --git a/engine/baml-lib/baml-types/src/baml_value.rs b/engine/baml-lib/baml-types/src/baml_value.rs index b6b3ec030..c236afcf6 100644 --- a/engine/baml-lib/baml-types/src/baml_value.rs +++ b/engine/baml-lib/baml-types/src/baml_value.rs @@ -2,7 +2,8 @@ use std::{collections::HashSet, fmt}; use serde::{de::Visitor, ser::SerializeStruct, Deserialize, Deserializer}; -use crate::{BamlImage, BamlMap}; +use crate::media::BamlMediaType; +use crate::{BamlMap, BamlMedia}; #[derive(Debug, PartialEq, Clone)] pub enum BamlValue { @@ -12,7 +13,7 @@ pub enum BamlValue { Bool(bool), Map(BamlMap), List(Vec), - Image(BamlImage), + Media(BamlMedia), Enum(String, String), Class(String, BamlMap), Null, @@ -27,19 +28,33 @@ impl serde::Serialize for BamlValue { BamlValue::Bool(b) => serializer.serialize_bool(*b), BamlValue::Map(m) => m.serialize(serializer), BamlValue::List(l) => l.serialize(serializer), - BamlValue::Image(i) => { - let mut s = serializer.serialize_struct("BamlImage", 2)?; - match i { - BamlImage::Url(u) => { - s.serialize_field("url", &u.url)?; - } - BamlImage::Base64(b) => { - s.serialize_field("base64", &b.base64)?; - s.serialize_field("media_type", &b.media_type)?; - } + BamlValue::Media(i) => match i { + BamlMedia::Url(BamlMediaType::Image, u) => { + let mut s = serializer.serialize_struct("BamlImage", 2)?; + s.serialize_field("url", &u.url)?; + s.end() } - s.end() - } + BamlMedia::Base64(BamlMediaType::Image, b) => { + let mut s = serializer.serialize_struct("BamlImage", 2)?; + s.serialize_field("base64", &b.base64)?; + s.serialize_field("media_type", &b.media_type)?; + s.end() + } + BamlMedia::Url(BamlMediaType::Audio, u) => { + let mut s = serializer.serialize_struct("BamlAudio", 2)?; + + s.serialize_field("url", &u.url)?; + s.end() + } + BamlMedia::Base64(BamlMediaType::Audio, b) => { + let mut s = serializer.serialize_struct("BamlAudio", 2)?; + + s.serialize_field("base64", &b.base64)?; + s.serialize_field("media_type", &b.media_type)?; + s.end() + } + }, + BamlValue::Enum(_, v) => serializer.serialize_str(v), BamlValue::Class(_, m) => m.serialize(serializer), BamlValue::Null => serializer.serialize_none(), @@ -82,7 +97,12 @@ impl BamlValue { format!("list<{}>", value_type) } } - BamlValue::Image(_) => "image".into(), + BamlValue::Media(m) => match m { + BamlMedia::Url(BamlMediaType::Image, _) => "image".into(), + BamlMedia::Base64(BamlMediaType::Image, _) => "image".into(), + BamlMedia::Url(BamlMediaType::Audio, _) => "audio".into(), + BamlMedia::Base64(BamlMediaType::Audio, _) => "audio".into(), + }, BamlValue::Enum(e, _) => format!("enum {}", e), BamlValue::Class(c, _) => format!("class {}", c), BamlValue::Null => "null".into(), diff --git a/engine/baml-lib/baml-types/src/field_type/mod.rs b/engine/baml-lib/baml-types/src/field_type/mod.rs index 8972c5f52..c495e34fa 100644 --- a/engine/baml-lib/baml-types/src/field_type/mod.rs +++ b/engine/baml-lib/baml-types/src/field_type/mod.rs @@ -9,6 +9,7 @@ pub enum TypeValue { // Char, Null, Image, + Audio, } impl std::fmt::Display for TypeValue { @@ -20,6 +21,7 @@ impl std::fmt::Display for TypeValue { TypeValue::Bool => write!(f, "bool"), TypeValue::Null => write!(f, "null"), TypeValue::Image => write!(f, "image"), + TypeValue::Audio => write!(f, "audio"), } } } diff --git a/engine/baml-lib/baml-types/src/image.rs b/engine/baml-lib/baml-types/src/image.rs deleted file mode 100644 index 5e80b03e5..000000000 --- a/engine/baml-lib/baml-types/src/image.rs +++ /dev/null @@ -1,41 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] -#[serde(untagged)] -pub enum BamlImage { - Url(ImageUrl), - Base64(ImageBase64), -} - -impl BamlImage { - pub fn url(url: String) -> BamlImage { - BamlImage::Url(ImageUrl::new(url)) - } - - pub fn base64(base64: String, media_type: String) -> BamlImage { - BamlImage::Base64(ImageBase64::new(base64, media_type)) - } -} - -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] -pub struct ImageUrl { - pub url: String, -} - -impl ImageUrl { - pub fn new(url: String) -> ImageUrl { - ImageUrl { url } - } -} - -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] -pub struct ImageBase64 { - pub base64: String, - pub media_type: String, -} - -impl ImageBase64 { - pub fn new(base64: String, media_type: String) -> ImageBase64 { - ImageBase64 { base64, media_type } - } -} diff --git a/engine/baml-lib/baml-types/src/lib.rs b/engine/baml-lib/baml-types/src/lib.rs index ebf6cb7f8..692420a49 100644 --- a/engine/baml-lib/baml-types/src/lib.rs +++ b/engine/baml-lib/baml-types/src/lib.rs @@ -1,5 +1,5 @@ -mod image; mod map; +mod media; #[cfg(feature = "mini-jinja")] mod minijinja; @@ -8,5 +8,5 @@ mod field_type; pub use baml_value::BamlValue; pub use field_type::{FieldType, TypeValue}; -pub use image::{BamlImage, ImageBase64, ImageUrl}; pub use map::Map as BamlMap; +pub use media::{BamlMedia, BamlMediaType, MediaBase64, MediaUrl}; diff --git a/engine/baml-lib/baml-types/src/media.rs b/engine/baml-lib/baml-types/src/media.rs new file mode 100644 index 000000000..57da5506b --- /dev/null +++ b/engine/baml-lib/baml-types/src/media.rs @@ -0,0 +1,70 @@ +use serde::{Deserialize, Serialize}; + +use std::fmt; + +#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)] +pub enum BamlMediaType { + Image, + Audio, +} + +impl fmt::Display for BamlMediaType { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match *self { + BamlMediaType::Image => write!(f, "image"), + BamlMediaType::Audio => write!(f, "audio"), + } + } +} + +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum BamlMedia { + Url(BamlMediaType, MediaUrl), + Base64(BamlMediaType, MediaBase64), +} + +impl BamlMedia { + pub fn url(t: BamlMediaType, url: String, media_type: Option) -> BamlMedia { + BamlMedia::Url( + t, + MediaUrl::new(url, Some(media_type.unwrap_or_else(|| "".to_string()))), + ) + } + + pub fn base64(t: BamlMediaType, base64: String, media_type: String) -> BamlMedia { + BamlMedia::Base64(t, MediaBase64::new(base64, media_type)) + } +} + +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +pub struct MediaUrl { + pub url: String, + pub media_type: Option, +} + +impl MediaUrl { + pub fn new(url: String, media_type: Option) -> Self { + Self { url, media_type } + } +} + +impl fmt::Display for MediaUrl { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{}", self.url) + } +} + +#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] +pub struct MediaBase64 { + pub base64: String, + /// Explicitly specified by the 'type' field on img and audio structs in BAML files. + /// example: "image/png", "image/jpeg", "audio/mp3" + pub media_type: String, +} + +impl MediaBase64 { + pub fn new(base64: String, media_type: String) -> Self { + Self { base64, media_type } + } +} diff --git a/engine/baml-lib/baml-types/src/minijinja.rs b/engine/baml-lib/baml-types/src/minijinja.rs index 694f3a13d..c6c2314f1 100644 --- a/engine/baml-lib/baml-types/src/minijinja.rs +++ b/engine/baml-lib/baml-types/src/minijinja.rs @@ -1,4 +1,4 @@ -use crate::{BamlImage, BamlValue}; +use crate::{BamlMedia, BamlValue}; impl From for minijinja::Value { fn from(arg: BamlValue) -> minijinja::Value { @@ -15,7 +15,7 @@ impl From for minijinja::Value { let list: Vec = l.into_iter().map(|v| v.into()).collect(); minijinja::Value::from(list) } - BamlValue::Image(i) => i.into(), + BamlValue::Media(i) => i.into(), BamlValue::Enum(_, v) => minijinja::Value::from(v), BamlValue::Class(_, m) => { let map = m.into_iter().map(|(k, v)| (k, minijinja::Value::from(v))); @@ -28,17 +28,17 @@ impl From for minijinja::Value { #[derive(Debug)] struct MinijinjaBamlImage { - image: BamlImage, + image: BamlMedia, } -impl From for MinijinjaBamlImage { - fn from(image: BamlImage) -> MinijinjaBamlImage { +impl From for MinijinjaBamlImage { + fn from(image: BamlMedia) -> MinijinjaBamlImage { MinijinjaBamlImage { image } } } -impl From for minijinja::Value { - fn from(arg: BamlImage) -> minijinja::Value { +impl From for minijinja::Value { + fn from(arg: BamlMedia) -> minijinja::Value { minijinja::Value::from_object(MinijinjaBamlImage::from(arg)) } } diff --git a/engine/baml-lib/baml/tests/validation_files/functions_v2/prompt_errors/prompt1.baml b/engine/baml-lib/baml/tests/validation_files/functions_v2/prompt_errors/prompt1.baml index c8314407e..76396e2ce 100644 --- a/engine/baml-lib/baml/tests/validation_files/functions_v2/prompt_errors/prompt1.baml +++ b/engine/baml-lib/baml/tests/validation_files/functions_v2/prompt_errors/prompt1.baml @@ -50,9 +50,3 @@ function Bar1(a: string) -> int { // 23 | prompt #" // 24 | {{ Foo(a) }} // | -// warning: 'b' is a (function Foo | function Foo2), expected function -// --> functions_v2/prompt_errors/prompt1.baml:37 -// | -// 36 | -// 37 | {{ b() }} -// | diff --git a/engine/baml-lib/jinja/src/evaluate_type/expr.rs b/engine/baml-lib/jinja/src/evaluate_type/expr.rs index 1b92d1bfa..8362fdf10 100644 --- a/engine/baml-lib/jinja/src/evaluate_type/expr.rs +++ b/engine/baml-lib/jinja/src/evaluate_type/expr.rs @@ -8,6 +8,90 @@ use super::{ ScopeTracker, TypeError, }; +fn parse_as_function_call<'a>( + expr: &ast::Spanned, + state: &mut ScopeTracker, + types: &PredefinedTypes, + t: &Type, +) -> (Type, Vec) { + match t { + Type::FunctionRef(name) => { + let mut positional_args = Vec::new(); + let mut kwargs = HashMap::new(); + for arg in &expr.args { + match arg { + ast::Expr::Kwargs(kkwargs) => { + for (k, v) in &kkwargs.pairs { + let t = tracker_visit_expr(v, state, types); + kwargs.insert(*k, t); + } + } + _ => { + let t = tracker_visit_expr(arg, state, types); + positional_args.push(t); + } + } + } + + types.check_function_args((&name, expr), &positional_args, &kwargs) + } + Type::Both(x, y) => { + match (x.as_ref(), y.as_ref()) { + (Type::FunctionRef(_), Type::FunctionRef(_)) => {} + (Type::FunctionRef(_), _) => return parse_as_function_call(expr, state, types, x), + (_, Type::FunctionRef(_)) => return parse_as_function_call(expr, state, types, y), + _ => {} + } + + let (t1, e1) = parse_as_function_call(expr, state, types, x); + let (t2, e2) = parse_as_function_call(expr, state, types, y); + match (e1.is_empty(), e2.is_empty()) { + (true, true) => (Type::merge([t1, t2]), vec![]), + (true, false) => (t1, e1), + (false, true) => (t2, e2), + (false, false) => ( + Type::merge([t1, t2]), + e1.into_iter().chain(e2.into_iter()).collect(), + ), + } + } + Type::Union(items) => { + let items = items + .iter() + .map(|x| parse_as_function_call(expr, state, types, x)) + .reduce(|acc, x| { + let (t1, e1) = acc; + let (t2, e2) = x; + ( + Type::merge([t1, t2]), + e1.into_iter().chain(e2.into_iter()).collect(), + ) + }); + match items { + Some(x) => x, + None => ( + Type::Unknown, + vec![TypeError::new_invalid_type( + &expr.expr, + t, + "function", + expr.span(), + )], + ), + } + } + _ => ( + Type::Unknown, + vec![TypeError::new_invalid_type( + &expr.expr, + t, + "function", + expr.span(), + )], + ), + } +} + fn tracker_visit_expr<'a>( expr: &ast::Expr<'a>, state: &mut ScopeTracker, @@ -79,16 +163,145 @@ fn tracker_visit_expr<'a>( .unwrap_or(Type::Unknown); Type::merge([true_expr, false_expr]) } - ast::Expr::Filter(expr) => match expr.name { - "items" => { - let inner = tracker_visit_expr(expr.expr.as_ref().unwrap(), state, types); - match inner { + ast::Expr::Filter(expr) => { + // Filters have a name + let inner = tracker_visit_expr(expr.expr.as_ref().unwrap(), state, types); + + let mut ensure_type = |error_string: &str| { + state.errors.push(TypeError::new_invalid_type( + expr.expr.as_ref().unwrap(), + &inner, + error_string, + expr.span(), + )); + }; + + let valid_filters = vec![ + "abs", + "attrs", + "batch", + "bool", + "capitalize", + "escape", + "first", + "last", + "default", + "float", + "indent", + "int", + "dictsort", + "items", + "join", + "length", + "list", + "lower", + "upper", + "map", + "max", + "min", + "pprint", + "reject", + "rejectattr", + "replace", + "reverse", + "round", + "safe", + "select", + "selectattr", + "slice", + "sort", + "split", + "title", + "tojson", + "json", + "trim", + "unique", + "urlencode", + ]; + match expr.name { + "abs" => { + if inner.matches(&Type::Number) { + ensure_type("number"); + } + Type::Number + } + "attrs" => Type::Unknown, + "batch" => Type::Unknown, + "bool" => Type::Bool, + "capitalize" | "escape" => { + if inner.matches(&Type::String) { + ensure_type("string"); + } + Type::String + } + "first" | "last" => match inner { + Type::List(t) => Type::merge([*t, Type::None]), + Type::Unknown => Type::Unknown, + _ => { + ensure_type("list"); + Type::Unknown + } + }, + "default" => Type::Unknown, + "float" => Type::Float, + "indent" => Type::String, + "int" => Type::Int, + "dictsort" | "items" => match inner { Type::Map(k, v) => Type::List(Box::new(Type::Tuple(vec![*k, *v]))), - _ => Type::Unknown, + Type::ClassRef(_) => { + Type::List(Box::new(Type::Tuple(vec![Type::String, Type::Unknown]))) + } + _ => { + ensure_type("map or class"); + Type::Unknown + } + }, + "join" => Type::String, + "length" => match inner { + Type::List(_) | Type::String | Type::ClassRef(_) | Type::Map(_, _) => Type::Int, + Type::Unknown => Type::Unknown, + _ => { + ensure_type("list, string, class or map"); + Type::Unknown + } + }, + "list" => Type::List(Box::new(Type::Unknown)), + "lower" | "upper" => { + if inner.matches(&Type::String) { + ensure_type("string"); + } + Type::String + } + "map" => Type::Unknown, + "max" => Type::Unknown, + "min" => Type::Unknown, + "pprint" => Type::Unknown, + "reject" => Type::Unknown, + "rejectattr" => Type::Unknown, + "replace" => Type::String, + "reverse" => Type::Unknown, + "round" => Type::Float, + "safe" => Type::String, + "select" => Type::Unknown, + "selectattr" => Type::Unknown, + "slice" => Type::Unknown, + "sort" => Type::Unknown, + "split" => Type::List(Box::new(Type::String)), + "title" => Type::String, + "tojson" | "json" => Type::String, + "trim" => Type::String, + "unique" => Type::Unknown, + "urlencode" => Type::String, + other => { + state.errors.push(TypeError::new_invalid_filter( + other, + expr.span(), + &valid_filters, + )); + Type::Unknown } } - _ => Type::Unknown, - }, + } ast::Expr::Test(expr) => { let _test = tracker_visit_expr(&expr.expr, state, types); // TODO: Check for type compatibility @@ -122,41 +335,9 @@ fn tracker_visit_expr<'a>( ast::Expr::Slice(_slice) => Type::Unknown, ast::Expr::Call(expr) => { let func = tracker_visit_expr(&expr.expr, state, types); - - match func { - Type::FunctionRef(name) => { - // lets segregate positional and keyword arguments - let mut positional_args = Vec::new(); - let mut kwargs = HashMap::new(); - for arg in &expr.args { - match arg { - ast::Expr::Kwargs(kkwargs) => { - for (k, v) in &kkwargs.pairs { - let t = tracker_visit_expr(v, state, types); - kwargs.insert(*k, t); - } - } - _ => { - let t = tracker_visit_expr(arg, state, types); - positional_args.push(t); - } - } - } - - let res = types.check_function_args((&name, expr), &positional_args, &kwargs); - state.errors.extend(res.1); - res.0 - } - t => { - state.errors.push(TypeError::new_invalid_type( - &expr.expr, - &t, - "function", - expr.span(), - )); - Type::Unknown - } - } + let (t, errs) = parse_as_function_call(expr, state, types, &func); + state.errors.extend(errs); + t } ast::Expr::List(expr) => { let inner = Type::merge( diff --git a/engine/baml-lib/jinja/src/evaluate_type/mod.rs b/engine/baml-lib/jinja/src/evaluate_type/mod.rs index 8dfb4f4d4..aafa1530c 100644 --- a/engine/baml-lib/jinja/src/evaluate_type/mod.rs +++ b/engine/baml-lib/jinja/src/evaluate_type/mod.rs @@ -7,6 +7,7 @@ mod test_expr; mod test_stmt; mod types; +use std::collections::HashSet; use std::fmt::Debug; use std::ops::Index; @@ -143,11 +144,57 @@ impl TypeError { } } - fn new_unknown_arg(func: &str, span: Span, name: &str) -> Self { - Self { - message: format!("Function '{}' does not have an argument '{}'", func, name), - span, - } + fn new_unknown_arg(func: &str, span: Span, name: &str, valid_args: HashSet<&String>) -> Self { + let names = valid_args.into_iter().collect::>(); + let mut close_names = sort_by_match(name, &names, Some(3)); + close_names.sort(); + let close_names = close_names; + + let message = if close_names.is_empty() { + // If no names are close enough, suggest nothing or provide a generic message + format!("Function '{}' does not have an argument '{}'.", func, name) + } else if close_names.len() == 1 { + // If there's only one close name, suggest it + format!( + "Function '{}' does not have an argument '{}'. Did you mean '{}'?", + func, name, close_names[0] + ) + } else { + // If there are multiple close names, suggest them all + let suggestions = close_names.join("', '"); + format!( + "Function '{}' does not have an argument '{}'. Did you mean one of these: '{}'?", + func, name, suggestions + ) + }; + + Self { message, span } + } + + fn new_invalid_filter(name: &str, span: Span, valid_filters: &Vec<&str>) -> Self { + let mut close_names = sort_by_match(name, valid_filters, Some(5)); + close_names.sort(); + let close_names = close_names; + + let message = if close_names.is_empty() { + // If no names are close enough, suggest nothing or provide a generic message + format!("Filter '{}' does not exist", name) + } else if close_names.len() == 1 { + // If there's only one close name, suggest it + format!( + "Filter '{}' does not exist. Did you mean '{}'?", + name, close_names[0] + ) + } else { + // If there are multiple close names, suggest them all + let suggestions = close_names.join("', '"); + format!( + "Filter '{}' does not exist. Did you mean one of these: '{}'?", + name, suggestions + ) + }; + + Self { message: format!("{message}\n\nSee: https://docs.rs/minijinja/latest/minijinja/filters/index.html#functions for the compelete list"), span } } fn new_invalid_type(expr: &Expr, got: &Type, expected: &str, span: Span) -> Self { diff --git a/engine/baml-lib/jinja/src/evaluate_type/test_expr.rs b/engine/baml-lib/jinja/src/evaluate_type/test_expr.rs index a8eaa2028..9c484c392 100644 --- a/engine/baml-lib/jinja/src/evaluate_type/test_expr.rs +++ b/engine/baml-lib/jinja/src/evaluate_type/test_expr.rs @@ -100,6 +100,11 @@ fn test_ifexpr() { Type::Union(vec![Type::Number, Type::String]) ); + assert_eq!( + assert_evaluates_to!("1 if true else '2'", &types), + Type::Union(vec![Type::String, Type::Number]) + ); + types.add_function("AnotherFunc", Type::Float, vec![("arg".into(), Type::Bool)]); types.add_variable("BasicTest", Type::Int); @@ -192,7 +197,42 @@ fn test_call_function() { assert_fails_to!("AnotherFunc(true, arg2='1', arg4=1)", &types), vec![ "Function 'AnotherFunc' expects argument 'arg3'", - "Function 'AnotherFunc' does not have an argument 'arg4'" + "Function 'AnotherFunc' does not have an argument 'arg4'. Did you mean 'arg3'?" ] ); } + +#[test] +fn test_output_format() { + let types = PredefinedTypes::default(); + assert_eq!( + assert_evaluates_to!("ctx.output_format(prefix='hi')", &types), + Type::String + ); + + assert_eq!( + assert_evaluates_to!("ctx.output_format(prefix='1', or_splitter='1')", &types), + Type::String + ); + + assert_eq!( + assert_evaluates_to!( + "ctx.output_format(prefix='1', enum_value_prefix=none)", + &types + ), + Type::String + ); + + assert_eq!( + assert_fails_to!( + "ctx.output_format(prefix='1', always_hoist_enums=1)", + &types + ), + vec!["Function 'baml::OutputFormat' expects argument 'always_hoist_enums' to be of type (bool | none), but got number"] + ); + + assert_eq!( + assert_fails_to!("ctx.output_format(prefix='1', unknown=1)", &types), + vec!["Function 'baml::OutputFormat' does not have an argument 'unknown'. Did you mean one of these: 'always_hoist_enums', 'enum_value_prefix', 'or_splitter'?"] + ); +} diff --git a/engine/baml-lib/jinja/src/evaluate_type/types.rs b/engine/baml-lib/jinja/src/evaluate_type/types.rs index 3ef9adfd8..c92aa8756 100644 --- a/engine/baml-lib/jinja/src/evaluate_type/types.rs +++ b/engine/baml-lib/jinja/src/evaluate_type/types.rs @@ -1,5 +1,9 @@ use core::panic; -use std::{collections::HashMap, ops::BitOr}; +use std::{ + collections::{HashMap, HashSet}, + ops::BitOr, + vec, +}; use minijinja::machinery::{ ast::{Call, Spanned}, @@ -23,32 +27,47 @@ pub enum Type { Map(Box, Box), Tuple(Vec), Union(Vec), + // It is simultaneously two types, whichever fits best + Both(Box, Box), ClassRef(String), FunctionRef(String), Image, + Audio, } impl PartialEq for Type { fn eq(&self, other: &Self) -> bool { - match (self, other) { + self.matches(other) + } +} + +impl Eq for Type {} + +impl Type { + pub fn matches(&self, r: &Self) -> bool { + match (self, r) { (Self::Unknown, Self::Unknown) => true, (Self::Unknown, _) => true, (_, Self::Unknown) => true, (Self::Number, Self::Int | Self::Float) => true, (Self::Int | Self::Float, Self::Number) => true, - (Self::List(l0), Self::List(r0)) => l0 == r0, - (Self::Map(l0, l1), Self::Map(r0, r1)) => l0 == r0 && l1 == r1, - (Self::Union(l0), Self::Union(r0)) => l0 == r0, + (Self::List(l0), Self::List(r0)) => l0.matches(r0), + (Self::Map(l0, l1), Self::Map(r0, r1)) => l0.matches(r0) && l1.matches(r1), + (Self::Union(l0), Self::Union(r0)) => { + // Sort l0 and r0 to make sure the order doesn't matter + let mut l0 = l0.clone(); + let mut r0 = r0.clone(); + l0.sort(); + r0.sort(); + l0 == r0 + } + (l0, Self::Union(r0)) => r0.iter().any(|x| l0.matches(x)), (Self::ClassRef(l0), Self::ClassRef(r0)) => l0 == r0, (Self::FunctionRef(l0), Self::FunctionRef(r0)) => l0 == r0, - _ => core::mem::discriminant(self) == core::mem::discriminant(other), + _ => core::mem::discriminant(self) == core::mem::discriminant(r), } } -} - -impl Eq for Type {} -impl Type { pub fn name(&self) -> String { match self { Type::Unknown => "".into(), @@ -69,9 +88,19 @@ impl Type { "({})", v.iter().map(|x| x.name()).collect::>().join(" | ") ), + Type::Both(l, r) => format!("{} & {}", l.name(), r.name()), Type::ClassRef(name) => format!("class {}", name), Type::FunctionRef(name) => format!("function {}", name), Type::Image => "image".into(), + Type::Audio => "audio".into(), + } + } + + pub fn is_optional(&self) -> bool { + match self { + Type::None => true, + Type::Union(v) => v.iter().any(|x| x.is_optional()), + _ => false, } } @@ -156,10 +185,33 @@ impl PredefinedTypes { pub fn default() -> Self { Self { - functions: HashMap::from([( - "baml::Chat".into(), - (Type::String, vec![("role".into(), Type::String)]), - )]), + functions: HashMap::from([ + ( + "baml::Chat".into(), + (Type::String, vec![("role".into(), Type::String)]), + ), + ( + "baml::OutputFormat".into(), + ( + Type::String, + vec![ + ("prefix".into(), Type::merge(vec![Type::String, Type::None])), + ( + "or_splitter".into(), + Type::merge(vec![Type::String, Type::None]), + ), + ( + "enum_value_prefix".into(), + Type::merge(vec![Type::String, Type::None]), + ), + ( + "always_hoist_enums".into(), + Type::merge(vec![Type::Bool, Type::None]), + ), + ], + ), + ), + ]), classes: HashMap::from([ ( "baml::Client".into(), @@ -171,10 +223,16 @@ impl PredefinedTypes { ( "baml::Context".into(), HashMap::from([ - ("output_format".into(), Type::String), + ( + "output_format".into(), + Type::Both( + Type::String.into(), + Type::FunctionRef("baml::OutputFormat".into()).into(), + ), + ), ("client".into(), Type::ClassRef("baml::Client".into())), ( - "env".into(), + "tags".into(), Type::Map(Box::new(Type::String), Box::new(Type::String)), ), ]), @@ -383,8 +441,20 @@ impl PredefinedTypes { let (ret, args) = val.unwrap(); let mut errors = Vec::new(); + // Check how many args are required. + let mut optional_args = vec![]; + for (name, t) in args.iter().rev() { + if !t.is_optional() { + break; + } + optional_args.push(name); + } + let required_args = args.len() - optional_args.len(); + // Check count - if positional_args.len() + kwargs.len() != args.len() { + if positional_args.len() + kwargs.len() < required_args + || (positional_args.len() + kwargs.len()) > args.len() + { errors.push(TypeError::new_wrong_arg_count( func, span, @@ -392,9 +462,11 @@ impl PredefinedTypes { positional_args.len() + kwargs.len(), )); } else { + let mut unused_args = args.iter().map(|(name, _)| name).collect::>(); // Check types for (i, (name, t)) in args.iter().enumerate() { if i < positional_args.len() { + unused_args.remove(name); let arg_t = &positional_args[i]; if arg_t != t { errors.push(TypeError::new_wrong_arg_type( @@ -408,6 +480,7 @@ impl PredefinedTypes { } } else { if let Some(arg_t) = kwargs.get(name.as_str()) { + unused_args.remove(name); if arg_t != t { errors.push(TypeError::new_wrong_arg_type( func, @@ -419,14 +492,21 @@ impl PredefinedTypes { )); } } else { - errors.push(TypeError::new_missing_arg(func, span, name)); + if !optional_args.contains(&name) { + errors.push(TypeError::new_missing_arg(func, span, name)); + } } } } kwargs.iter().for_each(|(name, _)| { if !args.iter().any(|(arg_name, _)| arg_name == name) { - errors.push(TypeError::new_unknown_arg(func, span, name)); + errors.push(TypeError::new_unknown_arg( + func, + span, + name, + unused_args.clone(), + )); } }); } diff --git a/engine/baml-lib/jinja/src/lib.rs b/engine/baml-lib/jinja/src/lib.rs index 4e4716f67..ca87bbe87 100644 --- a/engine/baml-lib/jinja/src/lib.rs +++ b/engine/baml-lib/jinja/src/lib.rs @@ -1,4 +1,4 @@ -use baml_types::{BamlImage, BamlValue}; +use baml_types::{BamlMedia, BamlMediaType, BamlValue}; use colored::*; mod evaluate_type; mod get_vars; @@ -74,6 +74,7 @@ pub fn validate_template( pub struct RenderContext_Client { pub name: String, pub provider: String, + pub default_role: String, } #[derive(Debug)] @@ -97,6 +98,7 @@ fn render_minijinja( args: &minijinja::Value, mut ctx: RenderContext, template_string_macros: &[TemplateStringMacro], + default_role: String, ) -> Result { let mut env = get_env(); @@ -194,7 +196,6 @@ fn render_minijinja( let mut chat_messages = vec![]; let mut role = None; - for chunk in rendered.split(MAGIC_CHAT_ROLE_DELIMITER) { if chunk.starts_with(":baml-start-baml:") && chunk.ends_with(":baml-end-baml:") { role = Some( @@ -216,10 +217,17 @@ fn render_minijinja( .strip_suffix(":baml-end-image:") .unwrap_or(part); - match serde_json::from_str::(image_data) { - Ok(image) => { - parts.push(ChatMessagePart::Image(image)); - } + match serde_json::from_str::(image_data) { + Ok(media) => match media { + BamlMedia::Url(media_type, _) => match media_type { + BamlMediaType::Image => parts.push(ChatMessagePart::Image(media)), + BamlMediaType::Audio => parts.push(ChatMessagePart::Audio(media)), + }, + BamlMedia::Base64(media_type, _) => match media_type { + BamlMediaType::Image => parts.push(ChatMessagePart::Image(media)), + BamlMediaType::Audio => parts.push(ChatMessagePart::Audio(media)), + }, + }, Err(_) => { Err(minijinja::Error::new( ErrorKind::CannotUnpack, @@ -227,16 +235,18 @@ fn render_minijinja( ))?; } } - } else if part.is_empty() { - // only whitespace, so discard - } else { + } else if !part.trim().is_empty() { parts.push(ChatMessagePart::Text(part.trim().to_string())); } } - chat_messages.push(RenderedChatMessage { - role: role.unwrap_or("system").to_string(), - parts, - }); + + // Only add the message if it contains meaningful content + if !parts.is_empty() { + chat_messages.push(RenderedChatMessage { + role: role.unwrap_or(&default_role).to_string(), + parts, + }); + } } } @@ -275,7 +285,8 @@ impl ImageBase64 { #[derive(Debug, PartialEq, Serialize, Clone)] pub enum ChatMessagePart { Text(String), // raw user-provided text - Image(BamlImage), + Image(BamlMedia), + Audio(BamlMedia), } #[derive(Debug, PartialEq, Clone)] @@ -300,12 +311,19 @@ impl std::fmt::Display for RenderedPrompt { .iter() .map(|p| match p { ChatMessagePart::Text(t) => t.clone(), - ChatMessagePart::Image(img) => match img { - BamlImage::Url(url) => + ChatMessagePart::Image(media) => match media { + BamlMedia::Url(BamlMediaType::Image, url) => format!("", url.url), - BamlImage::Base64(_) => - // TODO: print this as well? + BamlMedia::Base64(BamlMediaType::Image, _) => "".to_string(), + _ => unreachable!(), + }, + ChatMessagePart::Audio(media) => match media { + BamlMedia::Url(BamlMediaType::Audio, url) => + format!("", url.url), + BamlMedia::Base64(BamlMediaType::Audio, _) => + "".to_string(), + _ => unreachable!(), }, }) .collect::>() @@ -364,7 +382,8 @@ impl RenderedPrompt { .flat_map(|m| { m.parts.into_iter().map(|p| match p { ChatMessagePart::Text(t) => t, - ChatMessagePart::Image(_) => "".to_string(), // we are choosing to ignore the image for now + ChatMessagePart::Image(_) | ChatMessagePart::Audio(_) => "".to_string(), + // we are choosing to ignore the image for now }) }) .collect::>() @@ -411,8 +430,14 @@ pub fn render_prompt( } let minijinja_args: Value = args.clone().into(); - - let rendered = render_minijinja(template, &minijinja_args, ctx, template_string_macros); + let default_role = ctx.client.default_role.clone(); + let rendered = render_minijinja( + template, + &minijinja_args, + ctx, + template_string_macros, + default_role, + ); match rendered { Ok(r) => Ok(r), @@ -454,7 +479,11 @@ mod render_tests { let args = BamlValue::Map(BamlMap::from([( "img".to_string(), - BamlValue::Image(BamlImage::url("https://example.com/image.jpg".to_string())), + BamlValue::Media(BamlMedia::url( + BamlMediaType::Image, + "https://example.com/image.jpg".to_string(), + None, + )), )])); let rendered = render_prompt( @@ -465,6 +494,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -478,9 +508,11 @@ mod render_tests { role: "system".to_string(), parts: vec![ ChatMessagePart::Text(vec!["Here is an image:",].join("\n")), - ChatMessagePart::Image(BamlImage::url( - "https://example.com/image.jpg".to_string() - ),), + ChatMessagePart::Image(BamlMedia::url( + BamlMediaType::Image, + "https://example.com/image.jpg".to_string(), + None + )), ] },]) ); @@ -496,7 +528,11 @@ mod render_tests { "myObject".to_string(), BamlValue::Map(BamlMap::from([( "img".to_string(), - BamlValue::Image(BamlImage::url("https://example.com/image.jpg".to_string())), + BamlValue::Media(BamlMedia::url( + BamlMediaType::Image, + "https://example.com/image.jpg".to_string(), + None, + )), )])), )])); @@ -508,6 +544,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -521,9 +558,11 @@ mod render_tests { role: "system".to_string(), parts: vec![ ChatMessagePart::Text(vec!["Here is an image:",].join("\n")), - ChatMessagePart::Image(BamlImage::url( - "https://example.com/image.jpg".to_string() - ),), + ChatMessagePart::Image(BamlMedia::url( + BamlMediaType::Image, + "https://example.com/image.jpg".to_string(), + None + )), ] },]) ); @@ -537,7 +576,11 @@ mod render_tests { let args: BamlValue = BamlValue::Map(BamlMap::from([( "img".to_string(), - BamlValue::Image(BamlImage::url("https://example.com/image.jpg".to_string())), + BamlValue::Media(BamlMedia::url( + BamlMediaType::Image, + "https://example.com/image.jpg".to_string(), + None, + )), )])); let rendered = render_prompt( @@ -548,6 +591,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -561,9 +605,11 @@ mod render_tests { role: "system".to_string(), parts: vec![ ChatMessagePart::Text(vec!["Here is an image:",].join("\n")), - ChatMessagePart::Image(BamlImage::url( - "https://example.com/image.jpg".to_string() - ),), + ChatMessagePart::Image(BamlMedia::url( + BamlMediaType::Image, + "https://example.com/image.jpg".to_string(), + None + )), ChatMessagePart::Text(vec![". Please help me.",].join("\n")), ] },]) @@ -602,6 +648,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -666,6 +713,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -705,6 +753,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -733,6 +782,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -761,6 +811,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -789,6 +840,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -839,6 +891,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -888,6 +941,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -951,6 +1005,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::from([("ROLE".to_string(), BamlValue::String("john doe".into()))]), @@ -993,6 +1048,7 @@ mod render_tests { client: RenderContext_Client { name: "gpt4".to_string(), provider: "openai".to_string(), + default_role: "system".to_string(), }, output_format: OutputFormatContent::new_string(), tags: HashMap::new(), diff --git a/engine/baml-lib/jinja/src/output_format/types.rs b/engine/baml-lib/jinja/src/output_format/types.rs index 5c0764502..b9016cd83 100644 --- a/engine/baml-lib/jinja/src/output_format/types.rs +++ b/engine/baml-lib/jinja/src/output_format/types.rs @@ -68,10 +68,10 @@ impl Default for RenderSetting { } pub struct RenderOptions { - pub prefix: RenderSetting, + prefix: RenderSetting, pub or_splitter: String, - pub enum_value_prefix: RenderSetting, - pub always_hoist_enums: RenderSetting, + enum_value_prefix: RenderSetting, + always_hoist_enums: RenderSetting, } impl Default for RenderOptions { @@ -146,6 +146,7 @@ impl Attribute { } struct ClassRender { + #[allow(dead_code)] name: String, values: Vec, } @@ -251,6 +252,12 @@ impl OutputFormatContent { "Image type is not supported in outputs", )) } + TypeValue::Audio => { + return Err(minijinja::Error::new( + minijinja::ErrorKind::BadSerialization, + "Audio type is not supported in outputs", + )) + } }, FieldType::Enum(e) => { let Some(enm) = self.enums.get(e) else { diff --git a/engine/baml-lib/jsonish/README.md b/engine/baml-lib/jsonish/README.md index d0d60eed4..921c3b88d 100644 --- a/engine/baml-lib/jsonish/README.md +++ b/engine/baml-lib/jsonish/README.md @@ -5,7 +5,12 @@ This library exposes an interface: ```rust -fn parse(input: &str, schema: JSONSchema) -> Result +pub fn from_str( + of: &OutputFormatContent, + target: &FieldType, + raw_string: &str, + allow_partials: bool, +) -> Result ``` It provides a guarantee that the schema is able to be flexibly parsed out from the input. diff --git a/engine/baml-lib/jsonish/src/deserializer/coercer/coerce_primitive.rs b/engine/baml-lib/jsonish/src/deserializer/coercer/coerce_primitive.rs index 4f6d8a753..4274ceb09 100644 --- a/engine/baml-lib/jsonish/src/deserializer/coercer/coerce_primitive.rs +++ b/engine/baml-lib/jsonish/src/deserializer/coercer/coerce_primitive.rs @@ -37,6 +37,7 @@ impl TypeCoercer for TypeValue { TypeValue::Bool => coerce_bool(ctx, target, value), TypeValue::Null => coerce_null(ctx, target, value), TypeValue::Image => Err(ctx.error_image_not_supported()), + TypeValue::Audio => Err(ctx.error_audio_not_supported()), } } } diff --git a/engine/baml-lib/jsonish/src/deserializer/coercer/ir_ref/coerce_class.rs b/engine/baml-lib/jsonish/src/deserializer/coercer/ir_ref/coerce_class.rs index ea6c23a89..a63957fb6 100644 --- a/engine/baml-lib/jsonish/src/deserializer/coercer/ir_ref/coerce_class.rs +++ b/engine/baml-lib/jsonish/src/deserializer/coercer/ir_ref/coerce_class.rs @@ -1,10 +1,8 @@ -use std::{collections::HashMap, iter}; use anyhow::Result; use baml_types::BamlMap; use internal_baml_core::{ - ast::Field, - ir::{ClassFieldWalker, ClassWalker, FieldType}, + ir::{FieldType}, }; use internal_baml_jinja::types::{Class, Name}; @@ -246,12 +244,21 @@ impl TypeCoercer for Class { })) .collect::>(); + // Create a BamlMap ordered according to self.fields + let mut ordered_valid_fields = BamlMap::new(); + for field in self.fields.iter() { + let key = field.0.real_name(); + if let Some(value) = valid_fields.get(key) { + ordered_valid_fields.insert(key.to_string(), value.clone()); + } + } + completed_cls.insert( 0, Ok(BamlValueWithFlags::Class( self.name.real_name().into(), flags, - valid_fields, + ordered_valid_fields, )), ); } diff --git a/engine/baml-lib/jsonish/src/deserializer/coercer/mod.rs b/engine/baml-lib/jsonish/src/deserializer/coercer/mod.rs index 85192f4b5..7acdf4089 100644 --- a/engine/baml-lib/jsonish/src/deserializer/coercer/mod.rs +++ b/engine/baml-lib/jsonish/src/deserializer/coercer/mod.rs @@ -7,9 +7,8 @@ mod field_type; mod ir_ref; use anyhow::Result; use internal_baml_jinja::types::OutputFormatContent; -use std::{collections::HashMap, fmt::Display}; -use internal_baml_core::ir::{repr::IntermediateRepr, FieldType}; +use internal_baml_core::ir::{FieldType}; use super::types::BamlValueWithFlags; @@ -120,6 +119,12 @@ impl ParsingContext<'_> { scope: self.scope.clone(), } } + pub(crate) fn error_audio_not_supported(&self) -> ParsingError { + ParsingError { + reason: "Audio type is not supported here".to_string(), + scope: self.scope.clone(), + } + } pub(crate) fn error_missing_required_field>( &self, diff --git a/engine/baml-lib/jsonish/src/deserializer/types.rs b/engine/baml-lib/jsonish/src/deserializer/types.rs index 9ffb6e6b8..b1a85415f 100644 --- a/engine/baml-lib/jsonish/src/deserializer/types.rs +++ b/engine/baml-lib/jsonish/src/deserializer/types.rs @@ -1,6 +1,6 @@ use std::collections::HashSet; -use baml_types::{BamlImage, BamlMap, BamlValue}; +use baml_types::{BamlMap, BamlMedia, BamlValue}; use super::{ deserialize_flags::{DeserializerConditions, Flag}, @@ -26,7 +26,7 @@ pub enum BamlValueWithFlags { BamlMap, ), Null(DeserializerConditions), - Image(ValueWithFlags), + Image(ValueWithFlags), } impl BamlValueWithFlags { @@ -114,7 +114,7 @@ impl From for BamlValue { BamlValue::Class(s, m.into_iter().map(|(k, v)| (k, v.into())).collect()) } BamlValueWithFlags::Null(_) => BamlValue::Null, - BamlValueWithFlags::Image(i) => BamlValue::Image(i.value), + BamlValueWithFlags::Image(i) => BamlValue::Media(i.value), } } } @@ -140,7 +140,7 @@ impl From<&BamlValueWithFlags> for BamlValue { m.into_iter().map(|(k, v)| (k.clone(), v.into())).collect(), ), BamlValueWithFlags::Null(_) => BamlValue::Null, - BamlValueWithFlags::Image(i) => BamlValue::Image(i.value.clone()), + BamlValueWithFlags::Image(i) => BamlValue::Media(i.value.clone()), } } } diff --git a/engine/baml-lib/jsonish/src/jsonish/parser/fixing_parser/json_collection.rs b/engine/baml-lib/jsonish/src/jsonish/parser/fixing_parser/json_collection.rs index 9faa75076..098cf205e 100644 --- a/engine/baml-lib/jsonish/src/jsonish/parser/fixing_parser/json_collection.rs +++ b/engine/baml-lib/jsonish/src/jsonish/parser/fixing_parser/json_collection.rs @@ -36,7 +36,7 @@ impl From for Option { Some(match collection { JsonCollection::TrailingComment(_) | JsonCollection::BlockComment(_) => return None, JsonCollection::Object(keys, values) => { - log::info!("keys: {:?}", keys); + // log::debug!("keys: {:?}", keys); let mut object = BamlMap::new(); for (key, value) in keys.into_iter().zip(values.into_iter()) { object.insert(key, value); diff --git a/engine/baml-lib/jsonish/src/jsonish/parser/markdown_parser.rs b/engine/baml-lib/jsonish/src/jsonish/parser/markdown_parser.rs index ba9670822..f8a746ce5 100644 --- a/engine/baml-lib/jsonish/src/jsonish/parser/markdown_parser.rs +++ b/engine/baml-lib/jsonish/src/jsonish/parser/markdown_parser.rs @@ -21,7 +21,7 @@ pub fn parse<'a>(str: &'a str, options: &ParseOptions) -> Result(str: &'a str, options: &ParseOptions) -> Result WithSerializeableContent for (&ParserDatabase, &FieldType) { baml_types::TypeValue::String => "string", baml_types::TypeValue::Null => "null", baml_types::TypeValue::Image => "image", + baml_types::TypeValue::Audio => "audio", } }) } diff --git a/engine/baml-lib/parser-database/src/walkers/mod.rs b/engine/baml-lib/parser-database/src/walkers/mod.rs index a63fd0c3e..04659bcfd 100644 --- a/engine/baml-lib/parser-database/src/walkers/mod.rs +++ b/engine/baml-lib/parser-database/src/walkers/mod.rs @@ -321,6 +321,7 @@ impl<'db> crate::ParserDatabase { baml_types::TypeValue::Bool => Type::Bool, baml_types::TypeValue::Null => Type::None, baml_types::TypeValue::Image => Type::Image, + baml_types::TypeValue::Audio => Type::Audio, }, ast::Identifier::String(_, _) => Type::String, ast::Identifier::Invalid(_, _) => Type::Unknown, diff --git a/engine/baml-lib/schema-ast/src/ast/identifier.rs b/engine/baml-lib/schema-ast/src/ast/identifier.rs index ecb325ef4..e20e83f60 100644 --- a/engine/baml-lib/schema-ast/src/ast/identifier.rs +++ b/engine/baml-lib/schema-ast/src/ast/identifier.rs @@ -87,6 +87,7 @@ impl WithName for Identifier { TypeValue::Bool => "bool", TypeValue::Null => "null", TypeValue::Image => "image", + TypeValue::Audio => "audio", }, Identifier::String(s, _) => s, Identifier::ENV(name, _) => name, @@ -115,6 +116,7 @@ impl From<(&str, Span)> for Identifier { "bool" => Identifier::Primitive(TypeValue::Bool, span), "null" => Identifier::Primitive(TypeValue::Null, span), "image" => Identifier::Primitive(TypeValue::Image, span), + "audio" => Identifier::Primitive(TypeValue::Audio, span), "env" => Identifier::Invalid("env".into(), span), other if other.contains('-') => Identifier::String(other.to_string(), span), other => Identifier::Local(other.to_string(), span), diff --git a/engine/baml-runtime/Cargo.toml b/engine/baml-runtime/Cargo.toml index 87a59df94..e914c383e 100644 --- a/engine/baml-runtime/Cargo.toml +++ b/engine/baml-runtime/Cargo.toml @@ -10,23 +10,29 @@ license-file.workspace = true [dependencies] anyhow.workspace = true base64.workspace = true +bytes.workspace = true +cfg-if.workspace = true clap = { version = "4.4.6", features = ["cargo", "derive"] } colored = "2.1.0" dashmap.workspace = true dunce = "1.0.4" either.workspace = true env_logger.workspace = true +eventsource-stream = "0.2.3" futures.workspace = true +http-body.workspace = true indexmap.workspace = true +# instant = "0.1" # do not use this or wasm-timer - use web-time instead json_comments = "0.2.2" jsonish = { path = "../baml-lib/jsonish" } -instant.workspace = true internal-baml-codegen.workspace = true baml-types = { path = "../baml-lib/baml-types" } internal-baml-core = { path = "../baml-lib/baml-core" } internal-baml-jinja = { path = "../baml-lib/jinja" } # internal-baml-client-llm = { path = "../baml-lib/client-llm" } log.workspace = true +pin-project-lite.workspace = true +reqwest-eventsource = "0.6.0" serde.workspace = true serde_json.workspace = true strsim = "0.11.1" @@ -45,22 +51,40 @@ mime = "0.3.17" # For tracing envy = "0.4.2" chrono = "0.4.38" -reqwest-eventsource = "0.6.0" -eventsource-stream = "0.2.3" stream-cancel = "0.8.2" async-std = "1.12.0" fastrand = "2.1.0" test-log = "0.2.16" -pin-project-lite = "0.2.14" -async-trait = "0.1.80" -cfg-if = "1.0.0" include_dir = "0.7.3" +infer = "0.16.0" +url = "2.5.2" +shell-escape = "0.1.5" +aws-sigv4 = "1.2.2" +aws-credential-types = "1.2.0" +aws-smithy-async = "1.2.1" +aws-smithy-runtime-api = "1.7.0" +aws-smithy-types = "1.2.0" +aws-smithy-runtime = "1.6.0" +enum_dispatch = "0.3.13" +ambassador = "0.4.0" +aws-smithy-json = "0.60.7" [target.'cfg(target_arch = "wasm32")'.dependencies] +aws-config = { version = "1.5.3", default-features = false, features = [] } +aws-sdk-bedrockruntime = { version = "1.37.0", default-features = false, features = [ +] } +colored = { version = "2.1.0", default-features = false, features = [ + "no-color", +] } +futures-timer = { version = "3.0.3", features = ["wasm-bindgen"] } +js-sys = "0.3.69" +reqwest = { version = "0.12.5", features = ["stream", "json"] } +# +send_wrapper = { version = "0.6.0", features = ["futures"] } serde-wasm-bindgen = "0.6.5" +uuid = { version = "1.8.0", features = ["v4", "serde", "js"] } wasm-bindgen = { version = "^0.2.74", features = ["serde-serialize"] } wasm-bindgen-futures = "0.4" -js-sys = "0.3.69" web-sys = { version = "0.3.69", features = [ "Headers", "Request", @@ -69,21 +93,18 @@ web-sys = { version = "0.3.69", features = [ "RequestMode", "Window", ] } -uuid = { version = "1.8.0", features = ["v4", "serde", "js"] } -reqwest = { version = "0.11", features = ["stream", "json"] } -colored = { version = "2.1.0", default-features = false, features = [ - "no-color", -] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] +aws-config = "1.5.3" +aws-sdk-bedrockruntime = "1.37.0" +hostname = "0.3.1" tokio = { version = "1", features = ["full"] } -reqwest = { version = "0.11", features = [ +reqwest = { version = "0.12.5", features = [ "json", "native-tls-vendored", "stream", ] } walkdir = "2.5.0" -hostname = "0.3.1" [features] diff --git a/engine/baml-runtime/src/cli/generate.rs b/engine/baml-runtime/src/cli/generate.rs index 3a52996b3..5935c5698 100644 --- a/engine/baml-runtime/src/cli/generate.rs +++ b/engine/baml-runtime/src/cli/generate.rs @@ -1,12 +1,10 @@ use crate::{ - runtime::{self, runtime_interface::baml_src_files}, + runtime::{runtime_interface::baml_src_files}, BamlRuntime, }; use anyhow::Result; -use internal_baml_core::configuration::GeneratorOutputType; use std::path::PathBuf; -use super::LanguageClientType; #[derive(clap::Args, Debug)] pub struct GenerateArgs { diff --git a/engine/baml-runtime/src/cli/init.rs b/engine/baml-runtime/src/cli/init.rs index b2056624e..261f3340b 100644 --- a/engine/baml-runtime/src/cli/init.rs +++ b/engine/baml-runtime/src/cli/init.rs @@ -50,7 +50,7 @@ impl InitArgs { // your choice. You can have multiple generators if you use multiple languages. // Just ensure that the output_dir is different for each generator. generator target {{ - // Valid values: "typescript", "python-pydantic", "ruby" + // Valid values: "python/pydantic", "typescript", "ruby/sorbet" output_type "{}" // Where the generated code will be saved (relative to baml_src/) output_dir "../" diff --git a/engine/baml-runtime/src/internal/llm_client/common/images.rs b/engine/baml-runtime/src/internal/llm_client/common/images.rs deleted file mode 100644 index 7746a900a..000000000 --- a/engine/baml-runtime/src/internal/llm_client/common/images.rs +++ /dev/null @@ -1,52 +0,0 @@ -use anyhow::Result; -use base64::prelude::*; -use mime_guess::MimeGuess; - -#[cfg(not(target_arch = "wasm32"))] -async fn fetch_image(url: &str) -> Result> { - use reqwest; - let response = reqwest::get(url).await?; - let image_data = response.bytes().await?.to_vec(); - Ok(image_data) -} - -#[cfg(target_arch = "wasm32")] -async fn fetch_image(url: &str) -> Result> { - use wasm_bindgen::JsCast; - use wasm_bindgen_futures::JsFuture; - use web_sys::{Request, RequestInit, RequestMode, Response}; - - let mut opts = RequestInit::new(); - opts.method("GET"); - opts.mode(RequestMode::Cors); - - let request = - Request::new_with_str_and_init(url, &opts).map_err(|e| anyhow::anyhow!("{:#?}", e))?; - - let window = web_sys::window().unwrap(); - let resp_value = JsFuture::from(window.fetch_with_request(&request)) - .await - .map_err(|e| anyhow::anyhow!("Failed to fetch request: {:#?}", e))?; - - let resp: Response = resp_value.dyn_into().unwrap(); - let buf = JsFuture::from( - resp.array_buffer() - .map_err(|e| anyhow::anyhow!("{:#?}", e))?, - ) - .await - .map_err(|e| anyhow::anyhow!("{:#?}", e))?; - let array = js_sys::Uint8Array::new(&buf); - Ok(array.to_vec()) -} - -pub async fn download_image_as_base64(url: &str) -> Result<(String, String)> { - let guessed_mime_type = MimeGuess::from_path(url) - .first_or_octet_stream() - .to_string(); - - let image_data = fetch_image(url).await?; - - let encoded_image = BASE64_STANDARD.encode(&image_data); - - Ok((guessed_mime_type, encoded_image)) -} diff --git a/engine/baml-runtime/src/internal/llm_client/common/mod.rs b/engine/baml-runtime/src/internal/llm_client/common/mod.rs deleted file mode 100644 index 8f0da9f8e..000000000 --- a/engine/baml-runtime/src/internal/llm_client/common/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod images; diff --git a/engine/baml-runtime/src/internal/llm_client/mod.rs b/engine/baml-runtime/src/internal/llm_client/mod.rs index 836a18a02..63b8cdaf7 100644 --- a/engine/baml-runtime/src/internal/llm_client/mod.rs +++ b/engine/baml-runtime/src/internal/llm_client/mod.rs @@ -1,11 +1,10 @@ use std::collections::HashMap; use colored::*; -// mod anthropic; -mod common; pub mod llm_provider; pub mod orchestrator; -mod primitive; +pub mod primitive; + pub mod retry_policy; mod strategy; pub mod traits; @@ -15,6 +14,7 @@ use anyhow::Result; use internal_baml_core::ir::ClientWalker; use internal_baml_jinja::RenderedPrompt; use serde::Serialize; +use std::error::Error; use reqwest::StatusCode; @@ -26,6 +26,7 @@ pub struct ModelFeatures { pub completion: bool, pub chat: bool, pub anthropic_system_constraints: bool, + pub resolve_media_urls: bool, } #[derive(Debug)] @@ -42,6 +43,8 @@ pub enum LLMResponse { OtherFailure(String), } +impl Error for LLMResponse {} + impl std::fmt::Display for LLMResponse { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { @@ -67,7 +70,7 @@ pub struct LLMErrorResponse { pub client: String, pub model: Option, pub prompt: RenderedPrompt, - pub invocation_params: HashMap, + pub request_options: HashMap, pub start_time: web_time::SystemTime, pub latency: web_time::Duration, @@ -132,7 +135,7 @@ pub struct LLMCompleteResponse { pub client: String, pub model: String, pub prompt: RenderedPrompt, - pub invocation_params: HashMap, + pub request_options: HashMap, pub content: String, pub start_time: web_time::SystemTime, pub latency: web_time::Duration, diff --git a/engine/baml-runtime/src/internal/llm_client/orchestrator/call.rs b/engine/baml-runtime/src/internal/llm_client/orchestrator/call.rs index 23639de10..bd3658748 100644 --- a/engine/baml-runtime/src/internal/llm_client/orchestrator/call.rs +++ b/engine/baml-runtime/src/internal/llm_client/orchestrator/call.rs @@ -1,6 +1,6 @@ use anyhow::Result; use baml_types::BamlValue; -use instant::Duration; +use web_time::Duration; use internal_baml_core::ir::repr::IntermediateRepr; use jsonish::BamlValueWithFlags; diff --git a/engine/baml-runtime/src/internal/llm_client/orchestrator/mod.rs b/engine/baml-runtime/src/internal/llm_client/orchestrator/mod.rs index c205ebe71..c91bf55b9 100644 --- a/engine/baml-runtime/src/internal/llm_client/orchestrator/mod.rs +++ b/engine/baml-runtime/src/internal/llm_client/orchestrator/mod.rs @@ -5,16 +5,17 @@ use anyhow::Result; use baml_types::BamlValue; use internal_baml_core::ir::repr::IntermediateRepr; +use internal_baml_jinja::RenderedChatMessage; use internal_baml_jinja::RenderedPrompt; use std::{collections::HashMap, sync::Arc}; - -use instant::Duration; +use web_time::Duration; use crate::{ internal::prompt_renderer::PromptRenderer, runtime_interface::InternalClientLookup, RuntimeContext, }; +use super::traits::WithRenderRawCurl; use super::{ strategy::roundrobin::RoundRobinStrategy, traits::{StreamResponse, WithPrompt, WithSingleCallable, WithStreamable}, @@ -181,6 +182,17 @@ impl<'ir> WithPrompt<'ir> for OrchestratorNode { } } +impl WithRenderRawCurl for OrchestratorNode { + async fn render_raw_curl( + &self, + ctx: &RuntimeContext, + prompt: &Vec, + stream: bool, + ) -> Result { + self.provider.render_raw_curl(ctx, prompt, stream).await + } +} + impl WithSingleCallable for OrchestratorNode { async fn single_call(&self, ctx: &RuntimeContext, prompt: &RenderedPrompt) -> LLMResponse { self.scope diff --git a/engine/baml-runtime/src/internal/llm_client/orchestrator/stream.rs b/engine/baml-runtime/src/internal/llm_client/orchestrator/stream.rs index 2de4e325c..c46f156ef 100644 --- a/engine/baml-runtime/src/internal/llm_client/orchestrator/stream.rs +++ b/engine/baml-runtime/src/internal/llm_client/orchestrator/stream.rs @@ -1,16 +1,14 @@ -use std::ops::Deref; use anyhow::Result; use async_std::stream::StreamExt; use baml_types::BamlValue; -use instant::Duration; use internal_baml_core::ir::repr::IntermediateRepr; use jsonish::BamlValueWithFlags; +use web_time::Duration; use crate::{ internal::{ llm_client::{ - primitive::request::RequestBuilder, traits::{WithPrompt, WithStreamable}, LLMErrorResponse, LLMResponse, }, @@ -44,6 +42,7 @@ where let mut results = Vec::new(); let mut total_sleep_duration = std::time::Duration::from_secs(0); + //advanced curl viewing, use render_raw_curl on each node. TODO for node in iter { let prompt = match node.render_prompt(ir, prompt, ctx, params) { Ok(p) => p, @@ -82,7 +81,7 @@ where prompt, start_time: system_start, latency: instant_start.elapsed(), - invocation_params: node.provider.invocation_params().clone(), + request_options: node.provider.request_options().clone(), message: "Stream ended without response".to_string(), code: crate::internal::llm_client::ErrorCode::from_u16(2), }) diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/anthropic/anthropic_client.rs b/engine/baml-runtime/src/internal/llm_client/primitive/anthropic/anthropic_client.rs index 13c69acbb..cd7992443 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/anthropic/anthropic_client.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/anthropic/anthropic_client.rs @@ -1,18 +1,13 @@ -use std::{ - collections::HashMap, - fmt::format, - sync::{Arc, Mutex}, -}; +use std::collections::HashMap; use anyhow::{Context, Result}; -use baml_types::BamlImage; +use baml_types::BamlMedia; use eventsource_stream::Eventsource; -use futures::{SinkExt, StreamExt}; +use futures::StreamExt; use internal_baml_core::ir::ClientWalker; use internal_baml_jinja::{ ChatMessagePart, RenderContext_Client, RenderedChatMessage, RenderedPrompt, }; -use reqwest::Response; use crate::{ client_builder::ClientProperty, @@ -85,26 +80,20 @@ fn resolve_properties( .and_then(|v| v.as_str().map(|s| s.to_string())) .or_else(|| ctx.env.get("ANTHROPIC_API_KEY").map(|s| s.to_string())); - let headers = properties.remove("headers").map(|v| { - if let Some(v) = v.as_object() { - v.iter() - .map(|(k, v)| { - Ok(( - k.to_string(), - match v { - serde_json::Value::String(s) => s.to_string(), - _ => anyhow::bail!("Header '{k}' must be a string"), - }, - )) - }) - .collect::>>() - } else { - Ok(Default::default()) - } - }); - - let mut headers = match headers { - Some(h) => h?, + let mut headers = match properties.remove("headers") { + Some(headers) => headers + .as_object() + .context("headers must be a map of strings to strings")? + .iter() + .map(|(k, v)| { + Ok(( + k.to_string(), + v.as_str() + .context(format!("Header '{}' must be a string", k))? + .to_string(), + )) + }) + .collect::>>()?, None => Default::default(), }; @@ -168,7 +157,7 @@ impl SseResponseTrait for AnthropicClient { start_time: system_start, latency: instant_start.elapsed(), model: "".to_string(), - invocation_params: params.clone(), + request_options: params.clone(), metadata: LLMCompleteResponseMetadata { baml_is_complete: false, finish_reason: None, @@ -195,7 +184,7 @@ impl SseResponseTrait for AnthropicClient { prompt: internal_baml_jinja::RenderedPrompt::Chat( prompt.clone(), ), - invocation_params: params.clone(), + request_options: params.clone(), start_time: system_start, latency: instant_start.elapsed(), message: format!("Failed to parse event: {:#?}", e), @@ -260,7 +249,7 @@ impl SseResponseTrait for AnthropicClient { prompt: internal_baml_jinja::RenderedPrompt::Chat( prompt.clone(), ), - invocation_params: params.clone(), + request_options: params.clone(), start_time: system_start, latency: instant_start.elapsed(), message: err.message, @@ -282,7 +271,7 @@ impl SseResponseTrait for AnthropicClient { impl WithStreamChat for AnthropicClient { async fn stream_chat( &self, - ctx: &RuntimeContext, + _ctx: &RuntimeContext, prompt: &Vec, ) -> StreamResponse { let (response, system_now, instant_now) = @@ -297,24 +286,28 @@ impl WithStreamChat for AnthropicClient { // constructs base client and resolves properties based on context impl AnthropicClient { pub fn dynamic_new(client: &ClientProperty, ctx: &RuntimeContext) -> Result { + let properties = resolve_properties( + client + .options + .iter() + .map(|(k, v)| Ok((k.clone(), json!(v)))) + .collect::>>()?, + ctx, + )?; + let default_role = properties.default_role.clone(); Ok(Self { name: client.name.clone(), - properties: resolve_properties( - client - .options - .iter() - .map(|(k, v)| Ok((k.clone(), json!(v)))) - .collect::>>()?, - ctx, - )?, + properties, context: RenderContext_Client { name: client.name.clone(), provider: client.provider.clone(), + default_role, }, features: ModelFeatures { chat: true, completion: false, anthropic_system_constraints: true, + resolve_media_urls: true, }, retry_policy: client.retry_policy.clone(), client: create_client()?, @@ -323,17 +316,21 @@ impl AnthropicClient { pub fn new(client: &ClientWalker, ctx: &RuntimeContext) -> Result { let properties = super::super::resolve_properties_walker(client, ctx)?; + let properties = resolve_properties(properties, ctx)?; + let default_role = properties.default_role.clone(); Ok(Self { name: client.name().into(), - properties: resolve_properties(properties, ctx)?, + properties, context: RenderContext_Client { name: client.name().into(), provider: client.elem().provider.clone(), + default_role, }, features: ModelFeatures { chat: true, completion: false, anthropic_system_constraints: true, + resolve_media_urls: true, }, retry_policy: client .elem() @@ -351,11 +348,11 @@ impl RequestBuilder for AnthropicClient { &self.client } - fn build_request( + async fn build_request( &self, prompt: either::Either<&String, &Vec>, stream: bool, - ) -> reqwest::RequestBuilder { + ) -> Result { let mut req = self.client.post(if prompt.is_left() { format!( "{}/v1/complete", @@ -384,6 +381,10 @@ impl RequestBuilder for AnthropicClient { } req = req.header("baml-original-url", self.properties.base_url.as_str()); + req = req.header( + "baml-render-url", + format!("{}/v1/messages", self.properties.base_url), + ); let mut body = json!(self.properties.properties); let body_obj = body.as_object_mut().unwrap(); @@ -399,12 +400,12 @@ impl RequestBuilder for AnthropicClient { if stream { body_obj.insert("stream".into(), true.into()); } - log::info!("Request body: {:#?}", body); + log::debug!("Request body: {:#?}", body); - req.json(&body) + Ok(req.json(&body)) } - fn invocation_params(&self) -> &HashMap { + fn request_options(&self) -> &HashMap { &self.properties.properties } } @@ -435,7 +436,7 @@ impl WithChat for AnthropicClient { model: None, prompt: internal_baml_jinja::RenderedPrompt::Chat(prompt.clone()), start_time: system_now, - invocation_params: self.properties.properties.clone(), + request_options: self.properties.properties.clone(), latency: instant_now.elapsed(), message: format!( "Expected exactly one content block, got {}", @@ -451,7 +452,7 @@ impl WithChat for AnthropicClient { content: response.content[0].text.clone(), start_time: system_now, latency: instant_now.elapsed(), - invocation_params: self.properties.properties.clone(), + request_options: self.properties.properties.clone(), model: response.model, metadata: LLMCompleteResponseMetadata { baml_is_complete: match response.stop_reason { @@ -550,23 +551,29 @@ fn convert_message_parts_to_content(parts: &Vec) -> serde_json: "type": "text", "text": text }), - ChatMessagePart::Image(image) => match image { - BamlImage::Base64(image) => json!({ - "type": "image", + + ChatMessagePart::Image(media) => match media { + BamlMedia::Base64(media_type, data) => json!({ + "type": media_type.to_string(), + "source": { "type": "base64", - "media_type": image.media_type, - "data": image.base64 - } - }), - BamlImage::Url(image) => json!({ - "type": "image", - "source": { - "type": "url", - "url": image.url + "media_type": data.media_type, + "data": data.base64 } }), + _ => panic!("Unsupported media type"), + //never executes, keep for future if anthropic supports urls + // BamlMedia::Url(media_type, data) => json!({ + // "type": "image", + + // "source": { + // "type": "url", + // "url": data.url + // } + // }), }, + _ => json!({}), }) .collect() } diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/aws/aws_client.rs b/engine/baml-runtime/src/internal/llm_client/primitive/aws/aws_client.rs new file mode 100644 index 000000000..cd80b9f5e --- /dev/null +++ b/engine/baml-runtime/src/internal/llm_client/primitive/aws/aws_client.rs @@ -0,0 +1,668 @@ +use std::collections::HashMap; + +use aws_config::{identity::IdentityCache, retry::RetryConfig, BehaviorVersion, ConfigLoader}; +use aws_sdk_bedrockruntime::{self as bedrock, operation::converse::ConverseOutput}; + +use anyhow::{Context, Result}; +use aws_smithy_json::serialize::JsonObjectWriter; +use aws_smithy_runtime_api::client::result::SdkError; +use aws_smithy_types::Blob; +use baml_types::{BamlMedia, BamlMediaType}; +use futures::{stream, SinkExt, StreamExt}; +use internal_baml_core::ir::ClientWalker; +use internal_baml_jinja::{ChatMessagePart, RenderContext_Client, RenderedChatMessage}; +use serde::Deserialize; +use web_time::Instant; +use web_time::SystemTime; + +use crate::internal::llm_client::{ + primitive::request::RequestBuilder, + traits::{ + StreamResponse, WithChat, WithClient, WithNoCompletion, WithRenderRawCurl, WithRetryPolicy, + WithStreamChat, + }, + ErrorCode, LLMCompleteResponse, LLMCompleteResponseMetadata, LLMErrorResponse, LLMResponse, + ModelFeatures, +}; + +use crate::RuntimeContext; + +// stores properties required for making a post request to the API +struct RequestProperties { + model_id: String, + + default_role: String, + inference_config: Option, + + request_options: HashMap, + ctx_env: HashMap, +} + +// represents client that interacts with the Anthropic API +pub struct AwsClient { + pub name: String, + retry_policy: Option, + context: RenderContext_Client, + features: ModelFeatures, + properties: RequestProperties, +} + +fn resolve_properties(client: &ClientWalker, ctx: &RuntimeContext) -> Result { + let mut properties = (&client.item.elem.options) + .iter() + .map(|(k, v)| { + Ok(( + k.into(), + ctx.resolve_expression::(v) + .context(format!( + "client {} could not resolve options.{}", + client.name(), + k + ))?, + )) + }) + .collect::>>()?; + + let model_id = properties + .remove("model_id") + .context("model_id is required")? + .as_str() + .context("model_id should be a string")? + .to_string(); + + let default_role = properties + .remove("default_role") + .and_then(|v| v.as_str().map(|s| s.to_string())) + .unwrap_or_else(|| "user".to_string()); + + let inference_config = match properties.remove("inference_configuration") { + Some(v) => Some( + super::types::InferenceConfiguration::deserialize(v) + .context("Failed to parse inference_configuration")? + .into(), + ), + None => None, + }; + + Ok(RequestProperties { + model_id, + default_role, + inference_config, + request_options: properties, + ctx_env: ctx.env.clone(), + }) +} + +impl AwsClient { + pub fn new(client: &ClientWalker, ctx: &RuntimeContext) -> Result { + let post_properties = resolve_properties(client, ctx)?; + let default_role = post_properties.default_role.clone(); // clone before moving + + Ok(Self { + name: client.name().into(), + properties: post_properties, + context: RenderContext_Client { + name: client.name().into(), + provider: client.elem().provider.clone(), + default_role: default_role, + }, + features: ModelFeatures { + chat: true, + completion: false, + anthropic_system_constraints: true, + resolve_media_urls: true, + }, + retry_policy: client + .elem() + .retry_policy_id + .as_ref() + .map(|s| s.to_string()), + }) + } + + pub fn request_options(&self) -> &std::collections::HashMap { + &self.properties.request_options + } + + // TODO: this should be memoized on client construction, but because config loading is async, + // we can't do this in AwsClient::new (which is called from LLMPRimitiveProvider::try_from) + async fn client_anyhow(&self) -> Result { + let loader: ConfigLoader = { + cfg_if::cfg_if! { + if #[cfg(target_arch = "wasm32")] { + use aws_config::Region; + use aws_credential_types::Credentials; + + let (aws_region, aws_access_key_id, aws_secret_access_key) = match ( + self.properties.ctx_env.get("AWS_REGION"), + self.properties.ctx_env.get("AWS_ACCESS_KEY_ID"), + self.properties.ctx_env.get("AWS_SECRET_ACCESS_KEY"), + ) { + (Some(aws_region), Some(aws_access_key_id), Some(aws_secret_access_key)) => { + (aws_region, aws_access_key_id, aws_secret_access_key) + } + _ => { + anyhow::bail!( + "AWS_REGION, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be set in the environment" + ) + } + }; + + let mut loader = super::wasm::load_aws_config() + .region(Region::new(aws_region.clone())) + .credentials_provider(Credentials::new( + aws_access_key_id.clone(), + aws_secret_access_key.clone(), + None, + None, + "baml-runtime/wasm", + )); + + loader + } else { + aws_config::defaults(BehaviorVersion::latest()) + } + } + }; + + let config = loader + .retry_config(RetryConfig::disabled()) + .identity_cache(IdentityCache::no_cache()) + .load() + .await; + + Ok(bedrock::Client::new(&config)) + } + + async fn chat_anyhow<'r>(&self, response: &'r ConverseOutput) -> Result<&'r String> { + let Some(bedrock::types::ConverseOutput::Message(ref message)) = response.output else { + anyhow::bail!( + "Expected message output in response, but is type {}", + "unknown" + ); + }; + let content = message + .content + .get(0) + .context("Expected message output to have content")?; + let bedrock::types::ContentBlock::Text(ref content) = content else { + anyhow::bail!( + "Expected message output to be text, got {}", + match content { + bedrock::types::ContentBlock::Image(_) => "image", + bedrock::types::ContentBlock::GuardContent(_) => "guardContent", + bedrock::types::ContentBlock::ToolResult(_) => "toolResult", + bedrock::types::ContentBlock::ToolUse(_) => "toolUse", + bedrock::types::ContentBlock::Text(_) => "text", + _ => "unknown", + } + ); + }; + + Ok(content) + } + + fn build_request( + &self, + ctx: &RuntimeContext, + chat_messages: &Vec, + ) -> Result { + let mut system_message = None; + let mut chat_slice = chat_messages.as_slice(); + + if let Some((first, remainder_slice)) = chat_slice.split_first() { + if first.role == "system" { + system_message = Some(first.parts.iter() + .map(|part| match part { + ChatMessagePart::Text(text) => Ok(bedrock::types::SystemContentBlock::Text(text.clone())), + _ => anyhow::bail!("AWS Bedrock only supports text blocks for system messages, but got {:#?}", part), + }) + .collect::>()?); + chat_slice = remainder_slice; + } + } + + let converse_messages = chat_slice + .iter() + .map(|m| AwsChatMessage(m).try_into()) + .collect::>>()?; + + bedrock::operation::converse::ConverseInput::builder() + .set_inference_config(self.properties.inference_config.clone()) + .set_model_id(Some(self.properties.model_id.clone())) + .set_system(system_message) + .set_messages(Some(converse_messages)) + .build() + .context("Failed to convert BAML prompt to AWS Bedrock request") + } +} + +fn try_to_json< + Ser: Fn( + &mut JsonObjectWriter, + &T, + ) -> Result<(), ::aws_smithy_types::error::operation::SerializationError>, + T, +>( + shape: Ser, + input: &T, +) -> Result { + let mut out = String::new(); + let mut object = JsonObjectWriter::new(&mut out); + shape(&mut object, input)?; + object.finish(); + + Ok(out) +} + +impl WithRenderRawCurl for AwsClient { + async fn render_raw_curl( + &self, + ctx: &RuntimeContext, + prompt: &Vec, + _stream: bool, + ) -> Result { + let converse_input = self.build_request(ctx, prompt)?; + + // TODO(sam): this is fucked up. The SDK actually hides all the serializers inside the crate and doesn't let the user access them. + + Ok(format!( + "Note, this is not yet complete!\n\nSee: https://docs.aws.amazon.com/cli/latest/reference/bedrock-runtime/converse.html\n\naws bedrock converse --model-id {} --messages {} {}", + converse_input.model_id.unwrap_or("".to_string()), + "", + "TODO" + )) + } +} + +// getters for client info +impl WithRetryPolicy for AwsClient { + fn retry_policy_name(&self) -> Option<&str> { + self.retry_policy.as_deref() + } +} + +impl WithClient for AwsClient { + fn context(&self) -> &RenderContext_Client { + &self.context + } + + fn model_features(&self) -> &ModelFeatures { + &self.features + } +} + +impl WithNoCompletion for AwsClient {} + +impl WithStreamChat for AwsClient { + async fn stream_chat( + &self, + ctx: &RuntimeContext, + chat_messages: &Vec, + ) -> StreamResponse { + let client = self.context.name.to_string(); + let model = Some(self.properties.model_id.clone()); + let request_options = self.properties.request_options.clone(); + let prompt = internal_baml_jinja::RenderedPrompt::Chat(chat_messages.clone()); + + let aws_client = match self.client_anyhow().await { + Ok(c) => c, + Err(e) => { + return Err(LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: SystemTime::now(), + request_options, + latency: web_time::Duration::ZERO, + message: format!("{:#?}", e), + code: ErrorCode::Other(2), + })); + } + }; + + let request = match self.build_request(ctx, chat_messages) { + Ok(r) => r, + Err(e) => { + return Err(LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: SystemTime::now(), + request_options, + latency: web_time::Duration::ZERO, + message: format!("{:#?}", e), + code: ErrorCode::Other(2), + })) + } + }; + + let request = aws_client + .converse_stream() + .set_model_id(request.model_id) + .set_inference_config(request.inference_config) + .set_system(request.system) + .set_messages(request.messages); + + let system_start = SystemTime::now(); + let instant_start = Instant::now(); + + let response = match request.send().await { + Ok(resp) => resp, + Err(e) => { + return Err(LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: system_start, + request_options, + latency: instant_start.elapsed(), + message: format!("{:#?}", e), + code: match e { + SdkError::ConstructionFailure(_) => ErrorCode::Other(2), + SdkError::TimeoutError(_) => ErrorCode::Other(2), + SdkError::DispatchFailure(_) => ErrorCode::Other(2), + SdkError::ResponseError(e) => { + ErrorCode::UnsupportedResponse(e.raw().status().as_u16()) + } + SdkError::ServiceError(e) => { + let status = e.raw().status(); + match status.as_u16() { + 400 => ErrorCode::InvalidAuthentication, + 403 => ErrorCode::NotSupported, + 429 => ErrorCode::RateLimited, + 500 => ErrorCode::ServerError, + 503 => ErrorCode::ServiceUnavailable, + _ => { + if status.is_server_error() { + ErrorCode::ServerError + } else { + ErrorCode::Other(status.as_u16()) + } + } + } + } + _ => ErrorCode::Other(2), + }, + })); + } + }; + + let stream = stream::unfold( + ( + Some(LLMCompleteResponse { + client, + prompt, + content: "".to_string(), + start_time: system_start, + latency: instant_start.elapsed(), + model: self.properties.model_id.clone(), + request_options, + metadata: LLMCompleteResponseMetadata { + baml_is_complete: false, + finish_reason: None, + prompt_tokens: None, + output_tokens: None, + total_tokens: None, + }, + }), + response, + ), + move |(initial_state, mut response)| { + async move { + let Some(mut new_state) = initial_state else { + return None; + }; + match response.stream.recv().await { + Ok(Some(message)) => { + log::trace!("Received message: {:#?}", message); + match message { + bedrock::types::ConverseStreamOutput::ContentBlockDelta( + content_block_delta, + ) => { + if let Some(bedrock::types::ContentBlockDelta::Text( + ref delta, + )) = content_block_delta.delta + { + new_state.content += delta; + // TODO- handle + } + // TODO- handle + } + bedrock::types::ConverseStreamOutput::ContentBlockStart(_) => { + // TODO- handle + } + bedrock::types::ConverseStreamOutput::ContentBlockStop(_) => { + // TODO- handle + } + bedrock::types::ConverseStreamOutput::MessageStart(_) => { + // TODO- handle + } + bedrock::types::ConverseStreamOutput::MessageStop(stop) => { + new_state.metadata.baml_is_complete = match stop.stop_reason { + bedrock::types::StopReason::StopSequence + | bedrock::types::StopReason::EndTurn => true, + _ => false, + }; + // TODO- handle + } + bedrock::types::ConverseStreamOutput::Metadata(metadata) => { + if let Some(usage) = metadata.usage() { + new_state.metadata.prompt_tokens = + Some(usage.input_tokens() as u64); + new_state.metadata.output_tokens = + Some(usage.output_tokens() as u64); + new_state.metadata.total_tokens = + Some((usage.total_tokens()) as u64); + } + } + _ => { + // TODO- handle + } + } + new_state.latency = instant_start.elapsed(); + Some(( + LLMResponse::Success(new_state.clone()), + (Some(new_state), response), + )) + } + Ok(None) => None, + Err(e) => Some(( + LLMResponse::LLMFailure(LLMErrorResponse { + client: new_state.client, + model: Some(new_state.model), + prompt: new_state.prompt, + start_time: new_state.start_time, + request_options: new_state.request_options, + latency: instant_start.elapsed(), + message: format!("Failed to parse event: {:#?}", e), + code: ErrorCode::Other(2), + }), + (None, response), + )), + } + } + }, + ); + + Ok(Box::pin(stream)) + } +} + +struct AwsChatMessage<'m>(&'m RenderedChatMessage); + +impl TryInto for AwsChatMessage<'_> { + type Error = anyhow::Error; + + fn try_into(self) -> Result { + let message = self.0; + + let role = match message.role.as_str() { + "user" => bedrock::types::ConversationRole::User, + "assistant" => bedrock::types::ConversationRole::Assistant, + _ => bedrock::types::ConversationRole::User, + }; + + let content = message + .parts + .iter() + .map(|part| match part { + ChatMessagePart::Text(text) => Ok(bedrock::types::ContentBlock::Text(text.clone())), + ChatMessagePart::Image(media) | ChatMessagePart::Audio(media) => match media { + BamlMedia::Url(_, _) => { + anyhow::bail!( + "BAML internal error: media URL should have been resolved to base64" + ) + } + BamlMedia::Base64(BamlMediaType::Image, media) => { + Ok(bedrock::types::ContentBlock::Image( + bedrock::types::ImageBlock::builder() + .set_format(Some(bedrock::types::ImageFormat::from( + media + .media_type + .strip_prefix("image/") + .unwrap_or(media.media_type.as_str()), + ))) + .set_source(Some(bedrock::types::ImageSource::Bytes(Blob::new( + aws_smithy_types::base64::decode(media.base64.clone())?, + )))) + .build() + .context("Failed to build image block")?, + )) + } + _ => anyhow::bail!("AWS does not support this media type: {:#?}", media), + }, + _ => anyhow::bail!("AWS does not support this message part type: {:#?}", part), + }) + .collect::>()?; + + bedrock::types::Message::builder() + .set_role(Some(role)) + .set_content(Some(content)) + .build() + .map_err(|e| e.into()) + } +} + +impl WithChat for AwsClient { + fn chat_options(&self, _ctx: &RuntimeContext) -> Result { + Ok(internal_baml_jinja::ChatOptions::new( + self.properties.default_role.clone(), + None, + )) + } + + async fn chat( + &self, + _ctx: &RuntimeContext, + chat_messages: &Vec, + ) -> LLMResponse { + let client = self.context.name.to_string(); + let model = Some(self.properties.model_id.clone()); + let request_options = self.properties.request_options.clone(); + let prompt = internal_baml_jinja::RenderedPrompt::Chat(chat_messages.clone()); + + let aws_client = match self.client_anyhow().await { + Ok(c) => c, + Err(e) => { + return LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: SystemTime::now(), + request_options, + latency: web_time::Duration::ZERO, + message: format!("{:#?}", e), + code: ErrorCode::Other(2), + }) + } + }; + + let request = match self.build_request(_ctx, chat_messages) { + Ok(r) => r, + Err(e) => { + return LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: SystemTime::now(), + request_options, + latency: web_time::Duration::ZERO, + message: format!("{:#?}", e), + code: ErrorCode::Other(2), + }) + } + }; + let request = aws_client + .converse() + .set_model_id(request.model_id) + .set_inference_config(request.inference_config) + .set_system(request.system) + .set_messages(request.messages); + + let system_start = SystemTime::now(); + let instant_start = Instant::now(); + + let response = match request.send().await { + Ok(resp) => resp, + Err(e) => { + return LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: system_start, + request_options, + latency: instant_start.elapsed(), + message: format!("{:#?}", e), + // TODO: derive this from the aws-returned error + code: ErrorCode::Other(2), + }); + } + }; + + match self.chat_anyhow(&response).await { + Ok(content) => LLMResponse::Success(LLMCompleteResponse { + client, + prompt, + content: content.clone(), + start_time: system_start.clone(), + latency: instant_start.elapsed(), + request_options, + model: self.properties.model_id.clone(), + metadata: LLMCompleteResponseMetadata { + baml_is_complete: match response.stop_reason { + bedrock::types::StopReason::StopSequence + | bedrock::types::StopReason::EndTurn => true, + _ => false, + }, + finish_reason: Some(response.stop_reason().as_str().into()), + prompt_tokens: response + .usage + .as_ref() + .map(|i| i.input_tokens.try_into().ok()) + .flatten(), + output_tokens: response + .usage + .as_ref() + .map(|i| i.output_tokens.try_into().ok()) + .flatten(), + total_tokens: response + .usage + .as_ref() + .map(|i| i.total_tokens.try_into().ok()) + .flatten(), + }, + }), + Err(e) => LLMResponse::LLMFailure(LLMErrorResponse { + client, + model, + prompt, + start_time: system_start, + request_options, + latency: instant_start.elapsed(), + message: format!("{:#?}", e), + code: ErrorCode::Other(200), + }), + } + } +} diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/aws/mod.rs b/engine/baml-runtime/src/internal/llm_client/primitive/aws/mod.rs new file mode 100644 index 000000000..a87b9a49e --- /dev/null +++ b/engine/baml-runtime/src/internal/llm_client/primitive/aws/mod.rs @@ -0,0 +1,6 @@ +mod aws_client; +pub(super) mod types; +#[cfg(target_arch = "wasm32")] +pub(super) mod wasm; + +pub use aws_client::AwsClient; diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/aws/types.rs b/engine/baml-runtime/src/internal/llm_client/primitive/aws/types.rs new file mode 100644 index 000000000..3ccafbdf6 --- /dev/null +++ b/engine/baml-runtime/src/internal/llm_client/primitive/aws/types.rs @@ -0,0 +1,29 @@ +use aws_sdk_bedrockruntime::{self as bedrock}; +use serde::Deserialize; + +#[derive(Deserialize)] +/// Used to extract options.inference_configuration from the BAML client +/// We can't use #[serde(remote="bedrock::types::InferenceConfiguration")] because it's non-exhaustive +pub(super) struct InferenceConfiguration { + ///

The maximum number of tokens to allow in the generated response. The default value is the maximum allowed value for the model that you are using. For more information, see Inference parameters for foundation models.

+ max_tokens: ::std::option::Option, + ///

The likelihood of the model selecting higher-probability options while generating a response. A lower value makes the model more likely to choose higher-probability options, while a higher value makes the model more likely to choose lower-probability options.

+ ///

The default value is the default value for the model that you are using. For more information, see Inference parameters for foundation models.

+ temperature: ::std::option::Option, + ///

The percentage of most-likely candidates that the model considers for the next token. For example, if you choose a value of 0.8 for topP, the model selects from the top 80% of the probability distribution of tokens that could be next in the sequence.

+ ///

The default value is the default value for the model that you are using. For more information, see Inference parameters for foundation models.

+ top_p: ::std::option::Option, + ///

A list of stop sequences. A stop sequence is a sequence of characters that causes the model to stop generating the response.

+ stop_sequences: ::std::option::Option<::std::vec::Vec<::std::string::String>>, +} + +impl Into for InferenceConfiguration { + fn into(self) -> bedrock::types::InferenceConfiguration { + bedrock::types::InferenceConfiguration::builder() + .set_max_tokens(self.max_tokens) + .set_temperature(self.temperature) + .set_top_p(self.top_p) + .set_stop_sequences(self.stop_sequences) + .build() + } +} diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/aws/wasm.rs b/engine/baml-runtime/src/internal/llm_client/primitive/aws/wasm.rs new file mode 100644 index 000000000..76ace6b35 --- /dev/null +++ b/engine/baml-runtime/src/internal/llm_client/primitive/aws/wasm.rs @@ -0,0 +1,148 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +use aws_config::ConfigLoader; +use aws_smithy_async::{ + rt::sleep::{AsyncSleep, Sleep}, + time::TimeSource, +}; +use aws_smithy_runtime_api::client::result::{ConnectorError, SdkError}; +use aws_smithy_runtime_api::http::{self, Request}; +use aws_smithy_runtime_api::{ + client::{ + http::{ + HttpClient, HttpConnector, HttpConnectorFuture, HttpConnectorSettings, + SharedHttpConnector, + }, + orchestrator::HttpRequest, + runtime_components::RuntimeComponents, + }, + shared::IntoShared, +}; +use aws_smithy_types::body::SdkBody; + +use aws_config::{BehaviorVersion, SdkConfig}; +use core::pin::Pin; +use core::task::{Context, Poll}; +use futures::Stream; +use pin_project_lite::pin_project; +use std::sync::Arc; +use std::time::SystemTime; + +pub fn load_aws_config() -> ConfigLoader { + aws_config::defaults(BehaviorVersion::latest()) + .sleep_impl(BrowserSleep) + .time_source(BrowserTime) + .http_client(BrowserHttp2::new()) +} + +#[derive(Debug)] +struct BrowserTime; +impl TimeSource for BrowserTime { + fn now(&self) -> SystemTime { + let offset = web_time::SystemTime::now() + .duration_since(web_time::UNIX_EPOCH) + .unwrap(); + std::time::UNIX_EPOCH + offset + } +} + +#[derive(Debug, Clone)] +struct BrowserSleep; +impl AsyncSleep for BrowserSleep { + fn sleep(&self, duration: std::time::Duration) -> Sleep { + Sleep::new(futures_timer::Delay::new(duration)) + } +} + +pin_project! { + struct StreamWrapper { + #[pin] + resp: S, + } +} + +// These are lies, but JsFuture is only !Send because of web workers, so this is +// safe in the web panel: https://github.com/rustwasm/wasm-bindgen/issues/2833 +unsafe impl Send for StreamWrapper {} +unsafe impl Sync for StreamWrapper {} + +impl>> http_body::Body for StreamWrapper { + type Data = bytes::Bytes; + type Error = reqwest::Error; + + fn poll_frame( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + ) -> Poll, Self::Error>>> { + let resp = self.project().resp; + + let Poll::Ready(chunk) = resp.poll_next(cx) else { + return Poll::Pending; + }; + Poll::Ready(match chunk { + Some(Ok(chunk_bytes)) => Some(Ok(http_body::Frame::data(chunk_bytes))), + Some(Err(e)) => Some(Err(e)), + None => None, + }) + } +} + +#[derive(Debug, Clone)] +struct BrowserHttp2 { + client: Arc, +} + +impl BrowserHttp2 { + pub fn new() -> Self { + Self { + client: Arc::new(reqwest::Client::new()), + } + } + + async fn send3(&self, smithy_req: Request) -> Result, ConnectorError> { + let method = match reqwest::Method::from_bytes(smithy_req.method().as_bytes()) { + Ok(method) => method, + Err(e) => return Err(ConnectorError::user(Box::new(e))), + }; + let mut req = self.client.request(method, smithy_req.uri()); + + for (k, v) in smithy_req.headers() { + req = req.header(k, v); + } + + if let Some(body) = smithy_req.body().bytes() { + req = req.body(Vec::from(body)); + } + + match req.send().await { + Ok(resp) => Ok(http::Response::new( + resp.status().into(), + SdkBody::from_body_1_x(StreamWrapper { + resp: resp.bytes_stream(), + }), + )), + Err(e) => Err(ConnectorError::other(Box::new(e), None)), + } + } +} + +impl HttpConnector for BrowserHttp2 { + fn call(&self, req: HttpRequest) -> HttpConnectorFuture { + let clone = self.clone(); + + HttpConnectorFuture::new( + async move { send_wrapper::SendWrapper::new(clone.send3(req)).await }, + ) + } +} + +impl HttpClient for BrowserHttp2 { + fn http_connector( + &self, + _settings: &HttpConnectorSettings, + _components: &RuntimeComponents, + ) -> SharedHttpConnector { + self.clone().into_shared() + } +} diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/google/google_client.rs b/engine/baml-runtime/src/internal/llm_client/primitive/google/google_client.rs index 92e346cc4..17c3bc028 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/google/google_client.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/google/google_client.rs @@ -16,18 +16,18 @@ use crate::{ request::create_client, }; use anyhow::{Context, Result}; -use baml_types::BamlImage; +use baml_types::BamlMedia; use eventsource_stream::Eventsource; use futures::StreamExt; use internal_baml_core::ir::ClientWalker; use internal_baml_jinja::{ChatMessagePart, RenderContext_Client, RenderedChatMessage}; -use reqwest::Response; use serde_json::json; use std::collections::HashMap; struct PostRequestProperities { default_role: String, api_key: Option, headers: HashMap, + base_url: String, proxy_url: Option, model_id: Option, properties: HashMap, @@ -61,6 +61,11 @@ fn resolve_properties( .and_then(|v| v.as_str().map(|s| s.to_string())) .or_else(|| Some("gemini-1.5-flash".to_string())); + let base_url = properties + .remove("base_url") + .and_then(|v| v.as_str().map(|s| s.to_string())) + .unwrap_or_else(|| "https://generativelanguage.googleapis.com/v1".to_string()); + let headers = properties.remove("headers").map(|v| { if let Some(v) = v.as_object() { v.iter() @@ -89,6 +94,7 @@ fn resolve_properties( api_key, headers, properties, + base_url, model_id, proxy_url: ctx.env.get("BOUNDARY_PROXY_URL").map(|s| s.to_string()), }) @@ -127,7 +133,7 @@ impl SseResponseTrait for GoogleClient { Ok(Box::pin( resp.bytes_stream() .eventsource() - .inspect(|event| log::info!("Received event: {:?}", event)) + .inspect(|event| log::trace!("Received event: {:?}", event)) .take_while(|event| { std::future::ready(event.as_ref().is_ok_and(|e| e.data != "data: \n")) }) @@ -142,7 +148,7 @@ impl SseResponseTrait for GoogleClient { start_time: system_start, latency: instant_start.elapsed(), model: model_id, - invocation_params: params.clone(), + request_options: params.clone(), metadata: LLMCompleteResponseMetadata { baml_is_complete: false, finish_reason: None, @@ -171,7 +177,7 @@ impl SseResponseTrait for GoogleClient { prompt.clone(), ), start_time: system_start, - invocation_params: params.clone(), + request_options: params.clone(), latency: instant_start.elapsed(), message: format!("Failed to parse event: {:#?}", e), code: ErrorCode::Other(2), @@ -205,7 +211,7 @@ impl SseResponseTrait for GoogleClient { impl WithStreamChat for GoogleClient { async fn stream_chat( &self, - ctx: &RuntimeContext, + _ctx: &RuntimeContext, prompt: &Vec, ) -> StreamResponse { //incomplete, streaming response object is returned @@ -221,17 +227,21 @@ impl WithStreamChat for GoogleClient { impl GoogleClient { pub fn new(client: &ClientWalker, ctx: &RuntimeContext) -> Result { let properties = super::super::resolve_properties_walker(client, ctx)?; + let properties = resolve_properties(properties, ctx)?; + let default_role = properties.default_role.clone(); Ok(Self { name: client.name().into(), - properties: resolve_properties(properties, ctx)?, + properties, context: RenderContext_Client { name: client.name().into(), provider: client.elem().provider.clone(), + default_role, }, features: ModelFeatures { chat: true, completion: false, anthropic_system_constraints: false, + resolve_media_urls: true, }, retry_policy: client .elem() @@ -243,24 +253,29 @@ impl GoogleClient { } pub fn dynamic_new(client: &ClientProperty, ctx: &RuntimeContext) -> Result { + let properties = resolve_properties( + client + .options + .iter() + .map(|(k, v)| Ok((k.clone(), json!(v)))) + .collect::>>()?, + ctx, + )?; + let default_role = properties.default_role.clone(); + Ok(Self { name: client.name.clone(), - properties: resolve_properties( - client - .options - .iter() - .map(|(k, v)| Ok((k.clone(), json!(v)))) - .collect::>>()?, - ctx, - )?, + properties, context: RenderContext_Client { name: client.name.clone(), provider: client.provider.clone(), + default_role, }, features: ModelFeatures { chat: true, completion: false, anthropic_system_constraints: false, + resolve_media_urls: true, }, retry_policy: client.retry_policy.clone(), client: create_client()?, @@ -273,18 +288,19 @@ impl RequestBuilder for GoogleClient { &self.client } - fn build_request( + async fn build_request( &self, prompt: either::Either<&String, &Vec>, stream: bool, - ) -> reqwest::RequestBuilder { + ) -> Result { let mut should_stream = "generateContent"; if stream { should_stream = "streamGenerateContent?alt=sse"; } let baml_original_url = format!( - "https://generativelanguage.googleapis.com/v1/models/{}:{}", + "{}/models/{}:{}", + self.properties.base_url, self.properties.model_id.as_ref().unwrap_or(&"".to_string()), should_stream ); @@ -301,7 +317,8 @@ impl RequestBuilder for GoogleClient { req = req.header(key, value); } - req = req.header("baml-original-url", baml_original_url); + req = req.header("baml-original-url", baml_original_url.clone()); + req = req.header("baml-render-url", baml_original_url); req = req.header( "x-goog-api-key", self.properties @@ -312,20 +329,18 @@ impl RequestBuilder for GoogleClient { let mut body = json!(self.properties.properties); let body_obj = body.as_object_mut().unwrap(); - match prompt { either::Either::Left(prompt) => { body_obj.extend(convert_completion_prompt_to_body(prompt)) } either::Either::Right(messages) => { - body_obj.extend(convert_chat_prompt_to_body(messages)) + body_obj.extend(convert_chat_prompt_to_body(messages)); } } - req.json(&body) + Ok(req.json(&body)) } - - fn invocation_params(&self) -> &HashMap { + fn request_options(&self) -> &HashMap { &self.properties.properties } } @@ -354,7 +369,7 @@ impl WithChat for GoogleClient { model: None, prompt: internal_baml_jinja::RenderedPrompt::Chat(prompt.clone()), start_time: system_now, - invocation_params: self.properties.properties.clone(), + request_options: self.properties.properties.clone(), latency: instant_now.elapsed(), message: format!( "Expected exactly one content block, got {}", @@ -370,7 +385,7 @@ impl WithChat for GoogleClient { content: response.candidates[0].content.parts[0].text.clone(), start_time: system_now, latency: instant_now.elapsed(), - invocation_params: self.properties.properties.clone(), + request_options: self.properties.properties.clone(), model: self .properties .properties @@ -387,14 +402,13 @@ impl WithChat for GoogleClient { .finish_reason .as_ref() .map(|r| serde_json::to_string(r).unwrap_or("".into())), - prompt_tokens: Some(response.usage_metadata.prompt_token_count), - output_tokens: Some(response.usage_metadata.candidates_token_count), - total_tokens: Some(response.usage_metadata.total_token_count), + prompt_tokens: response.usage_metadata.prompt_token_count, + output_tokens: response.usage_metadata.candidates_token_count, + total_tokens: response.usage_metadata.total_token_count, }, }) } } - //simple, Map with key "prompt" and value of the prompt string fn convert_completion_prompt_to_body(prompt: &String) -> HashMap { let mut map = HashMap::new(); @@ -437,20 +451,20 @@ fn convert_message_parts_to_content(parts: &Vec) -> serde_json: ChatMessagePart::Text(text) => json!({ "text": text }), - ChatMessagePart::Image(image) => match image { - BamlImage::Base64(image) => json!({ - "inlineDATA": { - "mimeType": image.media_type, - "data": image.base64 - } - }), - BamlImage::Url(image) => json!({ - "fileData": { - "type": "url", - "url": image.url - } - }), - }, + ChatMessagePart::Image(image) => convert_media_to_content(image, "image"), + ChatMessagePart::Audio(audio) => convert_media_to_content(audio, "audio"), }) .collect() } + +fn convert_media_to_content(media: &BamlMedia, media_type: &str) -> serde_json::Value { + match media { + BamlMedia::Base64(_, data) => json!({ + "inlineData": { + "mimeType": format!("{}", data.media_type), + "data": data.base64 + } + }), + _ => panic!("Unsupported media type"), + } +} diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/google/types.rs b/engine/baml-runtime/src/internal/llm_client/primitive/google/types.rs index 85c59db95..c3a5c983c 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/google/types.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/google/types.rs @@ -364,9 +364,9 @@ pub struct SearchEntryPoint { #[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "camelCase")] pub struct UsageMetaData { - pub prompt_token_count: u64, - pub candidates_token_count: u64, - pub total_token_count: u64, + pub prompt_token_count: Option, + pub candidates_token_count: Option, + pub total_token_count: Option, } #[cfg(test)] diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/mod.rs b/engine/baml-runtime/src/internal/llm_client/primitive/mod.rs index e15d35b86..17f5de130 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/mod.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/mod.rs @@ -10,7 +10,8 @@ use crate::{ }; use self::{ - anthropic::AnthropicClient, google::GoogleClient, openai::OpenAIClient, request::RequestBuilder, + anthropic::AnthropicClient, aws::AwsClient, google::GoogleClient, openai::OpenAIClient, + request::RequestBuilder, }; use super::{ @@ -18,22 +19,59 @@ use super::{ ExecutionScope, IterOrchestrator, OrchestrationScope, OrchestrationState, OrchestratorNode, OrchestratorNodeIterator, }, - retry_policy::CallablePolicy, - traits::{WithClient, WithPrompt, WithRetryPolicy, WithSingleCallable, WithStreamable}, + traits::{ + WithClient, WithPrompt, WithRenderRawCurl, WithRetryPolicy, WithSingleCallable, + WithStreamable, + }, LLMResponse, }; mod anthropic; +mod aws; mod google; mod openai; pub(super) mod request; +// use crate::internal::llm_client::traits::ambassador_impl_WithRenderRawCurl; +// use crate::internal::llm_client::traits::ambassador_impl_WithRetryPolicy; +use enum_dispatch::enum_dispatch; + +#[enum_dispatch(WithRetryPolicy)] +pub enum LLMPrimitive2 { + OpenAIClient, + AnthropicClient, + GoogleClient, + AwsClient, +} + +// #[derive(Delegate)] +// #[delegate(WithRetryPolicy, WithRenderRawCurl)] pub enum LLMPrimitiveProvider { OpenAI(OpenAIClient), Anthropic(AnthropicClient), Google(GoogleClient), + Aws(aws::AwsClient), } +// impl WithRetryPolicy for LLMPrimitiveProvider { +// fn retry_policy_name(&self) -> Option<&str> { +// match self { +// LLMPrimitiveProvider::OpenAI(client) => { +// LLMPrimitive2::OpenAIClient(client).retry_policy_name() +// } +// LLMPrimitiveProvider::Anthropic(client) => { +// LLMPrimitive2::AnthropicClient(client).retry_policy_name() +// } +// LLMPrimitiveProvider::Google(client) => { +// LLMPrimitive2::GoogleClient(client).retry_policy_name() +// } +// LLMPrimitiveProvider::Aws(client) => { +// LLMPrimitive2::AwsClient(client).retry_policy_name() +// } +// } +// } +// } + macro_rules! match_llm_provider { // Define the variants inside the macro ($self:expr, $method:ident, async $(, $args:tt)*) => { @@ -41,6 +79,7 @@ macro_rules! match_llm_provider { LLMPrimitiveProvider::OpenAI(client) => client.$method($($args),*).await, LLMPrimitiveProvider::Anthropic(client) => client.$method($($args),*).await, LLMPrimitiveProvider::Google(client) => client.$method($($args),*).await, + LLMPrimitiveProvider::Aws(client) => client.$method($($args),*).await, } }; @@ -49,6 +88,7 @@ macro_rules! match_llm_provider { LLMPrimitiveProvider::OpenAI(client) => client.$method($($args),*), LLMPrimitiveProvider::Anthropic(client) => client.$method($($args),*), LLMPrimitiveProvider::Google(client) => client.$method($($args),*), + LLMPrimitiveProvider::Aws(client) => client.$method($($args),*), } }; } @@ -107,6 +147,7 @@ impl TryFrom<(&ClientWalker<'_>, &RuntimeContext)> for LLMPrimitiveProvider { OpenAIClient::new_ollama(client, ctx).map(LLMPrimitiveProvider::OpenAI) } "google-ai" => GoogleClient::new(client, ctx).map(LLMPrimitiveProvider::Google), + "aws-bedrock" => aws::AwsClient::new(client, ctx).map(LLMPrimitiveProvider::Aws), other => { let options = [ "openai", @@ -116,6 +157,7 @@ impl TryFrom<(&ClientWalker<'_>, &RuntimeContext)> for LLMPrimitiveProvider { "azure-openai", "fallback", "round-robin", + "aws-bedrock", ]; anyhow::bail!( "Unsupported provider: {}. Available ones are: {}", @@ -139,9 +181,14 @@ impl<'ir> WithPrompt<'ir> for LLMPrimitiveProvider { } } -impl WithRetryPolicy for LLMPrimitiveProvider { - fn retry_policy_name(&self) -> Option<&str> { - match_llm_provider!(self, retry_policy_name) +impl WithRenderRawCurl for LLMPrimitiveProvider { + async fn render_raw_curl( + &self, + ctx: &RuntimeContext, + prompt: &Vec, + stream: bool, + ) -> Result { + match_llm_provider!(self, render_raw_curl, async, ctx, prompt, stream) } } @@ -186,6 +233,7 @@ impl std::fmt::Display for LLMPrimitiveProvider { LLMPrimitiveProvider::OpenAI(_) => write!(f, "OpenAI"), LLMPrimitiveProvider::Anthropic(_) => write!(f, "Anthropic"), LLMPrimitiveProvider::Google(_) => write!(f, "Google"), + LLMPrimitiveProvider::Aws(_) => write!(f, "AWS"), } } } @@ -194,23 +242,9 @@ impl LLMPrimitiveProvider { pub fn name(&self) -> &str { &match_llm_provider!(self, context).name } -} - -impl RequestBuilder for LLMPrimitiveProvider { - fn http_client(&self) -> &reqwest::Client { - match_llm_provider!(self, http_client) - } - fn invocation_params(&self) -> &std::collections::HashMap { - match_llm_provider!(self, invocation_params) - } - - fn build_request( - &self, - prompt: either::Either<&String, &Vec>, - stream: bool, - ) -> reqwest::RequestBuilder { - match_llm_provider!(self, build_request, prompt, stream) + pub fn request_options(&self) -> &std::collections::HashMap { + match_llm_provider!(self, request_options) } } diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/openai/mod.rs b/engine/baml-runtime/src/internal/llm_client/primitive/openai/mod.rs index 6bbd188bb..0c046b927 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/openai/mod.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/openai/mod.rs @@ -1,5 +1,6 @@ mod openai_client; mod properties; +#[allow(dead_code)] mod types; pub use openai_client::OpenAIClient; diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/openai/openai_client.rs b/engine/baml-runtime/src/internal/llm_client/primitive/openai/openai_client.rs index b1ff59ed9..1c69630d2 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/openai/openai_client.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/openai/openai_client.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; -use anyhow::{Context, Result}; -use baml_types::BamlImage; +use anyhow::Result; +use baml_types::{BamlMedia, BamlMediaType}; use internal_baml_core::ir::ClientWalker; use internal_baml_jinja::{ChatMessagePart, RenderContext_Client, RenderedChatMessage}; @@ -11,9 +11,7 @@ use crate::client_builder::ClientProperty; use crate::internal::llm_client::primitive::request::{ make_parsed_request, make_request, RequestBuilder, }; -use crate::internal::llm_client::traits::{ - SseResponseTrait, StreamResponse, WithCompletion, WithStreamChat, -}; +use crate::internal::llm_client::traits::{SseResponseTrait, StreamResponse, WithStreamChat}; use crate::internal::llm_client::{ traits::{WithChat, WithClient, WithNoCompletion, WithRetryPolicy}, LLMResponse, ModelFeatures, @@ -81,7 +79,7 @@ impl WithNoCompletion for OpenAIClient {} // prompt: internal_baml_jinja::RenderedPrompt::Completion(prompt.clone()), // start_time: system_start, // latency: instant_start.elapsed(), -// invocation_params: self.properties.properties.clone(), +// request_options: self.properties.properties.clone(), // message: format!( // "Expected exactly one choices block, got {}", // response.choices.len() @@ -99,7 +97,7 @@ impl WithNoCompletion for OpenAIClient {} // start_time: system_start, // latency: instant_start.elapsed(), // model: response.model, -// invocation_params: self.properties.properties.clone(), +// request_options: self.properties.properties.clone(), // metadata: LLMCompleteResponseMetadata { // baml_is_complete: match response.choices.get(0) { // Some(c) => match c.finish_reason { @@ -151,7 +149,7 @@ impl WithChat for OpenAIClient { prompt: internal_baml_jinja::RenderedPrompt::Chat(prompt.clone()), start_time: system_start, latency: instant_start.elapsed(), - invocation_params: self.properties.properties.clone(), + request_options: self.properties.properties.clone(), message: format!( "Expected exactly one choices block, got {}", response.choices.len() @@ -174,7 +172,7 @@ impl WithChat for OpenAIClient { start_time: system_start, latency: instant_start.elapsed(), model: response.model, - invocation_params: self.properties.properties.clone(), + request_options: self.properties.properties.clone(), metadata: LLMCompleteResponseMetadata { baml_is_complete: match response.choices.get(0) { Some(c) => match c.finish_reason { @@ -213,11 +211,11 @@ impl RequestBuilder for OpenAIClient { &self.client } - fn build_request( + async fn build_request( &self, prompt: either::Either<&String, &Vec>, stream: bool, - ) -> reqwest::RequestBuilder { + ) -> Result { let mut req = self.client.post(if prompt.is_left() { format!( "{}/completions", @@ -250,6 +248,10 @@ impl RequestBuilder for OpenAIClient { } req = req.header("baml-original-url", self.properties.base_url.as_str()); + req = req.header( + "baml-render-url", + format!("{}/chat/completions", self.properties.base_url), + ); let mut body = json!(self.properties.properties); let body_obj = body.as_object_mut().unwrap(); match prompt { @@ -273,13 +275,19 @@ impl RequestBuilder for OpenAIClient { } if stream { - body_obj.insert("stream".into(), true.into()); + body_obj.insert("stream".into(), json!(true)); + body_obj.insert( + "stream_options".into(), + json!({ + "include_usage": true, + }), + ); } - req.json(&body) + Ok(req.json(&body)) } - fn invocation_params(&self) -> &HashMap { + fn request_options(&self) -> &HashMap { &self.properties.properties } } @@ -315,7 +323,7 @@ impl SseResponseTrait for OpenAIClient { start_time: system_start, latency: instant_start.elapsed(), model: "".to_string(), - invocation_params: params.clone(), + request_options: params.clone(), metadata: LLMCompleteResponseMetadata { baml_is_complete: false, finish_reason: None, @@ -344,7 +352,7 @@ impl SseResponseTrait for OpenAIClient { prompt.clone(), ), start_time: system_start, - invocation_params: params.clone(), + request_options: params.clone(), latency: instant_start.elapsed(), message: format!("Failed to parse event: {:#?}", e), code: ErrorCode::Other(2), @@ -367,6 +375,11 @@ impl SseResponseTrait for OpenAIClient { } } inner.latency = instant_start.elapsed(); + if let Some(usage) = event.usage.as_ref() { + inner.metadata.prompt_tokens = Some(usage.prompt_tokens); + inner.metadata.output_tokens = Some(usage.completion_tokens); + inner.metadata.total_tokens = Some(usage.total_tokens); + } std::future::ready(Some(LLMResponse::Success(inner.clone()))) }, @@ -378,7 +391,7 @@ impl SseResponseTrait for OpenAIClient { impl WithStreamChat for OpenAIClient { async fn stream_chat( &self, - ctx: &RuntimeContext, + _ctx: &RuntimeContext, prompt: &Vec, ) -> StreamResponse { let (resp, system_start, instant_start) = @@ -411,15 +424,18 @@ macro_rules! make_openai_client { ($client:ident, $properties:ident) => { Ok(Self { name: $client.name().into(), - properties: $properties, + context: RenderContext_Client { name: $client.name().into(), provider: $client.elem().provider.clone(), + default_role: $properties.default_role.clone(), }, + properties: $properties, features: ModelFeatures { chat: true, completion: false, anthropic_system_constraints: false, + resolve_media_urls: false, }, retry_policy: $client .elem() @@ -506,17 +522,20 @@ fn convert_message_parts_to_content(parts: &Vec) -> serde_json: .map(|part| match part { ChatMessagePart::Text(text) => json!({"type": "text", "text": text}), ChatMessagePart::Image(image) => match image { - BamlImage::Url(image) => { + BamlMedia::Url(BamlMediaType::Image, image) => { json!({"type": "image_url", "image_url": json!({ "url": image.url })}) } - BamlImage::Base64(image) => { + BamlMedia::Base64(BamlMediaType::Image, image) => { json!({"type": "image_url", "image_url": json!({ - "base64": image.base64 + "url" : format!("data:{};base64,{}", image.media_type, image.base64) })}) } + _ => json!({}), // return an empty JSON object or any other default value }, + // OpenAI does not yet support audio + _ => json!({}), // return an empty JSON object or any other default value }) .collect(); diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/openai/properties/azure.rs b/engine/baml-runtime/src/internal/llm_client/primitive/openai/properties/azure.rs index 26d310349..e01af2b37 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/openai/properties/azure.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/openai/properties/azure.rs @@ -83,6 +83,10 @@ pub fn resolve_properties( } }; + properties + .entry("max_tokens".into()) + .or_insert_with(|| 4096.into()); + Ok(PostRequestProperities { default_role, base_url, diff --git a/engine/baml-runtime/src/internal/llm_client/primitive/request.rs b/engine/baml-runtime/src/internal/llm_client/primitive/request.rs index 3d480552b..bc31c9f53 100644 --- a/engine/baml-runtime/src/internal/llm_client/primitive/request.rs +++ b/engine/baml-runtime/src/internal/llm_client/primitive/request.rs @@ -1,4 +1,4 @@ -use std::{collections::HashMap, fmt::format}; +use std::collections::HashMap; use anyhow::{Context, Result}; use internal_baml_jinja::RenderedChatMessage; @@ -8,13 +8,14 @@ use serde::de::DeserializeOwned; use crate::internal::llm_client::{traits::WithClient, ErrorCode, LLMErrorResponse, LLMResponse}; pub trait RequestBuilder { - fn build_request( + #[allow(async_fn_in_trait)] + async fn build_request( &self, prompt: either::Either<&String, &Vec>, stream: bool, - ) -> reqwest::RequestBuilder; + ) -> Result; - fn invocation_params(&self) -> &HashMap; + fn request_options(&self) -> &HashMap; fn http_client(&self) -> &reqwest::Client; } @@ -36,7 +37,11 @@ pub async fn make_request( let (system_now, instant_now) = (web_time::SystemTime::now(), web_time::Instant::now()); log::debug!("Making request using client {}", client.context().name); - let req = match client.build_request(prompt, stream).build() { + let req = match client + .build_request(prompt, stream) + .await + .context("Failed to build request") + { Ok(req) => req, Err(e) => { return Err(LLMResponse::LLMFailure(LLMErrorResponse { @@ -44,14 +49,32 @@ pub async fn make_request( model: None, prompt: to_prompt(prompt), start_time: system_now, - invocation_params: client.invocation_params().clone(), + request_options: client.request_options().clone(), latency: instant_now.elapsed(), - message: e.to_string(), + message: format!("{:?}", e), code: ErrorCode::Other(2), })); } }; + let req = match req.build() { + Ok(req) => req, + Err(e) => { + return Err(LLMResponse::LLMFailure(LLMErrorResponse { + client: client.context().name.to_string(), + model: None, + prompt: to_prompt(prompt), + start_time: system_now, + request_options: client.request_options().clone(), + latency: instant_now.elapsed(), + message: format!("{:?}", e), + code: ErrorCode::Other(2), + })); + } + }; + + log::debug!("built request: {:?}", req); + let response = match client.http_client().execute(req).await { Ok(response) => response, Err(e) => { @@ -60,9 +83,9 @@ pub async fn make_request( model: None, prompt: to_prompt(prompt), start_time: system_now, - invocation_params: client.invocation_params().clone(), + request_options: client.request_options().clone(), latency: instant_now.elapsed(), - message: e.to_string(), + message: format!("{:?}", e), code: ErrorCode::Other(2), })); } @@ -75,7 +98,7 @@ pub async fn make_request( model: None, prompt: to_prompt(prompt), start_time: system_now, - invocation_params: client.invocation_params().clone(), + request_options: client.request_options().clone(), latency: instant_now.elapsed(), message: format!( "Request failed: {}", @@ -94,9 +117,26 @@ pub async fn make_parsed_request( stream: bool, ) -> Result<(T, web_time::SystemTime, web_time::Instant), LLMResponse> { let (response, system_now, instant_now) = make_request(client, prompt, stream).await?; - match response.json::().await.context(format!( - "Failed to parse into a response accepted by {}", - std::any::type_name::() + let j = match response.json::().await { + Ok(response) => response, + Err(e) => { + return Err(LLMResponse::LLMFailure(LLMErrorResponse { + client: client.context().name.to_string(), + model: None, + prompt: to_prompt(prompt), + start_time: system_now, + request_options: client.request_options().clone(), + latency: instant_now.elapsed(), + message: e.to_string(), + code: ErrorCode::Other(2), + })) + } + }; + + match T::deserialize(&j).context(format!( + "Failed to parse into a response accepted by {}: {}", + std::any::type_name::(), + j )) { Ok(response) => Ok((response, system_now, instant_now)), Err(e) => Err(LLMResponse::LLMFailure(LLMErrorResponse { @@ -104,9 +144,9 @@ pub async fn make_parsed_request( model: None, prompt: to_prompt(prompt), start_time: system_now, - invocation_params: client.invocation_params().clone(), + request_options: client.request_options().clone(), latency: instant_now.elapsed(), - message: e.to_string(), + message: format!("{:?}", e), code: ErrorCode::Other(2), })), } diff --git a/engine/baml-runtime/src/internal/llm_client/traits/chat.rs b/engine/baml-runtime/src/internal/llm_client/traits/chat.rs index 523834d4d..5ce186551 100644 --- a/engine/baml-runtime/src/internal/llm_client/traits/chat.rs +++ b/engine/baml-runtime/src/internal/llm_client/traits/chat.rs @@ -2,11 +2,11 @@ use anyhow::Result; use internal_baml_jinja::{ChatOptions, RenderedChatMessage}; use crate::{ - internal::llm_client::{LLMErrorResponse, LLMResponse}, + internal::llm_client::{LLMResponse}, RuntimeContext, }; -use super::{SseResponseTrait, StreamResponse}; +use super::{StreamResponse}; pub trait WithChat: Sync + Send { fn chat_options(&self, ctx: &RuntimeContext) -> Result; diff --git a/engine/baml-runtime/src/internal/llm_client/traits/mod.rs b/engine/baml-runtime/src/internal/llm_client/traits/mod.rs index d06e26fe3..cb07775ef 100644 --- a/engine/baml-runtime/src/internal/llm_client/traits/mod.rs +++ b/engine/baml-runtime/src/internal/llm_client/traits/mod.rs @@ -1,22 +1,35 @@ use std::pin::Pin; use anyhow::Result; + mod chat; mod completion; +pub use self::{ + chat::{WithChat, WithStreamChat}, + completion::{WithCompletion, WithNoCompletion, WithStreamCompletion}, +}; +use super::{primitive::request::RequestBuilder, LLMResponse, ModelFeatures}; -use baml_types::BamlValue; +use crate::{internal::prompt_renderer::PromptRenderer, RuntimeContext}; +use baml_types::{BamlMedia, BamlMediaType, BamlValue, MediaBase64}; +use base64::{prelude::BASE64_STANDARD, Engine}; +use futures::stream::{StreamExt, TryStreamExt}; +use infer; use internal_baml_core::ir::repr::IntermediateRepr; +use internal_baml_jinja::{ChatMessagePart, RenderedChatMessage}; use internal_baml_jinja::{RenderContext_Client, RenderedPrompt}; -use crate::{internal::prompt_renderer::PromptRenderer, RuntimeContext}; +use reqwest::Url; -pub use self::{ - chat::{WithChat, WithStreamChat}, - completion::{WithCompletion, WithNoCompletion, WithStreamCompletion}, -}; +use shell_escape::escape; +use std::borrow::Cow; -use super::{retry_policy::CallablePolicy, LLMResponse, ModelFeatures}; +use std::str::FromStr; // Add this line at the top of your file // Add this line at the top of your file +// #[enum_dispatch] + +// #[delegatable_trait] +// #[enum_dispatch] pub trait WithRetryPolicy { fn retry_policy_name(&self) -> Option<&str>; } @@ -26,6 +39,14 @@ pub trait WithSingleCallable { async fn single_call(&self, ctx: &RuntimeContext, prompt: &RenderedPrompt) -> LLMResponse; } +pub trait WithCurl { + #[allow(async_fn_in_trait)] + async fn curl_call( + &self, + ctx: &RuntimeContext, + prompt: &RenderedPrompt, + ) -> Result, LLMResponse>; +} pub trait WithClient { fn context(&self) -> &RenderContext_Client; @@ -42,12 +63,127 @@ pub trait WithPrompt<'ir> { ) -> Result; } +// #[delegatable_trait] +// #[enum_dispatch] +pub trait WithRenderRawCurl { + #[allow(async_fn_in_trait)] + async fn render_raw_curl( + &self, + ctx: &RuntimeContext, + prompt: &Vec, + stream: bool, + ) -> Result; +} + impl WithSingleCallable for T where T: WithClient + WithChat + WithCompletion, { #[allow(async_fn_in_trait)] async fn single_call(&self, ctx: &RuntimeContext, prompt: &RenderedPrompt) -> LLMResponse { + if self.model_features().resolve_media_urls { + if let RenderedPrompt::Chat(ref chat) = prompt { + let messages_result = futures::stream::iter(chat.iter().map(|p| { + let new_parts = p + .parts + .iter() + .map(|part| async move { + match part { + ChatMessagePart::Image(BamlMedia::Url(_, media_url)) + | ChatMessagePart::Audio(BamlMedia::Url(_, media_url)) => { + let (base64, mime_type) = if media_url.url.starts_with("data:") { + let parts: Vec<&str> = + media_url.url.splitn(2, ',').collect(); + let base64 = parts.get(1).unwrap().to_string(); + let prefix = parts.get(0).unwrap(); + let mime_type = + prefix.splitn(2, ':').next().unwrap().to_string() + .split('/').last().unwrap().to_string(); + + (base64, mime_type) + } else { + let client = reqwest::Client::new(); + let response = match client.get(&media_url.url) + // NB(sam): this would workaround CORS issues, but https://github.com/seanmonstar/reqwest/issues/1401 + //.fetch_mode_no_cors() + .send().await + { + Ok(response) => response, + Err(e) => { + return Err(LLMResponse::OtherFailure( + format!("Failed to fetch image due to CORS issue: {e:?}") + )) + } // replace with your error conversion logic + }; + let bytes = match response.bytes().await { + Ok(bytes) => bytes, + Err(e) => { + return Err(LLMResponse::OtherFailure( + e.to_string(), + )); + } // replace with your error conversion logic + }; + let base64 = BASE64_STANDARD.encode(&bytes); + let inferred_type = infer::get(&bytes); + let mime_type = inferred_type.map_or_else( + || "application/octet-stream".into(), + |t| t.extension().into(), + ); + (base64, mime_type) + }; + + Ok(if matches!(part, ChatMessagePart::Image(_)) { + ChatMessagePart::Image(BamlMedia::Base64( + BamlMediaType::Image, + MediaBase64 { + base64: base64, + media_type: format!("image/{}", mime_type), + }, + )) + } else { + ChatMessagePart::Audio(BamlMedia::Base64( + BamlMediaType::Audio, + MediaBase64 { + base64: base64, + media_type: format!("audio/{}", mime_type), + }, + )) + }) + } + _ => Ok(part.clone()), + } + }) + .collect::>(); + async move { + let new_parts = futures::stream::iter(new_parts) + .then(|f| f) + .collect::>() + .await; + + let new_parts = new_parts.into_iter().collect::, _>>()?; + + Ok::<_, anyhow::Error>(RenderedChatMessage { + role: p.role.clone(), + parts: new_parts, + }) + } + })) + .then(|f| f) + .collect::>() + .await + .into_iter() + .collect::, _>>(); + + let messages = match messages_result { + Ok(messages) => messages, + Err(e) => { + return LLMResponse::OtherFailure(format!("Error occurred: {}", e)); + } + }; + return self.chat(ctx, &messages).await; + } + } + match prompt { RenderedPrompt::Chat(p) => self.chat(ctx, p).await, RenderedPrompt::Completion(p) => self.completion(ctx, p).await, @@ -55,6 +191,155 @@ where } } +impl WithCurl for T +where + T: WithClient + WithChat + WithCompletion, +{ + #[allow(async_fn_in_trait)] + async fn curl_call( + &self, + ctx: &RuntimeContext, + prompt: &RenderedPrompt, + ) -> Result, LLMResponse> { + if self.model_features().resolve_media_urls { + if let RenderedPrompt::Chat(ref chat) = prompt { + let messages_result = futures::stream::iter(chat.iter().map(|p| { + let new_parts = p + .parts + .iter() + .map(|part| async move { + match part { + ChatMessagePart::Image(BamlMedia::Url(_, media_url)) + | ChatMessagePart::Audio(BamlMedia::Url(_, media_url)) => { + let mut base64 = "".to_string(); + let mut mime_type = "".to_string(); + if media_url.url.starts_with("data:") { + let parts: Vec<&str> = + media_url.url.splitn(2, ',').collect(); + base64 = parts.get(1).unwrap().to_string(); + let prefix = parts.get(0).unwrap(); + mime_type = + prefix.splitn(2, ':').next().unwrap().to_string(); + mime_type = + mime_type.split('/').last().unwrap().to_string(); + } else { + let client = reqwest::Client::new(); + let response = match client.get(&media_url.url).send().await + { + Ok(response) => response, + Err(e) => { + return Err(LLMResponse::OtherFailure( + "Failed to fetch image due to CORS issue" + .to_string(), + )) + } // replace with your error conversion logic + }; + let bytes = match response.bytes().await { + Ok(bytes) => bytes, + Err(e) => { + return Err(LLMResponse::OtherFailure( + e.to_string(), + )) + } // replace with your error conversion logic + }; + base64 = BASE64_STANDARD.encode(&bytes); + let inferred_type = infer::get(&bytes); + mime_type = inferred_type.map_or_else( + || "application/octet-stream".into(), + |t| t.extension().into(), + ); + } + + Ok(if matches!(part, ChatMessagePart::Image(_)) { + ChatMessagePart::Image(BamlMedia::Base64( + BamlMediaType::Image, + MediaBase64 { + base64: base64, + media_type: format!("image/{}", mime_type), + }, + )) + } else { + ChatMessagePart::Audio(BamlMedia::Base64( + BamlMediaType::Audio, + MediaBase64 { + base64: base64, + media_type: format!("audio/{}", mime_type), + }, + )) + }) + } + _ => Ok(part.clone()), + } + }) + .collect::>(); + async move { + let new_parts = futures::stream::iter(new_parts) + .then(|f| f) + .collect::>() + .await; + + let new_parts = new_parts.into_iter().collect::, _>>()?; + + Ok::<_, anyhow::Error>(RenderedChatMessage { + role: p.role.clone(), + parts: new_parts, + }) + } + })) + .then(|f| f) + .collect::>() + .await + .into_iter() + .collect::, _>>(); + + let messages = match messages_result { + Ok(messages) => messages, + Err(e) => { + return Err(LLMResponse::OtherFailure(format!("Error occurred: {}", e))); + } + }; + return Ok(messages); + } + } + + match prompt { + RenderedPrompt::Chat(p) => Ok(p.clone()), + RenderedPrompt::Completion(p) => Err(LLMResponse::OtherFailure( + "Completion prompts are not supported by this provider".to_string(), + )), + } + } +} + +fn escape_single_quotes(s: &str) -> String { + escape(Cow::Borrowed(s)).to_string() +} + +fn to_curl_command( + url: &str, + method: &str, + headers: &reqwest::header::HeaderMap, + body: Vec, +) -> String { + let mut curl_command = format!("curl -X {} '{}'", method, url); + + for (key, value) in headers.iter() { + let header = format!(" -H \"{}: {}\"", key.as_str(), value.to_str().unwrap()); + curl_command.push_str(&header); + } + + let body_json = String::from_utf8_lossy(&body).to_string(); // Convert body to string + let pretty_body_json = match serde_json::from_str::(&body_json) { + Ok(json_value) => serde_json::to_string_pretty(&json_value).unwrap_or(body_json), + Err(_) => body_json, + }; + let fully_escaped_body_json = escape_single_quotes(&pretty_body_json); + let body_part = format!(" -d {}", fully_escaped_body_json); + curl_command.push_str(&body_part); + + curl_command +} + impl<'ir, T> WithPrompt<'ir> for T where T: WithClient + WithChat + WithCompletion, @@ -69,7 +354,6 @@ where let features = self.model_features(); let prompt = renderer.render_prompt(ir, ctx, params, self.context())?; - log::debug!("WithPrompt.render_prompt => {:#?}", prompt); let mut prompt = match (features.completion, features.chat) { (true, false) => { @@ -108,6 +392,53 @@ where } } +impl WithRenderRawCurl for T +where + T: WithClient + WithChat + WithCompletion + RequestBuilder, +{ + async fn render_raw_curl( + &self, + ctx: &RuntimeContext, + prompt: &Vec, + stream: bool, + ) -> Result { + let rendered_prompt = RenderedPrompt::Chat(prompt.clone()); + + let chat_messages = self.curl_call(ctx, &rendered_prompt).await?; + let request_builder = self + .build_request(either::Right(&chat_messages), stream) + .await?; + let mut request = request_builder.build()?; + let url_header_value = { + let headers = request.headers_mut(); + let url_header_value = headers + .get("baml-render-url") + .ok_or(anyhow::anyhow!("Missing header 'baml-render-url'"))?; + url_header_value.to_owned() + }; + + let url_str = url_header_value + .to_str() + .map_err(|_| anyhow::anyhow!("Invalid header 'baml-render-url'"))?; + let new_url = Url::from_str(url_str)?; + *request.url_mut() = new_url; + + { + let headers = request.headers_mut(); + headers.remove("baml-original-url"); + headers.remove("baml-render-url"); + } + + let body = request + .body() + .map(|b| b.as_bytes().unwrap_or_default().to_vec()) + .unwrap_or_default(); // Add this line to handle the Option + let request_str = to_curl_command(url_str, "POST", request.headers(), body); + + Ok(request_str) + } +} + // Stream related pub trait SseResponseTrait { fn response_stream( @@ -134,10 +465,116 @@ pub trait WithStreamable { impl WithStreamable for T where - T: WithStreamChat + WithStreamCompletion, + T: WithClient + WithStreamChat + WithStreamCompletion, { #[allow(async_fn_in_trait)] async fn stream(&self, ctx: &RuntimeContext, prompt: &RenderedPrompt) -> StreamResponse { + if self.model_features().resolve_media_urls { + if let RenderedPrompt::Chat(ref chat) = prompt { + let messages = futures::stream::iter(chat.iter().map(|p| { + let new_parts = p + .parts + .iter() + .map(|part| async move { + match part { + ChatMessagePart::Image(BamlMedia::Url(_, media_url)) + | ChatMessagePart::Audio(BamlMedia::Url(_, media_url)) => { + let mut base64 = "".to_string(); + let mut mime_type = "".to_string(); + if media_url.url.starts_with("data:") { + let parts: Vec<&str> = + media_url.url.splitn(2, ',').collect(); + base64 = parts.get(1).unwrap().to_string(); + let prefix = parts.get(0).unwrap(); + mime_type = prefix + .splitn(2, ':') + .last() + .unwrap() // Get the part after "data:" + .split('/') + .last() + .unwrap() // Get the part after "image/" + .split(';') + .next() + .unwrap() // Get the part before ";base64" + .to_string(); + } else { + let client = reqwest::Client::new(); + let response = match client + .get(&media_url.url) + // NB(sam): this would workaround CORS issues, but https://github.com/seanmonstar/reqwest/issues/1401 + //.fetch_mode_no_cors() + .send() + .await + { + Ok(response) => response, + Err(e) => { + return Err(LLMResponse::OtherFailure( + "Failed to fetch image due to CORS issue" + .to_string(), + )) + } // replace with your error conversion logic + }; + let bytes = match response.bytes().await { + Ok(bytes) => bytes, + Err(e) => { + return Err(LLMResponse::OtherFailure( + e.to_string(), + )) + } // replace with your error conversion logic + }; + base64 = BASE64_STANDARD.encode(&bytes); + let inferred_type = infer::get(&bytes); + mime_type = inferred_type.map_or_else( + || "application/octet-stream".into(), + |t| t.extension().into(), + ); + } + Ok(if matches!(part, ChatMessagePart::Image(_)) { + ChatMessagePart::Image(BamlMedia::Base64( + BamlMediaType::Image, + MediaBase64 { + base64: base64, + media_type: format!("image/{}", mime_type), + }, + )) + } else { + ChatMessagePart::Audio(BamlMedia::Base64( + BamlMediaType::Audio, + MediaBase64 { + base64: base64, + media_type: format!("audio/{}", mime_type), + }, + )) + }) + } + _ => Ok(part.clone()), + } + }) + .collect::>(); + async move { + let new_parts = futures::stream::iter(new_parts) + .then(|f| f) + .collect::>() + .await; + + let new_parts = new_parts.into_iter().collect::, _>>()?; + + Ok(RenderedChatMessage { + role: p.role.clone(), + parts: new_parts, + }) + } + })) + .then(|f| f) + .collect::>() + .await + .into_iter() + .collect::, _>>()?; + + return self.stream_chat(ctx, &messages).await; + } + } + match prompt { RenderedPrompt::Chat(p) => self.stream_chat(ctx, p).await, RenderedPrompt::Completion(p) => self.stream_completion(ctx, p).await, diff --git a/engine/baml-runtime/src/internal/prompt_renderer/mod.rs b/engine/baml-runtime/src/internal/prompt_renderer/mod.rs index a2978daa8..96ff49e2d 100644 --- a/engine/baml-runtime/src/internal/prompt_renderer/mod.rs +++ b/engine/baml-runtime/src/internal/prompt_renderer/mod.rs @@ -71,6 +71,7 @@ impl PromptRenderer { client_ctx: &RenderContext_Client, ) -> Result { let func = ir.find_function(&self.function_name)?; + let Some(func_v2) = func.as_v2() else { error_unsupported!( "function", diff --git a/engine/baml-runtime/src/internal/prompt_renderer/render_output_format.rs b/engine/baml-runtime/src/internal/prompt_renderer/render_output_format.rs index 447a1adfe..8b54c33ae 100644 --- a/engine/baml-runtime/src/internal/prompt_renderer/render_output_format.rs +++ b/engine/baml-runtime/src/internal/prompt_renderer/render_output_format.rs @@ -1,4 +1,4 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::{HashSet}; use anyhow::Result; use baml_types::BamlValue; diff --git a/engine/baml-runtime/src/lib.rs b/engine/baml-runtime/src/lib.rs index a8a149823..940b22a56 100644 --- a/engine/baml-runtime/src/lib.rs +++ b/engine/baml-runtime/src/lib.rs @@ -33,6 +33,7 @@ use baml_types::BamlValue; use client_builder::ClientBuilder; use indexmap::IndexMap; use internal_baml_core::configuration::GeneratorOutputType; +use on_log_event::LogEventCallbackSync; use runtime::InternalBamlRuntime; #[cfg(not(target_arch = "wasm32"))] @@ -51,6 +52,9 @@ pub use internal_baml_jinja::{ChatMessagePart, RenderedPrompt}; #[cfg(feature = "internal")] pub use runtime_interface::InternalRuntimeInterface; +#[cfg(feature = "internal")] +pub use internal_baml_core as internal_core; + #[cfg(not(feature = "internal"))] pub(crate) use internal_baml_jinja::{ChatMessagePart, RenderedPrompt}; #[cfg(not(feature = "internal"))] @@ -82,7 +86,7 @@ impl BamlRuntime { .collect(); Ok(BamlRuntime { inner: InternalBamlRuntime::from_directory(path)?, - tracer: BamlTracer::new(None, env_vars.into_iter()).into(), + tracer: BamlTracer::new(None, env_vars.into_iter())?.into(), env_vars: copy, }) } @@ -98,7 +102,7 @@ impl BamlRuntime { .collect(); Ok(BamlRuntime { inner: InternalBamlRuntime::from_file_content(root_path, files)?, - tracer: BamlTracer::new(None, env_vars.into_iter()).into(), + tracer: BamlTracer::new(None, env_vars.into_iter())?.into(), env_vars: copy, }) } @@ -341,4 +345,14 @@ impl ExperimentalTracingInterface for BamlRuntime { fn flush(&self) -> Result<()> { self.tracer.flush() } + + fn drain_stats(&self) -> InnerTraceStats { + self.tracer.drain_stats() + } + + #[cfg(not(target_arch = "wasm32"))] + fn set_log_event_callback(&self, log_event_callback: LogEventCallbackSync) -> Result<()> { + self.tracer.set_log_event_callback(log_event_callback); + Ok(()) + } } diff --git a/engine/baml-runtime/src/request/mod.rs b/engine/baml-runtime/src/request/mod.rs index dfbd4c49f..3e1d80087 100644 --- a/engine/baml-runtime/src/request/mod.rs +++ b/engine/baml-runtime/src/request/mod.rs @@ -1,15 +1,35 @@ use anyhow::{Context, Result}; -use instant::Duration; +use web_time::Duration; -pub(crate) fn create_client() -> Result { +fn builder() -> reqwest::ClientBuilder { cfg_if::cfg_if! { if #[cfg(target_arch = "wasm32")] { - Ok(reqwest::Client::new()) + reqwest::Client::builder() } else { reqwest::Client::builder() + // NB: we can NOT set a total request timeout here: our users + // regularly have requests that take multiple minutes, due to how + // long LLMs take + .connect_timeout(Duration::from_secs(10)) .http2_keep_alive_interval(Some(Duration::from_secs(10))) - .build() - .context("Failed to create reqwest client") } } } + +pub(crate) fn create_client() -> Result { + builder().build().context("Failed to create reqwest client") +} + +pub(crate) fn create_tracing_client() -> Result { + cfg_if::cfg_if! { + if #[cfg(target_arch = "wasm32")] { + let cb = builder(); + } else { + let cb =builder() + // Wait up to 30s to send traces to the backend + .read_timeout(Duration::from_secs(30)); + } + } + + cb.build().context("Failed to create reqwest client") +} diff --git a/engine/baml-runtime/src/request/no_wasm.rs b/engine/baml-runtime/src/request/no_wasm.rs deleted file mode 100644 index 93be95806..000000000 --- a/engine/baml-runtime/src/request/no_wasm.rs +++ /dev/null @@ -1,59 +0,0 @@ -use std::collections::HashMap; - -use anyhow::Error; - -#[derive(Debug)] -pub enum NoWasmRequestError { - BuildError(Error), - FetchError(Error), - ResponseError(u16, reqwest::Response), - JsonError(Error), - SerdeError(Error), -} - -pub async fn response_text(response: reqwest::Response) -> Result { - let text = response - .text() - .await - .map_err(|e| NoWasmRequestError::JsonError(e.into()))?; - - Ok(text) -} - -pub async fn response_json( - response: reqwest::Response, -) -> Result { - let json = response - .json() - .await - .map_err(|e| NoWasmRequestError::JsonError(e.into()))?; - - serde_json::from_value(json).map_err(|e| NoWasmRequestError::SerdeError(e.into())) -} - -pub async fn call_request_with_json( - url: &str, - body: &Body, - headers: Option>, -) -> Result { - let client = reqwest::Client::new(); - let mut request = client.post(url).json(body); - if let Some(headers) = headers { - for (key, value) in headers { - request = request.header(key, value); - } - } - - let response = request - .send() - .await - .map_err(|e| NoWasmRequestError::FetchError(e.into()))?; - - let status = response.status(); - - if !status.is_success() { - return Err(NoWasmRequestError::ResponseError(status.as_u16(), response)); - } - - response_json(response).await -} diff --git a/engine/baml-runtime/src/request/wasm.rs b/engine/baml-runtime/src/request/wasm.rs deleted file mode 100644 index b682f81e5..000000000 --- a/engine/baml-runtime/src/request/wasm.rs +++ /dev/null @@ -1,89 +0,0 @@ -use std::collections::HashMap; - -use wasm_bindgen::JsCast; - -#[derive(Debug)] -pub enum WasmRequestError { - BuildError(wasm_bindgen::JsValue), - FetchError(wasm_bindgen::JsValue), - ResponseError(u16, web_sys::Response), - JsonError(wasm_bindgen::JsValue), - SerdeError(wasm_bindgen::JsValue), -} - -pub async fn response_text(response: web_sys::Response) -> Result { - let json = wasm_bindgen_futures::JsFuture::from(response.text().map_err(|e| { - WasmRequestError::JsonError(wasm_bindgen::JsValue::from_str(&format!("{:#?}", e))) - })?) - .await - .map_err(|e| WasmRequestError::JsonError(e))?; - - json.as_string().ok_or(WasmRequestError::JsonError(json)) -} - -pub async fn response_json( - response: web_sys::Response, -) -> Result { - let json = wasm_bindgen_futures::JsFuture::from(response.json().map_err(|e| { - WasmRequestError::JsonError(wasm_bindgen::JsValue::from_str(&format!("{:#?}", e))) - })?) - .await - .map_err(|e| WasmRequestError::JsonError(e))?; - - serde_wasm_bindgen::from_value(json).map_err(|e| WasmRequestError::SerdeError(e.into())) -} - -async fn call_request( - window: web_sys::Window, - request: &web_sys::Request, -) -> Result { - let resp_value = wasm_bindgen_futures::JsFuture::from(window.fetch_with_request(request)) - .await - .map_err(|e| WasmRequestError::FetchError(e))?; - - let resp: web_sys::Response = resp_value - .dyn_into() - .map_err(|e| WasmRequestError::FetchError(e))?; - - let status = resp.status(); - if status != 200 { - return Err(WasmRequestError::ResponseError(status, resp)); - } - - response_json(resp).await -} - -pub async fn call_request_with_json( - url: &str, - body: &Body, - pass_headers: Option>, -) -> Result { - let window = web_sys::window().unwrap(); - let mut init = web_sys::RequestInit::new(); - init.method("POST"); - init.mode(web_sys::RequestMode::Cors); - init.body(Some(&wasm_bindgen::JsValue::from_str( - &serde_json::to_string(&body).unwrap_or("{}".to_string()), - ))); - let headers = web_sys::Headers::new().map_err(|e| WasmRequestError::BuildError(e))?; - headers - .set("Content-Type", "application/json") - .map_err(|e| WasmRequestError::BuildError(e))?; - match pass_headers { - Some(pass_headers) => { - for (k, v) in &pass_headers { - headers - .set(k, v) - .map_err(|e| WasmRequestError::BuildError(e))?; - } - } - None => {} - } - - init.headers(&headers); - - let request = web_sys::Request::new_with_str_and_init(url, &init) - .map_err(|e| WasmRequestError::BuildError(e))?; - - call_request(window, &request).await -} diff --git a/engine/baml-runtime/src/runtime/runtime_interface.rs b/engine/baml-runtime/src/runtime/runtime_interface.rs index 776dd7753..b422e6832 100644 --- a/engine/baml-runtime/src/runtime/runtime_interface.rs +++ b/engine/baml-runtime/src/runtime/runtime_interface.rs @@ -1,8 +1,4 @@ -use std::{ - collections::HashMap, - path::PathBuf, - sync::{Arc, Mutex}, -}; +use std::{collections::HashMap, path::PathBuf, sync::Arc}; use crate::{ internal::{ @@ -10,23 +6,20 @@ use crate::{ llm_client::{ llm_provider::LLMProvider, orchestrator::{ - orchestrate_call, IterOrchestrator, LLMPrimitiveProvider, OrchestrationScope, - OrchestratorNode, + orchestrate_call, IterOrchestrator, OrchestrationScope, OrchestratorNode, }, retry_policy::CallablePolicy, - traits::WithPrompt, + traits::{WithPrompt, WithRenderRawCurl}, }, prompt_renderer::PromptRenderer, }, runtime_interface::{InternalClientLookup, RuntimeConstructor}, - tracing::{BamlTracer, TracingSpan}, - type_builder::TypeBuilder, + tracing::BamlTracer, FunctionResult, FunctionResultStream, InternalRuntimeInterface, RuntimeContext, - RuntimeContextManager, RuntimeInterface, TestResponse, + RuntimeInterface, }; use anyhow::{Context, Result}; use baml_types::{BamlMap, BamlValue}; - use internal_baml_core::{ internal_baml_diagnostics::SourceFile, ir::{repr::IntermediateRepr, FunctionWalker, IRHelper}, @@ -157,6 +150,38 @@ impl InternalRuntimeInterface for InternalBamlRuntime { .map(|prompt| (prompt, node.scope)); } + async fn render_raw_curl( + &self, + function_name: &str, + ctx: &RuntimeContext, + prompt: &Vec, + stream: bool, + node_index: Option, + ) -> Result { + let func = self.get_function(function_name, ctx)?; + + let renderer = PromptRenderer::from_function(&func, &self.ir(), ctx)?; + let client_name = renderer.client_name().to_string(); + + let client = self.get_llm_provider(&client_name, ctx)?; + let mut selected = + client.iter_orchestrator(&mut Default::default(), Default::default(), ctx, self); + + let node_index = node_index.unwrap_or(0); + + if node_index >= selected.len() { + return Err(anyhow::anyhow!( + "Execution Node out of bounds: {} >= {} for client {}", + node_index, + selected.len(), + client_name + )); + } + + let node = selected.swap_remove(node_index); + return node.provider.render_raw_curl(ctx, prompt, stream).await; + } + fn get_function<'ir>( &'ir self, function_name: &str, @@ -214,7 +239,7 @@ impl InternalRuntimeInterface for InternalBamlRuntime { pub fn baml_src_files(dir: &std::path::PathBuf) -> Result> { static VALID_EXTENSIONS: [&str; 2] = ["baml", "json"]; - log::info!("Reading files from {:#}", dir.to_string_lossy()); + log::trace!("Reading files from {:#}", dir.to_string_lossy()); if !dir.exists() { anyhow::bail!("{dir:#?} does not exist (expected a directory containing BAML files)",); @@ -281,8 +306,8 @@ impl RuntimeConstructor for InternalBamlRuntime { schema.diagnostics.to_result()?; let ir = IntermediateRepr::from_parser_database(&schema.db, schema.configuration)?; - log::info!("Successfully loaded BAML schema"); - log::info!("Diagnostics: {:#?}", schema.diagnostics); + log::trace!("Successfully loaded BAML schema"); + log::trace!("Diagnostics: {:#?}", schema.diagnostics); Ok(Self { ir: Arc::new(ir), diff --git a/engine/baml-runtime/src/runtime_interface.rs b/engine/baml-runtime/src/runtime_interface.rs index 477996f19..544c8df53 100644 --- a/engine/baml-runtime/src/runtime_interface.rs +++ b/engine/baml-runtime/src/runtime_interface.rs @@ -1,6 +1,5 @@ use anyhow::Result; use baml_types::{BamlMap, BamlValue}; -use cfg_if::cfg_if; use internal_baml_core::internal_baml_diagnostics::Diagnostics; use internal_baml_core::ir::{repr::IntermediateRepr, FunctionWalker}; use internal_baml_jinja::RenderedPrompt; @@ -9,13 +8,13 @@ use std::{collections::HashMap, sync::Arc}; use crate::internal::llm_client::llm_provider::LLMProvider; use crate::internal::llm_client::orchestrator::{OrchestrationScope, OrchestratorNode}; use crate::tracing::{BamlTracer, TracingSpan}; -use crate::type_builder::TypeBuilder; +use crate::types::on_log_event::LogEventCallbackSync; use crate::RuntimeContextManager; use crate::{ internal::{ir_features::IrFeatures, llm_client::retry_policy::CallablePolicy}, runtime::InternalBamlRuntime, types::FunctionResultStream, - FunctionResult, RuntimeContext, TestResponse, + FunctionResult, RuntimeContext, }; pub(crate) trait RuntimeConstructor { @@ -94,6 +93,10 @@ pub trait ExperimentalTracingInterface { ) -> Result>; fn flush(&self) -> Result<()>; + fn drain_stats(&self) -> crate::InnerTraceStats; + + #[cfg(not(target_arch = "wasm32"))] + fn set_log_event_callback(&self, callback: LogEventCallbackSync) -> Result<()>; } pub trait InternalClientLookup<'a> { @@ -134,6 +137,16 @@ pub trait InternalRuntimeInterface { node_index: Option, ) -> Result<(RenderedPrompt, OrchestrationScope)>; + #[warn(async_fn_in_trait)] + async fn render_raw_curl( + &self, + function_name: &str, + ctx: &RuntimeContext, + prompt: &Vec, + stream: bool, + node_index: Option, + ) -> Result; + fn ir(&self) -> &IntermediateRepr; fn get_test_params( diff --git a/engine/baml-runtime/src/tracing/api_wrapper/api_interface.rs b/engine/baml-runtime/src/tracing/api_wrapper/api_interface.rs index 179e7d931..a83fc14d7 100644 --- a/engine/baml-runtime/src/tracing/api_wrapper/api_interface.rs +++ b/engine/baml-runtime/src/tracing/api_wrapper/api_interface.rs @@ -6,6 +6,7 @@ use serde_json::Value; use super::core_types::{LLMOutputModel, LogSchema, Template, TestCaseStatus}; +#[allow(dead_code)] pub(crate) trait BoundaryAPI { async fn check_cache(&self, payload: &CacheRequest) -> Result>; async fn log_schema(&self, payload: &LogSchema) -> Result<()>; @@ -15,6 +16,7 @@ pub(crate) trait BoundaryAPI { // This is a trait that is used to define the API for the BoundaryTestAPI // It assumes the implementor with manage state +#[allow(dead_code)] pub(crate) trait BoundaryTestAPI { async fn register_test_cases>( &self, @@ -38,6 +40,7 @@ pub(crate) struct CreateSessionResponse { } #[derive(Debug, Serialize)] +#[allow(dead_code)] pub(crate) struct UpdateTestCaseRequest { pub test_suite: String, pub test_case: String, @@ -45,6 +48,7 @@ pub(crate) struct UpdateTestCaseRequest { } #[derive(Debug, Serialize)] +#[allow(dead_code)] pub(crate) struct CacheRequest { provider: String, prompt: Template, @@ -53,6 +57,7 @@ pub(crate) struct CacheRequest { } #[derive(Debug, Serialize)] +#[allow(dead_code)] pub(crate) struct CacheResponse { model_name: String, llm_output: LLMOutputModel, diff --git a/engine/baml-runtime/src/tracing/api_wrapper/core_types.rs b/engine/baml-runtime/src/tracing/api_wrapper/core_types.rs index 99bd8a3d2..e15a7ccf2 100644 --- a/engine/baml-runtime/src/tracing/api_wrapper/core_types.rs +++ b/engine/baml-runtime/src/tracing/api_wrapper/core_types.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Serialize}; use serde_json::Value; #[derive(Serialize, Debug)] +#[allow(dead_code)] pub(crate) struct UpdateTestCase { pub project_id: Option, pub test_cycle_id: String, @@ -15,8 +16,8 @@ pub(crate) struct UpdateTestCase { pub error_data: Option, // Rust doesn't have a direct equivalent of Python's Any type, so we use serde_json::Value } -#[derive(Serialize, Debug)] -pub(crate) struct LogSchema { +#[derive(Serialize, Debug, Clone)] +pub struct LogSchema { pub project_id: Option, pub event_type: EventType, pub root_event_id: String, @@ -29,26 +30,26 @@ pub(crate) struct LogSchema { } #[derive(Serialize, Debug, Clone)] -pub(crate) struct IO { +pub struct IO { pub(crate) input: Option, pub(crate) output: Option, } #[derive(Serialize, Debug, Clone)] -pub(crate) struct IOValue { +pub struct IOValue { pub(crate) value: ValueType, pub(crate) r#override: Option>, pub(crate) r#type: TypeSchema, } #[derive(Serialize, Debug, Clone)] -pub(crate) struct TypeSchema { +pub struct TypeSchema { pub(crate) name: TypeSchemaName, pub(crate) fields: IndexMap, } #[derive(Serialize, Debug, Clone)] -pub(crate) enum TypeSchemaName { +pub enum TypeSchemaName { #[serde(rename = "single")] Single, #[serde(rename = "multi")] @@ -57,7 +58,7 @@ pub(crate) enum TypeSchemaName { #[derive(Serialize, Debug, Clone)] #[serde(untagged)] -pub(crate) enum ValueType { +pub enum ValueType { String(String), // For mutli-args, we use a list of strings List(Vec), @@ -98,7 +99,7 @@ pub enum EventType { } #[derive(Serialize, Debug, Clone)] -pub(crate) struct LogSchemaContext { +pub struct LogSchemaContext { pub hostname: String, pub process_id: String, pub stage: Option, @@ -109,7 +110,7 @@ pub(crate) struct LogSchemaContext { } #[derive(Serialize, Debug, Clone)] -pub(crate) struct EventChain { +pub struct EventChain { pub function_name: String, pub variant_name: Option, } @@ -122,8 +123,8 @@ pub(crate) struct Error { pub r#override: Option>, } -#[derive(Serialize, Debug, Deserialize, Default)] -pub(crate) struct LLMOutputModelMetadata { +#[derive(Serialize, Debug, Deserialize, Default, Clone)] +pub struct LLMOutputModelMetadata { pub logprobs: Option, pub prompt_tokens: Option, pub output_tokens: Option, @@ -131,32 +132,36 @@ pub(crate) struct LLMOutputModelMetadata { pub finish_reason: Option, } -#[derive(Serialize, Debug)] -pub(crate) struct LLMOutputModel { +#[derive(Serialize, Debug, Clone)] +pub struct LLMOutputModel { pub raw_text: String, pub metadata: LLMOutputModelMetadata, pub r#override: Option>, } -#[derive(Serialize, Debug)] +#[derive(Serialize, Debug, Clone)] pub(crate) struct LLMChat { pub role: Role, pub content: Vec, } -#[derive(Serialize, Debug)] -pub(crate) enum ContentPart { +#[derive(Serialize, Debug, Clone)] +pub enum ContentPart { #[serde(rename = "text")] Text(String), #[serde(rename = "url_image")] UrlImage(String), #[serde(rename = "b64_image")] B64Image(String), + #[serde(rename = "url_audio")] + UrlAudio(String), + #[serde(rename = "b64_audio")] + B64Audio(String), } -#[derive(Serialize, Debug, Deserialize)] +#[derive(Serialize, Debug, Deserialize, Clone)] #[serde(untagged)] -pub(crate) enum Role { +pub enum Role { #[serde(rename = "assistant")] Assistant, #[serde(rename = "user")] @@ -166,14 +171,15 @@ pub(crate) enum Role { Other(String), } -#[derive(Serialize, Debug)] +#[derive(Serialize, Debug, Clone)] pub(crate) struct LLMEventInput { pub prompt: LLMEventInputPrompt, - pub invocation_params: HashMap, + #[serde(rename = "invocation_params")] + pub request_options: HashMap, } -#[derive(Serialize, Debug)] -pub(crate) struct LLMEventSchema { +#[derive(Serialize, Debug, Clone)] +pub struct LLMEventSchema { pub model_name: String, pub provider: String, pub input: LLMEventInput, @@ -181,20 +187,21 @@ pub(crate) struct LLMEventSchema { pub error: Option, } -#[derive(Serialize, Debug)] +#[derive(Serialize, Debug, Clone)] #[serde(untagged)] pub(crate) enum MetadataType { + #[allow(dead_code)] Single(LLMEventSchema), Multi(Vec), } -#[derive(Serialize, Debug)] -pub(crate) struct LLMEventInputPrompt { +#[derive(Serialize, Debug, Clone)] +pub struct LLMEventInputPrompt { pub template: Template, pub template_args: HashMap, pub r#override: Option>, } -#[derive(Serialize, Debug)] +#[derive(Serialize, Debug, Clone)] #[serde(untagged)] #[allow(dead_code)] pub enum Template { diff --git a/engine/baml-runtime/src/tracing/api_wrapper/env_setup.rs b/engine/baml-runtime/src/tracing/api_wrapper/env_setup.rs index 0388003af..fbaf88582 100644 --- a/engine/baml-runtime/src/tracing/api_wrapper/env_setup.rs +++ b/engine/baml-runtime/src/tracing/api_wrapper/env_setup.rs @@ -13,12 +13,20 @@ pub struct Config { pub stage: String, #[serde(default = "default_host_name")] pub host_name: String, + #[serde(default)] // default is false + pub log_redaction_enabled: bool, + #[serde(default = "default_redaction_placeholder")] + pub log_redaction_placeholder: String, } fn default_base_url() -> String { "https://app.boundaryml.com/api".to_string() } +fn default_redaction_placeholder() -> String { + "".to_string() +} + fn default_sessions_id() -> String { uuid::Uuid::new_v4().to_string() } diff --git a/engine/baml-runtime/src/tracing/api_wrapper/mod.rs b/engine/baml-runtime/src/tracing/api_wrapper/mod.rs index 7dd70b6e7..665d4714c 100644 --- a/engine/baml-runtime/src/tracing/api_wrapper/mod.rs +++ b/engine/baml-runtime/src/tracing/api_wrapper/mod.rs @@ -2,23 +2,22 @@ mod env_setup; use anyhow::Result; pub(super) mod api_interface; -pub(super) mod core_types; -use instant::Duration; +pub(crate) mod core_types; use serde::{de::DeserializeOwned, Deserialize}; use serde_json::{json, Value}; -use crate::request::create_client; +use crate::request::create_tracing_client; pub(super) use self::api_interface::{BoundaryAPI, BoundaryTestAPI}; use self::core_types::{TestCaseStatus, UpdateTestCase}; #[derive(Debug, Clone)] pub struct APIWrapper { - config: APIConfig, + pub(super) config: APIConfig, } #[derive(Debug, Clone)] -enum APIConfig { +pub(super) enum APIConfig { LocalOnly(PartialAPIConfig), Web(CompleteAPIConfig), } @@ -59,61 +58,17 @@ impl APIConfig { } } - #[allow(dead_code)] - #[allow(clippy::too_many_arguments)] - pub(crate) fn copy_from( - &self, - base_url: Option<&str>, - api_key: Option<&str>, - project_id: Option<&str>, - sessions_id: Option<&str>, - stage: Option<&str>, - host_name: Option<&str>, - _debug_level: Option, - ) -> Self { - let base_url = base_url.unwrap_or(match self { - Self::LocalOnly(config) => config.base_url.as_str(), - Self::Web(config) => config.base_url.as_str(), - }); - let api_key = api_key.or(match self { - Self::LocalOnly(config) => config.api_key.as_deref(), - Self::Web(config) => Some(config.api_key.as_str()), - }); - let project_id = project_id.or(match self { - Self::LocalOnly(config) => config.project_id.as_deref(), - Self::Web(config) => Some(config.project_id.as_str()), - }); - let sessions_id = sessions_id.unwrap_or_else(|| match self { - Self::LocalOnly(config) => &config.sessions_id, - Self::Web(config) => &config.sessions_id, - }); - let stage = stage.unwrap_or_else(|| match self { - Self::LocalOnly(config) => &config.stage, - Self::Web(config) => &config.stage, - }); - let host_name = host_name.unwrap_or_else(|| match self { - Self::LocalOnly(config) => &config.host_name, - Self::Web(config) => &config.host_name, - }); + pub fn log_redaction_enabled(&self) -> bool { + match self { + Self::LocalOnly(config) => config.log_redaction_enabled, + Self::Web(config) => config.log_redaction_enabled, + } + } - match (api_key, project_id) { - (Some(api_key), Some(project_id)) => Self::Web(CompleteAPIConfig { - base_url: base_url.to_string(), - api_key: api_key.to_string(), - project_id: project_id.to_string(), - stage: stage.to_string(), - sessions_id: sessions_id.to_string(), - host_name: host_name.to_string(), - client: create_client().unwrap(), - }), - _ => Self::LocalOnly(PartialAPIConfig { - base_url: base_url.to_string(), - api_key: api_key.map(String::from), - project_id: project_id.map(String::from), - stage: stage.to_string(), - sessions_id: sessions_id.to_string(), - host_name: host_name.to_string(), - }), + pub fn log_redaction_placeholder(&self) -> &str { + match self { + Self::LocalOnly(config) => &config.log_redaction_placeholder, + Self::Web(config) => &config.log_redaction_placeholder, } } } @@ -126,6 +81,8 @@ pub(super) struct CompleteAPIConfig { pub stage: String, pub sessions_id: String, pub host_name: String, + pub log_redaction_enabled: bool, + pub log_redaction_placeholder: String, client: reqwest::Client, } @@ -140,6 +97,8 @@ pub(super) struct PartialAPIConfig { stage: String, sessions_id: String, host_name: String, + log_redaction_enabled: bool, + log_redaction_placeholder: String, } impl CompleteAPIConfig { @@ -169,6 +128,7 @@ impl CompleteAPIConfig { #[derive(Deserialize)] struct LogResponse { + #[allow(dead_code)] status: Option, } @@ -316,9 +276,12 @@ impl BoundaryTestAPI for APIWrapper { } impl APIWrapper { - pub fn from_env_vars>(value: impl Iterator) -> Self { + pub fn from_env_vars>(value: impl Iterator) -> Result { let config = env_setup::Config::from_env_vars(value).unwrap(); - match (&config.secret, &config.project_id) { + if config.log_redaction_enabled { + log::info!("Redaction enabled: {}", config.log_redaction_enabled); + } + Ok(match (&config.secret, &config.project_id) { (Some(api_key), Some(project_id)) => Self { config: APIConfig::Web(CompleteAPIConfig { base_url: config.base_url, @@ -327,7 +290,9 @@ impl APIWrapper { stage: config.stage, sessions_id: config.sessions_id, host_name: config.host_name, - client: create_client().unwrap(), + client: create_tracing_client()?, + log_redaction_enabled: config.log_redaction_enabled, + log_redaction_placeholder: config.log_redaction_placeholder, }), }, _ => Self { @@ -338,9 +303,11 @@ impl APIWrapper { stage: config.stage, sessions_id: config.sessions_id, host_name: config.host_name, + log_redaction_enabled: config.log_redaction_enabled, + log_redaction_placeholder: config.log_redaction_placeholder, }), }, - } + }) } pub fn enabled(&self) -> bool { diff --git a/engine/baml-runtime/src/tracing/mod.rs b/engine/baml-runtime/src/tracing/mod.rs index 4d3983b98..77215ca7a 100644 --- a/engine/baml-runtime/src/tracing/mod.rs +++ b/engine/baml-runtime/src/tracing/mod.rs @@ -1,22 +1,23 @@ -mod api_wrapper; -#[cfg(not(target_arch = "wasm32"))] -mod threaded_tracer; -#[cfg(target_arch = "wasm32")] -mod wasm_tracer; +pub mod api_wrapper; -use anyhow::Result; -use baml_types::{BamlMap, BamlValue}; +use crate::on_log_event::LogEventCallbackSync; +use crate::InnerTraceStats; +use anyhow::{Context, Result}; +use baml_types::{BamlMap, BamlMediaType, BamlValue}; +use cfg_if::cfg_if; use colored::Colorize; use internal_baml_jinja::RenderedPrompt; -use serde_json::json; use std::collections::HashMap; +use std::sync::{Arc, Mutex}; use uuid::Uuid; use crate::{ client_builder::ClientBuilder, internal::llm_client::LLMResponse, - tracing::api_wrapper::core_types::Role, type_builder::TypeBuilder, FunctionResult, - RuntimeContext, RuntimeContextManager, SpanCtx, TestResponse, + internal::llm_client::LLMResponse, tracing::api_wrapper::core_types::Role, + tracing::api_wrapper::core_types::Role, type_builder::TypeBuilder, type_builder::TypeBuilder, + FunctionResult, FunctionResult, RuntimeContext, RuntimeContext, RuntimeContextManager, + RuntimeContextManager, SpanCtx, SpanCtx, TestResponse, TestResponse, TraceStats, }; use self::api_wrapper::{ @@ -27,16 +28,17 @@ use self::api_wrapper::{ }, APIWrapper, }; -#[cfg(not(target_arch = "wasm32"))] -use self::threaded_tracer::ThreadedTracer; -#[cfg(target_arch = "wasm32")] -use self::wasm_tracer::NonThreadedTracer; +cfg_if! { + if #[cfg(target_arch = "wasm32")] { + mod wasm_tracer; + use self::wasm_tracer::NonThreadedTracer as TracerImpl; + } else { + mod threaded_tracer; + use self::threaded_tracer::ThreadedTracer as TracerImpl; + } +} -#[cfg(not(target_arch = "wasm32"))] -type TracerImpl = ThreadedTracer; -#[cfg(target_arch = "wasm32")] -type TracerImpl = NonThreadedTracer; #[derive(Debug)] pub struct TracingSpan { span_id: Uuid, @@ -48,36 +50,54 @@ pub struct BamlTracer { options: APIWrapper, enabled: bool, tracer: Option, + trace_stats: TraceStats, } +#[cfg(not(target_arch = "wasm32"))] +static_assertions::assert_impl_all!(BamlTracer: Send, Sync); + impl BamlTracer { pub fn new>( options: Option, env_vars: impl Iterator, - ) -> Self { - let options = options.unwrap_or_else(|| APIWrapper::from_env_vars(env_vars)); + ) -> Result { + let options = match options { + Some(wrapper) => wrapper, + None => APIWrapper::from_env_vars(env_vars)?, + }; + + let trace_stats = TraceStats::default(); let tracer = BamlTracer { tracer: if options.enabled() { - Some(TracerImpl::new( - &options, - if options.stage() == "test" { 1 } else { 20 }, - )) + Some(TracerImpl::new(&options, 20, trace_stats.clone())) } else { None }, enabled: options.enabled(), options, + trace_stats, }; - tracer + Ok(tracer) } - pub(crate) fn flush(&self) -> Result<()> { + #[cfg(not(target_arch = "wasm32"))] + pub(crate) fn set_log_event_callback(&self, log_event_callback: LogEventCallbackSync) { if let Some(tracer) = &self.tracer { - tracer.flush() - } else { - Ok(()) + tracer.set_log_event_callback(log_event_callback); + } + } + + pub(crate) fn flush(&self) -> Result<()> { + if let Some(ref tracer) = self.tracer { + tracer.flush().context("Failed to flush BAML traces")?; } + + Ok(()) + } + + pub(crate) fn drain_stats(&self) -> InnerTraceStats { + self.trace_stats.drain() } pub(crate) fn start_span( @@ -86,7 +106,9 @@ impl BamlTracer { ctx: &RuntimeContextManager, params: &BamlMap, ) -> Option { + self.trace_stats.guard().start(); let span_id = ctx.enter(function_name); + log::trace!("Entering span {:#?} in {:?}", span_id, function_name); if !self.enabled { return None; } @@ -106,6 +128,8 @@ impl BamlTracer { ctx: &RuntimeContextManager, response: Option, ) -> Result> { + let guard = self.trace_stats.guard(); + let Some((span_id, event_chain, tags)) = ctx.exit() else { anyhow::bail!( "Attempting to finish a span {:#?} without first starting one. Current context {:#?}", @@ -122,8 +146,10 @@ impl BamlTracer { tracer .submit(response.to_log_schema(&self.options, event_chain, tags, span)) .await?; + guard.done(); Ok(Some(span_id)) } else { + guard.done(); Ok(None) } } @@ -135,6 +161,7 @@ impl BamlTracer { ctx: &RuntimeContextManager, response: Option, ) -> Result> { + let guard = self.trace_stats.guard(); let Some((span_id, event_chain, tags)) = ctx.exit() else { anyhow::bail!( "Attempting to finish a span {:#?} without first starting one. Current context {:#?}", @@ -142,6 +169,12 @@ impl BamlTracer { ctx ); }; + log::trace!( + "Finishing span: {:#?} {}\nevent chain {:?}", + span, + span_id, + event_chain + ); if span.span_id != span_id { anyhow::bail!("Span ID mismatch: {} != {}", span.span_id, span_id); @@ -149,8 +182,10 @@ impl BamlTracer { if let Some(tracer) = &self.tracer { tracer.submit(response.to_log_schema(&self.options, event_chain, tags, span))?; + guard.finalize(); Ok(Some(span_id)) } else { + guard.done(); Ok(None) } } @@ -162,6 +197,7 @@ impl BamlTracer { ctx: &RuntimeContextManager, response: &Result, ) -> Result> { + let guard = self.trace_stats.guard(); let Some((span_id, event_chain, tags)) = ctx.exit() else { anyhow::bail!("Attempting to finish a span without first starting one"); }; @@ -186,8 +222,10 @@ impl BamlTracer { tracer .submit(response.to_log_schema(&self.options, event_chain, tags, span)) .await?; + guard.done(); Ok(Some(span_id)) } else { + guard.done(); Ok(None) } } @@ -199,10 +237,18 @@ impl BamlTracer { ctx: &RuntimeContextManager, response: &Result, ) -> Result> { + let guard = self.trace_stats.guard(); let Some((span_id, event_chain, tags)) = ctx.exit() else { anyhow::bail!("Attempting to finish a span without first starting one"); }; + log::trace!( + "Finishing baml span: {:#?} {}\nevent chain {:?}", + span, + span_id, + event_chain + ); + if span.span_id != span_id { anyhow::bail!("Span ID mismatch: {} != {}", span.span_id, span_id); } @@ -221,8 +267,10 @@ impl BamlTracer { if let Some(tracer) = &self.tracer { tracer.submit(response.to_log_schema(&self.options, event_chain, tags, span))?; + guard.finalize(); Ok(Some(span_id)) } else { + guard.done(); Ok(None) } } @@ -508,7 +556,7 @@ impl From<&LLMResponse> for LLMEventSchema { template_args: Default::default(), r#override: None, }, - invocation_params: Default::default(), + request_options: Default::default(), }, output: None, error: Some(s.clone()), @@ -522,7 +570,7 @@ impl From<&LLMResponse> for LLMEventSchema { template_args: Default::default(), r#override: None, }, - invocation_params: s.invocation_params.clone(), + request_options: s.request_options.clone(), }, output: Some(LLMOutputModel { raw_text: s.content.clone(), @@ -546,7 +594,7 @@ impl From<&LLMResponse> for LLMEventSchema { template_args: Default::default(), r#override: None, }, - invocation_params: s.invocation_params.clone(), + request_options: s.request_options.clone(), }, output: None, error: Some(s.message.clone()), @@ -576,12 +624,32 @@ impl From<&RenderedPrompt> for Template { internal_baml_jinja::ChatMessagePart::Text(t) => { ContentPart::Text(t.clone()) } - internal_baml_jinja::ChatMessagePart::Image( - baml_types::BamlImage::Base64(u), - ) => ContentPart::B64Image(u.base64.clone()), - internal_baml_jinja::ChatMessagePart::Image( - baml_types::BamlImage::Url(u), - ) => ContentPart::UrlImage(u.url.clone()), + internal_baml_jinja::ChatMessagePart::Image(media) + | internal_baml_jinja::ChatMessagePart::Audio(media) => match media + { + baml_types::BamlMedia::Base64(media_type, data) => { + match media_type { + BamlMediaType::Image => { + ContentPart::B64Image(data.base64.clone()) + } + BamlMediaType::Audio => { + ContentPart::B64Audio(data.base64.clone()) + } + _ => panic!("Unsupported media type"), + } + } + baml_types::BamlMedia::Url(media_type, data) => { + match media_type { + BamlMediaType::Image => { + ContentPart::UrlImage(data.url.clone()) + } + BamlMediaType::Audio => { + ContentPart::UrlAudio(data.url.clone()) + } + _ => panic!("Unsupported media type"), + } + } + }, }) .collect::>(), }) diff --git a/engine/baml-runtime/src/tracing/threaded_tracer.rs b/engine/baml-runtime/src/tracing/threaded_tracer.rs index 7871cd677..2994266c4 100644 --- a/engine/baml-runtime/src/tracing/threaded_tracer.rs +++ b/engine/baml-runtime/src/tracing/threaded_tracer.rs @@ -1,155 +1,378 @@ -use std::sync::mpsc::{Receiver, Sender, TryRecvError}; - use anyhow::Result; -use web_time::Duration; +use std::sync::{mpsc, Arc, Mutex}; +use tokio::sync::watch; +use web_time::{Duration, Instant}; + +use crate::{ + on_log_event::{LogEvent, LogEventCallbackSync, LogEventMetadata}, + tracing::api_wrapper::core_types::{ContentPart, MetadataType, Template, ValueType}, + TraceStats, +}; + +use super::api_wrapper::{core_types::LogSchema, APIConfig, APIWrapper, BoundaryAPI}; -use super::api_wrapper::{core_types::LogSchema, APIWrapper, BoundaryAPI}; +const MAX_TRACE_SEND_CONCURRENCY: usize = 10; enum TxEventSignal { + #[allow(dead_code)] Stop, - Flush, + Flush(u128), Submit(LogSchema), } -enum RxEventSignal { - Done, +enum ProcessorStatus { + Active, + Done(u128), } -async fn process_batch_async(api_config: &APIWrapper, batch: Vec) { - log::info!("Processing batch of size: {}", batch.len()); - for work in batch { - match api_config.log_schema(&work).await { - Ok(_) => { - log::debug!( - "Successfully sent log schema: {} - {:?}", - work.event_id, - work.context.event_chain.last() - ); - } - Err(e) => { - log::warn!("Unable to emit BAML logs: {}", e); - } +struct DeliveryThread { + api_config: Arc, + span_rx: mpsc::Receiver, + stop_tx: watch::Sender, + rt: tokio::runtime::Runtime, + max_batch_size: usize, + max_concurrency: Arc, + stats: TraceStats, +} + +impl DeliveryThread { + fn new( + api_config: APIWrapper, + span_rx: mpsc::Receiver, + stop_tx: watch::Sender, + max_batch_size: usize, + stats: TraceStats, + ) -> Self { + let rt = tokio::runtime::Runtime::new().unwrap(); + + Self { + api_config: Arc::new(api_config), + span_rx, + stop_tx, + rt, + max_batch_size, + max_concurrency: tokio::sync::Semaphore::new(MAX_TRACE_SEND_CONCURRENCY).into(), + stats, } } -} -fn process_batch(rt: &tokio::runtime::Runtime, api_config: &APIWrapper, batch: Vec) { - rt.block_on(process_batch_async(api_config, batch)); -} + async fn process_batch(&self, batch: Vec) { + let work = batch + .into_iter() + .map(|work| { + let api_config = self.api_config.clone(); + let semaphore = self.max_concurrency.clone(); + let stats = self.stats.clone(); + stats.guard().send(); -fn batch_processor( - api_config: APIWrapper, - rx: Receiver, - tx: Sender, - max_batch_size: usize, -) { - let api_config = &api_config; - let mut batch = Vec::with_capacity(max_batch_size); - let mut now = std::time::Instant::now(); - let rt = tokio::runtime::Runtime::new().unwrap(); - loop { - // Try to fill the batch up to max_batch_size - let (batch_full, flush, exit) = match rx.recv_timeout(Duration::from_millis(100)) { - Ok(TxEventSignal::Submit(work)) => { - batch.push(work); - (batch.len() >= max_batch_size, false, false) - } - Ok(TxEventSignal::Flush) => (false, true, false), - Ok(TxEventSignal::Stop) => (false, false, true), - Err(std::sync::mpsc::RecvTimeoutError::Timeout) => (false, false, false), - Err(std::sync::mpsc::RecvTimeoutError::Disconnected) => (false, false, true), - }; + let stats_clone = stats.clone(); + async move { + let guard = stats_clone.guard(); + let Ok(_acquired) = semaphore.acquire().await else { + log::warn!( + "Failed to acquire semaphore because it was closed - not sending span" + ); + return; + }; + match api_config.log_schema(&work).await { + Ok(_) => { + guard.done(); + log::debug!( + "Successfully sent log schema: {} - {:?}", + work.event_id, + work.context.event_chain.last() + ); + } + Err(e) => { + log::warn!("Unable to emit BAML logs: {}", e); + } + } + } + }) + .collect::>(); - let time_trigger = now.elapsed().as_millis() >= 1000; + // Wait for all the futures to complete + futures::future::join_all(work).await; + } - let should_process_batch = - (batch_full || flush || exit || time_trigger) && !batch.is_empty(); + fn run(&self) { + let mut batch = Vec::with_capacity(self.max_batch_size); + let mut now = Instant::now(); + loop { + // Try to fill the batch up to max_batch_size + let (batch_full, flush, exit) = + match self.span_rx.recv_timeout(Duration::from_millis(100)) { + Ok(TxEventSignal::Submit(work)) => { + self.stats.guard().submit(); + batch.push(work); + (batch.len() >= self.max_batch_size, None, false) + } + Ok(TxEventSignal::Flush(id)) => (false, Some(id), false), + Ok(TxEventSignal::Stop) => (false, None, true), + Err(mpsc::RecvTimeoutError::Timeout) => (false, None, false), + Err(mpsc::RecvTimeoutError::Disconnected) => (false, None, true), + }; - // Send events every 1 second or when the batch is full - if should_process_batch { - process_batch(&rt, api_config, std::mem::take(&mut batch)); - } + let time_trigger = now.elapsed().as_millis() >= 1000; - if should_process_batch || time_trigger { - now = std::time::Instant::now(); - } + let should_process_batch = + (batch_full || flush.is_some() || exit || time_trigger) && !batch.is_empty(); - if flush { - match tx.send(RxEventSignal::Done) { - Ok(_) => {} - Err(e) => { - println!("Error sending flush signal: {:?}", e); + // Send events every 1 second or when the batch is full + if should_process_batch { + self.rt + .block_on(self.process_batch(std::mem::take(&mut batch))); + } + + if should_process_batch || time_trigger { + now = std::time::Instant::now(); + } + + if let Some(id) = flush { + match self.stop_tx.send(ProcessorStatus::Done(id)) { + Ok(_) => {} + Err(e) => { + log::error!("Error sending flush signal: {:?}", e); + } } } - } - if exit { - return; + if exit { + return; + } } } } pub(super) struct ThreadedTracer { - tx: std::sync::Arc>>, - rx: std::sync::Arc>>, + api_config: Arc, + span_tx: mpsc::Sender, + stop_rx: watch::Receiver, #[allow(dead_code)] join_handle: std::thread::JoinHandle<()>, + log_event_callback: Arc>>, + stats: TraceStats, } impl ThreadedTracer { fn start_worker( api_config: APIWrapper, max_batch_size: usize, + stats: TraceStats, ) -> ( - std::sync::mpsc::Sender, - std::sync::mpsc::Receiver, + mpsc::Sender, + watch::Receiver, std::thread::JoinHandle<()>, ) { - let (tx, rx) = std::sync::mpsc::channel(); - let (stop_tx, stop_rx) = std::sync::mpsc::channel(); - let join_handle = - std::thread::spawn(move || batch_processor(api_config, rx, stop_tx, max_batch_size)); + let (span_tx, span_rx) = mpsc::channel(); + let (stop_tx, stop_rx) = watch::channel(ProcessorStatus::Active); + let join_handle = std::thread::spawn(move || { + DeliveryThread::new(api_config, span_rx, stop_tx, max_batch_size, stats).run(); + }); - (tx, stop_rx, join_handle) + (span_tx, stop_rx, join_handle) } - pub fn new(api_config: &APIWrapper, max_batch_size: usize) -> Self { - let (tx, rx, join_handle) = Self::start_worker(api_config.clone(), max_batch_size); + pub fn new(api_config: &APIWrapper, max_batch_size: usize, stats: TraceStats) -> Self { + let (span_tx, stop_rx, join_handle) = + Self::start_worker(api_config.clone(), max_batch_size, stats.clone()); + Self { - tx: std::sync::Arc::new(std::sync::Mutex::new(tx)), - rx: std::sync::Arc::new(std::sync::Mutex::new(rx)), + api_config: Arc::new(api_config.clone()), + span_tx, + stop_rx, join_handle, + log_event_callback: Arc::new(Mutex::new(None)), + stats, } } pub fn flush(&self) -> Result<()> { - self.tx - .lock() - .map_err(|e| anyhow::anyhow!("Error flushing BatchProcessor: {:?}", e))? - .send(TxEventSignal::Flush)?; + let id = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_millis(); + self.span_tx.send(TxEventSignal::Flush(id))?; - loop { - match self.rx.lock() { - Ok(rx) => match rx.try_recv() { - Ok(RxEventSignal::Done) => return Ok(()), - Err(TryRecvError::Empty) => { - std::thread::sleep(Duration::from_millis(100)); + let flush_start = Instant::now(); + + while flush_start.elapsed() < Duration::from_secs(60) { + { + match *self.stop_rx.borrow() { + ProcessorStatus::Active => {} + ProcessorStatus::Done(r_id) if r_id >= id => { + return Ok(()); } - Err(TryRecvError::Disconnected) => { - return Err(anyhow::anyhow!("BatchProcessor worker thread disconnected")) + ProcessorStatus::Done(id) => { + // Old flush, ignore } - }, - Err(e) => return Err(anyhow::anyhow!("Error flushing BatchProcessor: {:?}", e)), + } } + std::thread::sleep(Duration::from_millis(100)); } + + anyhow::bail!("BatchProcessor worker thread did not finish in time") } - pub fn submit(&self, event: LogSchema) -> Result<()> { - log::info!("Submitting work {}", event.event_id); - let tx = self - .tx - .lock() - .map_err(|e| anyhow::anyhow!("Error submitting work: {:?}", e))?; - tx.send(TxEventSignal::Submit(event))?; + pub fn set_log_event_callback(&self, log_event_callback: LogEventCallbackSync) { + // Get a mutable lock on the log_event_callback + let mut callback_lock = self.log_event_callback.lock().unwrap(); + + *callback_lock = Some(log_event_callback); + } + + pub fn submit(&self, mut event: LogSchema) -> Result<()> { + let callback = self.log_event_callback.lock().unwrap(); + if let Some(ref callback) = *callback { + let event = event.clone(); + let llm_output_model = event.metadata.as_ref().and_then(|m| match m { + MetadataType::Single(llm_event) => Some(llm_event), + // take the last element in the vector + MetadataType::Multi(llm_events) => llm_events.last().clone(), + }); + + let log_event_result = callback(LogEvent { + metadata: LogEventMetadata { + event_id: event.event_id.clone(), + parent_id: event.parent_event_id.clone(), + root_event_id: event.root_event_id.clone(), + }, + prompt: llm_output_model.and_then(|llm_event| { + match llm_event.clone().input.prompt.template { + Template::Single(text) => Some(text), + Template::Multiple(chat_prompt) => { + serde_json::to_string_pretty(&chat_prompt).ok().or_else(|| { + log::debug!( + "Failed to serialize chat prompt for event {}", + event.event_id + ); + None + }) + } + } + }), + raw_output: llm_output_model.and_then(|llm_event| { + llm_event + .clone() + .output + .and_then(|output| Some(output.raw_text)) + }), + parsed_output: event.io.output.and_then(|output| match output.value { + // so the string value looks something like: + // '"[\"d\", \"e\", \"f\"]"' + // so we need to unescape it once and turn it into a normal json + // and then stringify it to get: + // '["d", "e", "f"]' + ValueType::String(value) => serde_json::from_str::(&value) + .ok() + .and_then(|json_value| json_value.as_str().map(|s| s.to_string())) + .or_else(|| Some(value)), + _ => serde_json::to_string_pretty(&output.value) + .ok() + .or_else(|| { + log::debug!( + "Failed to serialize output value for event {}", + event.event_id + ); + None + }), + }), + start_time: event.context.start_time, + }); + + if log_event_result.is_err() { + log::error!( + "Error calling log_event_callback for event id: {}", + event.event_id + ); + } + + log_event_result?; + } + + // TODO: do the redaction + + // Redact the event + event = redact_event(event, &self.api_config.config); + + self.span_tx.send(TxEventSignal::Submit(event))?; Ok(()) } } + +fn redact_event(mut event: LogSchema, api_config: &APIConfig) -> LogSchema { + let redaction_enabled = api_config.log_redaction_enabled(); + let placeholder = api_config.log_redaction_placeholder(); + + if !redaction_enabled { + return event; + } + + let placeholder = placeholder + .replace("{root_event.id}", &event.root_event_id) + .replace("{event.id}", &event.event_id); + + // Redact LLMOutputModel raw_text + if let Some(metadata) = &mut event.metadata { + match metadata { + MetadataType::Single(llm_event) => { + if let Some(output) = &mut llm_event.output { + output.raw_text = placeholder.clone(); + } + } + MetadataType::Multi(llm_events) => { + for llm_event in llm_events { + if let Some(output) = &mut llm_event.output { + output.raw_text = placeholder.clone(); + } + } + } + } + } + + // Redact input IO + if let Some(input) = &mut event.io.input { + match &mut input.value { + ValueType::String(s) => *s = placeholder.clone(), + ValueType::List(v) => v.iter_mut().for_each(|s| *s = placeholder.clone()), + } + } + + // Redact output IO + if let Some(output) = &mut event.io.output { + match &mut output.value { + ValueType::String(s) => *s = placeholder.clone(), + ValueType::List(v) => v.iter_mut().for_each(|s| *s = placeholder.clone()), + } + } + + // Redact LLMEventInput Template + if let Some(metadata) = &mut event.metadata { + match metadata { + MetadataType::Single(llm_event) => { + redact_template(&mut llm_event.input.prompt.template, &placeholder); + } + MetadataType::Multi(llm_events) => { + for llm_event in llm_events { + redact_template(&mut llm_event.input.prompt.template, &placeholder); + } + } + } + } + + event +} + +fn redact_template(template: &mut Template, placeholder: &str) { + match template { + Template::Single(s) => *s = placeholder.to_string(), + Template::Multiple(chats) => { + for chat in chats { + for part in &mut chat.content { + if let ContentPart::Text(s) = part { + *s = placeholder.to_string(); + } + } + } + } + } +} diff --git a/engine/baml-runtime/src/tracing/wasm_tracer.rs b/engine/baml-runtime/src/tracing/wasm_tracer.rs index 3f7c25904..e935bfcc7 100644 --- a/engine/baml-runtime/src/tracing/wasm_tracer.rs +++ b/engine/baml-runtime/src/tracing/wasm_tracer.rs @@ -2,12 +2,14 @@ use anyhow::Result; use super::api_wrapper::{core_types::LogSchema, APIWrapper, BoundaryAPI}; +use crate::TraceStats; + pub(super) struct NonThreadedTracer { options: APIWrapper, } impl NonThreadedTracer { - pub fn new(api_config: &APIWrapper, _max_batch_size: usize) -> Self { + pub fn new(api_config: &APIWrapper, _max_batch_size: usize, _stats: TraceStats) -> Self { Self { options: api_config.clone(), } diff --git a/engine/baml-runtime/src/type_builder/mod.rs b/engine/baml-runtime/src/type_builder/mod.rs index 29d22aec0..aec8acb98 100644 --- a/engine/baml-runtime/src/type_builder/mod.rs +++ b/engine/baml-runtime/src/type_builder/mod.rs @@ -1,11 +1,11 @@ -use std::collections::HashMap; use std::sync::{Arc, Mutex}; use baml_types::{BamlValue, FieldType}; +use indexmap::IndexMap; use crate::runtime_context::{PropertyAttributes, RuntimeClassOverride, RuntimeEnumOverride}; -type MetaData = Arc>>; +type MetaData = Arc>>; trait Meta { fn meta(&self) -> MetaData; @@ -55,7 +55,7 @@ impl From<&Arc>> for PropertyAttributes { } pub struct ClassBuilder { - properties: Arc>>>>, + properties: Arc>>>>, meta: MetaData, } impl_meta!(ClassBuilder); @@ -93,7 +93,7 @@ impl ClassBuilder { } pub struct EnumBuilder { - values: Arc>>>>, + values: Arc>>>>, meta: MetaData, } impl_meta!(EnumBuilder); @@ -121,10 +121,43 @@ impl EnumBuilder { } } +impl std::fmt::Debug for TypeBuilder { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // Start the debug printout with the struct name + write!(f, "TypeBuilder {{\n")?; + + // Safely attempt to acquire the lock and print classes + write!(f, " classes: ")?; + match self.classes.lock() { + Ok(classes) => { + // We iterate through the keys only to avoid deadlocks and because we might not be able to print the values + // safely without deep control over locking mechanisms + let keys: Vec<_> = classes.keys().collect(); + write!(f, "{:?},\n", keys)? + } + Err(_) => write!(f, "Cannot acquire lock,\n")?, + } + + // Safely attempt to acquire the lock and print enums + write!(f, " enums: ")?; + match self.enums.lock() { + Ok(enums) => { + // Similarly, print only the keys + let keys: Vec<_> = enums.keys().collect(); + write!(f, "{:?}\n", keys)? + } + Err(_) => write!(f, "Cannot acquire lock,\n")?, + } + + // Close the struct printout + write!(f, "}}") + } +} + #[derive(Clone)] pub struct TypeBuilder { - classes: Arc>>>>, - enums: Arc>>>>, + classes: Arc>>>>, + enums: Arc>>>>, } impl TypeBuilder { @@ -158,8 +191,8 @@ impl TypeBuilder { pub fn to_overrides( &self, ) -> ( - HashMap, - HashMap, + IndexMap, + IndexMap, ) { log::debug!("Converting types to overrides"); let cls = self @@ -232,7 +265,11 @@ impl TypeBuilder { ) }) .collect(); - + log::debug!( + "Dynamic types: \n {:#?} \n Dynamic enums\n {:#?} enums", + cls, + enm + ); (cls, enm) } } diff --git a/engine/baml-runtime/src/types/context_manager.rs b/engine/baml-runtime/src/types/context_manager.rs index b9ec40d08..45f310979 100644 --- a/engine/baml-runtime/src/types/context_manager.rs +++ b/engine/baml-runtime/src/types/context_manager.rs @@ -147,7 +147,7 @@ impl RuntimeContextManager { let ctx = self.context.lock().unwrap(); let env_vars = env_vars - .map(|x| (x.as_ref().to_string(), "".to_string())) + .map(|x| (x.as_ref().to_string(), format!("${{{}}}", x.as_ref()))) .chain(self.env_vars.iter().map(|(k, v)| (k.clone(), v.clone()))); RuntimeContext { diff --git a/engine/baml-runtime/src/types/mod.rs b/engine/baml-runtime/src/types/mod.rs index b904ddfdd..33dce094c 100644 --- a/engine/baml-runtime/src/types/mod.rs +++ b/engine/baml-runtime/src/types/mod.rs @@ -1,10 +1,13 @@ mod context_manager; mod expression_helper; +pub mod on_log_event; mod response; pub(crate) mod runtime_context; mod stream; +mod trace_stats; pub use context_manager::RuntimeContextManager; pub use response::{FunctionResult, TestFailReason, TestResponse, TestStatus}; pub use runtime_context::{RuntimeContext, SpanCtx}; pub use stream::FunctionResultStream; +pub use trace_stats::{InnerTraceStats, TraceStats}; diff --git a/engine/baml-runtime/src/types/on_log_event.rs b/engine/baml-runtime/src/types/on_log_event.rs new file mode 100644 index 000000000..2d2bd1b91 --- /dev/null +++ b/engine/baml-runtime/src/types/on_log_event.rs @@ -0,0 +1,22 @@ +use anyhow::Error; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct LogEvent { + pub metadata: LogEventMetadata, + pub prompt: Option, + pub raw_output: Option, + // json structure or a string + pub parsed_output: Option, + pub start_time: String, +} + +#[derive(Debug, Serialize, Deserialize, Clone)] + +pub struct LogEventMetadata { + pub event_id: String, + pub parent_id: Option, + pub root_event_id: String, +} + +pub type LogEventCallbackSync = Box Result<(), Error> + Send + Sync>; diff --git a/engine/baml-runtime/src/types/response.rs b/engine/baml-runtime/src/types/response.rs index 124e0939c..0ea4f033b 100644 --- a/engine/baml-runtime/src/types/response.rs +++ b/engine/baml-runtime/src/types/response.rs @@ -166,7 +166,6 @@ impl TestResponse { } } -use std::any::Any; #[cfg(test)] use std::process::Termination; diff --git a/engine/baml-runtime/src/types/runtime_context.rs b/engine/baml-runtime/src/types/runtime_context.rs index a6273c191..353e05f8f 100644 --- a/engine/baml-runtime/src/types/runtime_context.rs +++ b/engine/baml-runtime/src/types/runtime_context.rs @@ -1,5 +1,6 @@ use anyhow::Result; use baml_types::BamlValue; +use indexmap::IndexMap; use internal_baml_core::ir::{repr::Expression, FieldType}; use serde; use serde_json; @@ -17,20 +18,20 @@ pub struct SpanCtx { pub struct PropertyAttributes { pub(crate) alias: Option, pub(crate) skip: Option, - pub(crate) meta: HashMap, + pub(crate) meta: IndexMap, } #[derive(Debug)] pub struct RuntimeEnumOverride { pub(crate) alias: Option, - pub(crate) values: HashMap, + pub(crate) values: IndexMap, } #[derive(Debug)] pub struct RuntimeClassOverride { pub(crate) alias: Option, - pub(crate) new_fields: HashMap, - pub(crate) update_fields: HashMap, + pub(crate) new_fields: IndexMap, + pub(crate) update_fields: IndexMap, } #[derive(Debug)] diff --git a/engine/baml-runtime/src/types/stream.rs b/engine/baml-runtime/src/types/stream.rs index 1db8e87eb..cceed1c7e 100644 --- a/engine/baml-runtime/src/types/stream.rs +++ b/engine/baml-runtime/src/types/stream.rs @@ -1,30 +1,20 @@ use anyhow::Result; -use futures::{stream::StreamExt, Stream}; use internal_baml_core::ir::repr::IntermediateRepr; -use internal_baml_core::ir::IRHelper; -use internal_baml_jinja::Type; use std::{rc, sync::Arc}; use crate::{ client_builder::ClientBuilder, internal::{ - llm_client::{ - orchestrator::{ - self, orchestrate_stream, LLMPrimitiveProvider, OrchestrationScope, - OrchestratorNodeIterator, - }, - ErrorCode, LLMErrorResponse, - }, + llm_client::orchestrator::{orchestrate_stream, OrchestratorNodeIterator}, prompt_renderer::PromptRenderer, }, tracing::BamlTracer, type_builder::TypeBuilder, - FunctionResult, RuntimeContext, RuntimeContextManager, + FunctionResult, RuntimeContextManager, }; -use super::response::LLMResponse; /// Wrapper that holds a stream of responses from a BAML function call. /// diff --git a/engine/baml-runtime/src/types/trace_stats.rs b/engine/baml-runtime/src/types/trace_stats.rs new file mode 100644 index 000000000..2dd772aed --- /dev/null +++ b/engine/baml-runtime/src/types/trace_stats.rs @@ -0,0 +1,116 @@ +/// Stats about all the spans sent to the tracer. +/// +/// A span has the following lifecycle and can fail at any of these points: +/// +/// ```text +/// start -> finalize (ctx.exit) -> submit -> send +/// ``` +/// +use std::sync::{Arc, Mutex}; + +#[derive(Clone, Default)] +pub struct InnerTraceStats { + // Happen on the main runtime thread. + pub started: u32, + pub finalized: u32, + pub submitted: u32, + + // Happen on the tracer thread. + pub sent: u32, + pub done: u32, + // All errors are counted here. + pub failed: u32, +} + +#[derive(Clone, Default)] +pub struct TraceStats { + inner: Arc>, +} + +impl TraceStats { + pub fn drain(&self) -> InnerTraceStats { + let mut inner = self.inner.lock().unwrap(); + let result = inner.clone(); + *inner = InnerTraceStats::default(); + result + } + + pub fn guard(&self) -> SpanGuard { + SpanGuard::new(self.clone()) + } + + // Add methods to access and modify the inner fields if needed + fn inc_started(&self) { + let mut inner = self.inner.lock().unwrap(); + inner.started += 1; + } + + fn inc_finalized(&self) { + let mut inner = self.inner.lock().unwrap(); + inner.finalized += 1; + } + + fn inc_submitted(&self) { + let mut inner = self.inner.lock().unwrap(); + inner.submitted += 1; + } + + fn inc_sent(&self) { + let mut inner = self.inner.lock().unwrap(); + inner.sent += 1; + } + + fn inc_done(&self) { + let mut inner = self.inner.lock().unwrap(); + inner.done += 1; + } + + fn inc_failed(&self) { + let mut inner = self.inner.lock().unwrap(); + inner.failed += 1; + } +} + +pub struct SpanGuard { + stats: TraceStats, + used: bool, +} + +impl SpanGuard { + pub fn new(stats: TraceStats) -> Self { + Self { stats, used: false } + } + + pub fn start(mut self) { + self.stats.inc_started(); + self.used = true; + } + + pub fn finalize(mut self) { + self.stats.inc_finalized(); + self.used = true; + } + + pub fn submit(mut self) { + self.stats.inc_submitted(); + self.used = true; + } + + pub fn send(mut self) { + self.stats.inc_sent(); + self.used = true; + } + + pub fn done(mut self) { + self.stats.inc_done(); + self.used = true; + } +} + +impl Drop for SpanGuard { + fn drop(&mut self) { + if !self.used { + self.stats.inc_failed(); + } + } +} diff --git a/engine/baml-runtime/tests/test_runtime.rs b/engine/baml-runtime/tests/test_runtime.rs index d6feef72a..f20b70f50 100644 --- a/engine/baml-runtime/tests/test_runtime.rs +++ b/engine/baml-runtime/tests/test_runtime.rs @@ -3,9 +3,9 @@ mod internal_tests { use std::collections::HashMap; use baml_runtime::BamlRuntime; - use baml_runtime::RuntimeContext; + use baml_types::BamlValue; - use indexmap::IndexMap; + use wasm_bindgen_test::*; use wasm_logger; diff --git a/engine/baml-schema-wasm/.gitignore b/engine/baml-schema-wasm/.gitignore index 5dd5b276a..413b5ac36 100644 --- a/engine/baml-schema-wasm/.gitignore +++ b/engine/baml-schema-wasm/.gitignore @@ -1,2 +1,3 @@ +dist/src/* nodejs/src/* web/src/* diff --git a/engine/baml-schema-wasm/Cargo.toml b/engine/baml-schema-wasm/Cargo.toml index 32e0cf61c..a7ffecb09 100644 --- a/engine/baml-schema-wasm/Cargo.toml +++ b/engine/baml-schema-wasm/Cargo.toml @@ -25,11 +25,13 @@ log.workspace = true serde.workspace = true serde_json.workspace = true serde-wasm-bindgen = "0.4" +time.workspace = true uuid = { version = "1.8", features = ["v4", "js"] } wasm-bindgen = "=0.2.92" wasm-bindgen-futures = "0.4.42" wasm-logger = { version = "0.2.0" } web-time.workspace = true +either = "1.8.1" [dependencies.web-sys] version = "0.3.69" diff --git a/engine/baml-schema-wasm/dist/src/baml_schema_build.d.ts b/engine/baml-schema-wasm/dist/src/baml_schema_build.d.ts deleted file mode 100644 index 656836ca6..000000000 --- a/engine/baml-schema-wasm/dist/src/baml_schema_build.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** -* Docs: https://prisma.github.io/prisma-engines/doc/prisma_fmt/fn.get_config.html -* @param {string} input -* @returns {string} -*/ -export function lint(input: string): string; -/** -* @param {string} params -*/ -export function validate(params: string): void; -/** -* The API is modelled on an LSP [completion -* request](https://github.com/microsoft/language-server-protocol/blob/gh-pages/_specifications/specification-3-16.md#textDocument_completion). -* Input and output are both JSON, the request being a `CompletionParams` object and the response -* being a `CompletionList` object. -* This API is modelled on an LSP [code action -* request](https://github.com/microsoft/language-server-protocol/blob/gh-pages/_specifications/specification-3-16.md#textDocument_codeAction=). -* Input and output are both JSON, the request being a -* `CodeActionParams` object and the response being a list of -* `CodeActionOrCommand` objects. -* Trigger a panic inside the wasm module. This is only useful in development for testing panic -* handling. -*/ -export function debug_panic(): void; diff --git a/engine/baml-schema-wasm/dist/src/baml_schema_build.js b/engine/baml-schema-wasm/dist/src/baml_schema_build.js deleted file mode 100644 index 7ea35edf0..000000000 --- a/engine/baml-schema-wasm/dist/src/baml_schema_build.js +++ /dev/null @@ -1,191 +0,0 @@ -let imports = {}; -imports['__wbindgen_placeholder__'] = module.exports; -let wasm; -const { TextDecoder, TextEncoder } = require(`util`); - -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -let cachedUint8Memory0 = null; - -function getUint8Memory0() { - if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { - cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8Memory0; -} - -function getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - -const heap = new Array(128).fill(undefined); - -heap.push(undefined, null, true, false); - -let heap_next = heap.length; - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - -let WASM_VECTOR_LEN = 0; - -let cachedTextEncoder = new TextEncoder('utf-8'); - -const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' - ? function (arg, view) { - return cachedTextEncoder.encodeInto(arg, view); -} - : function (arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length - }; -}); - -function passStringToWasm0(arg, malloc, realloc) { - - if (realloc === undefined) { - const buf = cachedTextEncoder.encode(arg); - const ptr = malloc(buf.length, 1) >>> 0; - getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr; - } - - let len = arg.length; - let ptr = malloc(len, 1) >>> 0; - - const mem = getUint8Memory0(); - - let offset = 0; - - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 0x7F) break; - mem[ptr + offset] = code; - } - - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; - const view = getUint8Memory0().subarray(ptr + offset, ptr + len); - const ret = encodeString(arg, view); - - offset += ret.written; - } - - WASM_VECTOR_LEN = offset; - return ptr; -} - -let cachedInt32Memory0 = null; - -function getInt32Memory0() { - if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { - cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); - } - return cachedInt32Memory0; -} -/** -* Docs: https://prisma.github.io/prisma-engines/doc/prisma_fmt/fn.get_config.html -* @param {string} input -* @returns {string} -*/ -module.exports.lint = function(input) { - let deferred2_0; - let deferred2_1; - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - const ptr0 = passStringToWasm0(input, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.lint(retptr, ptr0, len0); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - deferred2_0 = r0; - deferred2_1 = r1; - return getStringFromWasm0(r0, r1); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } -}; - -function getObject(idx) { return heap[idx]; } - -function dropObject(idx) { - if (idx < 132) return; - heap[idx] = heap_next; - heap_next = idx; -} - -function takeObject(idx) { - const ret = getObject(idx); - dropObject(idx); - return ret; -} -/** -* @param {string} params -*/ -module.exports.validate = function(params) { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - const ptr0 = passStringToWasm0(params, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.validate(retptr, ptr0, len0); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - if (r1) { - throw takeObject(r0); - } - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } -}; - -/** -* The API is modelled on an LSP [completion -* request](https://github.com/microsoft/language-server-protocol/blob/gh-pages/_specifications/specification-3-16.md#textDocument_completion). -* Input and output are both JSON, the request being a `CompletionParams` object and the response -* being a `CompletionList` object. -* This API is modelled on an LSP [code action -* request](https://github.com/microsoft/language-server-protocol/blob/gh-pages/_specifications/specification-3-16.md#textDocument_codeAction=). -* Input and output are both JSON, the request being a -* `CodeActionParams` object and the response being a list of -* `CodeActionOrCommand` objects. -* Trigger a panic inside the wasm module. This is only useful in development for testing panic -* handling. -*/ -module.exports.debug_panic = function() { - wasm.debug_panic(); -}; - -module.exports.__wbg_setmessage_20c12941eb9d34d6 = function(arg0, arg1) { - global.PRISMA_WASM_PANIC_REGISTRY.set_message(getStringFromWasm0(arg0, arg1)); -}; - -module.exports.__wbindgen_error_new = function(arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); -}; - -const path = require('path').join(__dirname, 'baml_schema_build_bg.wasm'); -const bytes = require('fs').readFileSync(path); - -const wasmModule = new WebAssembly.Module(bytes); -const wasmInstance = new WebAssembly.Instance(wasmModule, imports); -wasm = wasmInstance.exports; -module.exports.__wasm = wasm; - diff --git a/engine/baml-schema-wasm/dist/src/baml_schema_build_bg.wasm b/engine/baml-schema-wasm/dist/src/baml_schema_build_bg.wasm deleted file mode 100644 index 767d52dbc..000000000 Binary files a/engine/baml-schema-wasm/dist/src/baml_schema_build_bg.wasm and /dev/null differ diff --git a/engine/baml-schema-wasm/dist/src/baml_schema_build_bg.wasm.d.ts b/engine/baml-schema-wasm/dist/src/baml_schema_build_bg.wasm.d.ts deleted file mode 100644 index 9d72fc65f..000000000 --- a/engine/baml-schema-wasm/dist/src/baml_schema_build_bg.wasm.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export const memory: WebAssembly.Memory; -export function lint(a: number, b: number, c: number): void; -export function validate(a: number, b: number, c: number): void; -export function debug_panic(): void; -export function __wbindgen_add_to_stack_pointer(a: number): number; -export function __wbindgen_malloc(a: number, b: number): number; -export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number; -export function __wbindgen_free(a: number, b: number, c: number): void; diff --git a/engine/baml-schema-wasm/src/runtime_wasm/mod.rs b/engine/baml-schema-wasm/src/runtime_wasm/mod.rs index c4e91212e..a84141794 100644 --- a/engine/baml-schema-wasm/src/runtime_wasm/mod.rs +++ b/engine/baml-schema-wasm/src/runtime_wasm/mod.rs @@ -8,10 +8,13 @@ use baml_runtime::{ internal::llm_client::LLMResponse, BamlRuntime, DiagnosticsError, IRHelper, RenderedPrompt, }; use baml_types::{BamlMap, BamlValue}; + use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::path::PathBuf; + use wasm_bindgen::prelude::*; + //Run: wasm-pack test --firefox --headless --features internal,wasm // but for browser we likely need to do wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser); // Node is run using: wasm-pack test --node --features internal,wasm @@ -58,14 +61,6 @@ pub struct SymbolLocation { pub end_character: usize, } -// impl std::error::Error for WasmDiagnosticError {} - -// impl std::fmt::Display for WasmDiagnosticError { -// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { -// write!(f, "{:?}", self.errors) -// } -// } - #[wasm_bindgen] impl WasmDiagnosticError { #[wasm_bindgen] @@ -262,6 +257,8 @@ pub struct WasmFunction { pub test_cases: Vec, #[wasm_bindgen(readonly)] pub test_snippet: String, + #[wasm_bindgen(readonly)] + pub signature: String, } #[wasm_bindgen(getter_with_clone, inspectable)] @@ -273,6 +270,31 @@ pub struct WasmSpan { pub start: usize, #[wasm_bindgen(readonly)] pub end: usize, + #[wasm_bindgen(readonly)] + pub start_line: usize, +} + +impl From<&baml_runtime::internal_core::internal_baml_diagnostics::Span> for WasmSpan { + fn from(span: &baml_runtime::internal_core::internal_baml_diagnostics::Span) -> Self { + let (start, end) = span.line_and_column(); + WasmSpan { + file_path: span.file.path().to_string(), + start: span.start, + end: span.end, + start_line: start.0, + } + } +} + +impl Default for WasmSpan { + fn default() -> Self { + WasmSpan { + file_path: "".to_string(), + start: 0, + end: 0, + start_line: 0, + } + } } #[wasm_bindgen(getter_with_clone, inspectable)] @@ -284,6 +306,8 @@ pub struct WasmTestCase { pub inputs: Vec, #[wasm_bindgen(readonly)] pub error: Option, + #[wasm_bindgen(readonly)] + pub span: WasmSpan, } #[wasm_bindgen(getter_with_clone, inspectable)] @@ -306,6 +330,7 @@ pub struct WasmFunctionResponse { pub struct WasmTestResponse { test_response: anyhow::Result, span: Option, + tracing_project_id: Option, } #[wasm_bindgen] @@ -324,6 +349,9 @@ pub struct WasmLLMResponse { pub content: String, pub start_time_unix_ms: u64, pub latency_ms: u64, + pub input_tokens: Option, + pub output_tokens: Option, + pub total_tokens: Option, } #[wasm_bindgen(getter_with_clone, inspectable)] @@ -450,6 +478,46 @@ impl WasmTestResponse { Err(e) => Some(e.to_string()), } } + + fn _trace_url(&self) -> anyhow::Result { + let test_response = match self.test_response.as_ref() { + Ok(t) => t, + Err(e) => anyhow::bail!("Failed to get test response: {:?}", e), + }; + let start_time = match test_response.function_response.llm_response() { + LLMResponse::Success(s) => s.start_time, + LLMResponse::LLMFailure(f) => f.start_time, + _ => anyhow::bail!("Test has no start time"), + }; + let start_time = time::OffsetDateTime::from_unix_timestamp( + start_time + .duration_since(web_time::UNIX_EPOCH)? + .as_secs() + .try_into()?, + )? + .format(&time::format_description::well_known::Rfc3339)?; + + let event_span_id = self + .span + .as_ref() + .ok_or(anyhow::anyhow!("Test has no span ID"))? + .to_string(); + let subevent_span_id = test_response + .function_span + .as_ref() + .ok_or(anyhow::anyhow!("Function call has no span ID"))? + .to_string(); + + Ok(format!( + "https://app.boundaryml.com/dashboard/projects/{}/drilldown?start_time={start_time}&eid={event_span_id}&s_eid={subevent_span_id}&test=false&onlyRootEvents=true", + self.tracing_project_id.as_ref().ok_or(anyhow::anyhow!("No project ID specified"))? + )) + } + + #[wasm_bindgen] + pub fn trace_url(&self) -> Option { + self._trace_url().ok() + } } fn llm_response_to_wasm_error( @@ -500,6 +568,9 @@ impl IntoWasm .unwrap_or(web_time::Duration::ZERO) .as_millis() as u64, latency_ms: s.latency.as_millis() as u64, + input_tokens: s.metadata.prompt_tokens, + output_tokens: s.metadata.output_tokens, + total_tokens: s.metadata.total_tokens, }), _ => None, } @@ -560,6 +631,9 @@ fn get_dummy_value( baml_runtime::TypeValue::Image => { "{ url \"https://imgs.xkcd.com/comics/standards.png\"}".to_string() } + baml_runtime::TypeValue::Audio => { + "{ url \"https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg\"}".to_string() + } }; Some(dummy) @@ -698,21 +772,27 @@ impl WasmRuntime { ); let wasm_span = match f.span() { - Some(span) => WasmSpan { - file_path: span.file.path().to_string(), - start: span.start, - end: span.end, - }, - None => WasmSpan { - file_path: "".to_string(), - start: 0, - end: 0, - }, + Some(span) => span.into(), + None => WasmSpan::default(), }; WasmFunction { name: f.name().to_string(), span: wasm_span, + signature: { + let inputs = f + .inputs() + .right() + .map(|func_params| { + func_params + .iter() + .map(|(k, t)| format!("{}: {}", k, t)) + .collect::>() + .join(", ") + }) + .unwrap_or_default(); + format!("({}) -> {}", inputs, f.output().to_string()) + }, test_snippet: snippet, test_cases: f .walk_tests() @@ -767,10 +847,16 @@ impl WasmRuntime { } }); + let wasm_span = match tc.span() { + Some(span) => span.into(), + None => WasmSpan::default(), + }; + WasmTestCase { name: tc.test_case().name.clone(), inputs: params, error, + span: wasm_span, } }) .collect(), @@ -809,7 +895,7 @@ impl WasmRuntime { if let Ok(walker) = runtime.find_class(symbol) { let elem = walker.span().unwrap(); - let uri_str = elem.file.path().to_string(); // Store the String in a variable + let _uri_str = elem.file.path().to_string(); // Store the String in a variable let ((s_line, s_character), (e_line, e_character)) = elem.line_and_column(); return Some(SymbolLocation { uri: elem.file.path().to_string(), // Use the variable here @@ -823,7 +909,7 @@ impl WasmRuntime { if let Ok(walker) = runtime.find_function(symbol) { let elem = walker.span().unwrap(); - let uri_str = elem.file.path().to_string(); // Store the String in a variable + let _uri_str = elem.file.path().to_string(); // Store the String in a variable let ((s_line, s_character), (e_line, e_character)) = elem.line_and_column(); return Some(SymbolLocation { uri: elem.file.path().to_string(), // Use the variable here @@ -837,7 +923,7 @@ impl WasmRuntime { if let Ok(walker) = runtime.find_client(symbol) { let elem = walker.span().unwrap(); - let uri_str = elem.file.path().to_string(); // Store the String in a variable + let _uri_str = elem.file.path().to_string(); // Store the String in a variable let ((s_line, s_character), (e_line, e_character)) = elem.line_and_column(); return Some(SymbolLocation { @@ -852,7 +938,7 @@ impl WasmRuntime { if let Ok(walker) = runtime.find_retry_policy(symbol) { let elem = walker.span().unwrap(); - let uri_str = elem.file.path().to_string(); // Store the String in a variable + let _uri_str = elem.file.path().to_string(); // Store the String in a variable let ((s_line, s_character), (e_line, e_character)) = elem.line_and_column(); return Some(SymbolLocation { uri: elem.file.path().to_string(), // Use the variable here @@ -865,7 +951,7 @@ impl WasmRuntime { if let Ok(walker) = runtime.find_template_string(symbol) { let elem = walker.span().unwrap(); - let uri_str = elem.file.path().to_string(); // Store the String in a variable + let _uri_str = elem.file.path().to_string(); // Store the String in a variable let ((s_line, s_character), (e_line, e_character)) = elem.line_and_column(); return Some(SymbolLocation { uri: elem.file.path().to_string(), // Use the variable here @@ -924,6 +1010,41 @@ impl WasmFunction { .map_err(|e| wasm_bindgen::JsError::new(format!("{e:?}").as_str())) } + #[wasm_bindgen] + pub async fn render_raw_curl( + &self, + rt: &WasmRuntime, + params: JsValue, + stream: bool, + ) -> Result { + let params = serde_wasm_bindgen::from_value::>(params)?; + let missing_env_vars = rt.runtime.internal().ir().required_env_vars(); + + let ctx = rt + .runtime + .create_ctx_manager(BamlValue::String("wasm".to_string())) + .create_ctx_with_default(missing_env_vars.iter()); + + let result = rt + .runtime + .internal() + .render_prompt(&self.name, &ctx, ¶ms, None); + + let final_prompt = match result { + Ok((prompt, _)) => match prompt { + RenderedPrompt::Chat(chat_messages) => chat_messages, + RenderedPrompt::Completion(_) => vec![], // or handle this case differently + }, + Err(e) => return Err(wasm_bindgen::JsError::new(format!("{:#?}", e).as_str())), + }; + + rt.runtime + .internal() + .render_raw_curl(&self.name, &ctx, &final_prompt, stream, None) + .await + .map_err(|e| wasm_bindgen::JsError::new(format!("{e:#?}").as_str())) + } + #[wasm_bindgen] pub async fn run_test( &self, @@ -952,6 +1073,7 @@ impl WasmFunction { Ok(WasmTestResponse { test_response, span, + tracing_project_id: rt.env_vars().get("BOUNDARY_PROJECT_ID").cloned(), }) } } diff --git a/engine/baml-schema-wasm/src/runtime_wasm/runtime_prompt.rs b/engine/baml-schema-wasm/src/runtime_wasm/runtime_prompt.rs index 7359e2c7e..2be7177e1 100644 --- a/engine/baml-schema-wasm/src/runtime_wasm/runtime_prompt.rs +++ b/engine/baml-schema-wasm/src/runtime_wasm/runtime_prompt.rs @@ -2,7 +2,7 @@ use baml_runtime::{ internal::llm_client::orchestrator::OrchestrationScope, ChatMessagePart, RenderedPrompt, }; -use baml_types::BamlImage; +use baml_types::{BamlMedia, BamlMediaType, MediaBase64}; use wasm_bindgen::prelude::*; #[wasm_bindgen(getter_with_clone)] @@ -52,6 +52,11 @@ impl WasmChatMessagePart { matches!(self.part, ChatMessagePart::Image(_)) } + #[wasm_bindgen] + pub fn is_audio(&self) -> bool { + matches!(self.part, ChatMessagePart::Audio(_)) + } + #[wasm_bindgen] pub fn as_text(&self) -> Option { if let ChatMessagePart::Text(s) = &self.part { @@ -65,8 +70,24 @@ impl WasmChatMessagePart { pub fn as_image(&self) -> Option { if let ChatMessagePart::Image(s) = &self.part { Some(match s { - BamlImage::Url(u) => u.url.clone(), - BamlImage::Base64(b) => b.base64.clone(), + BamlMedia::Url(BamlMediaType::Image, u) => u.url.clone(), + BamlMedia::Base64(BamlMediaType::Image, b) => b.base64.clone(), + _ => return None, // This will match any other case and return None + }) + } else { + None + } + } + + #[wasm_bindgen] + pub fn as_audio(&self) -> Option { + if let ChatMessagePart::Audio(s) = &self.part { + Some(match s { + BamlMedia::Url(BamlMediaType::Audio, u) => u.url.clone(), + BamlMedia::Base64(_, MediaBase64 { base64, media_type }) => { + format!("data:{};base64,{}", media_type, base64.clone()) + } + _ => return None, // This will match any other case and return None }) } else { None @@ -89,6 +110,10 @@ impl WasmPrompt { #[wasm_bindgen] pub fn as_chat(&self) -> Option> { if let RenderedPrompt::Chat(s) = &self.prompt { + log::info!( + "Chat role: {:?}", + s.iter().map(|m| m.role.clone()).collect::>() + ); Some( s.iter() .map(|m| WasmChatMessage { diff --git a/engine/language-client-codegen/src/python/mod.rs b/engine/language-client-codegen/src/python/mod.rs index 29a850ffd..f6954fa9c 100644 --- a/engine/language-client-codegen/src/python/mod.rs +++ b/engine/language-client-codegen/src/python/mod.rs @@ -4,7 +4,6 @@ mod python_language_features; use std::path::PathBuf; use anyhow::Result; -use askama::Template; use either::Either; use indexmap::IndexMap; use internal_baml_core::ir::{repr::IntermediateRepr, FieldType, IRHelper}; diff --git a/engine/language-client-codegen/src/python/python_language_features.rs b/engine/language-client-codegen/src/python/python_language_features.rs index ce897da9d..ac5b148c6 100644 --- a/engine/language-client-codegen/src/python/python_language_features.rs +++ b/engine/language-client-codegen/src/python/python_language_features.rs @@ -37,6 +37,7 @@ impl ToPython for TypeValue { TypeValue::String => "str".to_string(), TypeValue::Null => "None".to_string(), TypeValue::Image => "baml_py.Image".to_string(), + TypeValue::Audio => "baml_py.Audio".to_string(), } } } diff --git a/engine/language-client-codegen/src/python/templates/globals.py.j2 b/engine/language-client-codegen/src/python/templates/globals.py.j2 index 88b7c7fa6..ea1c16118 100644 --- a/engine/language-client-codegen/src/python/templates/globals.py.j2 +++ b/engine/language-client-codegen/src/python/templates/globals.py.j2 @@ -4,13 +4,13 @@ from baml_py import BamlCtxManager, BamlRuntime from .client import BamlClient from .inlinedbaml import get_baml_files -_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.from_files( +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.from_files( "baml_src", get_baml_files(), os.environ.copy() ) -DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = BamlCtxManager(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = BamlCtxManager(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) -b = BamlClient(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +b = BamlClient(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) __all__ = ['b'] diff --git a/engine/language-client-codegen/src/python/templates/tracing.py.j2 b/engine/language-client-codegen/src/python/templates/tracing.py.j2 index 9dba027cf..6c132c8e0 100644 --- a/engine/language-client-codegen/src/python/templates/tracing.py.j2 +++ b/engine/language-client-codegen/src/python/templates/tracing.py.j2 @@ -2,7 +2,9 @@ from .globals import DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX trace = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.trace_fn set_tags = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.upsert_tags -flush = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush +def flush(): + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush() +on_log_event = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.on_log_event -__all__ = ['trace', 'set_tags', "flush"] +__all__ = ['trace', 'set_tags', "flush", "on_log_event"] diff --git a/engine/language-client-codegen/src/ruby/expression.rs b/engine/language-client-codegen/src/ruby/expression.rs index 589fec0c6..c8f19356e 100644 --- a/engine/language-client-codegen/src/ruby/expression.rs +++ b/engine/language-client-codegen/src/ruby/expression.rs @@ -48,6 +48,7 @@ impl ToRuby for TypeValue { TypeValue::String => "string".to_string(), TypeValue::Null => "null".to_string(), TypeValue::Image => "Image".to_string(), + TypeValue::Audio => "Audio".to_string(), } } } diff --git a/engine/language-client-codegen/src/ruby/field_type.rs b/engine/language-client-codegen/src/ruby/field_type.rs index 7171fa81b..7525efc05 100644 --- a/engine/language-client-codegen/src/ruby/field_type.rs +++ b/engine/language-client-codegen/src/ruby/field_type.rs @@ -21,6 +21,7 @@ impl ToRuby for FieldType { TypeValue::Null => "NilClass".to_string(), // TODO: Create Baml::Types::Image TypeValue::Image => "Baml::Image".to_string(), + TypeValue::Audio => "Baml::Audio".to_string(), }, FieldType::Union(inner) => format!( // https://sorbet.org/docs/union-types diff --git a/engine/language-client-codegen/src/ruby/mod.rs b/engine/language-client-codegen/src/ruby/mod.rs index a6e85fae5..f7de3bb9d 100644 --- a/engine/language-client-codegen/src/ruby/mod.rs +++ b/engine/language-client-codegen/src/ruby/mod.rs @@ -3,7 +3,7 @@ mod field_type; mod generate_types; mod ruby_language_features; -use std::{collections::BTreeMap, path::PathBuf}; +use std::{path::PathBuf}; use anyhow::Result; use indexmap::IndexMap; diff --git a/engine/language-client-codegen/src/typescript/generate_types.rs b/engine/language-client-codegen/src/typescript/generate_types.rs index 8038be2b9..8f67d1693 100644 --- a/engine/language-client-codegen/src/typescript/generate_types.rs +++ b/engine/language-client-codegen/src/typescript/generate_types.rs @@ -7,14 +7,14 @@ use crate::GeneratorArgs; use super::ToTypeReferenceInClientDefinition; #[derive(askama::Template)] -#[template(path = "type_builder.js.j2", escape = "none")] +#[template(path = "type_builder.ts.j2", escape = "none")] pub(crate) struct TypeBuilder<'ir> { enums: Vec>, classes: Vec>, } #[derive(askama::Template)] -#[template(path = "types.js.j2", escape = "none")] +#[template(path = "types.ts.j2", escape = "none")] pub(crate) struct TypescriptTypes<'ir> { enums: Vec>, classes: Vec>, diff --git a/engine/language-client-codegen/src/typescript/mod.rs b/engine/language-client-codegen/src/typescript/mod.rs index 64da56fa3..00b5226f4 100644 --- a/engine/language-client-codegen/src/typescript/mod.rs +++ b/engine/language-client-codegen/src/typescript/mod.rs @@ -12,7 +12,7 @@ use self::typescript_language_features::{ToTypescript, TypescriptLanguageFeature use crate::dir_writer::FileCollector; #[derive(askama::Template)] -#[template(path = "client.js.j2", escape = "none")] +#[template(path = "client.ts.j2", escape = "none")] struct TypescriptClient { funcs: Vec, types: Vec, diff --git a/engine/language-client-codegen/src/typescript/templates/client.js.j2 b/engine/language-client-codegen/src/typescript/templates/client.ts.j2 similarity index 87% rename from engine/language-client-codegen/src/typescript/templates/client.js.j2 rename to engine/language-client-codegen/src/typescript/templates/client.ts.j2 index c8d66135f..27317e64a 100644 --- a/engine/language-client-codegen/src/typescript/templates/client.js.j2 +++ b/engine/language-client-codegen/src/typescript/templates/client.ts.j2 @@ -11,9 +11,13 @@ export type RecursivePartialNull = T extends object : T | null; export class BamlClient { + private runtime: BamlRuntime + private ctx_manager: BamlCtxManager private stream_client: BamlStreamClient - constructor(private runtime: BamlRuntime, private ctx_manager: BamlCtxManager) { + constructor(runtime: BamlRuntime, ctx_manager: BamlCtxManager) { + this.runtime = runtime + this.ctx_manager = ctx_manager this.stream_client = new BamlStreamClient(runtime, ctx_manager) } @@ -35,7 +39,7 @@ export class BamlClient { "{{name}}": {{name}}{% if optional %}?? null{% endif %}{% if !loop.last %},{% endif %} {%- endfor %} }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -62,7 +66,7 @@ class BamlStreamClient { {%- endfor %} }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -70,7 +74,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull<{{ fn.return_type }}> => a, (a): a is {{ fn.return_type }} => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } diff --git a/engine/language-client-codegen/src/typescript/templates/globals.ts.j2 b/engine/language-client-codegen/src/typescript/templates/globals.ts.j2 index cb68468e4..80bf0ed2d 100644 --- a/engine/language-client-codegen/src/typescript/templates/globals.ts.j2 +++ b/engine/language-client-codegen/src/typescript/templates/globals.ts.j2 @@ -3,10 +3,10 @@ import { BamlClient } from './client' import { getBamlFiles } from './inlinedbaml' -const _DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.fromFiles( +export const DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.fromFiles( 'baml_src', getBamlFiles(), process.env ) -export const DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = new BamlCtxManager(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) -export const b = new BamlClient(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +export const DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = new BamlCtxManager(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) +export const b = new BamlClient(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) diff --git a/engine/language-client-codegen/src/typescript/templates/tracing.ts.j2 b/engine/language-client-codegen/src/typescript/templates/tracing.ts.j2 index c60bc422b..c79196ef6 100644 --- a/engine/language-client-codegen/src/typescript/templates/tracing.ts.j2 +++ b/engine/language-client-codegen/src/typescript/templates/tracing.ts.j2 @@ -1,8 +1,16 @@ +import { BamlLogEvent } from '@boundaryml/baml'; import { DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX } from './globals'; -const traceAsync = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnAync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) -const traceSync = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnSync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) -const setTags = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.upsertTags.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) -const flush = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const traceAsync = +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnAsync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const traceSync = +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnSync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const setTags = +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.upsertTags.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const flush = () => { + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX)() +} +const onLogEvent = (callback: (event: BamlLogEvent) => void) => +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.onLogEvent(callback) -export { traceAsync, traceSync, setTags, flush } \ No newline at end of file +export { traceAsync, traceSync, setTags, flush, onLogEvent } \ No newline at end of file diff --git a/engine/language-client-codegen/src/typescript/templates/type_builder.js.j2 b/engine/language-client-codegen/src/typescript/templates/type_builder.ts.j2 similarity index 96% rename from engine/language-client-codegen/src/typescript/templates/type_builder.js.j2 rename to engine/language-client-codegen/src/typescript/templates/type_builder.ts.j2 index 9e3e243bf..703d0173c 100644 --- a/engine/language-client-codegen/src/typescript/templates/type_builder.js.j2 +++ b/engine/language-client-codegen/src/typescript/templates/type_builder.ts.j2 @@ -58,10 +58,10 @@ export default class TypeBuilder { } addClass(name: Name): ClassBuilder { - this.tb.addClass(name); + return this.tb.addClass(name); } addEnum(name: Name): EnumBuilder { - this.tb.addEnum(name); + return this.tb.addEnum(name); } } diff --git a/engine/language-client-codegen/src/typescript/templates/types.js.j2 b/engine/language-client-codegen/src/typescript/templates/types.ts.j2 similarity index 100% rename from engine/language-client-codegen/src/typescript/templates/types.js.j2 rename to engine/language-client-codegen/src/typescript/templates/types.ts.j2 diff --git a/engine/language-client-codegen/src/typescript/typescript_language_features.rs b/engine/language-client-codegen/src/typescript/typescript_language_features.rs index 97581075c..68c18841c 100644 --- a/engine/language-client-codegen/src/typescript/typescript_language_features.rs +++ b/engine/language-client-codegen/src/typescript/typescript_language_features.rs @@ -39,6 +39,7 @@ impl ToTypescript for TypeValue { TypeValue::String => "string".to_string(), TypeValue::Null => "null".to_string(), TypeValue::Image => "Image".to_string(), + TypeValue::Audio => "Audio".to_string(), } } } diff --git a/engine/language_client_python/Cargo.toml b/engine/language_client_python/Cargo.toml index be4493946..73f343c3e 100644 --- a/engine/language_client_python/Cargo.toml +++ b/engine/language_client_python/Cargo.toml @@ -4,7 +4,7 @@ edition = "2021" version = "0.1.0" authors.workspace = true description = "BAML python bindings (Cargo.toml)" -license-file.workspace = true +license = "Apache-2.0" [lib] name = "baml_py" diff --git a/engine/language_client_python/pyproject.toml b/engine/language_client_python/pyproject.toml index 920d72c6b..7374fcb00 100644 --- a/engine/language_client_python/pyproject.toml +++ b/engine/language_client_python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "baml-py" -version = "0.40.0" +version = "0.45.0" description = "BAML python bindings (pyproject.toml)" readme = "README.md" authors = [["Boundary", "contact@boundaryml.com"]] diff --git a/engine/language_client_python/python_src/baml_py/__init__.py b/engine/language_client_python/python_src/baml_py/__init__.py index 1b6ff8636..9728149a5 100644 --- a/engine/language_client_python/python_src/baml_py/__init__.py +++ b/engine/language_client_python/python_src/baml_py/__init__.py @@ -6,6 +6,7 @@ FunctionResult, FunctionResultStream, BamlImagePy as Image, + BamlAudioPy as Audio, invoke_runtime_cli, ) from .stream import BamlStream @@ -18,5 +19,6 @@ "FunctionResult", "FunctionResultStream", "Image", + "Audio", "invoke_runtime_cli", ] diff --git a/engine/language_client_python/python_src/baml_py/baml_py.pyi b/engine/language_client_python/python_src/baml_py/baml_py.pyi index 61559e943..8a8dc2641 100644 --- a/engine/language_client_python/python_src/baml_py/baml_py.pyi +++ b/engine/language_client_python/python_src/baml_py/baml_py.pyi @@ -35,7 +35,17 @@ class BamlImagePy: @staticmethod def from_url(url: str) -> BamlImagePy: ... @staticmethod - def from_base64(base64: str, media_type: str) -> BamlImagePy: ... + def from_base64(media_type: str, base64: str) -> BamlImagePy: ... + def is_url(self) -> bool: ... + def is_base64(self) -> bool: ... + def as_url(self) -> str: ... + def as_base64(self) -> Tuple[str, str]: ... + +class BamlAudioPy: + @staticmethod + def from_url(url: str) -> BamlAudioPy: ... + @staticmethod + def from_base64(media_type: str, base64: str) -> BamlAudioPy: ... def is_url(self) -> bool: ... def is_base64(self) -> bool: ... def as_url(self) -> str: ... @@ -71,6 +81,49 @@ class BamlRuntime: ) -> FunctionResultStream: ... def create_context_manager(self) -> RuntimeContextManager: ... def flush(self) -> None: ... + def drain_stats(self) -> TraceStats: ... + def set_log_event_callback( + self, handler: Callable[[BamlLogEvent], None] + ) -> None: ... + +class LogEventMetadata: + event_id: str + parent_id: Optional[str] + root_event_id: str + + def __init__( + self, event_id: str, parent_id: Optional[str], root_event_id: str + ) -> None: ... + +class BamlLogEvent: + metadata: LogEventMetadata + prompt: Optional[str] + raw_output: Optional[str] + parsed_output: Optional[str] + start_time: str + + def __init__( + self, + metadata: LogEventMetadata, + prompt: Optional[str], + raw_output: Optional[str], + parsed_output: Optional[str], + start_time: str, + ) -> None: ... + +class TraceStats: + @property + def failed(self) -> int: ... + @property + def started(self) -> int: ... + @property + def finalized(self) -> int: ... + @property + def submitted(self) -> int: ... + @property + def sent(self) -> int: ... + @property + def done(self) -> int: ... class BamlSpan: @staticmethod diff --git a/engine/language_client_python/python_src/baml_py/ctx_manager.py b/engine/language_client_python/python_src/baml_py/ctx_manager.py index 2230c23e9..cb8049f9a 100644 --- a/engine/language_client_python/python_src/baml_py/ctx_manager.py +++ b/engine/language_client_python/python_src/baml_py/ctx_manager.py @@ -6,7 +6,7 @@ import functools import inspect import typing -from .baml_py import RuntimeContextManager, BamlRuntime, BamlSpan +from .baml_py import BamlLogEvent, RuntimeContextManager, BamlRuntime, BamlSpan import atexit import threading @@ -65,6 +65,9 @@ def end_trace(self, span: BamlSpan, response: typing.Any) -> None: def flush(self) -> None: self.rt.flush() + def on_log_event(self, handler: typing.Callable[[BamlLogEvent], None]) -> None: + self.rt.set_log_event_callback(handler) + def trace_fn(self, func: F) -> F: func_name = func.__name__ signature = inspect.signature(func).parameters diff --git a/engine/language_client_python/python_src/baml_py/stream.py b/engine/language_client_python/python_src/baml_py/stream.py index 3d4a11cc6..b3abfcf13 100644 --- a/engine/language_client_python/python_src/baml_py/stream.py +++ b/engine/language_client_python/python_src/baml_py/stream.py @@ -6,8 +6,11 @@ TypeBuilder, ) from typing import Callable, Generic, Optional, TypeVar - +import threading import asyncio +import concurrent.futures + +import queue PartialOutputType = TypeVar("PartialOutputType") FinalOutputType = TypeVar("FinalOutputType") @@ -18,8 +21,10 @@ class BamlStream(Generic[PartialOutputType, FinalOutputType]): __partial_coerce: Callable[[FunctionResult], PartialOutputType] __final_coerce: Callable[[FunctionResult], FinalOutputType] __ctx_manager: RuntimeContextManager - __task: Optional[asyncio.Task[FunctionResult]] - __event_queue: asyncio.Queue[Optional[FunctionResult]] + __task: Optional[threading.Thread] + __event_queue: queue.Queue[Optional[FunctionResult]] + __tb: Optional[TypeBuilder] + __future: concurrent.futures.Future[FunctionResult] def __init__( self, @@ -34,34 +39,46 @@ def __init__( self.__final_coerce = final_coerce self.__ctx_manager = ctx_manager self.__task = None - self.__event_queue = asyncio.Queue() + self.__event_queue = queue.Queue() + self.__tb = tb + self.__future = concurrent.futures.Future() # Initialize the future here def __enqueue(self, data: FunctionResult) -> None: self.__event_queue.put_nowait(data) async def __drive_to_completion(self) -> FunctionResult: + try: retval = await self.__ffi_stream.done(self.__ctx_manager) + + self.__future.set_result(retval) return retval + except Exception as e: + self.__future.set_exception(e) + raise finally: self.__event_queue.put_nowait(None) - def __drive_to_completion_in_bg(self) -> asyncio.Task[FunctionResult]: - # Doing this without using a compare-and-swap or lock is safe, - # because we don't cross an await point during it + def __drive_to_completion_in_bg(self) -> concurrent.futures.Future[FunctionResult]: if self.__task is None: - self.__task = asyncio.create_task(self.__drive_to_completion()) + self.__task = threading.Thread(target=self.threading_target, daemon=True) + self.__task.start() + return self.__future - return self.__task + def threading_target(self): + asyncio.run(self.__drive_to_completion(), debug=True) async def __aiter__(self): + # TODO: This is deliberately __aiter__ and not __iter__ because we want to + # ensure that the caller is using an async for loop. + # Eventually we do not want to create a new thread for each stream. self.__drive_to_completion_in_bg() while True: - event = await self.__event_queue.get() + event = self.__event_queue.get() if event is None: break yield self.__partial_coerce(event.parsed()) async def get_final_response(self): - final = await self.__drive_to_completion_in_bg() - return self.__final_coerce(final.parsed()) + final = self.__drive_to_completion_in_bg() + return self.__final_coerce((await asyncio.wrap_future(final)).parsed()) diff --git a/engine/language_client_python/src/lib.rs b/engine/language_client_python/src/lib.rs index 0bdab9e40..6582fdaad 100644 --- a/engine/language_client_python/src/lib.rs +++ b/engine/language_client_python/src/lib.rs @@ -1,4 +1,5 @@ mod parse_py_type; +mod runtime; mod types; use pyo3::prelude::{pyfunction, pymodule, PyAnyMethods, PyModule, PyResult}; @@ -33,10 +34,12 @@ fn baml_py(_: Python<'_>, m: Bound<'_, PyModule>) -> PyResult<()> { eprintln!("Failed to initialize BAML logger: {:#}", e); }; - m.add_class::()?; + m.add_class::()?; + m.add_class::()?; m.add_class::()?; m.add_class::()?; + m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; @@ -47,6 +50,9 @@ fn baml_py(_: Python<'_>, m: Bound<'_, PyModule>) -> PyResult<()> { m.add_class::()?; m.add_class::()?; + m.add_class::()?; + m.add_class::()?; + m.add_wrapped(wrap_pyfunction!(invoke_runtime_cli))?; Ok(()) diff --git a/engine/language_client_python/src/parse_py_type.rs b/engine/language_client_python/src/parse_py_type.rs index d2b78412a..e4c0416d1 100644 --- a/engine/language_client_python/src/parse_py_type.rs +++ b/engine/language_client_python/src/parse_py_type.rs @@ -1,15 +1,15 @@ use std::collections::HashMap; use anyhow::{bail, Result}; -use baml_types::{BamlImage, BamlMap, BamlValue}; +use baml_types::{BamlMap, BamlMedia, BamlValue}; use pyo3::{ exceptions::{PyRuntimeError, PyTypeError}, prelude::{PyAnyMethods, PyTypeMethods}, types::{PyBool, PyBoolMethods, PyList}, - PyClass, PyErr, PyObject, PyResult, Python, ToPyObject, + PyErr, PyObject, PyResult, Python, ToPyObject, }; -use crate::types::BamlImagePy; +use crate::types::{BamlAudioPy, BamlImagePy}; struct SerializationError { position: Vec, @@ -59,11 +59,12 @@ enum MappedPyType { Float(f64), Bool(bool), None, - BamlImage(BamlImage), + BamlImage(BamlMedia), + BamlAudio(BamlMedia), Unsupported(String), } -impl TryFrom for BamlImage { +impl TryFrom for BamlMedia { type Error = &'static str; fn try_from(value: BamlImagePy) -> Result { @@ -71,6 +72,14 @@ impl TryFrom for BamlImage { } } +impl TryFrom for BamlMedia { + type Error = &'static str; + + fn try_from(value: BamlAudioPy) -> Result { + Ok(value.inner.clone()) + } +} + enum UnknownTypeHandler { Ignore, SerializeAsStr, @@ -180,7 +189,8 @@ where MappedPyType::Int(v) => BamlValue::Int(v), MappedPyType::Float(v) => BamlValue::Float(v), MappedPyType::Bool(v) => BamlValue::Bool(v), - MappedPyType::BamlImage(v) => BamlValue::Image(v), + MappedPyType::BamlImage(v) => BamlValue::Media(v), + MappedPyType::BamlAudio(v) => BamlValue::Media(v), MappedPyType::None => BamlValue::Null, MappedPyType::Unsupported(r#type) => { return if matches!(handle_unknown_types, UnknownTypeHandler::Ignore) { @@ -284,6 +294,9 @@ pub fn parse_py_type( } else if let Ok(b) = any.downcast_bound::(py) { let b = b.borrow(); Ok(MappedPyType::BamlImage(b.inner.clone())) + } else if let Ok(b) = any.downcast_bound::(py) { + let b = b.borrow(); + Ok(MappedPyType::BamlAudio(b.inner.clone())) } else { if matches!(unknown_type_handler, UnknownTypeHandler::SerializeAsStr) { // Call the __str__ method on the object diff --git a/engine/language_client_python/src/types/runtime.rs b/engine/language_client_python/src/runtime.rs similarity index 54% rename from engine/language_client_python/src/types/runtime.rs rename to engine/language_client_python/src/runtime.rs index 2d4767552..5edb4732b 100644 --- a/engine/language_client_python/src/types/runtime.rs +++ b/engine/language_client_python/src/runtime.rs @@ -1,20 +1,79 @@ use crate::parse_py_type::parse_py_type; use crate::types::function_results::FunctionResult; +use crate::types::trace_stats::TraceStats; use crate::BamlError; use super::function_result_stream::FunctionResultStream; use super::runtime_ctx_manager::RuntimeContextManager; use super::type_builder::TypeBuilder; use super::ClientBuilder; +use crate::types::function_result_stream::FunctionResultStream; +use crate::types::runtime_ctx_manager::RuntimeContextManager; +use crate::types::type_builder::TypeBuilder; use baml_runtime::runtime_interface::ExperimentalTracingInterface; use baml_runtime::BamlRuntime as CoreBamlRuntime; use pyo3::prelude::{pymethods, PyResult}; -use pyo3::{PyObject, Python, ToPyObject}; +use pyo3::{pyclass, PyObject, Python, ToPyObject}; use std::collections::HashMap; use std::path::PathBuf; crate::lang_wrapper!(BamlRuntime, CoreBamlRuntime, clone_safe); +#[derive(Debug, Clone)] +#[pyclass] +pub struct BamlLogEvent { + pub metadata: LogEventMetadata, + pub prompt: Option, + pub raw_output: Option, + // json structure or a string + pub parsed_output: Option, + pub start_time: String, +} + +#[derive(Debug, Clone)] +#[pyclass] +pub struct LogEventMetadata { + pub event_id: String, + pub parent_id: Option, + pub root_event_id: String, +} + +#[pymethods] +impl BamlLogEvent { + fn __repr__(&self) -> String { + format!( + "BamlLogEvent {{\n metadata: {:?},\n prompt: {:?},\n raw_output: {:?},\n parsed_output: {:?},\n start_time: {:?}\n}}", + self.metadata, self.prompt, self.raw_output, self.parsed_output, self.start_time + ) + } + + fn __str__(&self) -> String { + let prompt = self + .prompt + .as_ref() + .map_or("None".to_string(), |p| format!("\"{p}\"")); + let raw_output = self + .raw_output + .as_ref() + .map_or("None".to_string(), |r| format!("\"{r}\"")); + let parsed_output = self + .parsed_output + .as_ref() + .map_or("None".to_string(), |p| format!("\"{p}\"")); + + format!( + "BamlLogEvent {{\n metadata: {{\n event_id: \"{}\",\n parent_id: {},\n root_event_id: \"{}\"\n }},\n prompt: {},\n raw_output: {},\n parsed_output: {},\n start_time: \"{}\"\n}}", + self.metadata.event_id, + self.metadata.parent_id.as_ref().map_or("None".to_string(), |id| format!("\"{}\"", id)), + self.metadata.root_event_id, + prompt, + raw_output, + parsed_output, + self.start_time + ) + } +} + #[pymethods] impl BamlRuntime { #[staticmethod] @@ -128,4 +187,44 @@ impl BamlRuntime { fn flush(&self) -> PyResult<()> { self.inner.flush().map_err(BamlError::from_anyhow) } + + #[pyo3()] + fn drain_stats(&self) -> TraceStats { + self.inner.drain_stats().into() + } + + #[pyo3()] + fn set_log_event_callback(&self, callback: PyObject) -> PyResult<()> { + let callback = callback.clone(); + let baml_runtime = self.inner.clone(); + + let res = baml_runtime + .as_ref() + .set_log_event_callback(Box::new(move |log_event| { + Python::with_gil(|py| { + match callback.call1( + py, + (BamlLogEvent { + metadata: LogEventMetadata { + event_id: log_event.metadata.event_id.clone(), + parent_id: log_event.metadata.parent_id.clone(), + root_event_id: log_event.metadata.root_event_id.clone(), + }, + prompt: log_event.prompt.clone(), + raw_output: log_event.raw_output.clone(), + parsed_output: log_event.parsed_output.clone(), + start_time: log_event.start_time.clone(), + },), + ) { + Ok(_) => Ok(()), + Err(e) => { + log::error!("Error calling log_event_callback: {:?}", e); + Err(anyhow::Error::new(e).into()) // Proper error handling + } + } + }) + })); + + Ok(()) + } } diff --git a/engine/language_client_python/src/types/audio.rs b/engine/language_client_python/src/types/audio.rs new file mode 100644 index 000000000..48790c7b8 --- /dev/null +++ b/engine/language_client_python/src/types/audio.rs @@ -0,0 +1,92 @@ +use baml_types::BamlMediaType; +use pyo3::prelude::{pymethods, PyAnyMethods, PyModule, PyResult}; +use pyo3::types::PyType; +use pyo3::{Bound, Py, PyAny, PyObject, Python, ToPyObject}; +crate::lang_wrapper!(BamlAudioPy, baml_types::BamlMedia); + +#[pymethods] +impl BamlAudioPy { + #[staticmethod] + fn from_url(url: String) -> Self { + BamlAudioPy { + inner: baml_types::BamlMedia::Url( + BamlMediaType::Audio, + baml_types::MediaUrl::new(url, None), + ), + } + } + + #[staticmethod] + fn from_base64(media_type: String, base64: String) -> Self { + BamlAudioPy { + inner: baml_types::BamlMedia::Base64( + BamlMediaType::Audio, + baml_types::MediaBase64::new(base64, media_type), + ), + } + } + + pub fn is_url(&self) -> bool { + matches!(&self.inner, baml_types::BamlMedia::Url(_, _)) + } + + pub fn as_url(&self) -> PyResult { + match &self.inner { + baml_types::BamlMedia::Url(BamlMediaType::Audio, url) => Ok(url.url.clone()), + _ => Err(crate::BamlError::new_err("Audio is not a URL")), + } + } + + pub fn as_base64(&self) -> PyResult> { + match &self.inner { + baml_types::BamlMedia::Base64(BamlMediaType::Audio, base64) => { + Ok(vec![base64.base64.clone(), base64.media_type.clone()]) + } + _ => Err(crate::BamlError::new_err("Audio is not base64")), + } + } + + pub fn __repr__(&self) -> String { + match &self.inner { + baml_types::BamlMedia::Url(BamlMediaType::Audio, url) => { + format!("BamlAudioPy(url={})", url.url) + } + baml_types::BamlMedia::Base64(BamlMediaType::Audio, base64) => { + format!( + "BamlAudioPy(base64={}, media_type={})", + base64.base64, base64.media_type + ) + } + _ => format!("Unknown BamlAudioPy variant"), + } + } + + // Makes it work with Pydantic + #[classmethod] + pub fn __get_pydantic_core_schema__( + _cls: Bound<'_, PyType>, + _source_type: Bound<'_, PyAny>, + _handler: Bound<'_, PyAny>, + ) -> PyResult { + Python::with_gil(|py| { + let code = r#" +from pydantic_core import core_schema + +def get_schema(): + # No validation + return core_schema.any_schema() + +ret = get_schema() + "#; + // py.run(code, None, Some(ret_dict)); + let fun: Py = PyModule::from_code_bound(py, code, "", "")? + .getattr("ret")? + .into(); + Ok(fun.to_object(py)) // Return the PyObject + }) + } + + pub fn __eq__(&self, other: &Self) -> bool { + self.inner == other.inner + } +} diff --git a/engine/language_client_python/src/types/function_result_stream.rs b/engine/language_client_python/src/types/function_result_stream.rs index d5f70cdea..639eecc2e 100644 --- a/engine/language_client_python/src/types/function_result_stream.rs +++ b/engine/language_client_python/src/types/function_result_stream.rs @@ -15,7 +15,7 @@ crate::lang_wrapper!( ); impl FunctionResultStream { - pub(super) fn new( + pub(crate) fn new( inner: baml_runtime::FunctionResultStream, event: Option, tb: Option, diff --git a/engine/language_client_python/src/types/image.rs b/engine/language_client_python/src/types/image.rs index 207fbcf1e..a2b35171c 100644 --- a/engine/language_client_python/src/types/image.rs +++ b/engine/language_client_python/src/types/image.rs @@ -1,39 +1,45 @@ +use baml_types::BamlMediaType; use pyo3::prelude::{pymethods, PyAnyMethods, PyModule, PyResult}; use pyo3::types::PyType; use pyo3::{Bound, Py, PyAny, PyObject, Python, ToPyObject}; - -crate::lang_wrapper!(BamlImagePy, baml_types::BamlImage); +crate::lang_wrapper!(BamlImagePy, baml_types::BamlMedia); #[pymethods] impl BamlImagePy { #[staticmethod] fn from_url(url: String) -> Self { BamlImagePy { - inner: baml_types::BamlImage::Url(baml_types::ImageUrl::new(url)), + inner: baml_types::BamlMedia::Url( + BamlMediaType::Image, + baml_types::MediaUrl::new(url, None), + ), } } #[staticmethod] fn from_base64(media_type: String, base64: String) -> Self { BamlImagePy { - inner: baml_types::BamlImage::Base64(baml_types::ImageBase64::new(base64, media_type)), + inner: baml_types::BamlMedia::Base64( + BamlMediaType::Image, + baml_types::MediaBase64::new(base64, media_type), + ), } } pub fn is_url(&self) -> bool { - matches!(&self.inner, baml_types::BamlImage::Url(_)) + matches!(&self.inner, baml_types::BamlMedia::Url(_, _)) } pub fn as_url(&self) -> PyResult { match &self.inner { - baml_types::BamlImage::Url(url) => Ok(url.url.clone()), + baml_types::BamlMedia::Url(BamlMediaType::Image, url) => Ok(url.url.clone()), _ => Err(crate::BamlError::new_err("Image is not a URL")), } } pub fn as_base64(&self) -> PyResult> { match &self.inner { - baml_types::BamlImage::Base64(base64) => { + baml_types::BamlMedia::Base64(BamlMediaType::Image, base64) => { Ok(vec![base64.base64.clone(), base64.media_type.clone()]) } _ => Err(crate::BamlError::new_err("Image is not base64")), @@ -42,13 +48,16 @@ impl BamlImagePy { pub fn __repr__(&self) -> String { match &self.inner { - baml_types::BamlImage::Url(url) => format!("BamlImagePy(url={})", url.url), - baml_types::BamlImage::Base64(base64) => { + baml_types::BamlMedia::Url(BamlMediaType::Image, url) => { + format!("BamlImagePy(url={})", url.url) + } + baml_types::BamlMedia::Base64(BamlMediaType::Image, base64) => { format!( "BamlImagePy(base64={}, media_type={})", base64.base64, base64.media_type ) } + _ => format!("Unknown BamlImagePy variant"), } } diff --git a/engine/language_client_python/src/types/mod.rs b/engine/language_client_python/src/types/mod.rs index 6d63bf241..885f6b9cc 100644 --- a/engine/language_client_python/src/types/mod.rs +++ b/engine/language_client_python/src/types/mod.rs @@ -10,10 +10,20 @@ mod span; mod type_builder; pub use client_builder::ClientBuilder; +pub(crate) mod audio; +pub(crate) mod function_result_stream; +pub(crate) mod function_results; +pub(crate) mod image; +pub(crate) mod runtime_ctx_manager; +pub(crate) mod span; +pub(crate) mod trace_stats; +pub(crate) mod type_builder; + +pub use audio::BamlAudioPy; pub use function_result_stream::FunctionResultStream; pub use function_results::FunctionResult; pub use image::BamlImagePy; -pub use runtime::BamlRuntime; + pub use runtime_ctx_manager::RuntimeContextManager; pub use span::BamlSpan; pub use type_builder::*; diff --git a/engine/language_client_python/src/types/span.rs b/engine/language_client_python/src/types/span.rs index a6c0255f8..17cd70c3d 100644 --- a/engine/language_client_python/src/types/span.rs +++ b/engine/language_client_python/src/types/span.rs @@ -6,8 +6,8 @@ use pyo3::{PyObject, Python, ToPyObject}; use crate::parse_py_type::parse_py_type; use crate::BamlError; -use super::runtime::BamlRuntime; use super::runtime_ctx_manager::RuntimeContextManager; +use crate::runtime::BamlRuntime; crate::lang_wrapper!(BamlSpan, Option>, @@ -49,7 +49,7 @@ impl BamlSpan { result: PyObject, ctx: &RuntimeContextManager, ) -> PyResult> { - log::info!("Finishing span: {:?}", self.inner); + log::trace!("Finishing span: {:?}", self.inner); let result = parse_py_type(result.into_bound(py).to_object(py), true)?; let span = self diff --git a/engine/language_client_python/src/types/trace_stats.rs b/engine/language_client_python/src/types/trace_stats.rs new file mode 100644 index 000000000..56d9a044f --- /dev/null +++ b/engine/language_client_python/src/types/trace_stats.rs @@ -0,0 +1,48 @@ +use pyo3::pymethods; + +crate::lang_wrapper!(TraceStats, baml_runtime::InnerTraceStats); + +#[pymethods] +impl TraceStats { + #[getter] + pub fn failed(&self) -> u32 { + self.inner.failed + } + + #[getter] + pub fn started(&self) -> u32 { + self.inner.started + } + + #[getter] + pub fn finalized(&self) -> u32 { + self.inner.finalized + } + + #[getter] + pub fn submitted(&self) -> u32 { + self.inner.submitted + } + + #[getter] + pub fn sent(&self) -> u32 { + self.inner.sent + } + + #[getter] + pub fn done(&self) -> u32 { + self.inner.done + } + + pub fn __repr__(&self) -> String { + format!( + "TraceStats(failed={}, started={}, finalized={}, submitted={}, sent={}, done={})", + self.failed(), + self.started(), + self.finalized(), + self.submitted(), + self.sent(), + self.done() + ) + } +} diff --git a/engine/language_client_ruby/baml.gemspec b/engine/language_client_ruby/baml.gemspec index 92496ff43..06753b39e 100644 --- a/engine/language_client_ruby/baml.gemspec +++ b/engine/language_client_ruby/baml.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |spec| spec.name = "baml" - spec.version = "0.40.0" + spec.version = "0.45.0" spec.authors = ["BoundaryML"] spec.email = ["contact@boundaryml.com"] diff --git a/engine/language_client_ruby/ext/ruby_ffi/src/lib.rs b/engine/language_client_ruby/ext/ruby_ffi/src/lib.rs index d46254f47..f967e253e 100644 --- a/engine/language_client_ruby/ext/ruby_ffi/src/lib.rs +++ b/engine/language_client_ruby/ext/ruby_ffi/src/lib.rs @@ -34,7 +34,7 @@ impl Drop for BamlRuntimeFfi { fn drop(&mut self) { use baml_runtime::runtime_interface::ExperimentalTracingInterface; match self.inner.flush() { - Ok(_) => log::info!("Flushed BAML log events"), + Ok(_) => log::trace!("Flushed BAML log events"), Err(e) => log::error!("Error while flushing BAML log events: {:?}", e), } } diff --git a/engine/language_client_typescript/async_context_vars.d.ts b/engine/language_client_typescript/async_context_vars.d.ts deleted file mode 100644 index 36f3f1ebb..000000000 --- a/engine/language_client_typescript/async_context_vars.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { BamlSpan, RuntimeContextManager, BamlRuntime } from './native'; -export declare class CtxManager { - private rt; - private ctx; - constructor(rt: BamlRuntime); - upsertTags(tags: Record): void; - get(): RuntimeContextManager; - startTraceSync(name: string, args: Record): BamlSpan; - startTraceAsync(name: string, args: Record): BamlSpan; - endTrace(span: BamlSpan, response: any): void; - flush(): void; - traceFnSync ReturnType>(name: string, func: F): F; - traceFnAync Promise>(name: string, func: F): F; -} -//# sourceMappingURL=async_context_vars.d.ts.map \ No newline at end of file diff --git a/engine/language_client_typescript/async_context_vars.d.ts.map b/engine/language_client_typescript/async_context_vars.d.ts.map deleted file mode 100644 index 7642518da..000000000 --- a/engine/language_client_typescript/async_context_vars.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"async_context_vars.d.ts","sourceRoot":"","sources":["typescript_src/async_context_vars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGvE,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,GAAG,CAA0C;gBAEzC,EAAE,EAAE,WAAW;IAS3B,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK9C,GAAG,IAAI,qBAAqB;IAS5B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ;IAOjE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ;IAOlE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAS7C,KAAK,IAAI,IAAI;IAIb,WAAW,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IAsB3F,WAAW,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;CAqBrG"} \ No newline at end of file diff --git a/engine/language_client_typescript/async_context_vars.js b/engine/language_client_typescript/async_context_vars.js deleted file mode 100644 index 62cc8a2f1..000000000 --- a/engine/language_client_typescript/async_context_vars.js +++ /dev/null @@ -1,90 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.CtxManager = void 0; -const native_1 = require("./native"); -const async_hooks_1 = require("async_hooks"); -class CtxManager { - rt; - ctx; - constructor(rt) { - this.rt = rt; - this.ctx = new async_hooks_1.AsyncLocalStorage(); - this.ctx.enterWith(rt.createContextManager()); - process.on('exit', () => { - this.rt.flush(); - }); - } - upsertTags(tags) { - const manager = this.ctx.getStore(); - manager.upsertTags(tags); - } - get() { - let store = this.ctx.getStore(); - if (store === undefined) { - store = this.rt.createContextManager(); - this.ctx.enterWith(store); - } - return store; - } - startTraceSync(name, args) { - const mng = this.get(); - // const clone = mng.deepClone() - // this.ctx.enterWith(clone) - return native_1.BamlSpan.new(this.rt, name, args, mng); - } - startTraceAsync(name, args) { - const mng = this.get(); - const clone = mng.deepClone(); - this.ctx.enterWith(clone); - return native_1.BamlSpan.new(this.rt, name, args, clone); - } - endTrace(span, response) { - const manager = this.ctx.getStore(); - if (!manager) { - console.error('Context lost before span could be finished\n'); - return; - } - span.finish(response, manager); - } - flush() { - this.rt.flush(); - } - traceFnSync(name, func) { - return ((...args) => { - const params = args.reduce((acc, arg, i) => ({ - ...acc, - [`arg${i}`]: arg, // generic way to label args - }), {}); - const span = this.startTraceSync(name, params); - try { - const response = func(...args); - this.endTrace(span, response); - return response; - } - catch (e) { - this.endTrace(span, e); - throw e; - } - }); - } - traceFnAync(name, func) { - const funcName = name; - return (async (...args) => { - const params = args.reduce((acc, arg, i) => ({ - ...acc, - [`arg${i}`]: arg, // generic way to label args - }), {}); - const span = this.startTraceAsync(funcName, params); - try { - const response = await func(...args); - this.endTrace(span, response); - return response; - } - catch (e) { - this.endTrace(span, e); - throw e; - } - }); - } -} -exports.CtxManager = CtxManager; diff --git a/engine/language_client_typescript/index.d.ts b/engine/language_client_typescript/index.d.ts deleted file mode 100644 index 5a780b8d3..000000000 --- a/engine/language_client_typescript/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { BamlRuntime, FunctionResult, FunctionResultStream, BamlImage as Image, invoke_runtime_cli, ClientBuilder, } from './native'; -export { BamlStream } from './stream'; -export { CtxManager as BamlCtxManager } from './async_context_vars'; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/engine/language_client_typescript/index.d.ts.map b/engine/language_client_typescript/index.d.ts.map deleted file mode 100644 index c8fa54ef0..000000000 --- a/engine/language_client_typescript/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["typescript_src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,SAAS,IAAI,KAAK,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA"} \ No newline at end of file diff --git a/engine/language_client_typescript/index.js b/engine/language_client_typescript/index.js deleted file mode 100644 index 0c3f00c73..000000000 --- a/engine/language_client_typescript/index.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlCtxManager = exports.BamlStream = exports.ClientBuilder = exports.invoke_runtime_cli = exports.Image = exports.FunctionResultStream = exports.FunctionResult = exports.BamlRuntime = void 0; -var native_1 = require("./native"); -Object.defineProperty(exports, "BamlRuntime", { enumerable: true, get: function () { return native_1.BamlRuntime; } }); -Object.defineProperty(exports, "FunctionResult", { enumerable: true, get: function () { return native_1.FunctionResult; } }); -Object.defineProperty(exports, "FunctionResultStream", { enumerable: true, get: function () { return native_1.FunctionResultStream; } }); -Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return native_1.BamlImage; } }); -Object.defineProperty(exports, "invoke_runtime_cli", { enumerable: true, get: function () { return native_1.invoke_runtime_cli; } }); -Object.defineProperty(exports, "ClientBuilder", { enumerable: true, get: function () { return native_1.ClientBuilder; } }); -var stream_1 = require("./stream"); -Object.defineProperty(exports, "BamlStream", { enumerable: true, get: function () { return stream_1.BamlStream; } }); -var async_context_vars_1 = require("./async_context_vars"); -Object.defineProperty(exports, "BamlCtxManager", { enumerable: true, get: function () { return async_context_vars_1.CtxManager; } }); diff --git a/engine/language_client_typescript/native.d.ts b/engine/language_client_typescript/native.d.ts deleted file mode 100644 index 554976232..000000000 --- a/engine/language_client_typescript/native.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* auto-generated by NAPI-RS */ -/* eslint-disable */ -export class BamlImage { - static fromUrl(url: string): BamlImage - static fromBase64(mediaType: string, base64: string): BamlImage - isUrl(): boolean - asUrl(): string - asBase64(): [string, string] - toJSON(): any -} - -export class BamlRuntime { - static fromDirectory(directory: string, envVars: Record): BamlRuntime - static fromFiles(rootPath: string, files: Record, envVars: Record): BamlRuntime - createContextManager(): RuntimeContextManager - callFunction(functionName: string, args: { [string]: any }, ctx: RuntimeContextManager, tb?: TypeBuilder | undefined | null, cb?: ClientBuilder | undefined | null): Promise - streamFunction(functionName: string, args: { [string]: any }, callback: (err: any, param: FunctionResult) => void, ctx: RuntimeContextManager, tb?: TypeBuilder | undefined | null, cb?: ClientBuilder | undefined | null): FunctionResultStream - flush(): void -} - -export class BamlSpan { - static new(runtime: BamlRuntime, functionName: string, args: any, ctx: RuntimeContextManager): BamlSpan - finish(result: any, ctx: RuntimeContextManager): any -} - -export class ClassBuilder { - field(): FieldType - property(name: string): ClassPropertyBuilder -} - -export class ClassPropertyBuilder { - setType(fieldType: FieldType): ClassPropertyBuilder - alias(alias?: string | undefined | null): ClassPropertyBuilder - description(description?: string | undefined | null): ClassPropertyBuilder -} - -export class ClientBuilder { - constructor() - addClient(name: string, provider: string, options: { [string]: any }, retryPolicy?: string | undefined | null): void - setPrimary(primary: string): void -} - -export class EnumBuilder { - value(name: string): EnumValueBuilder - alias(alias?: string | undefined | null): EnumBuilder - field(): FieldType -} - -export class EnumValueBuilder { - alias(alias?: string | undefined | null): EnumValueBuilder - skip(skip?: boolean | undefined | null): EnumValueBuilder - description(description?: string | undefined | null): EnumValueBuilder -} - -export class FieldType { - list(): FieldType - optional(): FieldType -} - -export class FunctionResult { - parsed(): any -} - -export class FunctionResultStream { - onEvent(func: (err: any, param: FunctionResult) => void): void - done(rctx: RuntimeContextManager): Promise -} - -export class RuntimeContextManager { - upsertTags(tags: any): void - deepClone(): RuntimeContextManager -} - -export class TypeBuilder { - constructor() - getEnum(name: string): EnumBuilder - getClass(name: string): ClassBuilder - list(inner: FieldType): FieldType - optional(inner: FieldType): FieldType - string(): FieldType - int(): FieldType - float(): FieldType - bool(): FieldType - null(): FieldType -} - -export function invoke_runtime_cli(params: Array): void - diff --git a/engine/language_client_typescript/native.js b/engine/language_client_typescript/native.js deleted file mode 100644 index a2de0f259..000000000 --- a/engine/language_client_typescript/native.js +++ /dev/null @@ -1,377 +0,0 @@ -// prettier-ignore -/* eslint-disable */ -/* auto-generated by NAPI-RS */ - -const { readFileSync } = require('fs') - -let nativeBinding = null -const loadErrors = [] - -const isMusl = () => { - let musl = false - if (process.platform === 'linux') { - musl = isMuslFromFilesystem() - if (musl === null) { - musl = isMuslFromReport() - } - if (musl === null) { - musl = isMuslFromChildProcess() - } - } - return musl -} - -const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-') - -const isMuslFromFilesystem = () => { - try { - return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl') - } catch { - return null - } -} - -const isMuslFromReport = () => { - const report = typeof process.report.getReport === 'function' ? process.report.getReport() : null - if (!report) { - return null - } - if (report.header && report.header.glibcVersionRuntime) { - return false - } - if (Array.isArray(report.sharedObjects)) { - if (report.sharedObjects.some(isFileMusl)) { - return true - } - } - return false -} - -const isMuslFromChildProcess = () => { - try { - return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl') - } catch (e) { - // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false - return false - } -} - -function requireNative() { - if (process.platform === 'android') { - if (process.arch === 'arm64') { - try { - return require('./baml.android-arm64.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-android-arm64') - } catch (e) { - loadErrors.push(e) - } - - } else if (process.arch === 'arm') { - try { - return require('./baml.android-arm-eabi.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-android-arm-eabi') - } catch (e) { - loadErrors.push(e) - } - - } else { - loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`)) - } - } else if (process.platform === 'win32') { - if (process.arch === 'x64') { - try { - return require('./baml.win32-x64-msvc.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-win32-x64-msvc') - } catch (e) { - loadErrors.push(e) - } - - } else if (process.arch === 'ia32') { - try { - return require('./baml.win32-ia32-msvc.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-win32-ia32-msvc') - } catch (e) { - loadErrors.push(e) - } - - } else if (process.arch === 'arm64') { - try { - return require('./baml.win32-arm64-msvc.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-win32-arm64-msvc') - } catch (e) { - loadErrors.push(e) - } - - } else { - loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`)) - } - } else if (process.platform === 'darwin') { - try { - return require('./baml.darwin-universal.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-darwin-universal') - } catch (e) { - loadErrors.push(e) - } - - if (process.arch === 'x64') { - try { - return require('./baml.darwin-x64.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-darwin-x64') - } catch (e) { - loadErrors.push(e) - } - - } else if (process.arch === 'arm64') { - try { - return require('./baml.darwin-arm64.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-darwin-arm64') - } catch (e) { - loadErrors.push(e) - } - - } else { - loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`)) - } - } else if (process.platform === 'freebsd') { - if (process.arch === 'x64') { - try { - return require('./baml.freebsd-x64.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-freebsd-x64') - } catch (e) { - loadErrors.push(e) - } - - } else if (process.arch === 'arm64') { - try { - return require('./baml.freebsd-arm64.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-freebsd-arm64') - } catch (e) { - loadErrors.push(e) - } - - } else { - loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`)) - } - } else if (process.platform === 'linux') { - if (process.arch === 'x64') { - if (isMusl()) { - try { - return require('./baml.linux-x64-musl.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-x64-musl') - } catch (e) { - loadErrors.push(e) - } - - } else { - try { - return require('./baml.linux-x64-gnu.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-x64-gnu') - } catch (e) { - loadErrors.push(e) - } - - } - } else if (process.arch === 'arm64') { - if (isMusl()) { - try { - return require('./baml.linux-arm64-musl.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-arm64-musl') - } catch (e) { - loadErrors.push(e) - } - - } else { - try { - return require('./baml.linux-arm64-gnu.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-arm64-gnu') - } catch (e) { - loadErrors.push(e) - } - - } - } else if (process.arch === 'arm') { - if (isMusl()) { - try { - return require('./baml.linux-arm-musleabihf.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-arm-musleabihf') - } catch (e) { - loadErrors.push(e) - } - - } else { - try { - return require('./baml.linux-arm-gnueabihf.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-arm-gnueabihf') - } catch (e) { - loadErrors.push(e) - } - - } - } else if (process.arch === 'riscv64') { - if (isMusl()) { - try { - return require('./baml.linux-riscv64-musl.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-riscv64-musl') - } catch (e) { - loadErrors.push(e) - } - - } else { - try { - return require('./baml.linux-riscv64-gnu.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-riscv64-gnu') - } catch (e) { - loadErrors.push(e) - } - - } - } else if (process.arch === 'ppc64') { - try { - return require('./baml.linux-ppc64-gnu.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-ppc64-gnu') - } catch (e) { - loadErrors.push(e) - } - - } else if (process.arch === 's390x') { - try { - return require('./baml.linux-s390x-gnu.node') - } catch (e) { - loadErrors.push(e) - } - try { - return require('@boundaryml/baml-linux-s390x-gnu') - } catch (e) { - loadErrors.push(e) - } - - } else { - loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`)) - } - } else { - loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`)) - } -} - -nativeBinding = requireNative() - -if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) { - try { - nativeBinding = require('./baml.wasi.cjs') - } catch (err) { - if (process.env.NAPI_RS_FORCE_WASI) { - console.error(err) - } - } - if (!nativeBinding) { - try { - nativeBinding = require('@boundaryml/baml-wasm32-wasi') - } catch (err) { - if (process.env.NAPI_RS_FORCE_WASI) { - console.error(err) - } - } - } -} - -if (!nativeBinding) { - if (loadErrors.length > 0) { - // TODO Link to documentation with potential fixes - // - The package owner could build/publish bindings for this arch - // - The user may need to bundle the correct files - // - The user may need to re-install node_modules to get new packages - throw new Error('Failed to load native binding', { cause: loadErrors }) - } - throw new Error(`Failed to load native binding`) -} - -module.exports.BamlImage = nativeBinding.BamlImage -module.exports.BamlRuntime = nativeBinding.BamlRuntime -module.exports.BamlSpan = nativeBinding.BamlSpan -module.exports.ClassBuilder = nativeBinding.ClassBuilder -module.exports.ClassPropertyBuilder = nativeBinding.ClassPropertyBuilder -module.exports.ClientBuilder = nativeBinding.ClientBuilder -module.exports.EnumBuilder = nativeBinding.EnumBuilder -module.exports.EnumValueBuilder = nativeBinding.EnumValueBuilder -module.exports.FieldType = nativeBinding.FieldType -module.exports.FunctionResult = nativeBinding.FunctionResult -module.exports.FunctionResultStream = nativeBinding.FunctionResultStream -module.exports.RuntimeContextManager = nativeBinding.RuntimeContextManager -module.exports.TypeBuilder = nativeBinding.TypeBuilder -module.exports.invoke_runtime_cli = nativeBinding.invoke_runtime_cli diff --git a/engine/language_client_typescript/package.json b/engine/language_client_typescript/package.json index 729fa253a..a4cc8e6d6 100644 --- a/engine/language_client_typescript/package.json +++ b/engine/language_client_typescript/package.json @@ -1,6 +1,6 @@ { "name": "@boundaryml/baml", - "version": "0.40.0", + "version": "0.45.0", "description": "BAML typescript bindings (package.json)", "repository": { "type": "git", @@ -16,7 +16,7 @@ "node-addon-api" ], "bin": { - "baml-cli": "./cli.js" + "baml-cli": "cli.js" }, "files": [ "./cli.js", @@ -61,13 +61,13 @@ "format": "run-p format:biome format:rs format:toml", "format:biome": "biome --write .", "format:rs": "cargo fmt", - "prepublishOnly": "napi prepublish -t npm", + "prepublishOnly": "napi prepublish --no-gh-release", "test": "echo no tests implemented", "version": "napi version" }, "devDependencies": { "@biomejs/biome": "^1.7.3", - "@napi-rs/cli": "^3.0.0-alpha.54", + "@napi-rs/cli": "3.0.0-alpha.54", "@types/node": "^20.12.11", "npm-run-all2": "^6.1.2", "ts-node": "^10.9.2", diff --git a/engine/language_client_typescript/pnpm-lock.yaml b/engine/language_client_typescript/pnpm-lock.yaml index fa68932db..c3d1eb265 100644 --- a/engine/language_client_typescript/pnpm-lock.yaml +++ b/engine/language_client_typescript/pnpm-lock.yaml @@ -9,7 +9,7 @@ devDependencies: specifier: ^1.7.3 version: 1.7.3 '@napi-rs/cli': - specifier: ^3.0.0-alpha.54 + specifier: 3.0.0-alpha.54 version: 3.0.0-alpha.54 '@types/node': specifier: ^20.12.11 @@ -29,7 +29,6 @@ packages: /@biomejs/biome@1.7.3: resolution: {integrity: sha512-ogFQI+fpXftr+tiahA6bIXwZ7CSikygASdqMtH07J2cUzrpjyTMVc9Y97v23c7/tL1xCZhM+W9k4hYIBm7Q6cQ==} engines: {node: '>=14.21.3'} - hasBin: true requiresBuild: true optionalDependencies: '@biomejs/cli-darwin-arm64': 1.7.3 @@ -168,7 +167,6 @@ packages: /@napi-rs/cli@3.0.0-alpha.54: resolution: {integrity: sha512-3xFQ0SFRhxP1WqyR/D3FYze423ToQKtrwd8s3Afl+CQC52wlIprA6/MbHudVMnono82wOKUxt71e39DACotHHg==} engines: {node: '>= 16'} - hasBin: true peerDependencies: '@emnapi/runtime': ^1.1.0 emnapi: ^1.1.0 @@ -823,7 +821,6 @@ packages: /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} - hasBin: true dev: true /ansi-escapes@4.3.2: @@ -1144,7 +1141,6 @@ packages: /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true dependencies: argparse: 2.0.1 dev: true @@ -1208,7 +1204,6 @@ packages: /npm-run-all2@6.1.2: resolution: {integrity: sha512-WwwnS8Ft+RpXve6T2EIEVpFLSqN+ORHRvgNk3H9N62SZXjmzKoRhMFg3I17TK3oMaAEr+XFbRirWS2Fn3BCPSg==} engines: {node: ^14.18.0 || >=16.0.0, npm: '>= 8'} - hasBin: true dependencies: ansi-styles: 6.2.1 cross-spawn: 7.0.3 @@ -1260,7 +1255,6 @@ packages: /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} - hasBin: true dev: true /read-package-json-fast@3.0.2: @@ -1310,7 +1304,6 @@ packages: /semver@7.6.2: resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} - hasBin: true dev: true /set-function-length@1.2.2: @@ -1387,7 +1380,6 @@ packages: /ts-node@10.9.2(@types/node@20.12.11)(typescript@5.4.5): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true peerDependencies: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' @@ -1432,7 +1424,6 @@ packages: /typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} - hasBin: true dev: true /undici-types@5.26.5: @@ -1464,7 +1455,6 @@ packages: /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} - hasBin: true dependencies: isexe: 2.0.0 dev: true diff --git a/engine/language_client_typescript/src/lib.rs b/engine/language_client_typescript/src/lib.rs index b5f2df72a..f7217a0a6 100644 --- a/engine/language_client_typescript/src/lib.rs +++ b/engine/language_client_typescript/src/lib.rs @@ -2,8 +2,11 @@ use napi::{Env, JsUndefined}; use napi_derive::napi; mod parse_ts_types; +mod runtime; mod types; +pub(crate) use runtime::BamlRuntime; + #[napi(js_name = "invoke_runtime_cli")] pub fn run_cli(env: Env, params: Vec) -> napi::Result { baml_runtime::BamlRuntime::run_cli(params, baml_runtime::CallerType::Typescript)?; diff --git a/engine/language_client_typescript/src/parse_ts_types.rs b/engine/language_client_typescript/src/parse_ts_types.rs index b865727cc..45b119101 100644 --- a/engine/language_client_typescript/src/parse_ts_types.rs +++ b/engine/language_client_typescript/src/parse_ts_types.rs @@ -11,6 +11,7 @@ use napi::JsString; use napi::JsUnknown; use napi::NapiRaw; +use crate::types::audio::BamlAudio; use crate::types::image::BamlImage; struct SerializationError { @@ -193,7 +194,9 @@ pub fn jsunknown_to_baml_value( ValueType::External => { let external = unsafe { item.cast::() }; if let Ok(img) = env.get_value_external::(&external) { - BamlValue::Image(img.inner.clone()) + BamlValue::Media(img.inner.clone()) + } else if let Ok(audio) = env.get_value_external::(&external) { + BamlValue::Media(audio.inner.clone()) } else { if skip_unsupported { return Ok(None); diff --git a/engine/language_client_typescript/src/runtime.rs b/engine/language_client_typescript/src/runtime.rs new file mode 100644 index 000000000..79804bdb6 --- /dev/null +++ b/engine/language_client_typescript/src/runtime.rs @@ -0,0 +1,251 @@ +use crate::parse_ts_types; +use crate::types::function_result_stream::FunctionResultStream; +use crate::types::function_results::FunctionResult; +use crate::types::runtime_ctx_manager::RuntimeContextManager; +use crate::types::trace_stats::TraceStats; +use crate::types::type_builder::TypeBuilder; +use baml_runtime::on_log_event::LogEvent; +use baml_runtime::runtime_interface::ExperimentalTracingInterface; +use baml_runtime::BamlRuntime as CoreRuntime; +use baml_types::BamlValue; +use napi::bindgen_prelude::ObjectFinalize; +use napi::threadsafe_function::{ThreadSafeCallContext, ThreadsafeFunctionCallMode}; +use napi::JsFunction; +use napi::JsObject; +use napi::{Env, JsUndefined}; +use napi_derive::napi; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use std::path::PathBuf; + +crate::lang_wrapper!(BamlRuntime, + CoreRuntime, + clone_safe, + custom_finalize, + callback: Option> = None +); + +#[napi(object)] +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct LogEventMetadata { + pub event_id: String, + pub parent_id: Option, + pub root_event_id: String, +} + +#[napi(object)] +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct BamlLogEvent { + pub metadata: LogEventMetadata, + pub prompt: Option, + pub raw_output: Option, + // json structure or a string + pub parsed_output: Option, + pub start_time: String, +} + +#[napi] +impl BamlRuntime { + #[napi(ts_return_type = "BamlRuntime")] + pub fn from_directory( + directory: String, + env_vars: HashMap, + ) -> napi::Result { + let directory = PathBuf::from(directory); + Ok(CoreRuntime::from_directory(&directory, env_vars) + .map_err(|e| napi::Error::new(napi::Status::GenericFailure, e.to_string()))? + .into()) + } + + #[napi(ts_return_type = "BamlRuntime")] + pub fn from_files( + root_path: String, + files: HashMap, + env_vars: HashMap, + ) -> napi::Result { + Ok(CoreRuntime::from_file_content(&root_path, &files, env_vars) + .map_err(|e| napi::Error::new(napi::Status::GenericFailure, e.to_string()))? + .into()) + } + + #[napi] + pub fn create_context_manager(&self) -> RuntimeContextManager { + self.inner + .create_ctx_manager(BamlValue::String("typescript".to_string())) + .into() + } + + #[napi(ts_return_type = "Promise")] + pub fn call_function( + &self, + env: Env, + function_name: String, + #[napi(ts_arg_type = "{ [string]: any }")] args: JsObject, + ctx: &RuntimeContextManager, + tb: Option<&TypeBuilder>, + ) -> napi::Result { + let args = parse_ts_types::js_object_to_baml_value(env, args)?; + + if !args.is_map() { + return Err(napi::Error::new( + napi::Status::GenericFailure, + format!( + "Invalid args: Expected a map of arguments, got: {}", + args.r#type() + ), + )); + } + let args_map = args.as_map_owned().unwrap(); + + let baml_runtime = self.inner.clone(); + let ctx_mng = ctx.inner.clone(); + let tb = tb.map(|tb| tb.inner.clone()); + + let fut = async move { + let result = baml_runtime + .call_function(function_name, &args_map, &ctx_mng, tb.as_ref()) + .await; + + result + .0 + .map(FunctionResult::from) + .map_err(|e| napi::Error::new(napi::Status::GenericFailure, e.to_string())) + }; + + env.execute_tokio_future(fut, |&mut _, data| Ok(data)) + } + + #[napi] + pub fn stream_function( + &self, + env: Env, + function_name: String, + #[napi(ts_arg_type = "{ [string]: any }")] args: JsObject, + #[napi(ts_arg_type = "(err: any, param: FunctionResult) => void")] cb: Option, + ctx: &RuntimeContextManager, + tb: Option<&TypeBuilder>, + ) -> napi::Result { + let args: BamlValue = parse_ts_types::js_object_to_baml_value(env, args)?; + if !args.is_map() { + return Err(napi::Error::new( + napi::Status::GenericFailure, + format!( + "Invalid args: Expected a map of arguments, got: {}", + args.r#type() + ), + )); + } + let args_map = args.as_map_owned().unwrap(); + + let ctx = ctx.inner.clone(); + let tb = tb.map(|tb| tb.inner.clone()); + let stream = self + .inner + .stream_function(function_name, &args_map, &ctx, tb.as_ref()) + .map_err(|e| napi::Error::new(napi::Status::GenericFailure, e.to_string()))?; + + let cb = match cb { + Some(cb) => Some(env.create_reference(cb)?), + None => None, + }; + + Ok(FunctionResultStream::new(stream, cb, tb)) + } + + #[napi] + pub fn set_log_event_callback( + &mut self, + env: Env, + #[napi(ts_arg_type = "(err: any, param: BamlLogEvent) => void")] func: JsFunction, + ) -> napi::Result { + let cb = env.create_reference(func)?; + // let prev = self.callback.take(); + // if let Some(mut old_cb) = prev { + // old_cb.unref(env)?; + // } + self.callback = Some(cb); + + let res = match &self.callback { + Some(callback_ref) => { + let cb = env.get_reference_value::(callback_ref)?; + let mut tsfn = env.create_threadsafe_function( + &cb, + 0, + |ctx: ThreadSafeCallContext| { + Ok(vec![BamlLogEvent::from(ctx.value)]) + }, + )?; + let tsfn_clone = tsfn.clone(); + + let res = self + .inner + .set_log_event_callback(Box::new(move |event: LogEvent| { + // let env = callback.env; + let event = BamlLogEvent { + metadata: LogEventMetadata { + event_id: event.metadata.event_id, + parent_id: event.metadata.parent_id, + root_event_id: event.metadata.root_event_id, + }, + prompt: event.prompt, + raw_output: event.raw_output, + parsed_output: event.parsed_output, + start_time: event.start_time, + }; + + let res = tsfn_clone.call(Ok(event), ThreadsafeFunctionCallMode::Blocking); + if res != napi::Status::Ok { + log::error!("Error calling on_log_event callback: {:?}", res); + } + + Ok(()) + })) + .map_err(|e| napi::Error::new(napi::Status::GenericFailure, e.to_string())); + let _ = tsfn.unref(&env); + + match res { + Ok(_) => Ok(()), + Err(e) => { + log::error!("Error setting log_event_callback: {:?}", e); + Err(e) + } + } + } + None => Ok(()), + }; + + let _ = match res { + Ok(_) => Ok(env.get_undefined()?), + Err(e) => { + log::error!("Error setting log_event_callback: {:?}", e); + Err(e) + } + }; + + env.get_undefined() + } + + #[napi] + pub fn flush(&mut self, env: Env) -> napi::Result<()> { + self.inner + .flush() + .map_err(|e| napi::Error::new(napi::Status::GenericFailure, e.to_string())) + } + + #[napi] + pub fn drain_stats(&self) -> TraceStats { + self.inner.drain_stats().into() + } +} + +impl ObjectFinalize for BamlRuntime { + fn finalize(mut self, env: Env) -> napi::Result<()> { + if let Some(mut cb) = self.callback.take() { + match cb.unref(env) { + Ok(_) => (), + Err(e) => log::error!("Error unrefing callback: {:?}", e), + } + } + Ok(()) + } +} diff --git a/engine/language_client_typescript/src/types/audio.rs b/engine/language_client_typescript/src/types/audio.rs new file mode 100644 index 000000000..6a28c1489 --- /dev/null +++ b/engine/language_client_typescript/src/types/audio.rs @@ -0,0 +1,74 @@ +use baml_types::BamlMediaType; +use napi::bindgen_prelude::External; +use napi_derive::napi; +use serde_json::json; + +crate::lang_wrapper!(BamlAudio, baml_types::BamlMedia); + +#[napi] +impl BamlAudio { + #[napi(ts_return_type = "BamlAudio")] + pub fn from_url(url: String) -> External { + let aud = BamlAudio { + inner: baml_types::BamlMedia::Url( + BamlMediaType::Audio, + baml_types::MediaUrl::new(url, None), + ), + }; + External::new(aud) + } + + #[napi(ts_return_type = "BamlAudio")] + pub fn from_base64(media_type: String, base64: String) -> External { + let aud = BamlAudio { + inner: baml_types::BamlMedia::Base64( + BamlMediaType::Audio, + baml_types::MediaBase64::new(base64, media_type), + ), + }; + External::new(aud) + } + + #[napi(js_name = "isUrl")] + pub fn is_url(&self) -> bool { + matches!(&self.inner, baml_types::BamlMedia::Url(_, _)) + } + + #[napi] + pub fn as_url(&self) -> napi::Result { + match &self.inner { + baml_types::BamlMedia::Url(BamlMediaType::Audio, url) => Ok(url.url.clone()), + _ => Err(napi::Error::new( + napi::Status::GenericFailure, + "Audio is not a URL".to_string(), + )), + } + } + + #[napi(ts_return_type = "[string, string]")] + pub fn as_base64(&self) -> napi::Result> { + match &self.inner { + baml_types::BamlMedia::Base64(BamlMediaType::Audio, base64) => { + Ok(vec![base64.base64.clone(), base64.media_type.clone()]) + } + _ => Err(napi::Error::new( + napi::Status::GenericFailure, + "Audio is not base64".to_string(), + )), + } + } + + #[napi(js_name = "toJSON")] + pub fn to_json(&self) -> napi::Result { + Ok(match &self.inner { + baml_types::BamlMedia::Url(BamlMediaType::Audio, url) => json!({ + "url": url.url + }), + baml_types::BamlMedia::Base64(BamlMediaType::Audio, base64) => json!({ + "base64": base64.base64, + "media_type": base64.media_type + }), + _ => format!("Unknown BamlAudioPy variant").into(), + }) + } +} diff --git a/engine/language_client_typescript/src/types/function_result_stream.rs b/engine/language_client_typescript/src/types/function_result_stream.rs index ae4d79530..916476746 100644 --- a/engine/language_client_typescript/src/types/function_result_stream.rs +++ b/engine/language_client_typescript/src/types/function_result_stream.rs @@ -19,7 +19,7 @@ crate::lang_wrapper!( ); impl FunctionResultStream { - pub(super) fn new( + pub(crate) fn new( inner: baml_runtime::FunctionResultStream, event: Option>, tb: Option, diff --git a/engine/language_client_typescript/src/types/image.rs b/engine/language_client_typescript/src/types/image.rs index 137f5fa9b..5014c1b4e 100644 --- a/engine/language_client_typescript/src/types/image.rs +++ b/engine/language_client_typescript/src/types/image.rs @@ -1,15 +1,18 @@ +use baml_types::BamlMediaType; use napi::bindgen_prelude::External; use napi_derive::napi; use serde_json::json; - -crate::lang_wrapper!(BamlImage, baml_types::BamlImage); +crate::lang_wrapper!(BamlImage, baml_types::BamlMedia); #[napi] impl BamlImage { #[napi(ts_return_type = "BamlImage")] pub fn from_url(url: String) -> External { let img = BamlImage { - inner: baml_types::BamlImage::Url(baml_types::ImageUrl::new(url)), + inner: baml_types::BamlMedia::Url( + BamlMediaType::Image, + baml_types::MediaUrl::new(url, None), + ), }; External::new(img) } @@ -17,20 +20,23 @@ impl BamlImage { #[napi(ts_return_type = "BamlImage")] pub fn from_base64(media_type: String, base64: String) -> External { let img = BamlImage { - inner: baml_types::BamlImage::Base64(baml_types::ImageBase64::new(base64, media_type)), + inner: baml_types::BamlMedia::Base64( + BamlMediaType::Image, + baml_types::MediaBase64::new(base64, media_type), + ), }; External::new(img) } #[napi(js_name = "isUrl")] pub fn is_url(&self) -> bool { - matches!(&self.inner, baml_types::BamlImage::Url(_)) + matches!(&self.inner, baml_types::BamlMedia::Url(_, _)) } #[napi] pub fn as_url(&self) -> napi::Result { match &self.inner { - baml_types::BamlImage::Url(url) => Ok(url.url.clone()), + baml_types::BamlMedia::Url(BamlMediaType::Image, url) => Ok(url.url.clone()), _ => Err(napi::Error::new( napi::Status::GenericFailure, "Image is not a URL".to_string(), @@ -41,7 +47,7 @@ impl BamlImage { #[napi(ts_return_type = "[string, string]")] pub fn as_base64(&self) -> napi::Result> { match &self.inner { - baml_types::BamlImage::Base64(base64) => { + baml_types::BamlMedia::Base64(BamlMediaType::Image, base64) => { Ok(vec![base64.base64.clone(), base64.media_type.clone()]) } _ => Err(napi::Error::new( @@ -54,13 +60,14 @@ impl BamlImage { #[napi(js_name = "toJSON")] pub fn to_json(&self) -> napi::Result { Ok(match &self.inner { - baml_types::BamlImage::Url(url) => json!({ + baml_types::BamlMedia::Url(BamlMediaType::Image, url) => json!({ "url": url.url }), - baml_types::BamlImage::Base64(base64) => json!({ + baml_types::BamlMedia::Base64(BamlMediaType::Image, base64) => json!({ "base64": base64.base64, "media_type": base64.media_type }), + _ => format!("Unknown BamlImagePy variant").into(), }) } } diff --git a/engine/language_client_typescript/src/types/lang_wrappers.rs b/engine/language_client_typescript/src/types/lang_wrappers.rs index 31988fad5..bb99ee41c 100644 --- a/engine/language_client_typescript/src/types/lang_wrappers.rs +++ b/engine/language_client_typescript/src/types/lang_wrappers.rs @@ -17,6 +17,23 @@ macro_rules! lang_wrapper { } }; + ($name:ident, $type:ty, clone_safe, custom_finalize $(, $attr_name:ident : $attr_type:ty = $default:expr)*) => { + #[napi_derive::napi(custom_finalize)] + pub struct $name { + pub(crate) inner: std::sync::Arc<$type>, + $($attr_name: $attr_type),* + } + + impl From<$type> for $name { + fn from(inner: $type) -> Self { + Self { + inner: std::sync::Arc::new(inner), + $($attr_name: $default),* + } + } + } + }; + ($name:ident, $type:ty, sync_thread_safe $(, $attr_name:ident : $attr_type:ty)*) => { #[napi_derive::napi] pub struct $name { diff --git a/engine/language_client_typescript/src/types/mod.rs b/engine/language_client_typescript/src/types/mod.rs index fa84ce923..29605c84b 100644 --- a/engine/language_client_typescript/src/types/mod.rs +++ b/engine/language_client_typescript/src/types/mod.rs @@ -1,10 +1,13 @@ mod lang_wrappers; +pub mod audio; mod client_builder; mod function_result_stream; +pub(crate) mod function_result_stream; mod function_results; +pub(crate) mod function_results; pub mod image; -mod runtime; -mod runtime_ctx_manager; -mod span; -mod type_builder; +pub(crate) mod runtime_ctx_manager; +pub(crate) mod span; +pub(crate) mod trace_stats; +pub(crate) mod type_builder; diff --git a/engine/language_client_typescript/src/types/runtime.rs b/engine/language_client_typescript/src/types/runtime.rs deleted file mode 100644 index 1e477a38b..000000000 --- a/engine/language_client_typescript/src/types/runtime.rs +++ /dev/null @@ -1,157 +0,0 @@ -use super::client_builder::ClientBuilder; -use super::function_result_stream::FunctionResultStream; -use super::runtime_ctx_manager::RuntimeContextManager; -use super::type_builder::TypeBuilder; -use crate::parse_ts_types; -use crate::types::function_results::FunctionResult; -use baml_runtime::runtime_interface::ExperimentalTracingInterface; -use baml_runtime::BamlRuntime as CoreRuntime; -use baml_types::BamlValue; -use napi::Env; -use napi::JsFunction; -use napi::JsObject; -use napi_derive::napi; -use std::collections::HashMap; -use std::path::PathBuf; - -crate::lang_wrapper!(BamlRuntime, CoreRuntime, clone_safe); - -#[napi] -impl BamlRuntime { - #[napi(ts_return_type = "BamlRuntime")] - pub fn from_directory( - directory: String, - env_vars: HashMap, - ) -> napi::Result { - let directory = PathBuf::from(directory); - Ok(CoreRuntime::from_directory(&directory, env_vars) - .map_err(|e| napi::Error::new(napi::Status::GenericFailure, format!("{:?}", e)))? - .into()) - } - - #[napi(ts_return_type = "BamlRuntime")] - pub fn from_files( - root_path: String, - files: HashMap, - env_vars: HashMap, - ) -> napi::Result { - Ok(CoreRuntime::from_file_content(&root_path, &files, env_vars) - .map_err(|e| napi::Error::new(napi::Status::GenericFailure, format!("{:?}", e)))? - .into()) - } - - #[napi] - pub fn create_context_manager(&self) -> RuntimeContextManager { - self.inner - .create_ctx_manager(BamlValue::String("typescript".to_string())) - .into() - } - - #[napi(ts_return_type = "Promise")] - pub fn call_function( - &self, - env: Env, - function_name: String, - #[napi(ts_arg_type = "{ [string]: any }")] args: JsObject, - ctx: &RuntimeContextManager, - tb: Option<&TypeBuilder>, - cb: Option<&ClientBuilder>, - ) -> napi::Result { - let args = parse_ts_types::js_object_to_baml_value(env, args)?; - if !args.is_map() { - return Err(napi::Error::new( - napi::Status::GenericFailure, - format!( - "Invalid args: Expected a map of arguments, got: {}", - args.r#type() - ), - )); - } - let args_map = args.as_map_owned().unwrap(); - - let baml_runtime = self.inner.clone(); - let ctx_mng = ctx.inner.clone(); - let tb = tb.map(|tb| tb.inner.clone()); - let cb = cb.map(|cb| cb.inner.clone()); - - let fut = async move { - let result = baml_runtime - .call_function( - function_name.clone(), - &args_map, - &ctx_mng, - tb.as_ref(), - cb.as_ref(), - ) - .await; - - result.0.map(FunctionResult::from).map_err(|e| { - napi::Error::new( - napi::Status::GenericFailure, - format!("Failed to call function: {function_name}\n{:?}", e), - ) - }) - }; - - env.execute_tokio_future(fut, |&mut _, data| Ok(data)) - } - - #[napi] - pub fn stream_function( - &self, - env: Env, - function_name: String, - #[napi(ts_arg_type = "{ [string]: any }")] args: JsObject, - #[napi(ts_arg_type = "(err: any, param: FunctionResult) => void")] callback: Option< - JsFunction, - >, - ctx: &RuntimeContextManager, - tb: Option<&TypeBuilder>, - cb: Option<&ClientBuilder>, - ) -> napi::Result { - let args: BamlValue = parse_ts_types::js_object_to_baml_value(env, args)?; - if !args.is_map() { - return Err(napi::Error::new( - napi::Status::GenericFailure, - format!( - "Invalid args: Expected a map of arguments, got: {}", - args.r#type() - ), - )); - } - let args_map = args.as_map_owned().unwrap(); - - let ctx = ctx.inner.clone(); - let tb = tb.map(|tb| tb.inner.clone()); - let cb = cb.map(|cb| cb.inner.clone()); - let stream = self - .inner - .stream_function( - function_name.clone(), - &args_map, - &ctx, - tb.as_ref(), - cb.as_ref(), - ) - .map_err(|e| { - napi::Error::new( - napi::Status::GenericFailure, - format!("Failed to create stream for {function_name}\n{:?}", e), - ) - })?; - - let callback = match callback { - Some(cb) => Some(env.create_reference(cb)?), - None => None, - }; - - Ok(FunctionResultStream::new(stream, callback, tb, cb)) - } - - #[napi] - pub fn flush(&self) -> napi::Result<()> { - self.inner - .flush() - .map_err(|e| napi::Error::new(napi::Status::GenericFailure, format!("{:?}", e))) - } -} diff --git a/engine/language_client_typescript/src/types/span.rs b/engine/language_client_typescript/src/types/span.rs index 0173dd0de..10397c14e 100644 --- a/engine/language_client_typescript/src/types/span.rs +++ b/engine/language_client_typescript/src/types/span.rs @@ -1,10 +1,9 @@ use baml_runtime::runtime_interface::ExperimentalTracingInterface; use baml_types::BamlValue; -use futures::executor::block_on; use napi_derive::napi; -use super::runtime::BamlRuntime; use super::runtime_ctx_manager::RuntimeContextManager; +use crate::BamlRuntime; crate::lang_wrapper!(BamlSpan, Option>, @@ -47,7 +46,7 @@ impl BamlSpan { result: serde_json::Value, ctx: &RuntimeContextManager, ) -> napi::Result { - log::info!("Finishing span: {:?}", self.inner); + log::trace!("Finishing span: {:?}", self.inner); let result: BamlValue = serde_json::from_value(result) .map_err(|e| napi::Error::new(napi::Status::GenericFailure, format!("{:?}", e)))?; // log::info!("Finishing span: {:#?}\n", self.inner.lock().await); diff --git a/engine/language_client_typescript/src/types/trace_stats.rs b/engine/language_client_typescript/src/types/trace_stats.rs new file mode 100644 index 000000000..7fac61652 --- /dev/null +++ b/engine/language_client_typescript/src/types/trace_stats.rs @@ -0,0 +1,49 @@ +use napi_derive::napi; + +crate::lang_wrapper!(TraceStats, baml_runtime::InnerTraceStats); + +#[napi] +impl TraceStats { + #[napi(getter)] + pub fn get_failed(&self) -> u32 { + self.inner.failed + } + + #[napi(getter)] + pub fn get_started(&self) -> u32 { + self.inner.started + } + + #[napi(getter)] + pub fn get_finalized(&self) -> u32 { + self.inner.finalized + } + + #[napi(getter)] + pub fn get_submitted(&self) -> u32 { + self.inner.submitted + } + + #[napi(getter)] + pub fn get_sent(&self) -> u32 { + self.inner.sent + } + + #[napi(getter)] + pub fn get_done(&self) -> u32 { + self.inner.done + } + + #[napi] + pub fn to_json(&self) -> String { + serde_json::json!({ + "failed": self.inner.failed, + "started": self.inner.started, + "finalized": self.inner.finalized, + "submitted": self.inner.submitted, + "sent": self.inner.sent, + "done": self.inner.done, + }) + .to_string() + } +} diff --git a/engine/language_client_typescript/stream.d.ts b/engine/language_client_typescript/stream.d.ts deleted file mode 100644 index dd7f000cd..000000000 --- a/engine/language_client_typescript/stream.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { FunctionResult, FunctionResultStream, RuntimeContextManager } from './native'; -export declare class BamlStream { - private ffiStream; - private partialCoerce; - private finalCoerce; - private ctxManager; - private task; - private eventQueue; - constructor(ffiStream: FunctionResultStream, partialCoerce: (result: FunctionResult) => PartialOutputType, finalCoerce: (result: FunctionResult) => FinalOutputType, ctxManager: RuntimeContextManager); - private driveToCompletion; - private driveToCompletionInBg; - [Symbol.asyncIterator](): AsyncIterableIterator; - getFinalResponse(): Promise; -} -//# sourceMappingURL=stream.d.ts.map \ No newline at end of file diff --git a/engine/language_client_typescript/stream.d.ts.map b/engine/language_client_typescript/stream.d.ts.map deleted file mode 100644 index 7c571df13..000000000 --- a/engine/language_client_typescript/stream.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["typescript_src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEtF,qBAAa,UAAU,CAAC,iBAAiB,EAAE,eAAe;IAMtD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IARpB,OAAO,CAAC,IAAI,CAAuC;IAEnD,OAAO,CAAC,UAAU,CAAgC;gBAGxC,SAAS,EAAE,oBAAoB,EAC/B,aAAa,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,iBAAiB,EAC5D,WAAW,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,eAAe,EACxD,UAAU,EAAE,qBAAqB;YAG7B,iBAAiB;IAiB/B,OAAO,CAAC,qBAAqB;IAQtB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,iBAAiB,CAAC;IAmBnE,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;CAKnD"} \ No newline at end of file diff --git a/engine/language_client_typescript/stream.js b/engine/language_client_typescript/stream.js deleted file mode 100644 index b7d6ae5f1..000000000 --- a/engine/language_client_typescript/stream.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BamlStream = void 0; -class BamlStream { - ffiStream; - partialCoerce; - finalCoerce; - ctxManager; - task = null; - eventQueue = []; - constructor(ffiStream, partialCoerce, finalCoerce, ctxManager) { - this.ffiStream = ffiStream; - this.partialCoerce = partialCoerce; - this.finalCoerce = finalCoerce; - this.ctxManager = ctxManager; - } - async driveToCompletion() { - try { - this.ffiStream.onEvent((err, data) => { - if (err) { - return; - } - else { - this.eventQueue.push(data); - } - }); - const retval = await this.ffiStream.done(this.ctxManager); - return retval; - } - finally { - this.eventQueue.push(null); - } - } - driveToCompletionInBg() { - if (this.task === null) { - this.task = this.driveToCompletion(); - } - return this.task; - } - async *[Symbol.asyncIterator]() { - this.driveToCompletionInBg(); - while (true) { - const event = this.eventQueue.shift(); - if (event === undefined) { - await new Promise((resolve) => setTimeout(resolve, 100)); - continue; - } - if (event === null) { - break; - } - yield this.partialCoerce(event.parsed()); - } - } - async getFinalResponse() { - const final = await this.driveToCompletionInBg(); - return this.finalCoerce(final.parsed()); - } -} -exports.BamlStream = BamlStream; diff --git a/engine/language_client_typescript/type_builder.d.ts b/engine/language_client_typescript/type_builder.d.ts deleted file mode 100644 index 30e8f48f7..000000000 --- a/engine/language_client_typescript/type_builder.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { ClassPropertyBuilder as _ClassPropertyBuilder, EnumValueBuilder, FieldType, TypeBuilder as _TypeBuilder } from './native'; -type IsLiteral = string extends T ? false : true; -type NameOf = IsLiteral extends true ? T : 'DynamicType'; -type CheckNever = [T] extends [never] ? `Error: Attempt to add value '${Value}' which is already a part of '${NameOf}'.` : T; -type ExcludeFrom = T extends U ? never : T; -type RestrictNot = IsLiteral extends true ? CheckNever, Name, Value> : Value; -export declare class TypeBuilder { - protected classes: Set; - protected enums: Set; - private tb; - constructor(classes: Set, enums: Set); - _tb(): _TypeBuilder; - string(): FieldType; - int(): FieldType; - float(): FieldType; - bool(): FieldType; - list(type: FieldType): FieldType; - classBuilder(name: Name, properties: Properties[]): ClassBuilder; - enumBuilder(name: Name, values: T[]): EnumBuilder; - addClass(name: Name): ClassBuilder; - addEnum(name: Name): EnumBuilder; -} -export declare class ClassBuilder { - private properties; - private bldr; - constructor(tb: _TypeBuilder, name: ClassName, properties?: Set); - type(): FieldType; - listProperties(): Array<[string, ClassPropertyBuilder]>; - addProperty(name: RestrictNot, type: FieldType): ClassPropertyBuilder; - property(name: string): ClassPropertyBuilder; -} -declare class ClassPropertyBuilder { - private bldr; - constructor(bldr: _ClassPropertyBuilder); - alias(alias: string | null): ClassPropertyBuilder; - description(description: string | null): ClassPropertyBuilder; -} -export declare class EnumBuilder { - private values; - private bldr; - constructor(tb: _TypeBuilder, name: EnumName, values?: Set); - type(): FieldType; - value(name: S | T): EnumValueBuilder; - listValues(): Array<[string, EnumValueBuilder]>; - addValue(name: RestrictNot): EnumValueBuilder; -} -export {}; -//# sourceMappingURL=type_builder.d.ts.map \ No newline at end of file diff --git a/engine/language_client_typescript/type_builder.d.ts.map b/engine/language_client_typescript/type_builder.d.ts.map deleted file mode 100644 index 4fa27ea50..000000000 --- a/engine/language_client_typescript/type_builder.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type_builder.d.ts","sourceRoot":"","sources":["typescript_src/type_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,IAAI,qBAAqB,EAC7C,gBAAgB,EAChB,SAAS,EACT,WAAW,IAAI,YAAY,EAC5B,MAAM,UAAU,CAAA;AAEjB,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA;AAClE,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,aAAa,CAAA;AAC7E,KAAK,UAAU,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnF,gCAAgC,KAAK,iCAAiC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAC1F,CAAC,CAAA;AACL,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;AAChD,KAAK,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,GACrG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAC9C,KAAK,CAAA;AAET,qBAAa,WAAW;IAIpB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC;IAJ9B,OAAO,CAAC,EAAE,CAAc;gBAGZ,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC;IAK9B,GAAG,IAAI,YAAY;IAInB,MAAM,IAAI,SAAS;IAInB,GAAG,IAAI,SAAS;IAIhB,KAAK,IAAI,SAAS;IAIlB,IAAI,IAAI,SAAS;IAIjB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAIhC,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EACzD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EAAE,GACvB,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;IAIjC,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAIjG,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAW7D,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;CAU5D;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IAMlF,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,IAAI,CAAe;gBAGzB,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,SAAS,EACP,UAAU,GAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAa;IAK1D,IAAI,IAAI,SAAS;IAIjB,cAAc,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAIvD,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,oBAAoB;IAQjH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;CAM7C;AAED,cAAM,oBAAoB;IACxB,OAAO,CAAC,IAAI,CAAuB;gBAEvB,IAAI,EAAE,qBAAqB;IAIvC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB;IAKjD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB;CAI9D;AAED,qBAAa,WAAW,CAAC,QAAQ,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAMvE,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,IAAI,CAAc;gBAGxB,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,QAAQ,EACN,MAAM,GAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAa;IAK7C,IAAI,IAAI,SAAS;IAIjB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,gBAAgB;IAOtD,UAAU,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAI/C,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB;CAOhF"} \ No newline at end of file diff --git a/engine/language_client_typescript/type_builder.js b/engine/language_client_typescript/type_builder.js deleted file mode 100644 index 3bd5d6ffa..000000000 --- a/engine/language_client_typescript/type_builder.js +++ /dev/null @@ -1,129 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.EnumBuilder = exports.ClassBuilder = exports.TypeBuilder = void 0; -const native_1 = require("./native"); -class TypeBuilder { - classes; - enums; - tb; - constructor(classes, enums) { - this.classes = classes; - this.enums = enums; - this.tb = new native_1.TypeBuilder(); - } - _tb() { - return this.tb; - } - string() { - return this.tb.string(); - } - int() { - return this.tb.int(); - } - float() { - return this.tb.float(); - } - bool() { - return this.tb.bool(); - } - list(type) { - return this.tb.list(type); - } - classBuilder(name, properties) { - return new ClassBuilder(this.tb, name, new Set(properties)); - } - enumBuilder(name, values) { - return new EnumBuilder(this.tb, name, new Set(values)); - } - addClass(name) { - if (this.classes.has(name)) { - throw new Error(`Class ${name} already exists`); - } - if (this.enums.has(name)) { - throw new Error(`Enum ${name} already exists`); - } - this.classes.add(name); - return new ClassBuilder(this.tb, name); - } - addEnum(name) { - if (this.classes.has(name)) { - throw new Error(`Class ${name} already exists`); - } - if (this.enums.has(name)) { - throw new Error(`Enum ${name} already exists`); - } - this.enums.add(name); - return new EnumBuilder(this.tb, name); - } -} -exports.TypeBuilder = TypeBuilder; -class ClassBuilder { - properties; - bldr; - constructor(tb, name, properties = new Set()) { - this.properties = properties; - this.bldr = tb.getClass(name); - } - type() { - return this.bldr.field(); - } - listProperties() { - return Array.from(this.properties).map((name) => [name, new ClassPropertyBuilder(this.bldr.property(name))]); - } - addProperty(name, type) { - if (this.properties.has(name)) { - throw new Error(`Property ${name} already exists.`); - } - this.properties.add(name); - return new ClassPropertyBuilder(this.bldr.property(name).setType(type)); - } - property(name) { - if (!this.properties.has(name)) { - throw new Error(`Property ${name} not found.`); - } - return new ClassPropertyBuilder(this.bldr.property(name)); - } -} -exports.ClassBuilder = ClassBuilder; -class ClassPropertyBuilder { - bldr; - constructor(bldr) { - this.bldr = bldr; - } - alias(alias) { - this.bldr.alias(alias); - return this; - } - description(description) { - this.bldr.description(description); - return this; - } -} -class EnumBuilder { - values; - bldr; - constructor(tb, name, values = new Set()) { - this.values = values; - this.bldr = tb.getEnum(name); - } - type() { - return this.bldr.field(); - } - value(name) { - if (!this.values.has(name)) { - throw new Error(`Value ${name} not found.`); - } - return this.bldr.value(name); - } - listValues() { - return Array.from(this.values).map((name) => [name, this.bldr.value(name)]); - } - addValue(name) { - if (this.values.has(name)) { - throw new Error(`Value ${name} already exists.`); - } - this.values.add(name); - return this.bldr.value(name); - } -} -exports.EnumBuilder = EnumBuilder; diff --git a/engine/language_client_typescript/typescript_src/async_context_vars.ts b/engine/language_client_typescript/typescript_src/async_context_vars.ts index c2a31d129..2eb6ccdb4 100644 --- a/engine/language_client_typescript/typescript_src/async_context_vars.ts +++ b/engine/language_client_typescript/typescript_src/async_context_vars.ts @@ -1,7 +1,7 @@ -import { BamlSpan, RuntimeContextManager, BamlRuntime } from './native' +import { BamlSpan, RuntimeContextManager, BamlRuntime, BamlLogEvent } from './native' import { AsyncLocalStorage } from 'async_hooks' -export class CtxManager { +export class BamlCtxManager { private rt: BamlRuntime private ctx: AsyncLocalStorage @@ -19,27 +19,18 @@ export class CtxManager { manager.upsertTags(tags) } - get(): RuntimeContextManager { + cloneContext(): RuntimeContextManager { let store = this.ctx.getStore() if (store === undefined) { store = this.rt.createContextManager() this.ctx.enterWith(store) } - return store + return store.deepClone() } - startTraceSync(name: string, args: Record): BamlSpan { - const mng = this.get() - // const clone = mng.deepClone() - // this.ctx.enterWith(clone) - return BamlSpan.new(this.rt, name, args, mng) - } - - startTraceAsync(name: string, args: Record): BamlSpan { - const mng = this.get() - const clone = mng.deepClone() - this.ctx.enterWith(clone) - return BamlSpan.new(this.rt, name, args, clone) + startTrace(name: string, args: Record): [RuntimeContextManager, BamlSpan] { + const mng = this.cloneContext() + return [mng, BamlSpan.new(this.rt, name, args, mng)] } endTrace(span: BamlSpan, response: any): void { @@ -48,13 +39,25 @@ export class CtxManager { console.error('Context lost before span could be finished\n') return } - span.finish(response, manager) + try { + span.finish(response, manager) + } catch (e) { + console.error('BAML internal error', e) + } } flush(): void { this.rt.flush() } + onLogEvent(callback: (event: BamlLogEvent) => void): void { + this.rt.setLogEventCallback((error: any, param: BamlLogEvent) => { + if (!error) { + callback(param) + } + }) + } + traceFnSync ReturnType>(name: string, func: F): F { return ((...args: any[]) => { const params = args.reduce( @@ -64,20 +67,21 @@ export class CtxManager { }), {}, ) - const span = this.startTraceSync(name, params) - - try { - const response = func(...args) - this.endTrace(span, response) - return response - } catch (e) { - this.endTrace(span, e) - throw e - } + const [mng, span] = this.startTrace(name, params) + this.ctx.run(mng, () => { + try { + const response = func(...args) + this.endTrace(span, response) + return response + } catch (e) { + this.endTrace(span, e) + throw e + } + }) }) } - traceFnAync Promise>(name: string, func: F): F { + traceFnAsync Promise>(name: string, func: F): F { const funcName = name return (async (...args: any[]) => { const params = args.reduce( @@ -87,15 +91,17 @@ export class CtxManager { }), {}, ) - const span = this.startTraceAsync(funcName, params) - try { - const response = await func(...args) - this.endTrace(span, response) - return response - } catch (e) { - this.endTrace(span, e) - throw e - } + const [mng, span] = this.startTrace(name, params) + await this.ctx.run(mng, async () => { + try { + const response = await func(...args) + this.endTrace(span, response) + return response + } catch (e) { + this.endTrace(span, e) + throw e + } + }) }) } } diff --git a/engine/language_client_typescript/typescript_src/index.ts b/engine/language_client_typescript/typescript_src/index.ts index 255b9a60f..813ec79d5 100644 --- a/engine/language_client_typescript/typescript_src/index.ts +++ b/engine/language_client_typescript/typescript_src/index.ts @@ -3,8 +3,9 @@ export { FunctionResult, FunctionResultStream, BamlImage as Image, - invoke_runtime_cli, ClientBuilder, + BamlAudio as Audio, + invoke_runtime_cli, } from './native' export { BamlStream } from './stream' -export { CtxManager as BamlCtxManager } from './async_context_vars' +export { BamlCtxManager } from './async_context_vars' diff --git a/engine/language_client_typescript/typescript_src/type_builder.ts b/engine/language_client_typescript/typescript_src/type_builder.ts index a285898d7..471eada0e 100644 --- a/engine/language_client_typescript/typescript_src/type_builder.ts +++ b/engine/language_client_typescript/typescript_src/type_builder.ts @@ -19,11 +19,12 @@ type RestrictNot = export class TypeBuilder { private tb: _TypeBuilder + protected classes: Set + protected enums: Set - constructor( - protected classes: Set, - protected enums: Set, - ) { + constructor({ classes, enums }: { classes: Set; enums: Set }) { + this.classes = classes + this.enums = enums this.tb = new _TypeBuilder() } diff --git a/integ-tests/baml_src/clients.baml b/integ-tests/baml_src/clients.baml index 8a21b61a3..df695ede8 100644 --- a/integ-tests/baml_src/clients.baml +++ b/integ-tests/baml_src/clients.baml @@ -14,16 +14,16 @@ retry_policy Foo { } client GPT4 { - provider baml-openai-chat + provider openai options { - model gpt-4 + model gpt-4o api_key env.OPENAI_API_KEY } } client GPT4o { - provider baml-openai-chat + provider openai options { model gpt-4o api_key env.OPENAI_API_KEY @@ -33,7 +33,7 @@ client GPT4o { client GPT4Turbo { retry_policy Bar - provider baml-openai-chat + provider openai options { model gpt-4-turbo api_key env.OPENAI_API_KEY @@ -41,13 +41,22 @@ client GPT4Turbo { } client GPT35 { - provider baml-openai-chat + provider openai + options { + model "gpt-3.5-turbo" + api_key env.OPENAI_API_KEY + } +} + +client GPT35LegacyProvider { + provider openai options { model "gpt-3.5-turbo" api_key env.OPENAI_API_KEY } } + client Ollama { provider ollama options { @@ -68,12 +77,24 @@ client GPT35Azure { client Gemini { provider google-ai - options{ + options { model "gemini-1.5-pro-001" api_key env.GOOGLE_API_KEY } } +client AwsBedrock { + provider aws-bedrock + options { + inference_configuration { + max_tokens 100 + } + model_id "anthropic.claude-3-haiku-20240307-v1:0" + // model_id "meta.llama3-8b-instruct-v1:0" + // model_id "mistral.mistral-7b-instruct-v0:2" + api_key "" + } +} client Claude { provider anthropic diff --git a/integ-tests/baml_src/fiddle-examples/extract-receipt-info.baml b/integ-tests/baml_src/fiddle-examples/extract-receipt-info.baml new file mode 100644 index 000000000..58d3ea049 --- /dev/null +++ b/integ-tests/baml_src/fiddle-examples/extract-receipt-info.baml @@ -0,0 +1,25 @@ +class ReceiptItem { + name string + description string? + quantity int + price float +} + +class ReceiptInfo { + items ReceiptItem[] + total_cost float? +} + +function ExtractReceiptInfo(email: string) -> ReceiptInfo { + client GPT4o + prompt #" + Given the receipt below: + + ``` + {{email}} + ``` + + {{ ctx.output_format }} + "# +} + diff --git a/integ-tests/baml_src/fiddle-examples/images/image.baml b/integ-tests/baml_src/fiddle-examples/images/image.baml index 59a0cfc12..3ee59a6a1 100644 --- a/integ-tests/baml_src/fiddle-examples/images/image.baml +++ b/integ-tests/baml_src/fiddle-examples/images/image.baml @@ -1,10 +1,10 @@ function DescribeImage(img: image) -> string { - client GPT4Turbo + client AwsBedrock prompt #" {{ _.role("user") }} - Describe the image below in 5 words: + Describe the image below in 20 words: {{ img }} "# @@ -21,7 +21,7 @@ class ClassWithImage { } // chat role user present -function DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string { +function DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string { client GPT4Turbo prompt #" {{ _.role("user") }} @@ -60,4 +60,11 @@ function DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string { Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}: {{ img2 }} "# -} \ No newline at end of file +} + +test TestName { + functions [DescribeImage] + args { + img { url "https://imgs.xkcd.com/comics/standards.png"} + } +} diff --git a/integ-tests/baml_src/test-files/dynamic/dynamic.baml b/integ-tests/baml_src/test-files/dynamic/dynamic.baml index f2fa932d5..36ad77b5e 100644 --- a/integ-tests/baml_src/test-files/dynamic/dynamic.baml +++ b/integ-tests/baml_src/test-files/dynamic/dynamic.baml @@ -33,12 +33,45 @@ function DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo { "# } +class DynInputOutput { + testKey string + @@dynamic +} + +function DynamicInputOutput(input: DynInputOutput) -> DynInputOutput { + client GPT35 + prompt #" + Here is some input data: + ---- + {{ input }} + ---- + + Extract the information. + {{ ctx.output_format }} + "# +} + +function DynamicListInputOutput(input: DynInputOutput[]) -> DynInputOutput[] { + client GPT35 + prompt #" + Here is some input data: + ---- + {{ input }} + ---- + + Extract the information. + {{ ctx.output_format }} + "# +} + + + class DynamicOutput { @@dynamic } function MyFunc(input: string) -> DynamicOutput { - client GPT4 + client GPT35 prompt #" Given a string, extract info using the schema: @@ -46,4 +79,5 @@ function MyFunc(input: string) -> DynamicOutput { {{ ctx.output_format }} "# -} \ No newline at end of file +} + diff --git a/integ-tests/baml_src/test-files/functions/input/named-args/single/named-audio.baml b/integ-tests/baml_src/test-files/functions/input/named-args/single/named-audio.baml new file mode 100644 index 000000000..69cd1162f --- /dev/null +++ b/integ-tests/baml_src/test-files/functions/input/named-args/single/named-audio.baml @@ -0,0 +1,22 @@ +function AudioInput(aud: audio) -> string{ + client Gemini + prompt #" + {{ _.role("user") }} + + Does this sound like a roar? Yes or no? One word no other characters. + + {{ aud }} + "# +} + + +test TestURLAudioInput{ + functions [AudioInput] + args { + aud{ + url https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg + } + } +} + + diff --git a/integ-tests/baml_src/test-files/functions/input/named-args/single/named-image.baml b/integ-tests/baml_src/test-files/functions/input/named-args/single/named-image.baml index 5adec4d0c..65770d14c 100644 --- a/integ-tests/baml_src/test-files/functions/input/named-args/single/named-image.baml +++ b/integ-tests/baml_src/test-files/functions/input/named-args/single/named-image.baml @@ -1,9 +1,9 @@ function TestImageInput(img: image) -> string{ - client GPT4o + client AwsBedrock prompt #" {{ _.role("user") }} - Describe this in 4 words {{img}} + Describe this in 4 words. One word must be the color {{img}} "# } @@ -26,6 +26,7 @@ test shrek { } + // double check this before adding it. Probably n ot right. // function TestImageInputAnthropic(img: image) -> string{ // client GPT4o @@ -41,7 +42,7 @@ test shrek { // args { // img { // base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII= -// media_type "png" +// media_type "image/png" // } // } // } \ No newline at end of file diff --git a/integ-tests/baml_src/test-files/functions/input/named-args/single/testcase_audio.baml b/integ-tests/baml_src/test-files/functions/input/named-args/single/testcase_audio.baml new file mode 100644 index 000000000..6857ad133 --- /dev/null +++ b/integ-tests/baml_src/test-files/functions/input/named-args/single/testcase_audio.baml @@ -0,0 +1,18 @@ +test TestAudioInput { + functions [AudioInput] + args { + aud { + media_type "audio/mp3" + base64 #" + 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 + + + + "# + + } + } +} + + + \ No newline at end of file diff --git a/integ-tests/baml_src/test-files/functions/input/named-args/single/testcase_image.baml b/integ-tests/baml_src/test-files/functions/input/named-args/single/testcase_image.baml new file mode 100644 index 000000000..90739a956 --- /dev/null +++ b/integ-tests/baml_src/test-files/functions/input/named-args/single/testcase_image.baml @@ -0,0 +1,19 @@ +test TestImageInputBase64 { + functions [TestImageInput] + args { + img { + media_type "image/png" + + base64 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 + } + } +} + +test TestBase64URLEscape{ + functions [TestImageInput] + args{ + img{ + url "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACgAAAAOxCAYAAAA5Wv7bAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAACAAElEQVR42uzdebzcVX0//veZe7OzyQ4ugIobikKCQEDFDRIWW1vB9tfqt60KtUoEBLKBjrKEPZCACtrN1rZCba24L4XKDmEXXHABgRBQkD3LvfM5vz/CkpC7zMydufczd57PxwNNZs45n8/nfM585jMzr5wTAQAAAAAAAIxItXrHRL0AAACMtoouAAAAAAAAgJHZ5LHHNtILAADAaBMABAAAAAAAgBFaM3GiACAAADDqBAABAAAAAABghHor/QKAAADAqBMABAAAAAAAgBHK0buxXgAAAEabACAAAAAAAACMUJEKMwACAACjTgAQAAAAAAAARqhSSwKAAADA6H8W0QUAAAAAAAAwUtkSwAAAwKgTAAQAAAAAAIARKlLFDIAAAMCoEwAEAAAAAACAEUqpEAAEAABGnQAgAAAAAAAAjFDKaQe9AAAAjDYBQAAAAAAAABiplHfWCQAAwGgTAAQAAAAAAIARyjntnCMnPQEAAIwmAUAAAAAAAAAYue3OOP6qjXQDAAAwmgQAAQAAAAAAYASq1csmR8SUnglTN9cbAADAaBIABAAAAAAAgBHYpG/SFpEiUq0mAAgAAIwqAUAAAAAAAAAYgVqetEVERBGxhd4AAABGkwAgAAAAAAAAjEAReW3wL2czAAIAAKNKABAAAAAAAABGIq8NABapIgAIAACMKgFAAAAAAAAAGImctoyISDm21BkAAMBoEgAEAAAAAACAEUip2CEiInryS/UGAAAwmgQAAQAAAAAAYARypB0jIlLOO+gNAABgNAkAAgAAAAAAwAiknHeMiMiRBAABAIBRJQAIAAAAAAAAI5HWzgAYETvkyEmHAAAAo0UAEAAAAAAAAJp0ztFXT4mIbZ7565RF82/eUq8AAACjRQAQAAAAAAAAmtQ3YdKOEfHcrH89lT7LAAMAAKNGABAAAAAAAACalHuLHdf9e6pVBAABAIBRIwAIAAAAAAAAzcppx3X/mlISAAQAAEaNACAAAAAAAAA0KaW8XuCviEIAEAAAGDUCgAAAAAAAANCkFPGavN7f06v0CgAAMFoEAAEAAAAAAKBJOceuL3jo9XoFAAAYLQKAAAAAAAAA0ITTj79y44jY8QUPv+Sc6tWb6x0AAGA0CAACAAAAAABAEyo9E14fEemFj69ZOfF1egcAABiVzyW6AAAAAAAAABpXi8pzy//mdR5PyTLAAADA6BAABAAAAAAAgCZUIt4w0OMpZQFAAABgtD6XAAAAAAAAAI3KaeAAYIQZAAEAgNEhAAgAAAAAAADNyIMG/d6gcwAAgNEgAAgAAAAAAAANOnvh9S+NiM3XfSw//8fNFy9Ytp1eAgAA2k0AEAAAAAAAABpUK3reOOTzkd+klwAAgHYTAAQAAAAAAICG1fYZ6tkip730EQAA0G4CgAAAAAAAANCgnNK+w5SYqZcAAIB2EwAEAAAAAACABiw58q5JkWPGQM/l5/+458WHXtyjtwAAgHYSAAQAAAAAAIAGrNro0RkRMXmYYhvfs/MrdtFbAABAOwkAAgAAAAAAQANyHm7537WKwjLAAABAewkAAgAAAAAAQANS5H3qLLe33gIAANpJABAAAAAAAADqlCOnnGLm0GWelQQAAQCAthIABAAAAAAAgDqdPf/m10bEFnUVTnnnUxZcu41eAwAA2kUAEAAAAAAAAOpU5LxvI+Un1nr20msAAEC7CAACAAAAAABAnYpKnhWR6i6fK/FuvQYAALSLACAAAAAAAADU4cLDl01IOd7RYLUD9RwAANAuAoAAAAAAAABQh0e3rLw1Ijatp2x+/o87LZp34yv1HgAA0A4CgAAAAAAAAFCPopjdTLVKFLN0HgAA0A4CgAAAAAAAAFCPyrrL+aa6q6WUD9B5AABAOyRdAAAAAAAAAEM7be6yl6VK3LP+o3nIOuv8EPfU5Cc322LO0p1X60kAAKCVzAAIAAAAAAAAw0gpDs4N1lmn/LSVG/9hX70IAAC0mgAgAAAAAAAADKNIMXsk9StFsgwwAADQcgKAAAAAAAAAMIRzjr56Sop4x4bPpLrbyCMMEAIAAAxEABAAAAAAAACGsHrSxIMjYuoIm3n96cff+Fq9CQAAtJIAIAAAAAAAAAwhVeLPn/1zbrDuuuVTT+1QvQkAALSSACAAAAAAAAAMolq9dpPIMas1rSUBQAAAoKUEAAEAAAAAAGAQk9ZM+JOImDJ4idRIc68/a/61r9OrAABAqwgAAgAAAAAAwCBSzn/eyvZqqecwvQoAALSKACAAAAAAAAAM4NT5N20VEe944eO5wXbWLZ9yvF/PAgAArSIACAAAAAAAAAOopHxYRPS2uNnXnLnghtfrXQAAoCWfW3QBAAAAAAAAbKj+5X9TQ+0WkS0DDAAAtIQAIAAAAAAAALzAonk375gjZral8ZzenyMnvQwAAIyUACAAAAAAAAC8UKX4cDQ6td8Q8jp/ThGvOnP+TfvqZAAAYMQfXXQBAAAAAAAAPK9avaw35fzXQ5XJI9xGiuIjehoAABgpAUAAAAAAAABYx6RVG783IrZv5zZyxPsWzbvtRXobAAAYCQFAAAAAAAAAWEdK+YgmajVaYUpPZc1f6m0AAGAkBAABAAAAAADgGWecsOwVEekd7Wh7g2WDc7YMMAAAMCICgAAAAAAAAPCM3B8fjTqn88sj39wbzpy/bE+9DgAANEsAEAAAAAAAACJiyZF3TcopPjia2ywKswACAADNEwAEAAAAAACAiHh640ffHxFbNd9CarxGJf5sSfXaTfQ+AADQDAFAAAAAAAAAiIhcpI+2fRsbPjRt5aqeD+p9AACgGUkXAAAAAAAA0O1Om7ts31yJKyIa/wFt/fK5wfIRUcRvnp7y5Kuq1bf3OxMAAEAjzAAIAAAAAAAAlfjkmG07xU5TV210qJMAAAA0/lEGAAAAAAAAutgZJ9y8c454T2taS01VSZHm5shW7wIAABoiAAgAAAAAAEBXqxW1Y2IUfzfLAz6W33jmvBvf7WwAAACNEAAEAAAAAACga506/7otIscH1n0sN9hGbtneFHOdEQAAoBECgAAAAAAAAHStlCpHRsS0kuzNO04//sa9nBUAAKBeAoAAAAAAAAB0pWr1ssmRe/629S2npqtUUvFJZwYAAKiXACAAAAAAAABdadKqTT4YkbcZi20PtmxwTvHeM467dmdnBwAAqIcAIAAAAAAAAF3nwsOXTYgUcwd7PjfYXm7drvWknp4TnSEAAKAeAoAAAAAAAAB0nUc2T38dES8v477liL84c8GNuzpLAADAcAQAAQAAAAAA6CoXHr5sQkp53vOPpDZsZURtVnJRfMqZAgAAhv3woAsAAAAAAADoJo9sHh/JkXYq3Y6tnxn8k9OPv+HNzhYAADAUAUAAAAAAAAC6RrV62eRIMb8dbefWlk9RiaozBgAADEUAEAAAAAAAgK4xec3GR0Skl9RTNo/xvqaI2WfMv/5tzhoAADAYAUAAAAAAAAC6QrV62eSc03EDP5vasMWRt5lyOtmZAwAABiMACAAAAAAAQFeYsGbjj0XEi0u9ky/IDOaIfU8//oZ3O3sAAMBABAABAAAAAAAY96rVmzdLOc1t93ZyO8pX4vSLD724x1kEAAA2/LgAAAAAAAAA49ykVfmEiNiqLQG9NksRu939ip0+5CwCAAADfF4AAAAAAACA8eukE5a9oqeW7oiISRHD/UC2YeSv0R/UUh1tDll+4OK/mzC591VHV3d71BkFAACeZQZAAAAAAAAAxrVKEWfHM+G/jjBw4nCrvlX9n3I2AQCA4T8+AAAAAAAAwDhwyoJlb085/e+6j7V7BsAN6+QGyw9apT9VYrfjTt3jJ84sAAAQYQZAAAAAAAAAxqmLD724J+V07gsfzw22k8tzSL25iMXOLAAA8CwBQAAAAAAAAMalX77yFR+OiF0bq1X6BbTedcb8Gw92dgEAgI74BAMAAAAAAACNOv34Kzeu9Uz5RURsO9Dz7V4GONXR5rDt50EL/2ryk5vtMmfpzqudaQAA6G5mAAQAAAAAAGDcKSpTTopBwn+joa3LDOd4xaqpjx3nLAMAAGYABAAAAAAAYFxZNO/mPXIqromInqHKDf5DWW6wfD3t5wbLD1tldSXVdj920V53OuMAANC9zAAIAAAAAADAuFGtXtabe4oLY5jw39A6Yg6NSTlXvlStZr/3AQBAF/OBAAAAAAAAgHFj4uqNj40cu5Vvz1IbqqS9p6684QhnHQAAupclgAEAAAAAABgXFs27ecdcKX4SEdMiYthVd4f+oSw3WL6e9lu+DHCkyI9XeuL1nzzlzfcaAQAA0H3MAAgAAAAAAMC4kCv5ong2/NeO9ttcvkmbFLX8BWcfAAC6kwAgAAAAAAAAHe/U+cv+X4787kbqDB3Q66SFtNKBZ8y7/v1GAQAAdB9LAAMAAAAAANDRTp1/01Y55TsjYsv1fvyqYwq+si0DnOrbjReUzxERD/Wl/LoFi/Z82IgAAIDuYQZAAAAAAAAAOluKCyJiywEe7zgjWGZ46wk5fdFgAACA7iIACAAAAAAAQMc6df7NH8kRh47W9nKby4/Qe8+cf92HjAoAAOgelgAGAAAAAACgI510wrJXVIp0c0TaeO0ja+N2rVsGODdYvp72c+P7k4crv16Bp4oiTZ97xh4/N0IAAGD8MwMgAAAAAAAAHadavay3UlT+9fnwXzukcrSZGiowrVKJr1Srd0w0SgAAYPwTAAQAAAAAAKDj9PZt+umI2GvYgh24HtbIlxnO06eufvLTRgkAAIx/lgAGAAAAAACgo5y88OaZKecfR0TP+s8MsATw8w8PaugfzDpyGeCIiKKoFO+ae+pelxkxAAAwfgkAAgAAAAAA0DGq1Ts2mrBm9U0RsfPAJQYIAdYxpd7gP5p1bAAwIuK+ntX9bzxm8cxHjBwAABifLAEMAAAAAABAx5i4evVFMWj4rx1SOdpsbjdeUpvU+6Uc2aQgAAAwTgkAAgAAAAAA0BFOWXDzJ3KKP2+4YhfE3/LgB/neM+feMNfoAQCA8cm/9gEAAAAAAKD0Tp1/0945xeURMXHokgMsAfz8w4NKdbRZf/l6tjFqywBHRBQ54qDjT3vzd40kAAAYXwQAAQAAAAAAKLVTFty+TUTfjRHx4vpqDBACHD5vN8QPZ7nB8vW0P6oBwIgUj0RPnnHcyXv+xogCAIDxwxLAAAAAAAAAlFa1ellvEX1fzXWH/9ohdUibQ8ixefSl/zrn6KunGFUAADB+CAACAAAAAABQWhPWbHZGinjbiBsaD+tiDXMMebgCKd5Um9RzoVEFAADjhyWAAQAAAAAAKKWTF9743sjpa/HMb1r1/7A1wBLAzz88qFRHm/WXr2cbo7wM8HNl0hHHnrbHRUYYAAB0PgFAAAAAAAAASueUBTfumiNdFREbPftYYz9sDRACHD4bN8Q2coPl62l/bAKAEbE6p/TO4xftcZWRBgAAnc0SwAAAAAAAAJTKKQuWbVdEujTWCf9FRH3RtrZJHdJmXSalnP/n7PnXvcpoAwCAziYACAAAAAAAQGlUq8um5qh8PUW8rOWNj4e1sYY5hlz/QW5Ry+k7Zx571dZGHQAAdC4BQAAAAAAAAErh4kMv7uldU/m3iHjzeD3G3ObyjUgRL08TJlxarS6bavQBAEBnEgAEAAAAAACgFO7a+ZWLI+KPxnIfyhTQG5XjzfHmjVblf6pWs98NAQCgA7mRBwAAAAAAYMydtODGo3PEkcOVqz9wlxosX3+bUfo2G5UP3Wj1DacYhQAA0HmSLgAAAAAAAGAsnbLg5oNy5P+JiJ56ytf/A1ceuHweSft5BPszWPnc+P4Mewy5mX362LGnvflzRiQAAHQOAUAAAAAAAADGzMkLb9k3cv5eRJ5ab51ODwBuWCc3fsztCQD255zed9zpe/yPkQkAAJ3BEsAAAAAAAACMiVMW3PymnPM3ImJqmeatyG0uX2K9KeWLz5p7w2yjEwAAOoMAIAAAAAAAAKPulAW3vr6I+GFEvKjRuvUH7lKD5etvM0rfZtMmppT/85z517/NKAUAgPITAAQAAAAAAGBUVefd+Moiiu9HxBYRYzCDXhoHnTjMMeQGDzKv/+epRY5vnDXv+j2MVgAAKDcBQAAAAAAAAEZN9fhbX9JbqfwgIrbr5n7ogGWGN4kc3z973g27GbUAAFBeAoAAAAAAAACMimr11q0rvfkHOWLHsu9rBwT02i/FZkXk7y0+/prXGr0AAFBOAoAAAAAAAAC0XbW6bMueNcWPUuTXDF6q/mVr6w/cpQbL199mN0gRW9UqPd8784TrdjKKAQCgfAQAAQAAAAAAaKtTFty+Tc+anh9FxOsHK5O7vpdSG6o01uYQ5+ClqT9ddc7c63cxmgEAoFwEAAEAAAAAAGib6txlLyui/4qI2LVUO9aBk/iN8bLE2xUp/vfsude90agGAIDyEAAEAAAAAACgLU464dadent6LouInbvheMc4oDcats6pctnZx1+7l9ENAADlIAAIAAAAAABAy510wo2vjaK4Mke8vLGa7Ziab22brQ3opS49s/lFuZJ+cOa8695hlAMAwNgTAAQAAAAAAKClqgtu3T0XlR/niO0bqdcFM+gNI7WhSmpDn6aNKhGXnjX3ugOMdgAAGFsCgAAAAAAAALTMyQtv2bcSxf9GxJal39kOnMSvLCHJHDE1UnzjrPnX/4lRDwAAY0cAEAAAAAAAgJb4zMJb3lvk/L2I2LRb+6DLZjGcGDl/9ax51x5u9AMAwNhIugAAAAAAAICROmnBzZ/IEefECyagaPTHqOfL5wbL1yNvWCePZBu5Bfv0wvK58f3Jw5XPI9if4Y99bfm85InJex5drabCqwEAAEaPACAAAAAAAABNu/jQi3t+uvOrFqfIRw70fDM/Rj0TKGuwfD1aHQAcuIGRBQCH36lU32403Z/1HUMeoHz6Wlrd/4FjFs9c6ZUBAACjQwAQAAAAAACAppx57K3TVk4s/i0i3jNUueYCcaMUAKxjU2ULADZ3DKMxC2BERFxb9Pf/0XFn7fOQVwgAALSfACAAAAAAAAANq1bv2Db19V+acp6x9pHBA2bdFgBs/pjr3KEodQAwIuLXPUXlwKPO2OPnXikAANBeFV0AAAAAAABAIz574i27VPr6rk3xbPivHVLb2swN1spOeaNeXusprj5r7vVv1RUAANBeAoAAAAAAAADU7TMLbz0kirgyInZo1zY6K6CXytFmam2bIz4HOTZPKX//rLnXfsKrBgAAOusTCQAAAAAAAOPMxYde3PPTV+98YuR0YkRUnvuRKW/whwF12zLAI1sCuL5jL/kywOs+/i+xunbEMYtnrvRKAgCA1hIABAAAAAAAYEinzr9ui/7KpH/LEfs/+9h6PzLVEQLstgBg88dc5w5F5wQAn3Fz0Rt/etzJe/7GKwoAAFrHEsAAAAAAAAAM6rMn3rJbX2XSDeuG/0ZP+5bX7axlhseF3VJ/3HDW8de+W1cAAEDrCAACAAAAAAAwoM8uuOUvcxFXRsROo73tzgropQ5pc2zPWYrYIlXSd86ed101R7ZSGQAAdOUnBwAAAAAAANrqnKOvnvLElKmLI8URQ5V77oemOpYAXq98nTp9GeCRLQHcZH+WexngdVv+Wl+ufGje6TMe84oDAIDmCQACAAAAAADwnM+eeMsuuYivRMQbhyu73g9N+bn/qa98HbotALhhndz4MXdMADAiIn7bk9MHjjr9zT/2ygMAgOYIAAIAAAAAABA5cjpp4a0fyRGLI2JqPXU2DACu94ehyzfUfo6G96eOIx78GJrZRm7xMde3Qx0eAIwUUUTk8x+fvPFx1eoua7wSAQBgJJ8hAAAAAAAA6DrV6q1bR1/+hxRxUCP12h0AfL7OKM0CmEfafgmWAR7jAGCzx5wjbuit5b/4xJl73eUVCQAA9avoAgAAAAAAgO71mQW3HBB9+ZZoMPwXEQ1GyRovP+rGw9QZabhzkNpwzlIrdnuPWk+65Zy5137CqxIAALrrYwwAAAAAAAANqlaXTY01E86KlP821vnNaEQz1uXn/qe+8nW3P0ozANaxqXbPALhhna5YBviFf79kVaw5Yv5pb/mDVyoAALTqMxAAAAAAAADjwmfn3/qWohJfjIhXt2L51ue0YRngFMO32Xz7rV4GOLf4mOvbofEWAHymuQdzxPGfPH3PL3vFAgBAqz4DAQAAAAAA0LGq1Zs3i750ekT6SDz3O1G5A4DP1xmlWQDzSNsf+SyAqY42hyw/xgHA1hxzROQckfI3e4v00Tln7HWfVzAAALTmMxYAAAAAAAAd5jMLbz0k5/hcpHjJ+s+MbgCw+W10zzLAIw4ADlOl0f6s/xhaPQvgc+09FhGffnzKnkur1VR4NQMAQPOfNwAAAAAAAOgg1eod28aa/qWR4n2Dl2p1CFAAcCTHu2Gdrl0GeP0DSXFFkYrDj10082de2QAA0PznDQAAAAAAAEquWs2V6Lv9wzny6Slis6FLl3sZ4BTDt9lc+80FAIfeRm7xMde3Q10RAFxrZYpUfWzK0+dUq2/v90oHAKDbCQACAAAAAACMM9WFt8/IUTsvIs2MqOcHofEVAGxsG3mIY2i2/RIsA9xhAcBB6+RB9/MXuRJHf3LRXt/2igcAoJsJAAIAAAAAAIwTCxYs225C6q1GpA9HROXZx8sWAGx+G92zDPCIA4DDVGm0P+s/hlbPAjhskPSHkfOco8/Y+6euAAAAdCMBQAAAAAAAgA5Xrd4xsejv/2jK6bMReZMXPt9ocKv+OoOUH3jp1ha03z0BwA3rWAZ4iPJ9OcXneyfHiXOqez3uigAAQDcRAAQAAAAAAOhgn1p46yEp4tyIePlQ5bptGeB2BwCH3kZu8THXt0NdHAB81gORovriX/327w+75LCaqwMAAN1AABAAAAAAAKADnXjibdN7inx6jnhnPeW7LQDY2DbyEMfQbPslWAa4wwKAg9bJjY6jfEMu8nHHnDnz/1wpAAAY7wQAAQAAAAAAOsgJJ9z+2kouPlOJeF9u4LeesgUAm99G9ywDPOIA4DBVGu3P+o+h1bMANhkkzXFVzmn+MWfueYUrBwAA45UAIAAAAAAAQAdYuPDOHXqjf0GO+FBE9LR79rb66wxSfoilW0fWfvcEADesYxngJvv0h0Uqjv/kaTNvdiUBAGC8EQAEAAAAAAAosWr11pfkvjguRzoiIiY9/0xuTbhqPZ2wDHDnBgBH3KcCgCPpzyIivlZU0gmfXLTnL1xZAAAYLwQAAQAAAAAASmjBgtu36Y08N1J8NCImb1iiWwOAQ7fZfPt5iGNodhutXgZ4/AcAB62TWzaO+is5/VNPrf/kj5+9zz2uNAAAdDoBQAAAAAAAgBI54YRbd+rJcVSO9OGImDp4yc4PADa/jVGaBbB0AcAm+zO3rj9HfRw912TLg6RFpPztoqh85pgz9lzmygMAQKcSAAQAAAAAACiBE0/8yRtTrn0yIv155Oitp05qc3CrvjpDlB9i6daRtd+5ywC3OwDY3DF0zTLAA5TPETmuKlKcfszpe1/qSgQAQKcRAAQAAAAAABhDCxfesm8lpbkR6aDU8Cq33boMcOcGAEfcpwKAI+7P9eus1+ZNEfm87X9931cOu+SwmqsTAACdQAAQAAAAAABglB1++LIJ22wz6b2R8/ERMX3d55778UYAcJjyuUXHu+EOl3sZ4PEfABy0Th61cfSzyPmsoi/+7ZjFM1e6YgEAUGYCgAAAAAAAAKPkhBNu3rkSPR/KEX8VEdsMVKbbAoDNb2OUZgEsXQCwyf7MrevPUR9HzzU5ukHSFPFYkfNXeyrxhTmnzbzZFQwAgDISAAQAAAAAAGijI4+8a9KLNln5npzS4RH5nTHM7zONBQDbMXtbCwNr4yEAWMemyhYAbO4YumsZ4CZmVbwxUrpoVdH/73PP2PcJVzYAAMpCABAAAAAAAKAN5s+/7TU9PZW/SpE/FBFbrn20weCWZYCHKN+5AcAR96kA4Ij7c/06DS0nvSpFujRSvmjOaXv/0JUOAICxJgAIAAAAAADQIgsX3v7SlNL7Ior3R6Q9n328yaCRAOCw5XOLjnfDHW7dMsACgCM/3nWbK9U4uj1H/EeR8sXHnDbzl66AAACMBQFAAAAAAACAEahWf75lrbb6T3JOH4yImTHA7y8CgEMfTPOzt43SLIB5pO2P/jLAqb7daLo/R30cPddkaYOkd0aKS3pS5d8+vmjPX7gyAgAwWgQAAQAAAAAAGrQ29Nd3YM750IiYFRG9Q5Vveva2Dg0ADnwMeYT7NFD5zl0GuN0BwOaOobuWAW7jTJJ3RiouiVrPVz5x5l53uWICANBOAoAAAAAAAADDqFZzpVa7fbeiSAdEitlp7Ux/lXrrtzcA2Hhwa8N9GkgnLAPcuQHAEfepAOCo92fj28g5RdyYU3wncnx3u1/fd91hlxxWc0UFAKCVBAABAAAAAAAGUK3+fMu+vtVvj6i8K1I+KCJe/OxzI5oRzzLATe5Pi/oz6uvPwY+hmW0IAI78eNdtrnPG0QvKP5lTXB4Rl0YuvvuJ0/f9rSstAAAjJQAIAAAAAAAQEdXqsqmraxP3qETP/pHjgIi8W0QedJa/UQsaCQAOU2eUZgHMI21/9JcBTvXtxjrl2xsAbM0xR0Tu2ADgC7vlJxHpe5GL769M+Zq5Z+z7hCsxAADNfS4CAAAAAADoMsdXf7b9hL7+6TnFPhGxb4qYERGTNiw5xrO3dWgAcOBjyCPcp4HKd+4ywGULAK6t063LAI9JAHBdtUjx88hxYyXiykjFVR87fZ87U6QcAADQws9RAAAAAAAAHefYY2+dNmFK7+srRd47p7R3RJ4ZES9Zt0xpl2/N9bbfeE5ofCwD3D0BwBGNo7qPoVsDgPWPpZaEAHNd7T+Uc1yTKunqXNSuiVW9t85ZutfjrugAAIz0cwUAAAAAAEApVauX9a6KLV7WU1R2yZGnR06vi4hdIqdXR+Seoeq2OwC4fh3LALeiT9s9e9vgxzB240gAMIYMAJZxHKXGhsRw7T8Qqbgj5XRnRLojpeLO3imTbzqiOuNp7wAAAN1JABAAAAAAAOgoRx5516SNtujfIffnl6VK7BA5vyxyvDoidokUr47IEyIan0FvvTrrKUHQSABwmDqjNAtgHmn75V8GuN0BwNYcc0Tkrg0ADtSftYj4ZUTcHil+ETndk3L8NlK6Z3VfvvuYxTNXeucAABi/BAABAAAAAIBSmDv3V5umKU9tEbXKFjnF5ili81ykLVMlXhpFvCwqsUPKsUNEbDd0Sy+YbWzEAcDBGynXMsCdHwBsfhvdswxwuwOAa+t0wiyAAoAN1HkoIn4bKd+TIn6bc7o7RX44pXgk5crDRSUembQ6Hvnw4pmPeCcCAOg8AoAAAAAAAEBLHXvsrdN6e9PEYvLEKZVabZuISqVIaZNK1LaMiChy2qqSY+Ncie1SzjtHxKsiYqeI6Bmu7aaCRl0TAGw8uFXfMbQ6BCgAOJLjHdE4qvsYOnsZ4FFfVrmOY298JsZ2jKM83CynOXK6JyLflSJ+ESnujZyfTjk/mFMlR44/RI4/FJWcJ6XaQ32V3qcmFan/Q2fs+4R3PgCAsSMACAAAAAAAjLlq9bLeNWu23KK/EpunXNkiemKLSsTmuchbp0rlpTnnHSNipxSxY0RMHbq18RMAXK+OZYCHKT9Ks7flzhtH3RYA7IhxNMzmWvy6XBUR90QUd6ec7o6U7o3IK3KRH4meysMR+eEJPcUjL5q4xcOHVXdZ4x0JAKCzCAACAAAAAAAd5djqrVtP6uvdMVdix8hph0jFjjnSqyNi14jYasCgUd0z6A2mBEEjAcCW9Gdj28hDHEOz7ZdgGeAxDgC25pjDMsDrl/9DjrgtRfw8It+dcuXunPPdEybW7j7i1Lc+4J0DAGD8EgAEAAAAAADGjXnzbntR7unZpScV0yOl1+WIXVLEbpGHmzXweZ29DHDnBwCb30b3LAM84gBgXcfQCbMAdmUAsD8ifhuR74yIGyOnO1KluPNjp+9zZ4rU+BrgAAB0PAFAAAAAAABgXKtWL+vt799y5yJVdstF3ruS4i050usjcs9A5Ts7ANh4cKu+Y2h1CFAAcCTHO6JxVPcxdPYywKO+rHIdx95oEDOtrfTTyOmqFHFVkfpveWTK5j+tWqYXAIARfp4AAAAAAADoaNXqHRv19cWbcsr7pIh9c8S+EbFZRPkCgOvVsQzwMOVbPXtbcwHAMo6jbgsAlmscDfO6fH5z/RFxa0S6KuV85cRi4mVHnD3j967YAAC07r4UAAAAAABgHKpWL+tdVdtqt0qOfVPErIh4a0RMXr9UCYJGAoAt6c/GtpGHOIZm2y/BMsBjHABszTFHpy8D3B8prko5vhtFuiKv+sOyOUsPXO2KDABA6+/FAQAAAAAAusjRR189Zdq0zfbJKR8SOf9RROyw9plOWAa48wOAzW+je5YBHnEAsK5j6IRZADsuAPi7iLg8Ir5ZW736G0ef+/ZHXXEBABgJAUAAAAAAAIBhzKve9vLe/nRIjjg41s4OOHHd58sVAOyA2dvy8AcjANjGcVT3MXT2MsCjvqzywIqIuDnn+GFK6Zt/mLLn1dVqKlxVAQBoFQFAAAAAAACABsydu2zTnokT35uK9GeR4p0R0TuqQSPLAA9TvtWztzUXABx6GyUJrAkAtmscFRHpyhT5P6LS959zFr31d66cAAC0iwAgAAAAAABAk6rVOzZfU8sHV3L+QES8IyIq9dZtOmgkANiS/mxsG3mIY2i2/VYvAzz+A4CD1inPMsB3RopLiuj98tGn7fFrV0gAAEaDACAAAAAAAEALVKu3vqS/v/KnEXFoRMyMYX6HEQAc/mBKvQxw6QKATfZnbl1/1n8MrZ4FcEwDgD+NFBfnovbvR52x789dCQEAGG0CgAAAAAAAAC02f/5tr+npicMj0v+LiM0HKtP07G115rHaPXtb/XUGKZ+HP5hSBwDr2FS7A4AjGkd1H0N3LQNcZ38+GZG+kot80dFn7n2TKx4AAGNJABAAAAAAAKBNjjzyrkmbbLLyPSmlwyPiXes+N6LglmWAhymfW3S867fXaHhu6G2MamBt8PYFABsZRz+LFP80Mfov+rvT3vIHVzgAAMpAABAAAAAAAGAUnHDC7a9dOyNgPjwiXhRhGeDhDqbdAcDGttEJywCP/wDgoHXatwzw6oj0jZzyRUeftvcPXckAACgbAUAAAAAAAIBRdPzxP9t44sS+v4yIv0sRr1/7qABg8/s0UPluDQA22Z+5df1Z/zG0ehbAlgcAf50iPt/X3/tPx5494/euXAAAlJUAIAAAAAAAwBhZuPCOfSupmBsRB0XkYX+3aSwA2I7Z21ocWMvDH0ypA4B1bKrdAcAN61gGeIR9emOKtOTRKU//W7X69n5XKQAAyk4AEAAAAAAAYIxVF9y+ay3lj0WKD0bE5MHKNTr7XPcuA1yeAODQ28gtPOb6d0gAcANFTvnbKeI8y/wCANBpBAABAAAAAABKYsGC27fprRQfzZGOjIjNByrTbcsAN99+btHxbrjDrVsGWABw5Me7bpONjqO0OlK+uJaKU49dNPNnrkAAAHQiAUAAAAAAAICSOf74n208acLqD0VKx0bEi9d9rtsCgM1vY5RmAcwjbb/Fyyo325+5df056uPouSbrDgA+nCKf21upfP7ji/Z82BUHAIBOJgAIAAAAAABQUtXqHRNrtdpfRY5PR8T2EY0GANsxe1sLA2vjIQBYx6bKFgBs7hjGxTLAT0ROn1udehbNO33GY64wAACMBwKAAAAAAAAAJXfkkXdN2myzlf8vclRTxHbPPWEZ4CHKd24AcMR9KgD4Qk+mnC6INRNPO/rc3R51RQEAYDwRAAQAAAAAAOgQxx5767TJk+PDlUjzI2IbAcDhyucWHe+GO9y6ZYAFAEd+vOs2t95+PpVyOj/31c44ZvHMR1xBAAAYjwQAAQAAAAAAOszxx/9s48kTV8+JnI6NiM2GLt19AcDn64zSLIB5pO2P/jLAqb7daLo/R30cPddkjoh4Okc+P/dPOPPYs2f83hUDAIDxTAAQAAAAAACgQ1Wrd2xe9NeOjxxHR8TEwcqlkgW31qtTRwCwmW10+jLA7Q4ANncMpZ8FMKcc/xmpOP7o0/a+2xUCAIBuIAAIAAAAAADQ4U444dZXpxxnpUgHD/R8o8GttXWG0wnLAHduAHDEfdplAcAccUMlVY4+etEeV7kiAADQTQQAAQAAAAAAxonqCbe9q8ixOCJev/4z3bcMcIrh22y+/VYvAywAOILjvS/nWHjM6W/+lxQpuwoAANBtKroAAAAAAABgfKievOsPKxMe3i1HHBERv+vmvshtLt9aqUPaLNU5ezpHnD5p8tOv/eTpe35Z+A8AgG5lBkAAAAAAAIBxqFq9Y/Pc139KjnR4RK6UbQbA9erUMQNgM9vo9GWAR37OmujPzpgF8N/7i75j556x73KvdAAAup0AIAAAAAAAwDhWXXj7zCLyRSnyLo3WHf1lgAUAR3K8G9YZb8sAp+Up8sePOW3P//bKBgCAtSwBDAAAAAAAMI5VT3nD1St+t2a3nNO8FLG63HubOqrNdi8zbE3b5xQp0kX9xZrXCP8BAED7P/EAAAAAAABQQtV5d7wy9/RfGBHvqKf86M8AuGGbI2n/+TqjNAtgHmn7JVgGeIxnAHxhnRRxWy0Vhx+3aO/rvIIBAKA1n5MAAAAAAADoWDlVF9z2gUhxTo7YYqiS7Q4ArlenjgBgM9votmWARxwArOsYRmUZ4JURccYTkzc6tVrdZY3XLQAAtOYzEgAAAAAAAOPAggXLtpuYJvx9jpg9VLnRnwVQAHAkx7thndz4MY/9LIDXVKL2wWNOm/lLr1QAAGjVZxgAAAAAAADGmZyqC2//SEQ+J0dMG6hEpy8DnGL4Nptvv9XLAOcWH3N9O1SiAGB/ijh7o0d6Tjziohl9Xp8AANDqzzAAAAAAAACMO9X5t70mV/JXImL3Fz7X6QHA5+uM0iyAeaTtl2AZ4LEJAN4dOX/g2NP3utIrEgAA6lfRBQAAAAAAAN2tumjXn6UJj+yZUnwmRdRGc9u5zeVH3XiYfiMNdw5Si89Z/pcpkzd6g/AfAAB050cQAAAAAAAAWuTE+bftXankf42Ilz/72OjPAtjgjHV1tT9KMwDWsal2zwC4YZ2SLgOc49Ec6aPHnb7Hf3jlAQBAc8wACAAAAAAAwHNOWrTrNWlCMT1y/OfY7UXqkDabM+5mPWzO//b0VF4n/AcAAOPlkw4AAAAAAAClUl142+ER+fyImDB0yVbPALhhm61pf5RmAcwjbT+38Jjr26lRnAEwp4ilGz1SOfaIi2b0eZUBAMDICAACAAAAAAAwqBPn3/qWnkr6akTebvBSoxsAbH4b3bMM8IgDgHUdQ8MhwCcipb85dtEe/+mVBQAArWEJYAAAAAAAAAZ10qI3XhET+mdEiqsGL7V+fGxES9yavqIlSrjM8M8iFXsJ/wEAQGsJAAIAAAAAADCkanX35dH7yH6R8umjt9XUIW02p4QBvXaeyv+I/kkzjl20151eTQAAMF4/5QAAAAAAAFB6n1l465/niC9GxLT1nxndZYCbb3+UlgHOI22/BMsAj3wJ4P6IfMJxp+15ulcOAAC0hwAgAAAAAAAADfnsibfsVtTSNyPF9s8/OroBwOa3MUoBwDo2VfoA4DBVhuzPHI9Gyn963Gl7/q9XDAAAtI8lgAEAAAAAAGjIp056080xsbZHRNz0/KPrx8dGtMStKSxaIo9V+Ry/KXJtpvAfAAC0nwAgAAAAAAAADatWd18eE3rfFhHfbN9WJAHXlTtgH1OK6yf0FHvPPWPvnzpjAADQfgKAAAAAAAAANKVa3eXJ1/3i538cOV/QOXud2tZma2fc68jw438/Oany9qNO3etBrw4AAOjcTzgAAAAAAAB0mc+ccOsncs7nxDoTUDT6Q9R65fMGfxi+Tt3byM3t05DyEMfQbPu5Rcdb/06l+nZjoP5c8tTkPY6uVlPh1QAAAKNHABAAAAAAAICW+MzCW96bI/41IqY++9jIQ4AdHACsY1NlCwA2cQy1yPGJ40/f4wKvAAAAGH0CgAAAAAAAALTMZ+ff+paikr8ZEZtEtH8WwG4LAI64T1sbAFyTU/zF3EV7/KeRDwAAY6OiCwAAAAAAAGiVTy164xWVSuUdEfH78u5lalubucFaedT3s2VW5xSHCv8BAMDYEgAEAAAAAACgpT510q43RlG8LXIsb/e2csnKl19qRZWnUsTBcxft8Q2jHQAAxpYAIAAAAAAAAC1XXbT7nT2V9I4ccW8j9dYL3KVx0BEdeAx56CcfTal493Gn7fFDoxwAAMaeACAAAAAAAABtceLJb/x5bxRviYhfjqylpDPXMXazGOaHoie//bhFe17jLAAAQDkIAAIAAAAAANA2J5yy+z15woS3RMTt5dqz1LY2WxvQK034cUWqpHcef+qbbzGqAQCgPAQAAQAAAAAAaKtqdZcVeUJ6V0TcWYb9GbsZ9Mqi0VBhuj96077HnbrHT4xmAADo7Lt7AAAAAAAAaMopC27fpj/V/i8iXj1c2ed+xMob/GHo8nVqdK6++tvPA5fPI2k/t+h4G9ih5+v8rhK1/Y5dtNedRjAAAJSPGQABAAAAAAAYFQtPfcODPdHz7oi4p+5KaYM/EKM2i+FjlVyZLfwHAADlJQAIAAAAAADAqDnhlDfcW0n53RHxwNjvTWpbm+NgmeGniiIdfOxp0280agEAoLwEAAEAAAAAABhVJ568212pUjkgIj08VvvQWQG9NNptrixyHDzv9BlXGq0AAFBuAoAAAAAAAACMuk+dtOvtORfviohHB3p+HMygt77OWcF4TU7p0Pmn7XG5UQoAAOUnAAgAAAAAAMCYqJ662y2pSO+JiKeHLJg2+APRlpBkfyUXfzbv1Bnf0rsAANAZBAABAAAAAAAYM59a9MYrcor3R0RtbPagfcvrdtoshjnFUcedtud/G5UAANA5BAABAAAAAAAYU9WT3/TNyDF3tLfbWQG91NY2U8QZ807d4wKjEQAAOosAIAAAAAAAAGPu06e+6ewccf66j3XaDHrDKu8Kxv/59KQZ841CAADoPAKAAAAAAAAAlMLrfvGLo1LO3xjwyaR/WiFv2K03rJyU/l+1mgq9AwAAncdHJQAAAAAAAEqjWr1jo9TXd0VEvCniBT9m5Q3+sIFGf/xKMXybzbefY/BjaGYbucXHHL+u9E3Y+7iz3viQkQcAAJ3JDIAAAAAAAACURrW6y5N5QnFQRNw7GtvrrGWGWzq3x8PRkw8U/gMAgM4mAAgAAAAAAECpVKu7L0+V4pCIeLKzAnp1KMf6XGtyEX889+Q9fm60AQBAZxMABAAAAAAAoHQ+ddLut0bEh9d7MOmXVsiR58w7fcaVegIAADqfACAAAAAAAACl9OlT3vTVHOncDZ9pRxKwPG22c9bDHOlf5i3a40KjCwAAxgcBQAAAAAAAAMprwiPH5cg/LtMuje2yxCMKKt4yadXqIwwqAAAYP0yUDgAAAAAAQKmdsuD2bWqpdmNEvPj5NN3QsbpGfwRLdbTZXPt54PJ5JO3nZvbnkZ6e2ozjTt7zN0YUAACMH2YABAAAAAAAoNQWnvqGB6MoDo2INaa3aEqRc/oL4T8AABh/BAABAAAAAAAovU8t2v2aiDz3+UfakQQsT7qwxcsML5x/2vTvGkUAADD++DdSAAAAAAAAdIzPnnDLv0cRf7b2b4PH3ppbAnjoNpvfxgDLAOeRtl/3MsBfn7to+p+kSNnoAQCA8ccMgAAAAAAAAHSMonfCRyLil8OVa/EMeq03OtN03D9x0poPCf8BAMD4JQAIAAAAAABAx6hWd3kycv6riKjpjSEVOacPHlOd+YiuAACA8UsAEAAAAAAAgI7yqUW7XZUjndaeafRSaY5zhLMYnjH/tOn/a7QAAMD4JgAIAAAAAABAx8kTH6lGxHVjug91l0wNlq+/zUHctGrSlE8bJQAAMP4lXQAAAAAAAEAnOumE21+Ri/5bImKjwco0+mNYo1G9+tvPG5bPI20/D1T+qdSTp889eY+fGyEAADD+mQEQAAAAAACAjnTiyW/4Vcrp2I49gLZM1ZGOFv4DAIDuYQZAAAAAAAAAOtpnF9z8PxHxnoGea24GwIh6ZwEc0QyAdW4mDdPmOuW+Pm/RjPcaEQAA0D3MAAgAAAAAAEBHKyZWPhIRD5d7LxtdXLj+Np/xUO+a+IjRAAAA3UUAEAAAAAAAgI5Wrb7xoZzTcQM912jgrt3l2ybno449e8bvjQYAAOgulgAGAAAAAACg4+XI6aT5t3w/Urzrhc81twxwbrB8fXs5YPk8kvZzRE7fmX/a9AONAgAA6D5mAAQAAAAAAKDjpUi5yMVHI2Jllx36E7We2hFGAAAAdCcBQAAAAAAAAMaF6mnTf5kiTmpNa+1YSKvRuQVj+PI55p1wypvvdfYBAKA7CQACAAAAAAAwbtQmPnpmpLh53cdaGrhrQfmWyXHt6snTv+CsAwBA9xIABAAAAAAAYNyoVt/eH7U4IiJqHbPTzU02uDqn9KFqNRXOOgAAdC8BQAAAAAAAAMaVT5222w2R0wXj+iBzPmXBot3vdLYBAKC7CQACAAAAAAAw7kyqTT4hUloxslZSG/ZsbZsjWWY4R/xq2lObnuEsAwAAAoAAAAAAAACMO3PPeM0TqYhqs/Vzm8uP0FFzlu682lkGAAAEAAEAAAAAABiXXv3LX3wpRdwWMeoBvcbVP9ngDxcsmv5NZxcAAIgQAAQAAAAAAGCcOuySw2pFpKPG0SH1F6k42pkFAACeJQAIAAAAAADAuPXpU990WUR8o/kWUhv2am2bDc9KmGPpwlP3+ImzCgAAPEsAEAAAAAAAgHEtVWrHRMTqRuvlNpdv8CgeWT159cnOJgAAsC4BQAAAAAAAAMa1E0+e8avI+YJc9h0dYrLBlPP8anXmI84mAACwLgFAAAAAAAAAxr1iUjopIn7fobt/6yt+9au/dxYBAIAXEgAEAAAAAABg3KtWd3s0cpzeXO3Uhj1a22Y9sxLmFHMPu+SwmrMIAAC8kAAgAAAAAAAAXaGY9Oj5EbG8kTqNLhvc+mWG01ULT53+PWcPAAAYiAAgAAAAAAAAXaFaffuqnOLMUu/kCyYbTLl2gjMHAAAMRgAQAAAAAACArlFMePQLEXFfh+zud+eftsflzhoAADAYAUAAAAAAAAC6RrX69lURcVrjNdNo72ouKsWnnTEAAGAoAoAAAAAAAAB0ldrEiV9MEXe3q/1cd8k0VPn/PuGUPa53tgAAgKEIAAIAAAAAANBVqtVd1uSc6p4FMI/2DqYocorPOFMAAMBwBAABAAAAAADoOls/3P8PKeLXpdy5FF9ZeOr025wlAABgOAKAAAAAAAAAdJ0jLprRl3M6o7FaaTR2rYii52RnCAAAqEevLgDK5NDqHRMf3WLjLStpwot6a8WmOdImuZI3jSJtGim/KCJtknPeNCJNqqTYNIroiRSb5IgJEbFRREyMiGnrNPmiQa59xTP/xQu+sHns+cdjdUQ8nSOvrkQ8HZFWR4qnI6fVOeLpSspPRMTjEfnxIiqPR+THK1F5tFYUj0UUj0+M3kcnbb/17y85LNWcWQAAAACA8pm26ukvPzVlykkRsVWr285Rb1wwRUR+rnyO+O+Fi970C2cHAACo9xMFQFtNvzBP2KJ/+bYT+uOlRapsn1J+cc6xdUTaNiK2zJG3TBFbRsS2EbHJkI3lsb0cNnPRzBEPp4jfR06/j1T8PkV6OEd+KHI8lFLlgVoU96XU88DKjZ++//K/3mmVEQMAAAAAMHpOWnDzpyOiWk/Ztd8R1/9Fdf3fKefnyqei8ub5p+12gzMDAAC09nMHwCD2u+ChjSb3rX55JVV2Kirp5SnSTpFjh4i8fUS8OCK2iVYtOd6BAcAGPRIRyyPivhSxvIi4O0W+u4j4TW+t9ptvHv2S5ZFSNuoAAAAAAFrj1Pk3bVVL6Z6ImDJc2VEIAF624NTp73BWAACA1n/uALra/meumJamFK9ORX51JdLrckqvjMg7RY6XRxuWRhjU+A8ADmd1RNwTke6OHL/Jke+qVOJn/f09P1/9+FZ3X15N/UYrAAAAAEBjTlpw0xci0hHDlXv+O+L6vqxuNABYKWL2/NOmf9cZAQAA6iUACKznjxf/ZrOVPZPeUIn0+kjx2ijyayLFqyPiZaXYwTEOAJb8wrkmIn4dKf0scv5FyukXtci3FX3pzu8ft+1TRjcAAAAAwMBOnX/Lq2op/zSGWc2m0QDg+nWGllO+deEpu++WwiowRJz1yWVb9kxcvXOl1vPKVMnb54gpkWNK5LxZpDQ1RZoUEStzLlblSH9IEStTJVYVOT+QIn45sZZ/+dGz9nlITwIA3eKyarV3k3sf27HWG69MueeVKRXTipw3q6SYknNMiUgviohIKR4tcqxMOa9MKR7NkVZFyr+JVPvVk6s2/+Xb/6m6qtOOXQAQulS1mivXb3n/K4vc88ZKzrvmSLtG5F0jYsfS77xZABtVpBy/zhG35YifRI7bU1G7bdpLX/yrSw5LNa8GAAAAAICIzy64+esp4o+GK9e+ZYCLv1h46ox/cya6z5LjrnpFrSe9LSK9NeV4XUTaOSJv1vgYWjs21yn/RET8MkX6ec75qpTi/x6esvcd1Woq9DoA0MnuOvLISX9YM3HPKGK/lOLNOeJVsTbvMqH+e/Y80L17joj7IudfRSVuTUX6v5wqV8y46Ozfl7k/BAChSxxwwb2vTLXKHhFpRiVijxyxe0RM68iDEQBsVZ89nSNujRzLKpW4sb8WyzZ5ybY/EwoEAAAAALrRZ+ff+paUih8PV65NAcC7+yY+tnO1+vZ+Z2L8O23usk0npb73ppzeGZH3i4iXtGAMPSMPXmftUw9HjitTxGU5Vb4254y97nNGAIBOcO2Hj921pxLvzTn2ixR7RcTkwe7L65u5Ow9z35XX/cMdOeL/IufvT330Rd/d5ZLqmjL1jQAgjEPvPP++LSYWaWaktGfk2CMi9oiIF42bAxQAbGefPZUibs4535gjbqhEzzXfOnqbX3tVAQAAAADd4KQFN18XEW8eqkybAoBzFp66+1JnYPyqVi/r3XTl1AMi5w9EivekiCnRwFgawSyA6z78QkXkuDwi/UusSv81Z+lejztTAECZLDv8qO2K6Pn/UqQP5ohdB7v3ae6+venw4MOR8leLIn9ljy8uuSa1McXS4s8cQJnNXvLgKyKKfSLyvhGxT0S8dly/vsc4ANixF8/m++2BiLgmcr6qEj3XTHns9zdeUt1ljVceAAAAADDefHbBTR9Mkf55qDL1zSYyWJ0BPdVTK1487/QZjzkD48/S46/cvj/1Hh0RH4yIrZsdRy0JAA6xuRSxMnL8dyXymR87c59bnDkAYCxd95G5B0SldnTk9K4UuWe4e5/B75+aWga4jvu0/OzTv8opX7S6f/Ln9/2HM54Yq/4SAIQOdNDi5a/NlfSOnPJ+sTbwt13XdYJZAMeyz1ZFpBtz5CtTypc/3dt75eUf2/pJr0wAAAAAoNOdc/TVU56aMuW+iNh8qHKtnAUwp/SPJ5yy29/o/fFl8bxrdoxcOT5F/uscMXnwMVGaAODzQzLHNyOnUz5+1t7XOZMAwGjJEem6I459T8ppYaxd6bLOe++xCAA+8/zzRR6JiPN6+tKS3f7p3EdHu+8EAKEDHHj+8h0i53dEkd6RU7wzujHwV+cH1NG6LCZ9tq6+iHxDTpXLKkW6vDK1dvWlR2z/tFcuAAAAANCJTlpw8zkRcfRQZVoZAEw5Zi5YtPs1en58WBv8S5+OiL+IiAn1jYk8ojG0oTx4ndzANlJ8P9XSpwQBAYB2u+7w4w5NESfmiDc0fu/d9FK+MXQAsI66eYN6j0fOS/um5DP2Wrr08dHqPwFAKKH3nP67jfum9r0zImZHjndGxCv0Sv0fUEfjsigAOKQ1keK6HPGDnlp8b8bj2y6rVlNh0AIAAAAAneCkE259dRTFT2OIr4JbFwDMP1l46vQ36PXOd+HhyyY89aL+T6aIEyNiamPjYhRnAcwNt1/knC+cVJk0/wjLVAMALXbtEcftHLnyuRT5XUPdqKQmAoD13bePMDyYB72fuj9yMWf6l5b+12j0owAglMRBix98eVGpvSsiHxIpvTsiJumVpq7fo3ZZFAKse5MPp4j/TSn/sEjFt78z5yX3GcAAAAAAQJmdNP+mH0VK7xjs+VYFt3KKT5xwyu5L9HhnO2vutfumnD9fSen1jdQr8TLAA1mRc8ydc+bMLzvjAMBILTv88Am1tNkxkaMaEZOHuydKTSzl+/z9TbuWAR4yAPhs3W+movbx3f/+gnva2Z8CgDBG9vvH30ye9MTkd/ZU8iG5iNkR8TK90tDn1jG/NAoANrsH6dYc+XuRi0v3fGz7a8wOCAAAAACUzckLbz4057h4qDItmAVwVd/ESS+uVnd5RI93pjOPvXVapbLq3JTyhyIiNfq7QYcFAJ+t+M3cU/ubOYve+jsjAABoxnVHHLt35Mo/R8TOdd2kxEhn8mtXAPCZ5/Ng91PPPfFkpHzs9IuWXtiuPhUAhFG0/5krpvVMqr0jRzo0pfijiNikwe8HqO/aPyqXRgHAluzOwynHt1OKS3tW9373G3O3esLABgAAAADG2oWHL5vw0JY9d0fE9oOVGXkAMP3rwlN3+4De7kznHn/Dq4tUuyQi3jD4OW5kTOQmxtBQGg8ADr+N5yrelyMfOueMfa81EgCARlx7xPGHpxxLI2JiIzcpbV/Kt6l6zzw/fADwWV/JadXhMy666OlW96sAILTZu5f+dvveNOGPIuc/joi3R8SERj9s0fgH1NG4NAoAttzKHPGDSqRv9PXFpd8/btuHDHIAAAAAYKx8duHNp6QcCwZ7fqQBwJzibSecsvuP9XTnOXvutX+ZIr4QEdOGOseNjYlRnAUwj6T95yqvzimOnHP6Pl80IgCA4dz8V0dttnripH+MyH9c5z84GOA+JTdZb7h7rRGGB4dfBnjdv92Saz1/usc/LP51K/tXABDaYP/Pr9i60p/flyK/PyL2jYhK/Z+XaOBza5uM4wBg54y1WkT8X6R8Sf+ayn8JAwIAAAAAo6067+Ydeyrx6xjk6+ARLt9614JTd3t1iuTXgQ6y5Mi7JvVPfXhpRHykzvPcwLjoqGWAn1OJ9Pe1lY9+bM7SA1cbIQDAQK7+23m7VYr8nxHx8iHvT4a5J0pNLOX7/P1Nu5YBbiwA+Mzzj+RK/MX0C5d8t1V9LAAILXLQ5+55UdE/8ZBIxaER6YAYbKa/xq9hjEmfmQWwRIqIdE2kuCR6K1/99se2XmHwAwAAAACj4aQFN18ZEfsM9nyzswDmFJ894ZTdP62HO8eZx946rad31X9FxP6R87DnuNEx0akBwGdeA99d01f5k2MWz1xppAAA67r28OPfHpG+HhGbPH//MBYz+bUrAPjM8/UvA/ysWsr5b3b/0tIvt6KfBQBhBA49594pT/RW/riS0l/kiP2j0dBffdcwxqTfBABLqhYpXxaR/i2niV/7zpwtHvciAAAAAADa5aQFN38sIs4f7PlmA4C1nmLXT50043Y93BmWzL9pq/7o+3bkmPH8KR9uqbjGxkTUOZbaHQAcfhuD/Die0+Vp2upDPlZ9+5NGDAAQEXHtEce/L+X0rzli0vr3DiVdyrepes8833gAMCKiFrn4yPQvnf+PI+1rAUBowkHnLZ+ee+KDOcdfRMQWLWtYCLBEfSYA2AFWRcQPU8SXV0zZ9us3HpH6vCAAAAAAgFY6df5NW9VSWh4RvQM932QA8GcLT939tXq3M5w3d9nLaqn2/Yh49XMPjmEAsPFtDBICzCNpPw9WftmavnTAMYtnPmLkAEB3u+Yj8/4qpfzFge+j27UM8BiGB/NQ91JD1s058tEzvnj+eSPpbwFAqNPsJb99RUTPB1OKD+RIO7VlIwKAJeqzcRwAHJ9j7aGI/B9FpH/97lHb3eCFAQAAAAC0ykkLb/5e5Nh/oOeaW741f2bhqdOrerb8zp5/3atSjh9FxEvWeyIPfc67cxng5/52Y6VSe/ffnfaWPxhBANCdrjli3tyU82lN3Z/EcPdZjS/lu859eMN1mwkAbnh/NGzwMEfKn5x+0fmLm+1zAUAYwn7/+JvJk5+c9L4U+SMR8ZbnXzNteukIAJasz8wC2KF+miP+Pirx5e/M2e53XiQAAAAAwEh8dsHNf5UiBl2Wq9FZAIueyus/ddKb7tCz5XbOwqtfnGs9V0XEDgPPoCcAOET5K9f0pf2PWTxzpZEEAN3lmsPnfjRF+txw9zVjM5NfuwKAzzzf1DLA+fk/5PyhZpcDFgCEAcw69/5Xp0r8dUR8KFJsOWovHQHAkvWbAGCHWxMR308RX566/bb/dclhqebFAgAAAAA0qlq9dpOeNZNWRMSUgZ5vLACYf3LCqdPfoFfL7bS5yzadkGr/FxFvfP4cv/BUDn7eOz0AOPw2cj3lv/n7qWveW62+vd+IAoDucN3h8/84R/7PiOgZ7majtEv5Nn2f1mwAcL3na5HjsOlfWvpfjfa9ACA8Y/aSuyblNOU9lUiH54h3Dv36EAAsFQFAY234s3R/jvyvOccXvnv0dnd70QAAAAAAjfjsgpv/K0W8d6DnGgkApohPLTx195P0aHmdc/TVU/Kknu9HxL7rn+MXaEsAsKGx1IA8xDE0035dAcBIOf71786c+cEUyS9gADDOXXv4grenKL6TIybVd1/TrmWAxzA8OPIAYKSIlTnHAdO/tPSKRvq/YgjS7Q48f/kOs86//4ycpj6QIl2cI941/OemNn1OEclltHTdWMsvThFzKyl+eeDi5V8/6NzlB1Sr2XsgAAAAAFCn9B/DPF9fK7m4RF+WV7WaK8Wknq/GOuG/ZuQ2l2/dsG5vxZziLz93/NUCrwAwzl374QW7RhRfXz/813E3OC2Vm9ynHDElpfifZYd//DWdd9QwBmYtvXe/iHRkRPqjeG760UZeFGYBLI229plZAMfxwLkrcnyhlmv/9L1jXvqIFxIAAAAAMJhqddnUnjU9v4uIqQM9X9csgDnuOGHR7q/Xm+V11tzrFqQUpwx+jl94ToebYaZ+ZVsGONXRZp3lcyXFIX93+j7fMsIAYPy58m+O37i3t7IsIl5V943Gc/cPzc7kV/+Meg3fs49kGeA81P1R/ceaIiKn+Mnqab1vnrl48cp6zoPZj+gqs5fcNWn2kvs+OGvp/bdEVC6LSH8S64T/6FCizDQ3cHaOlM7uqUxYfuC5D148e/GD++gTAAAAAGAg1eqMp3PEZSNqpJK/oyfL6+zjr90rpag2Vmv8/kDRwlkMU5Hjy+d/8qodjDIAGH8qvZULYsDwXzvvldIY1W1X0xtWTDleP+nJ/vPqPg+GIt3gkAuXbzlr6f3VHFPvyyn9c0S8Ua8Aa+VJEfnQlPKVB5674poDz3vgsP2quVe/AAAAAADrSfHtkVTPKX1PJ5bT+fOv2yJV0iURMaEMA62u8dRgm2O8KNDmqSf+pVq9zHfvADCOXP2RBX+TIj7Q7H3GcPMDtuY+aOT1Gr1Pa+Fd4Udu+vCRf15PWQFAxrWDPvfgy2ctuf/8vjX5noj4dKTYsnWt57a9gqFE3yF0m70ip69O3ezBuw5c/OAxs5c8vIkuAQAAAAAiIlKqDDOD35Bfuj616WMbX6EXy2l1jn/KES9pZZu5zeVbN7BHp2KOeMuWKyd+2mgDgPHh2iPmvy6lvLScwYPW7lNrAoepqXo5xYU3fujvXjlcHQFAxqUDL7jvTbOW3PflWq3/55HiYxExtfQfsCipbNx0px0j5bNT0XffgeeuOG/W4gd21CUAAAAA0N1OPPmNv4mInw703LDfEad02ZylO6/Wi+Vz1rzr/jwiDh6u3IDn2D+0b0yOeZ879tpddQQAdPpbeqSc43PRQBZnkJvkEh5duZYXThEbp9TzheHKCQAyrsxeet87Zi29/0dFkW6OlD4QEaYS7xY+ZNMeG0fEnEpKdx147or/OHDxQ2/SJQAAAADQzVJTywDnnL+v78rnguplG6WIM0c4JnTks+N8+CK9RSrOy5F1GgB0sOs+Mv8vI+JtY3uvVK6g3sibTkM99c6bPvLxPx2qtgAg48KsC5bvO2vp/T/KkX4UEe/QI0Bjhv1aojci3h+puPnAc1dcOeu8Fe/UZwAAAADQfYoovtNUxUr6rt4rn1Urp54YES8u356ltrRZimWJU97vgrlXv9/oA4DOdOXfHL9xTnFaq+4bcpP3RO3Z3ljdp9W12cW3fuDYaYN+3DA06WQHLLn/XQcsXX5tFPmKGJPgX27XCxc69zuE8W+fShE/PHDxiitnn7PikMj+pSIAAAAAdIs8cdIVEfHE4CUG/LrwNyeevNtdeq9czjju2p0jxSdKNb7aXL6xYdvGijkvXnLktZsYhQDQeXp6K5+JiO1bdDPRRq3dp9YEDlPz28vx0trklfMGKy8ASAd+us5p9pL73jdr6f23pBQ/SJH3HOsPWGDcdKV9UopvHHjug9fPXvzgHwsCAgAAAMD4V63usiZH/LCxWvk7eq58enrSmRExqaEzOdCDqcHyRETaNk3pO0Y/AEBnue7DJ+wUkT7e4vuCMt6rlHSf0rE3/c3Htx/oWQFAOsr+59938AHnL78pp3RJRLxRjzA612Af0RnSjBT5v2ef+9CyA89dcbDuAAAAAIDxLeX0vYEeH+yb5JwrP9Br5bL4+GtemyPe49v/1qu3T1Okj5957Pem6TEA6By1Su2TETGhRHfmZfy00M7ZlSfn3nzUQE8IANIRZl2wfN9ZS++7vJLTpSniTXoEaL0GvupJAz2Ud48clx64eMW1s89ZcYj+BAAAAIDxqSeKKxoonnsiX6XXyqWWeo6Llv5i3I4fn9vzg/aYLTO8oS2mpY3+xmgEgM5w3cfmb5Ei/qq5+4Y0VvcbbbrXGrvgYcrpiJv/6qjNXvi4ACClduD59+45e+n9l0aRr4hIbyvnXrbpUmQxUTrhfY2B7JlSfGP24hVXzzpvxTt1BwAAAACML/MX7fbTiPjd4CXW+9L1lwsW7f47vVYepx9/0/aR8l+Udf/aG9BLTT3VdJvD7XvKx1Srl/UalQBQfkVfOjIiprXjnqDZe43cZN1mUz6tqZdGur1N8oS+I174oAAgpTR7yQOvm3X+/d8ocuXaHDEmS2qa9h3jhhHehuxdKeKHBy5e8YNDFi/fXY8AAAAAwPiQIuUc+do6C1+rx8qlJ9U+ERETm62fBz7PjZUnIlLkiB23XjnhMH0BAOW27PDq1Ij4WDvvC8p4r1LefUpz7jryyEnrPiMASKnMXvLAVrPOv/+8nIpbI4clNCnRNdhHdJr2rlpUlh24+MGLZy958BW6AwAAAAA6X4rKgMv6vvCb5FxY/rdMqtXLeiPlv1r3xwTf/rdeQ31axEf0GACUW39e/acRsaWgXgP71N7Zlbd/fGUctO4DAoCUwv5nrpg2+/z75+ZK8avIMSciTPcNjIEGvpZo7A07ReRDUy3/dPbiFRfuf+aKrfU1AAAAAHSunPOV9ZSrpLhGb5XHRiunvjMi2vT9bOqQNtu9zHCDbad46+ePvvrFRicAlFeR0vtHft+Qxux+oz33WmMbPKykWO+cCAAypvar5t7Z59/30Z7JtV/lHKdFjo31SmmuFxhrtN6EFHF4b2/62YHnPnDcftXfTNYlAAAAANB5Nntyo2URsXrwEiki8hM73/WrO/RWmdT/4/VYam9ALzX1VNNtDq9Sm5D/1NgEgHK6+kPVzVPEu8f4Hm4E90GpJfdbra2XRry9HPngWz9w7LTnbqgMVcbK7KX3vWPKFvffnHP6XI7YprM/YJkgHqOBhkbJiyKnM6ZuOvWu2ec++EH9AQAAAACdZc7SnVdHxA1Dl0rXHnbJYTW9VQ7V6h0ToxJ/1Iq2BvwdIDVYnuf6JkXxfj0BAOWUetb8SURMrLP0SLZUxqMv8z5NrU1eecizfxEAZNTNXvLbV8xacv/Xc6Qf5Uiv1yN0zjXYR3RaPqZeknL+5wMXr/j+7CUPvE5/AAAAAEDnyCkNuAxwfv7/r9VL5TFt5VMHRI7Nn38kbXDOGG3PnoO094Vzr3yZ/gCAMt70xmEDv3+X8Z6iZPuU2n1qnp/dWgCQUbPfBQ9tNGvp/Yty6rkjUmv+hRVAO94mx+A+4t2plm45aPGKxX+8+A+bOQcAAAAAUH6VSFcP/Xxco5fKI1XigFHYSoe02e5lhhsun/rzWC8tCAC80NVHHz0lUryt7Pc13btP+Z0XH3pozzOfPaDNck6zL7jvg5Nz388jYl5ETNIpHX6tAdphQkQc1R+rf37g4hUfrlaz92gAAAAAKLH+vrh5qOf7+uNWvVQiRezTSbvb3sBd+YKKOfI+BikAlOx+5Ompe0Tdy/82fx9TX700yturp14awfbSiPczRdr45S/a+o0RAoC02YHn3/eqWRcs/0HO6Z8jYvuOvKC1/dLAuHwj7MSdFjYtxbjJEVuniC/esOlD1x903vLpegUAAAAAyql6xhvvi4iHB3n6D9Uzdl+ul8phSfXaTSLFG1rZ5oC/A6QGy5fRGPxWkCMiRWVfIxUAyqWSiyben0dyM9GuG5Ey7lNrjqeS0z4RAoC0ySEXLp86a+n91SLS7RHxzlK/Lhif2jbWBD0ZLXl6FJVrDz5nxXmHXvDQRvoDAAAAAErpjoEezBG365ryWLMy7R0RPUOV8e3/WHn2B5288wXHXbat/gCAEsmVfYZ+/y7jPUXJ9im1fRMCgLTH7AvuP6SvL98ZKT4dTUwFClCCO5my3Ef05hRznl5d3DZ78QOznRcAAAAAKJeU822DPCUAWCI5pVH88bpT2mz3MsNNhCrThJlGKwCU5P4pIuWU9+qU+5qu3accb4kQAKSFZn3+gR1nn3//pTnHNyJiBz0yzq81wGheA3aqRPr2gYtX/MeBZzzkX0ACAAAAQEkUlcrAQb+c79A75ZEi3tSJ+93ewF0pg4pvMloBoByu//AJO0bE5s3OktyeemmUt1dPvTSC7aVW7Of2t/7t324tAEgLPn3kNPv85YdHrbgtRxw8Lg+x7ZcGunvclIiwadlPz/vThOKnBy1+8HC9AQAAAAAlUBQDBgBz9PxE55TKK9rR6IC/A6QGy5fRGPxW8EzfvNxQBYCS3Oamkdw/jeRmol03ImXcp9YcT3//hJcLADIiB1xw7ytnnX//ZTnyhRGxcce+LmDkH+lhtEbXZhH5woMXP/jt2Uvue4keAwAAAICxU0yadHsM8LVeManXDIAlkSOnFLFjfWUZG8/9eCgACABluYeq5JfX+f5dxnuKcu1Tm3erUskCgDRnv2runX3+/XNTrvwkUnqbHqHcnxdh/I21HHl2pdb7E7MBAgAAAMDYqVZ3eTJF/OYFD99fre7yiN4phzOOv3m7HDF18BKlXAq3tNq7LLEAIACU6E1/p/Y1LjzYyn3KOQkA0rhZFzywx+Qtl9+YI06LiEl6pIuvNTDO72g6wKYR+cKDz1lx6XuW/m575wwAAAAARl8Rsd4ywCmy5X9LJPXUdhonR1JXqdxgm3mM9nMQ21xQvWwjoxYAynDrkV7+7Pt6s/cL7amXRnl79dQb2+WFUzIDIA04tHrHxNnn33dK5OLqiNi1244/t/3SAB31HQJluj6lOLjWX7v9wHMf/FO9AQAAAACjK0X+2bp/z1H5hV4pj0rOO5Zpf9o8g14rB/aY9E1eOWEHoxYAynDTUozwPdksf62+v8uDHE/OsYMAIHXZ//MrXv/EVptdmyMtiIjecfKagrZfksVBGcU3/M1Tzv958OIHvnzoBQ/5F5IAAAAAMFpy3LP+A8U9OqU8ihybNHY6Gz39A/A7WBPWdlolx8b6AgBK8d686VjfF4x+3TbuUzvvD3NsIgDIkPar5t7Z598/t1KrLYscu+kROvTzInTNWMuRPvD0muL22Ysf3MdJAQAAAID2q6S4e70HNggEMrYnKKYNX6gdX/CO3x8o2jmLYRHFNIMWAMogTW3v/Y4ZAlu2TymmCQAyqNlLfvuKyVsuvyxHnBYRk/SIaw10n46dw3HHSuTLD1r84GnTL8wTnEcAAAAAaJ+iku9e9+85JwHAEqkUMXX8HE19PxTlBtvMY7SfA56vqAgAAkAp5Gnrvq+3btnaVtRLo7y9euqNaaBHAJCBRmdOs5fef2Su9NweEfvqkNG8NEBHfYdAufVG5LnbPr3if2cvue8lugMAAAAA2mPaU6vvjnV+GCgmVwQASySnVLoAYG5z+ZYZg98Kaik2MmoBoBRacA9llr/67u9Sk/WeqZsFAHmB2Use2GrWBcv/J6dYEhFTuuA11RkfsOjoEWHcMLbXm7RvpdZ78+zFD8zWqwAAAADQescsnrkyIh565q8rP13d9Xd6pTxSyg0HyloS0PMP7Zs5W5HG1YyNANCZcrVaiYjJY31fMDZ1O22fwhLArG/W0uUH5EpxW0QcojcYZ58XodvH2paVSN88aPGKkw+9OPc4UQAAAADQauk3z/zhtymSfxdeIjmiUt8JaccXvGk892t7ylfSBKMWAMbWjcuX99R/I1PSUFwZ9ym1rWKvACAx/cJlE2Ytvb8aKX87IrbVIwDrGjff1VUiYuHT9z/0v+9Z+rvtnVcAAAAAaKm7IyJS5Lt1RbnkHE+PryNqT1CxNN+E5+JJoxYAxtaMiy7qi4i+Dd6mm317b0u91PLtlfM+rS5PCQB2uf2XLn/Nln3bXR8pPh1rwyG07hPKOLte0HWMtfF6bXprrb920+zFK96hLwAAAACgNXJaGwDMKf1Wb5RMiqdKOWZKVn6I/hvViinSUwYtAJTCky24IYhOmuVvbAOOaSTbe1Lgq4vNWrr8Lysp35Ai3lSy11S5P8QbOhg3dP642aYS8b2DFz94jF4GAAAAgJFLRfHbtf8vAFg+ualAWUsCd/6hfcOKVBEABIAOvodq8V12Ge/8y7hPT/UasN1nv3/8zeTJT008PSLP0Rt0jRRtSlNln+DpVL058tkHnbtij8qU4kOXHrH907oEAAAAAJqTKvFQzhE54nd6o2SKylORcp3f5rftxwSizl9UimQJYAAoxft2err+JEQZ76FGsk/tOp4UkXKTTQ+5T2YA7DazPnf/qyc/NfG6iBD+A2jg9qah993OOrQ/K57uueKQ85a/zHkGAAAAgObUcuWRiIic4g96o2yKJ8Z2+6lj2hyzZYbX0ZPTE8YsAIy9FPF4K9//c5P3NbnJe6I8lj032nIWAOwmsy5Y/idRpOsiYle9MWqvsnFzvaB739XpimvV7kVRueng81a8U18AAAAAQON6o/ZwRESO4mG9US65J99b2n0rWflBpdGruLp/pWW0AaAMUtzbohuC6KSlfFsfcGykXmquXkr3CAB2gUOrd0w84Pzln4ucvxaRN+2Q11S5PywaVhg3jL9xs0Uu4rsHLX7wo3odAAAAABqTU8/DERGpWDsTICU6N7XeXzVdtxXl/UP7Rjxy9Llvf1Q3AEAp/Kocu9E54cGx+yySfi0AOM69e+lvt39iy80uT5EFOqBt12DRPsaN3oj8uYPPWXHeoRfnHt0BAAAAAPXpn/CHhyMiitxvBsCSWTVl+n0RsTqi3m/zJfbaKQ/95K/0EACUQ8rp1w3WKONRjFHdYdpt8ezKKcevBADHsdlL79+nJ3qXRcTeegNgpBoIenb490M5xZynl6/45uwlD2/ivAMAAADA8KrVt6+KiKdjyhQzAJbu3KQiIu4e271IHdPmmC0zvHbzAoAAUBLFEDMAtn6Z3DSC+w0zBKYQABy3Djj//o/llC6LlLfTG2Mtt+0VDOPwvYnSXLrSrEqt/7L3LP3d9joDAAAAAIaXIpZXq7s8qSdKeXZ+WdY9yyUrP9QAb3fFFAKAAFAiv2rhDUGMRfAgN7lPuW3bq6dearhe34R+SwCPN7OX3DXpgPPv//sUcX5EnqBHyvOBDIwbOm/c5N1r/bUbDlm8fHdnAQAAAACGVkTcpRdK65bR2tCA3+f6h/b1vYZy3KwXAKAcZm7f+5uIeLQce2OWvyFuPle8+XOfWyEAOI4c/Pl7X5wrU69MEX/TcTvvgw8dP9ZE+xi3ti+icvlBix98l64AAAAAgMGlEs8y1/XnJhdXPPvnXOfZbKw8jRisT2sTeq7UOwBQkvunarVIOa5u9I64jHfppdynFs2unFL8OCJCAHCcmHXBA3v01yrXR8QMvQGDejQi/jDAf4/rGurTwFc94yvYvHFE/taB5zxwmDEAAAAAAANLOf9WL5TTxCn5moiojfEI6ZA2x2aZ4RRx11Gn7vWg0QoA5ZEjX9nq9//c5H3N2PyjjPIveZwjXRkR0Wu4dr5Z59//Z5GLf4iIKXqj275NiPH8T89Wxdpw3iNr/z89Ein/IRXxSK6kP6QiHilS8Uglpz/UUnpkQu7/Qy4m1iIi+vOaR3snFzki4lsffdmjkVJDvVSt5soNW/920740acKEVWmjqNRelHNMK1LaqBKxUY68WeS0cUrFxhGxVY60XURstfa/tE1E3sxYYxyamFL69wMXP7DVt4/e7gLdAQAAAADrKyr5Sb1QTnOqez1+5rzrb4uI3cbD8eRo7CflxsoP8YNA078VDF8xp7jCSAWAkt3f5nxlJaVW3RC00eD7NPx90MB1G73fam29+vu4VmQBwM6/u89p9vkPfCZHPiEsolvyD1jZKXrB+0REWhER9+Qo7k2R7s0Rv00pfpsi7uut9dz7jaO2ac2/8vq7xqtUq6mIteHDiIiHGq1/aPWOiSs32WSrvtSzTaWn8uIcsVPkvEOK2CFy7JBT7JDWBgah7TcKLVZJkc4/6JwHtv7WMdt92lkBAAAAgHXkigBguV0RoxQAHPD73CF+x/UrUkTOYflfACiZx6c8ef1mqzdZHRGTWtPiSMKDnRU8HCWP/ebxFbdFCAB2rP3PXDGt54L7/zmn9Kfj5qDMMDbeFJHi7ijynRGVO1Ol+FlRpLsqPXHvgxO2W37jEalvvB74JdVd1kTE/c/8d9Ngr+HUk3es9KaXp8ivSTleU6R4bcrxmoh4keFDua/X6VMHLV6xzdQXb/OxSw5LNR0CAAAAABGVlJ/QC+WVcvpuTnlORL2Bu+d/uBLQa70X9GnR25e+r1cAoFwOXLp09dWHL7wsImY1cNcVgnp17lPKI9qtHPGDwy65pBYhANiZL7ALHto2575v5kjT9QYl0B8Rv0oRd+SIn6UUd+Scf7pRf/GzS4556UrdM7DvH7ftUxFxxzP/XfrC13jqr702R351SmmXXKTdUspvzBEb6bkyaOCrnvEdbD7iqfsf3Gy/av7Ly6up37gAAAAAoNvVsiWAy2zjP6QfPr55fjgithi7vWjHl8bt+SK6vcsMb1D3io8unnm/UQoA5ZMi/iMPEgBs/TK54y082K7jWdtuJcdXn31EALDDzF7ywOuK3PetiNhRbzAG17++iLgtIq5PKd9Q1IobN3708Z89M+MdLfLtj229IiJWRMRlzz526MW558kVK15dKfLuRVSmp5R3j7VLFWysxxjDy8/7p2324MRDq3f8mesAAAAAAN0u5R4BwBI74qIZfWfMu/5rKeLw8XA87Q3oDfHjU9O/Sw1eMaXnf7wGAMplQvR/fU30roqIyS24IWjj/c/g+zT8fdDAdVsfcGyk3rB9/MSqjXu/9exfBAA7yKyl9+6XU/FfYXnQDv2A1XETxOeIuCsibsgR10eluGHVtL6bL//rnVY566PvmWVW73zmv3+NiKhWc+XGLR54Va1Ie0fEWyJin4h4Vdt2wjLdHXS9GdWdeu/Tm27xX/tVf/O+y6uuDwAAAAB0sV4zAJZdrhT/kYrKqAQAB/w+d4jv2bt4meH+nlp8zegEgHKacdHpj119xMLvRI73tqbFMs6oN1bHMyLfmLl48XOrcgoAdojZFyz/i5zz30fEpHF9oAJGY+mpiLgyR1yZIq6v9Pbd8K2/2+EPuqW8qtVURMTPnvnvHyPWLh8cff37RIq3RKR9I+JNEdGjt2izg6ZtOuXSQy5c/keXHrH907oDAAAAgG5UKQoBwJLb6a7f/vieV+z4QERsN5pL3DKkyz561j4P6QYAKK9U5P/IKTUQABTUq3ufUm5ut4r1Z1AWAOwAB5y/fEHO+WSfK2ixvoi4LuX8o1pKP9rkkT9cZwnPzvfM8sFfe+a/eM/pv9u4b0ptv0rk/XPOB0SknfVSKzTwVU/3BJvfVXu68u33nP67Q74xd6snjBEAAAAAuk2l6BMALLnDLjmsdua8678UESfWV6MdX/B2SpuNayZUGTkuNDIBoNz+MPmJ/9ls9SYrImLb9m9NeLAOv809q7+77gMCgCV26MW55/GHHliaIn9Ub9CCa00REbekyD+KnP63f03liu8ft+1TOm98eyaIdekz/8VBix98ea7U9o9UOSByfkdEbKKXaOGl6G21ibXvHHrBQ7Mu+djWvuwEAAAAoKusmbSRfxjbCfr7zo/eCcdGxJRuO/TGAnopcuQWz06ywQ9adz08beZ/G5QAUG4HLl26+uqPLFgSKZ36wvf1ZmdJbk+9wcMzY7efjYUH19/eIHVzXjzjixf1vfDIKaHZS+6alHum/UvkfGjXHXyHzpSV2lByxP2W4v4o4tKc4ge5v3b594556SNeXTxrv2runbrZAzMjxayIyuyI/Ma6Bqhluht/Lecx2epYds1lU4u+gy455qUrjRMAAAAAoGzOmHfD51Pkv63v+9bnv+Bt9PvZQcvn3HidYcvnke3TIMeehu+WBtt/vmJO6W/nnD7TDIAA0AGu+Oi8F/XUeu6JiI1f+L6eGrlZqOc+Y8i6w/0DhaHus4bfp8Hvbxqvm+o8nhc+nYZoN0U8MmlC/w67fO5zT47kHpJRsP+ZK6ZVptS+FhEHdG0ndGDAqDQBwBS/Tjm+WeS45LtztrsqUhLXor5rz+dXbD1hdX5bTnFIRDokIm82Xl6fY/2qb3Wfdcib9w+eemzley6v7rTKWAEAAAAAymTxvBte3h/5FxHR0+i/im9JCFAAMCLiob6+tOMxi2f6h+QA0CGuPnzBORHp6Be+r7c+yJeHuZ/Jdd+7bXif0njd9gYAn3k+D3Y/lV/YayfP+OJ5J470HpI2m73kga1ypfh2RMzo6o4QAGxELSKuTEV8I6ee//nOnG1+5ZXESE2/ME/Y7ukV+xQpDkyVeG/O8cpOfn2W4ZXfdbMArj3kS6c99vD7LqnussZYAQAAAADK5My5110SKb1vTGYBzOu3OWz5utvPze3PEMfdaABw+G2srZhzXjjnzH1PNRIBoHNcefjcl1Wi966ImLju+3q5ZvJrVwCw8bptCAA+3ZfTy/f60nkPjvQekjY68PzlOxSRvxcRr+76zhAAHM7KiPyjSOnSlHq/8e2Pbb3CK4h2OuCcB3bp6YlDI+LQyPE6PdLE67kLA4DP7Ox/P/XoNoddXk39xgsAAAAAUBZnHLfsFamnuCNFTBq+9PgJADa+jTzEMTTbfr5vVfHka44764CnjEQA6CxXHb7w9BRx/AtvChpfBlh4cL269SwDnKM6/UtLPtOKe0ja5KALlr+2losfRKQX643o2BnG2hwC7IvI38spvrLxmuJ/LjnmpaZEZ0zMXvLA6yLHn6Yi/2mk9Mbu7g0BwDp9ZY/HtvlgtZoKryAAAAAAoCzOmn/9osgxb/iSoxcAHNk2OmQZ4Fz82ZFn7vtVIxAAOs+Vf3P8xpXeCT+PiO3WvSFoPAA4zH3GmAQAB6/b3mWA6woA3rN6o57Xzly8eGUr7h9pgwMvuO9NRY7vR8RWTkkD14ESak8AMF8bOb4SUfnqd+Zs9zsDg1Jdv86+71Wp0vOXOcVfRsRO3dcDYxMA7MQ38Bxx3reP3vYorxoAAAAAoCwuqN6x0dOrnvp5ith+6JLrf8HbmhBg1wYAf/zxM/beL0XKRiAAdKarj1jwwcjpn9e9IWh9kC8Pcz8zFjP5tSsA+MzzQywDnFM6bMZF513SqvtHWmz/zy2fXimK70XEFk5LQ6/lUmphAPC3kdO/p0rtH7798Zf8wmCgExx03vLpOccHI9L/FxFbds+RmwWwgX1e8M2jt13k1QIAAAAAlMVZ82/4QOT85eFLjp9lgNsdABxiG7WcatPnnP6WW408AOhcOSJdffjCH6eIfS3lO3TdFgUAr9z9i0vemoZoRNJsDB2wZPlbUqX2zYi0idPS4DWgpEYUAMzx+xz5q1HJX/nux19yjQFAp9rvH38zedpjkw/JKT4QOWZHRO/4PmIBwIau7Ck+8q2jtv17rxQAAAAAoAxy5HT23Bt+ECneOVzJZ3V6ALDxbeQhjqH+9nPkc+acsc8njToA6HxXfWTBm1JK10bEpOaXARYeXK/uwAHAlalSzNj9wqV3tu7ejpbZ//z7312J/PWImOq0NPE6LqnUTOkcV+ZKvmDj3z/6X5dUd1njxDOevGfp77av1fo/nCM+HBEvHZ9HKQDYoP6c433fPmbb//EKAQAAAADK4PTjb9q+p9J/awy5us3oBQBHto3SLgN8c1756N5zlh642ogDgPHhmiMWHpNznN18AHCY+4wxCQAOXnc0A4DP1kuRP7r7F5d8obX3drTE/uffd3Al4pKImOy0NPWaKrU6z97TEekrRS4u+N6cl5jmnHHv0Itzz9PLHzwoIh+RI2ZFRGX8HN3YBAA7/N1iZY7KzG8fvfUtXh0AAAAAQBmcPf+G9+Scvx6DfvW6/he8rQkBdk0A8KnoiRlHLpr5MyMNAMaPHJGuOWLhdyLnAwa/v2hXAHAkM/m1KwA48PN136flDe43vz79i+e9t55zUTEcR9es8+89sBLxtRg0/Mc498sc+ZhJ/Wte/J0jtz9c+I9ucclhqfato7b9xreO2u6gIscrUuRTI+LBrusI+e5n/e+0x353p24AAAAAAMrik4v2+EZEfH7wEu34gnf8fmm87s/XKaejhP8AYPxJEbm3Z8JfReSH2nO/k9q352W8f1u/6fv7J/Z/2F1lCc2+YPn+ORf/E3WF/5yaDT4ddM4F7oWKiPh2qqQL3vy77b5frabCiYWI2UvumlQpNv7LiHx0jtil429txuC61qHvFD946rGV77m8utMqrwIAAAAAoEzOOfrqKcWk3msi4o0Dlxi9ZYBH1v4ozgKYh2s/f/XIM/b5M6MLAMavq484YVbk4psR0dP4LIB5mPuSsVgGeLhZmtu+DHB/zunde3zp3MtHdK9J683+/H3vyLX4ZkRMcWoa+izRcdLzf3giIl1UqfR87lt/t82vnUwY7HWe04FLHjggchwTkd7VmRdAAcA6D/3/eqYWB156xPZPG/gAAAAAQBmdvfD6l+ZaXBsR22/47OgFAEe2jZIsA5ziur418fZjFs9caWQBwPh21eEL56TI543uMsDtCgAOXnc0AoAp4vDpXzzviyO+16S1Zi+9f59cyd+NHBs5NU3ovBDg4ynH54v+4ozvHfPSR5xAqN+scx/cNeX8sZTyB6LuwHQZjE0AsJPeLVKKayure/b/xtytnjDSAQAAAIAyO3PBDa9PRb4yIjZd/5n1v+BtTQhw3AYAf1P0VvY+6tS9HjSiAKA7XH3EgnNTjk/Ue7NQ133GMHWbn8mvXQHAgZ+v+z4tF4tmfHHJgkb7Xsqszfa/4P6ZlcjfjYiNGwt9ODUNfkYpgxUp4uyVlQlfuPxjWz/pxEHzDj7n3hcXlZ7jI9JHoiOCgA1es7tvFsBlq1dPfNcP523+mNENAAAAAHSCs+beMDtS/kZE9K7/TCcsAzzmAcBHUk/sc+SimT8zkgCge+RqtXLd8jVfyxF/XM8NQ133GcPULe1Svk3UyxFfnXHRuX+emkgUSJm10f6fWz69kosfxbr/OkgIsIkrROn38J6IOGPVRmv+4fK/3mmVEwatc+AFD20b/bXjIsffRsTUcu+tZYAHcWt/7nuHGVEBAAAAgE5z1rwbDo/IX4j1vorthADg4G2ObBt5iGN4zqrIMWvOmTP/zwgCgO6z7PDq1L605keRY6+o+94kD3Nf0gXhwRRXPLF6s/3f/k/VpnJHEmZt8u4v3Ltzby1dkSO2aeJe2+lpus9Gdcd+naOypJKf+sJ35uy82omC9jnkrOVb1nrSx6MSR0V+4ZILZSEAuOG+pZ8XfWm/bx+/9QqjGAAAAADoRGfNv+F9kfO/RMTktY+MXgBwZNsYk1kAHy1S/qOjTt/nx0YOAHSvWz9w7LSnp0z894g4JOq+N8klCwAOXrfVAcAU8cOV/RP/ZN9/OOOJZvtcwqwN3nXh8pf19hdXRsRLGxqTTk/jr+OxcUdE/sxeD7/4a9VqKpwgGD2HnLV8y1pvfDIizYnSzQg4NgHA8r5b5F/0R+9+3zt6qweMXAAAAACgk5019/q3RiX+O3JsPsAPtg0ZOAQ4LgKAy4uiMvuos/a6zYgBAC4+9NCel26+85LI8Xf13Zs0GwAcyUx+7QoADvz8QPdpKeJfcjz9oRkXXdQ3kv6WMGux2Use2Cr31H4cEa9pYkw6Pc29lkfL/Smlz678/Xb/cHk19TspMLbX2lTkEyLS30VEbzn2SgBwHb/NteKt3z52+3uMVgAAAABgPDhn3o2vLP5/9u47Xorq/v/4+zN7L03BRhN7wRJbTNQYTdHEhgK2gC2xJAqKgqAoYl1FUZCi2LGXWCCxgIg1mnxNNImxJSZRbAlIRwULcO/d+Xz/QKMCt+zuzO7M7uv5ePj7/qK7M7Ofcz7nnNn93DPKTZO0VfS7AKa+APCdjOmAU6/Y4216CgAA+LoXTzr3dDeNkxQUvpNfXAWAzR27gEf5NvHfVn2fTfhut7WGWDZb9OZjVJhFaJ+b3lmrpqH1s5J2bmZtTBPly8t66o9NNqp9fe7qyWdstJTGAJKj1zWzt8nl7DJJhyZjwOQxwJL+m5P/+PEh679PDwUAAAAAAABQSa4c+sfOlqm9V+Y//fLfxf0Y4OKO74VdT5NW+XH+dwoajhx0+Y8W0EMAAMDq/Knf8ENMdpvk6zS1xmh6bRJ98WD5CgBV5wrP3HXi1ddGFWOqyyLSZ9zMtp+01hOS/bAF62KaKP97iXJYLrfr6oNw5DOnbbiIRgCSq8eEubtb6KMk/ai8V1L1BYCzMx78eMoZnfkrTwAAAAAAAAAVKZv1YM3lfxkq1whJreIuAGz0PS06R6y7AOYkXdL13VmX9Z3cN0fPAAAATXm+37CNa5S52+U/asE6o7EFUwHva26dFddjgBt7n78TmB35nZvGvxRlfKkui0CfSZ75ZMGs30p2cAvXxTRRvkpbABjK/ddBEFzw2Gk8vhJIk4Oumttb8rEubVmeK6jexwCbNN8V7jVtSLd/0RMBAAAAAAAAVLpxZ/95lzDQryVtVYWPAZ6tUEcPunKP39MTAABAS03q0yez0bpbDpfrIkk1jawzGl2DNL2eKfQxwHEVAK763800qaFVw0m7X3PNkqhjS3VZBHpcN+sGl07OY11MExXCS3KOx11+zhODNnyNgAMpHZMnzGhtufZnyPw8SWuU9uxVWwC4yF17P3ZG17/TAwEAAAAAAABUi+uyz675+fJ2owNXP0mZlr4vzQWALn8wCBpO5pG/AACgUH/sP/z75rrZpO1WXmmUvgCwuWNHUgD4sbudvdvN426OK6ZUlxVp/2tnnWumy/J+I0WAijdmeafCOyYbOH3g+tMJNFAZekyYtaGFwWjJjiztQFp1jwH+OFD406lDur1MrwMAAAAAAABQjcae89edpXCCpB+05PX5Pga4uB0GvbDrWfVVb5pp0KArdn+SFgcAAMV6NputaTN7+QCTLnZp7a+vW6J/DHBcBYDNvjeU7I5WQTB8pxvHzI8znlSWFWH/62cebW73FBRHCgAVb8xaHNt6dx+3vH1d9rkTNltGkIHK03PcnN3CjK6Ra7fSnLGqCgA/k4c9pp3R7f/oaQAAAAAAAACq3bhhf+nl5tdI2qSp18VdAPjN9xS9C+DnMl1pn310+aBrDlxOKwMAgCj96VfZdS2z/CJJp0rKFL4LoDezZir5Y4BfdtfA3W4e96dSxJHKsgL1uG72fq7wUUm1BR2AAsCYY9YiT+TCcOBTp280g+ACla3PJM98PmfeAHe/VFKHxEyt6X4MMMV/AAAAAAAAALCSK4e+tobVLOtn0mBJGzf2uhQ8BniJu93kNTXjh4zcZQ4tCwAA4vSnfsN2MNnZko6wRmux4noMcKQFgK/IffQuG6w1ybLZsFTxo7KsAD1u+GBnD/33ktoXfBAKAEsQt0Z9IPmQxwduOJmAAtWl9zULujXkGq6S1CcRU2t6CwCXWqBej57e9Rl6FQAAAAAAAACs6qZ+L9V+uk54hMyHStpp5f+e3AJAn2NmV7f22hv7j9plMS0JAABK6fl+wzbOyAabdKJWqcuKqwCwuWO3pADQnpZp9K43jX2qHHGjsixP+17z326ZIPizpA2LPhhFgDHHbBUNcpvQamltdsqwTp8QTKB69Rg/p4eZrpO0Wdmn1/Q9Bnh5KD90+pD1p9OTAAAAAAAAAKBpLrexZ/95nyCwX7h0sL54Sk3cjwG2VQ/clHpJT0t+f/D5xw/wqF8AAFBu/3fKOevU5uw4mR8h1/e+Wt4UupNfLAWAc+T6jTJ++643jnulnPGiqiwPfcbNbPtJK3tOpt0iWvHTVLHG7BteCmSnPDaw20sEEcCXY/pnVjNMpnMktS7b9JquAsB6d/V57Iyuj9CDAAAAAAAAACA/EwbOaN3Q7qP9ZN5H0qGS1vzGCyIsAPzme1Z7zFCuF8xssmd0/+CRu8+jhQAAQBL9ZcB5G4X1DYdJ1kfmezb+Sm9mzRRJ8eCHLk0zs8mfrb/m9L2z2YYkxIiqshbKZj14ofMHk8x1eGQHpQAw5phJkj5309lPnNrtepk5AQSwsv3Hzdkuk9Ft8oiKu/Mds9PzGOCczI+aNnh9Hp8OAAAAAAAAAEUaN+RPbYNWNbuG0o+++CF7D0kdYnwM8DIz/6sUPB+6/VHLP//jkKv2/piWAAAAafLiiWdvaJnghy79QO4/lLSdpOCr9U+huwA2+t8+kPx5N/0xMH/+vUUzX+87eXIuaXGhqqyF9r9+1mVynRtpwCgAjDdupj+5hcc9cepGbxM0AE3ZK+s1a6w1Z5ibXSipVUmn13QUAIYyO27a4C730FsAAAAAAAAAIHqT+kzKfNB90x08F27j7lvIbHMz20LuW0jqIqm2Bd//1klaINO7kr9rbu9KeleBz/i4dYdXstnt6og0AACoJP93yjnr1DTou4H5Fi7fIpBt7vItJG0sad1vvrrRH+c/MWmmLHxXbu/K/V0F9m7Oav7+/RuveD8NcaCqrAX2v27WsZLujCVgFAHGEbPlLl3YoUu3sZP7Wo6AAWipA66at2Mgv1Pyb5d0ik32Y4BdppOmDe56Kz0EAAAAAAAAAMpjUp9JmYVbrN9haab1mgq9bY17e8vlPm5oZcva5HKfz2/zg8XZrIVECgAA4Cuv/WLoGss61LYJQl+rPudrSFJtxj6zXP2ST2raL9v7+uynlfA5qShrxr7XfLBnEPgzklrHEjAKAKOO2cthmDnuydO7/oNAASjEd2/y2q6fz73ATcMl1ZRkik1uAaDL/bRpZ6x/PT0DAAAAAAAAAAAAAIDkoaKsCT1vmLlBfRi8JHnX2IJGAWBEMbN6yUcuaDXnsr/136WeIAEo1oHjZu+iwO6U9K3Yp9iEPgbYZGc+OqTLOHoDAAAAAAAAAAAAAADJREVZI/a6/b02rT+r/b1Mu8UaNAoAo4jbPwPZcY8N7PYSgQEQ9VzQbnHrUZINinWKTWYB4PnThnS9jF4AAAAAAAAAAAAAAEByBYRg9Vp/XnvD6or/ystpmJUD4jZu2Zp136X4D0Acnjths2WPDe52usuOlGlxbGN20uq73S+h+A8AAAAAAAAAAAAAgORjS7nVOODamYPc7OqSBY1dAAuJ2RJz/9X0QRv+hmAAKIUDr529iRp0r2R7xDJmR1jjbcW9efy0wV3PoMUBAAAAAAAAAAAAAEg+qslWcsB1s3/gHj4jU6uSBY4CwHy9bGGu7/RBG79DKACU0l5Zr2m31tzzZbpALdpFN3UFgNdMG9J1EC0NAAAAAAAAAAAAAEA6UE32Nftd98FGJv+bpE4lDRwFgC3/9K5r5Z8PnT6o+3J6LIByOWj8nIPc7B7J145szI74Ke8FzBY3TRvc5RSZ8bx5AAAAAAAAAAAAAABSIiAEK3z3ppdqA/P71ILiP5TFJ5KOmj5wg4EU/wEot2lD1p+WC4NdJf2j6VfmUUtX1vpuu3PXxV0GUPwHAAAAAAAAAAAAAEC6UAD4hY4NXa90155lOXleRR9VWZvxTwuD3R8/bYP76akAkuKJMzq//Xlt5vtm+k26P4n95rPFnU/MZi2kVQEAAAAAAAAAAAAASBceASxp/2s/OFjmD+UbDx4DXAp+d21tcPLU/t0+p6cCSOYw5XbQ1XPPdmmkVltYX57HAFvLXvTQZx936ftc1hpoSAAAAAAAAAAAAAAA0qfqCwD3vXFm9yCnlyTrUNbgUQC4smVm3n/6qRveRZoCSIODxs85yM3ukXztgsfsiDd5berM5nq07ZJFh0/ObldH6wEAAAAAAAAAAAAAkE5VXQDYZ9zMtkva2Aty7VT24FEA+PVPN8/lhz5+2oYvkKIA0uSAqz7YOlAwTdIWBY/ZJdgF0KUnP1+89ODnspsto9UAAAAAAAAAAAAAAEivoJo//JLWurbQ4r/I5VUf4hXcKvZ3k32P4j8AafT44A3ebKi3PST9OcFj9nOZduGhFP8BAAAAAAAAAAAAAJB+VVsAeMD1s/pI9ku6QKI83lC79IePndbtP4QCQFo9eVbX+Z+vtWwvSQ8k8PJeyNRlek/t3+1zWgoAAAAAAAAAAAAAgPSrykcA73P9fzbPeOZlSWslKoDV/RjgCe07dztjcl/LkZYAKoK79bh67uUmDctrzI54w8Avz2zmr3irup9OG7DJRzQOAAAAAAAAAAAAAACVoeoKAPfKek3rTh/8QdL3ExfA6iwAbHBp8BOnbXAd6QigEh149dzT5Rqnlu66G0MBoEuvt65t+MlDp224iBYBAAAAAAAAAAAAAKByVN0jgNt0mj1CERX/RS6vmj6vhOb4UB7uS/EfgEr22Oldrzb5kZLqop8LWuQNz/g+FP8BAAAAAAAAAAAAAFB5qmoHwP2v/2AfuT+hCAsfIw9g9ewC+KZb2POJUzd6mzQEUA0OuHrOgYHbbyS1jXYuaPJAb6k+8+PHzu48lxYAAAAAAAAAAAAAAKDyVE0BYI8JczqFmdxrktZPdBCrogDQ/1pbGxw4tX+3haQggGrSc/ycvUKzKZLaRzcXNOpdzzT8ePqgDWcReQAAAAAAAAAAAAAAKlPVPALYM7nrFUPxH/JtCP+9hW33ofgPQDV6dMj6zykMf+JS3I/jnZmp0T4U/wEAAAAAAAAAAAAAUNmqogDwgOtmHe/Sz1JxsXlt6udpa4qp7eu9x/RB6y0h9QBUq8fO6PaSAv+RS7OjmQtWMS+TC/ebOrDre0QbAAAAAAAAAAAAAIDKVvGPAD7w2oRJjIIAAIAASURBVNmb5Cx8TdJaqQliZT4G+I5lC7ud9FzWGkg7AJAOuOqDrQNlnlVju9MWVuM9L5ML95o6tNu/iTAAAAAAAAAAAAAAAJWvoncAzGY9yFl4u2Is/pNSuA9fiZnr2t0XdvsVxX8A8JXHB2/wpnKZvSTNjeiQH3sY9KD4DwAAAAAAAAAAAACA6lHROwDud92sISaNS10gK2gHQJdGPXHaBueQagCwegeOm7uDB3rWpPUKnwu0WB7u89gZ3V4iogAAAAAAAAAAAAAAVI+KLQDc57rZ2wYK/2ZS21QGMv1FgG6yM6af1u0q0gwAmnbg+PnfloXPSFq3gLlgiUz7PTa465+JJAAAAAAAAAAAAAAA1aUiHwHcZ5JnMgrvLFXxH1Zm9e72c4r/AKBlHhvS+dXAraekT/J862dhEBxE8R8AAAAAAAAAAAAAANWpIgsAlyyYfaakXUt5TqcvfanOXH2fGNjtXkIBAC336JAuL0hhT0mft/AtS13q/fjpnZ8negAAAAAAAAAAAAAAVKeKewTwgdfO2qrB9Go5dv+LNJjpfATwcpeOeOK0DR4htQCgMAdcPefAwO0RSTVNzAV1Jj9s2pD1pxExAAAAAAAAAAAAAACqV0XtAJjNepAzv6UiHv2bV01fIvYf/DyUelH8BwDFefz09R8z6eQm5oJ6M/Wh+A8AAAAAAAAAAAAAAFRUAeCLHWedJtkPadaS+1QeHvTkaRs8RSgAoHjTBne9VWbZ1fynBpcfPW1w1ylECQAAAAAAAAAAAAAAVMwjgA+4Yc6mHub+LmnNigloOh4DvNTND3ri1A2fJZ0AIFoHXj3vWoV+6hf/MzSz46YN7nIPkQEAAAAAAAAAAAAAAFKl7ADobh7mblGZi/+q0DIzO4TiPwCIx+cfdR4saZokd+kkiv8AAAAAAAAAAAAAAMDXVcQOgPtfO+sXMt1VcQH1RDdnXSg//MnTNnyUNAKA+Ox35dw1amrtgMcGd/kt0QAAAAAAAAAAAAAAAF+X+gLA/W+Zua6W278kda7IgCbzMcANMjvi8VO7PUgKAQAAAAAAAAAAAAAAAEB5pP8RwHXBKCWk+E8qYNO+9HGT+lP8BwAAAAAAAAAAAAAAAADlleodAPe7dub3zOxPSlghY/keA1yK5vQzHz9tw3GkDgAAAAAAAAAAAAAAAACUV2p3ANwr6zUW2E2qhF0MIxPv/oPmNoLiPwAAAAAAAAAAAAAAAABIhtQWz7XqNGuoXDtVfAslZI9GM7tx+sBuF5IyAAAAAAAAAAAAAAAAAJAMqSwA3O+6DzYy2QVJvT6vtF7i/uD3Fqx/KukCAAAAAAAAAAAAAAAAAMmRygJAk4+V1I7mKwX/a7is5ths1kJiAQAAAAAAAAAAAAAAAADJYWm74AOum/0DV/iHpF97pBfnZTv7e/UNNd9/ZnCXeaQKAAAAAAAAAAAAAAAAACRLqnYA7DPJM67wOqWwcLEo5fm0HypQD4r/AAAAAAAAAAAAAAAAACCZUlUA+Mn8WadK2jEN1+rp7hfLZXbw4wM2eJMUAQAAAAAAAAAAAAAAAIBkSs1Oej+9dtZ6NaY3Ja1XlcH10p3ZzPpNP7XbzaQHAAAAAAAAAAAAAAAAACRXanYArDG7XCkq/ksrk42l+A8AAAAAAAAAAAAAAAAAki8VBYAHXD9zR8l/WdUtldemfgU/gPiJNTuvP4y0AAAAAAAAAAAAAAAAAIDkS8cOgK4rJWXSFlxP1+X+u0193ZGT+1qOtAAAAAAAAAAAAAAAAACA5LOkX+B+18/sYW6PEWDlWVGY15k/yZh9b9qp3f5FSgAAAAAAAAAAAAAAAABAOiR6B8A+kzwjt1E0U6zc3U6g+A8AAAAAAAAAAAAAAAAA0iXRBYCLF37wK5N2oJm+kNemft7CQ/rlTwzs9luCCwAAAAAAAAAAAAAAAADpktgCwL2um7+mubI0Uax+t2bnDS4kDAAAAAAAAAAAAAAAAACQPoktAGyj5UMlrZ/2AHtyL22mhcGRk/tajjQAAAAAAAAAAAAAAAAAgPSxJF5Ur5tmd6xrCN+V1J4gr8QjOXODzPZ+/NRuz5MCAAAAAAAAAAAAAAAAAJBOidwBsC4XnqcKKf6LXF7VhN7Iv7WLKP4DAAAAAAAAAAAAAAAAgHRLXAFgzxtmbuCu/jRNXOzZDp3XH0UcAAAAAAAAAAAAAAAAACDdElcAWB/qEpPaVlKQPTmXMt9r646Z3NdydH0AAAAAAAAAAAAAAAAASDdL0sUccP0HW7v7PyTVEOgmeEFn9lDa/8nTNniKbg8AAAAAAAAAAAAAAAAA6ZesHQDdL1UFFv9FLq9qwhXVgmY+geI/AAAAAAAAAAAAAAAAAKgciSkA7HHDBzu7dDhNEot/rrnchxMGAAAAAAAAAAAAAAAAAKgciSkADMPwIiXskcRR8vKdul4WHD/5jI2W0t0BAAAAAAAAAAAAAAAAoHIkogBw3+tmfVuy3jRH9Ex+weOnrv9XIgEAAAAAAAAAAAAAAAAAlSVIyEVcoAre/S8WLYvWC2t23nAMwQIAAAAAAAAAAAAAAACAylP2orsDrp+5o7u9qiooAIz8Azb9XOGlCmznxwds8CbdHAAAAEiu3qMWtG8wX6OVfI36IFg7CLVmYFb75X8PPbeWyf73x1tuMvNv3g2EZssysqVf/u9cqCXy3HJ3fdKqxj+tybVaPvmcdRcTbQAA8uRu/S6es15dK3X0hvo1MoHaymvaSFKDhe0DWU0QysLgm3NzYP6pwqDe5WHoucUZq/k0yPlnn7fOfXbvORt/LDMnuAD69PHMFlv8vUPYxtcIVNNGuWAtD30NM7VaMZiEa+nr9wIuM/tqvHHZ5xZq+f8OaPaRJAWZMBc0ZBY3NNR9fMUVO3wsMeYAAIB0e+TsW9trediuoS6zRk1NZi25t3ML28qVMVmHr7/WPDQ396/uz2xxThZKUsZzDRboky9eudwtt6TBWi059KoTPibKANKs/AWAN8ya7K6fyQl43pqImbmdNX3gBuz+BwAAAJRQ71EL2rsHGyvQBh6EnQJ5R4VBRzfvJFcXmTpK6ihpLUlrSOoQ533Banz+xT+LJP9Qbh+a+SJ3+9DNF5kHH5qFCySfHeTCD5av8emc6YO6L6dlAQCV6Kjs7I41NQ2bmgebmtmm8nBTyTYyeUdJ67m0nknrqZmv9Jr/vs+/8X++eP2nkuZLWiDZQjdfaKEWynyWPJhpGc3MWG7mxHM3mUuxIJAuw4fP6BTWLO8mCzZ0tw1M4QYu6yjXembWacX44ut+Mb60a3xsyS/1mxmLPpG0WPLFblpsriUmfeyy+eY+291nWyaY7fWa07p1q1nZbPcltCQAAIjbE0PvWmPp8mATV8OGLtvQLNzYXV1NQSd372imjnKtpxX3aBlr7F5rtWsib/kay//3/3wsaYlJi01a4tJiyZbIw3kKfLa7zTGFs3OB5tQ0hHN63jDgI1oRQFKUtQBwvxv+u7158JqkgALAAnij//7F9l02+MHkvpajiwMAAADR6XPd/DWXfWZbubx7IN9EgW3sbhtL2kTSRpLWKcuFxXs/Nc+kOS7NkjRb8v+Y2btu9k5NXat3Hzq3wyJ6BgAgyY7Nzt7YasMdzH0Hd9tJ0rckbS5pzdVNqoV8f2ctmai9pa//hjqTZkqaIbc3LfA3PfS3wkzNW7efv8FMWhcovWz2vTaf6PPNM8psaTnf0mVbmHxLl28uaUNJbfIfJxp7vef5+vxuHqzxU3wu0yy5zzXpHVcww9zfCoLwrUym/YxsdrNl9AQAANASDw2+fe2cZ7YOQttS8q0k7y7ZlpJvqa99l9ro2uer4rxG1jveyJqo8WIKa+Icqz9PY4WGvlTSHH35nanbDMnfUqAZdTWt32ZXQQClVNYCwP2vn3W/pCPyvI8l4E3PNctCD3Z+cmC3f9O9AQAAgML0GLVowyDTsF3gtrVk28i1lcy30ooivyTdVikB91Mfr/hR0N51C98OFPxTQfjGkk8++9dz/DAIACix47NzNvWahj1d2t1cO7lsB0lr51sYU1ihTjMTdWEFgI283iVpsVyvuenVwO3VnIevfarP/jE5u10dPQEoXp8+ntlou39vUSPbUaFv79L2knbUigLizKrFc17EONHYeyLdBXCV67Q87yW+OH4oaabc3pJ8hpn9O2cNr+aWt3519OhtPqHnAABQnbLZbLD9wq22UpDb0Vw7SdpB8h214g+nV1qnFLQ7X8wFgE2dp9ECwCbXXCZfIGmGZG+ZbEYY5v5Ra/7K/tefyh9zAYhc2X6p2v+6mVvK7N+SMi24Nybgzd+rf/k/z3vitA1H0rUBAACA5mWzHvyl/cItg5zvbKadpf/90ykFt1WN3hckRE7SuzL/u0J7Q4H/IxfYq4+d0XEGjzIEAESh300v1dYt6Ppdd33fpT204p9uxc/WHnEB4BeTdfQFgKtTJ+lvgfuLkv5oNfrTxPM2nUNvAZp3TvatzRtyDbuZ2W4u39Vk31ETj+iVJMujALCw3E9kAWBjxwxlesvcXg7lLwfS3+rrl78yatQui+ldAABUnkdOv7dLg3Lf85zvJrPdA2lXlzo0ue5oZt3U6NqnySLAfAsAV3Mez/968y40/OY5Fkp6RdIrgekVhf7Kn7vMn5HNZkN6FoBCle2Xqv2um3Wjmfq3YJwn6C27V5dkb7Rf+PF3+CtfAAAAYPV6jZnd0ax2Dw99D5P28BXFfmum9LYqrfdSiyX9TeZ/9VAv1YS5lx4evv779E4AQEscN+K/W4TKHBC49nfTTyRfI/rZOqYCwK/9n2geM9zi3cbec+n3kj9lmfCZW87bfB49CdUum3225pNct50DhT8OpR+baXdJHQvK/Rh3ASxJAWAe9xOW5w2JSe6ud8z0JzN/NpPJPZfN7szaHwCAFJo05M4NgjCzt9z3krSXZFt8tQzwSHbnK+wxwPkX5zW302B+5ymoAHB15/lU8lfN9H+h+x8alrX548G3/YrdlQFEfD8Ysf1ven995WreldSmBfeIBL1l9+ouC370+KndnqdbAwAAACv0GrNwG3m4p6Q9tWJXoK0r5LaqqXuDNFoo6UV3/cEU/N/6a6/7t4n9rZ4eDADol53dblkm/IkHdoBc+8u15Tdn35ZNgHEXADZ/jtgeA5zv9bjM/+6up83t8aDrgucm9t+FORdVwO2s7L929jDYV9KPJf1A8vbFruzjLwDMb6Gf7+POV/8ZCj2Ht/T1/5H8OffgWSl47rLLvvUf+icAAMnzyNm3tl++rPU+gewASXtL6t5UcV5+BYCrXzsUVgDY1HnyfQxwtAWAqxwnv50GGyS9Yqb/U6jfW12r5w+49cQP6ZkAorrfjMT+139wheTDWnh/SNBbcJ/ubjc/MXCDfnRpAAAAVLNDr5zbuUGZfWS+r1z7Stqggm+tKvl+6jNJL7rp/4JQf2hdu+zFyWdstJQeDgDVoU92/ppta+oPCs1+Zu4H6stHcK62eC6+wphodwFMTAHgyj6W+XSFwSNtffn0a7Ldl9ADUSnOOef1dRpqW+3rgfUw9wMkdW0uh9JeANjyc5S1AHBl77nriUzGHg4CezbLE44AACib3wy5dzvPWQ9Z2EOuH0hq1ey6JMICwBWvKWcBYFPnybcAcDXnKeBRw1+LSSi3v1sQPu5uj36yoNMLfSf3zdFrARR6v1m0fW56Z61MrtV/JevQwvtDgt7c8VzzgiC37bQBm3xElwYAAEA16ZP1VsvXnP9jebCv5Pu6tJPKUo1HAWDMlkn+Bzd7wnLBE1PPWe8Nej8AVJZjsos6ZGqX9wzdf2bSAZLaNjfXJW0XwJQWAH5dncmfdtl9rcK2D1+f7fwpPRNpMyz7xsa5XOaw0HSYSXuYlMlnAR13AWBh56j4AsCvWyJpeuD2SFBbPz2b3fljejUAAPH6zWn37aLAD3e3n8l8y6bXSY0sGrxlxXkFFwD+7+UtK85ryb3iKucpoDgvigLAllxvI+dZJGm6mU/N1Nc+se/E/ovpzUB1K/mvVAdcP2u4SyPzvEck8E3fqx//+Gkb3kl3BgAAQDU4ZPxHa+dyDT0kP1iuHpI6VOGtVbXfS82S7Em38ImwodVT04avzR9DAUAK9ZnkmTZvztrfg8wJcu9pUpt85rp0FQB+7Tq98NVD3EWAX/th6TOXHglc96rrwid5TDCSbEj2rc0zYXi4Sz+TtOvKXb9FxbnF5I3HnZclKADM434i5gLAr7+nXu7PKfCHGxpyky+//DsL6O0AAETj/tPv39VCHWEWHi5p06J3u2vhLoAtKwBs5L/lUQDYkvvF5nYaLPp6V3df2WwBYJ7X+9Xr62X6v8Dt0VwmN/nAawbNopcD1aekv1Ltdft7bVp/Xvu+TF3yvEck8I3H6y+7L9zg+9mshXRnAAAAVKqDxy7aKJfL9TbpYJn2klRbxbdW4n7qG+olf05uD9a00iMPDuk0h4wBgGQ7esTM7iY7wcyOlbRBXrNpEY8BjrsAsPlzJH8XwEZ+vJon9zssyNw88YKN36EHIwmGZN9YN8jVHCnTLyTfvei8LDZvEvQY4IIfd170LoAe8Wf+xjHrZXrMXXfMn183beJEipIBAMjXpNMnbezK/dxcv5C0zcrzd8t2u2tkzo/wMcDJLQDM83obu68s7jHAza/rXKGk35vrniCs/S07AwLVo6S/Uu1//QcnSH5bnvfbBL6paLn2fPy0DV+gKwMAAKDSHDpy1nr1rWr7BG5Hu/QDJabKLhG3V9xPrV4osxcV+sOBhQ8+fHYXihQAICF+ceXcNVTnfTz0X8p8tfN63AWA+c3WXtDsXqEFgF87mT/tFkwMOi94hF0BUWr9+r1Uu2a3NXtYzo6T+UGSWkeWl8XmTYIKAFt+jsQ+Bri5H8EXyPw+ye8YMeLbr5AZAAA0btKQSW09533Nw+Nl+pGkoMn1QIvWSfEWAK54Tb4FgE2dp/DivOILAFdznrgLAL95jmUmTfXAfr1k/sLpfSdn68gKoHKVuABw1muSdszzfpvAN3YMt3unn7bBMXRjAAAAVIo+42a2XZ5rc7CbHy33/SVrxe1VHrifWtnf3HRPzv3+x87uPJcMA4DS+8WI2duGppNNOk7SWs1NWM2O8al+DHDyCwBXvMdbEprZZn5Npja46Ybhm3xET0ecTs++s3EmrO8n6VeSusaSlyoyL/MoACzsHBQANnK21yVNrKnJ3JnNbvcp2QIAwAq/Oe3ebXKZoL9W3IetI8/38bxNrZMaewxwy4rziip2y2MXwJbcK65yngKK86IoAGzJ9Ta30+A3jrH6c3xorvul8Ib9bzz9H2QJUHlK9gvVfjfM+om5nsnjnpPgN+1zy2nr6YM25PntAAAASL1eY+b/QNKJkg6T1D6d9wYUACY40jmZPe2hft1mafjQ5GxnfhwEgBj1u8lrP18491B3P8WkH686dFdrAeDXrtMLXz2UeRfAlU/7qaTba9yuuiG7ybv0fkQlm/Xgk/Df+7qCUyT1lJQpNC+bz4MIigA97rwsQQFgHvcTcRcAFjC+fxSYbm4I7drLLtthJhkEAKhGz2afrZn30bxDTTpF0l7fnE692fm7+ALAptZq+RYANvLfPMLrVSGPAS6sOC+/AsCmzpNvAeDqz2PSc6Hr2tZdFz2ydzbbQPYAlaFkv1AdcP2sKS71yvO+k+A3/u7s46ducDFdGAAAAGm1/7jF69bk6o4NLDxJsm+l/76AAsCURPtzSQ8FplseHtrx9zJzshHV6uDLF402adMoBxrL821BbJ8uLGisWPl6QtMnvxne+Vf0lpb5RXZu57Amd6pk/SR1bbwNiigAXOntSSsAbP4cqX8M8Cqn/eL4OZcmeaARt1yw6b/IBhRqyJCZbbXm0uNkOsPk3RvreGnfBTDuxwAX/LjzoncB9Ig/c97je73JfhuajRsxYvu/klGIyqiz/7qbBRoa/zo2LCpvVntNHt0tb0uvx+U+ZNT3j6DnrN51w36/Ryb0wc3OSS38g5FgpX7T0rlo9e3b+LGCQvpzuLrzeLP92E2PHD/2wF/TW1rmnoH3dKgNak9y84Hm2qSx7tBc8diq/c3zm58jfAxwtAWAjedD/gWAeV5vY/eVcT8G2FsSe5dcsxT4jQpb3bz/jafMJ5sQtef7X3ChmbZv0boibGoe+qovF7YGa/64ha1/wmbWZfnNxe7hY7vdPO6OQuNdU4pG3ffGmd091EF074gW2K7/1tTalUQCAAAAaXTgmPk/CuT9FC4/XKY2iSici4Sr7J/FVFVFgAVqJ+mY0HVM7ysXvqkrF0zM1Le+86FzOywiNKg6pn3d9e3mhpW4R854ChqKuZ6vnS/UQjpK835++cwtPZc5M1R4nGRtkzxh5TtbJ2B2T4uMSUdZqCNOuvj9BygERL5OHf6v9VrX2gDp89MkdSYiaR3r4hjf8zpmrbsfae5HXnj+a3+Ua9Qll+00lR6BYgVBuIEr6PP1fxcqjt05i8shz/OYxeV9kwW/Ib2mif6Us43dvE/+beB5tkRTbe0tf/M3+nzTV1D8XOIrOo8bO0u3wH2D79s08GCQS79yqYO5Nd4rChpeVn1Tqe6PCjtP/h+y8fNEuaYxeYF/XBb78sm0odwuldVf8MQpV08O5Vf2uGHw62QXIuyKP5brJ6ubMwodT7yA/9L0HNVcwhQ2FnghrwhsdjHxLkkBYJDTIFmMf9RddTfvNmxq/26fEwkAAACkRY8JM1oH9WsdY64hkrZv0a0dxWyI39Zyjc1lll/We9SC38p94pRzOv+BsAAxKNOYTrFXvI65ZM6uyvjZntNhimgjnMLbrOxFJxWjyLwJviwE7Jd9//6M7AIeDYymDDnvzQ2sVsMU6peS1iDPmJ8iG7rd9pQ05cLzXn9R7udfMnKnZwgOgEq8cSpVAVNBx1rt2/jCr1i/HvSb7hkLz5X7zz2Peo/Y1xNfNO3qzxNRu5skX3GsaD5P89eVrKLH4uPYyD10a8l+HsiOeWLANQ8HoY/Y98ZBr5BtSMI8t/J7iykcjP59jX+ectzDxV4AuNf499aW2fF05Iga3PTHxwd0e0CnET8AAAAkX48JczrV1NWc4nU+QFIXIoJEMrWR6xiZHdN71MK/m8LxdW0X3zt9UPflBAdYNWHKWWRFAUQy/HzEnL3c/ELJ926u6Wiz8udQbG3Q9GkDmY7OyX/W7+L3r8t55tJbsxt9SPvjS4PP/ef6VhucI6mfu9pYwnKoagv0UlyT0UQb7C6zpy8877VnAwXnZy/b4U9kIFDlY12CBtzqLGBCoe4ffP+2Cu08WXikpEwyFwDVXOAZfxxLsDOiyf3Q0PyQJ0+5+tHAfMQ+1w/+K9kH8jMd1xR7AWDrVjXHSVqTeSESYZALB8uM6AAAACDRDhq/cNsglxvsdfYLlzf5KEC+HEQh4us3voPLbqtduvblvUctuK4+13Dj9HPXX0DEQa4l4/Utx5dLcThq5KzvW5gZ4fKflvVCKqF5v/YZkvnje2RBbiVpSMZyx/e7+P3LWq9Tf+01FNhXtdPPfbdL0Kp+mKST5Wpb6HESmTffSJu07EpaugG1/G1me4fyP1543uvTPAgvGDHi2+xqg+pYi7Msroj1Yun6W1ILmKrb/Wfcv1WYs4vl1re4py5GWSxa/CPLy7jbXZGnjeDRyP87RGIHaZPUK3Tr9eSAqx8ztxH73jDoRbIR8c971VGoF5d4H8vrbjLrT0+NbOV192MDN36JQAAAACCpeo6dt1PPK+f/xnLhP1zWTyr8R720LtoTcT+KKHSRdEltpuY/vUctuOnQUQu3JSQAqtXRl8z+7tGXzp5mYfAnlbv4rwyzddyvrxLrSBqz/KOav/fLvrsf4ag+Q4e+tsbgC9+8KGhV/45cQ1Yu/nPWsBU0NsbRmJEe8yALg79deN6rtw0f/nInWh7F5Y3FkGeJzyGUbXy26PuE0b+S7L7T7ut2/+mTb/Rc8IbJjlQztR3N9hWLuk/GO0Z5ifpjqdY08d8n2jfPYxG1ietAl7/wxMlXP/xk/6u7k5lILivTe5MzR8a6A+B+N36wtyR+JIlGfeg1FxMGAAAAJNFBYxZ8V6YL5N77iz8Xju7+iF/RUV5tJfXLyU/sPWrhbxXkLp1yVpfXCQtQuWM6O1J85aiRs7dRGIyU/JDoy3Ma7xCF73aT7t2x0iyPNususyf6Z9+bZDU1Z9x4/kYfEL3Kls168LHePL7BbYRJ3UinKMY65rNoBvfghNaBHXLh+a+d968335w4eXLfHGEBWCOlNbaNj/nR7ujneZe9Ku+nj9KvpF+f8ut1glathkka6FK7VPXHJl8e/Q6T6Xm8dcs+e5J3RjTTwTL1ePKUq6+tbR2O2PuqIR8zXqPYfMg/t4rL/XjeF933W8WKdQdAc51M543MbU8O7PoeYQAAAECS9By3cLeeY+ZPNflfzf1g8RsT0qr5nhtI3kdh8GrvK+Y/2Pvy+TsTNJAw5Tkmu7HFr0925rpHXzr7agvtdZMfunID0Qbpy6HY2qzAj+Kmvp5r+NfJF783pM8kz9AnKtOQ7Fv7LPYZr5jbrSZ1S1sOVe1Yl+I7unx3vAmldcx1/XZbbf3nCy547XtkLaoR67ryD7ge4bGS0Hbl2+ky/Z7NPltz3+DfnBq0ajVD0jA1W/yX1N3uLN7+Zkk+YPzHKvPOiK0kP6N+uc14YsBVA57NZmvIXHCjk5xriq0AcN9r/ttN0iHVeJMZw0J5eSi7jIQEAABAUvQaN2e7nmPmT1UY/llSz2JX8HyBjFR9U2B2qILgb71GL5zSe9SCXQgJKl16H5fKj0r56neT1x41Yu7A2pqaGZINklSb4NG4EmaUBOZN3EH+xjHbuzRu3X+9/3y/7HvbkIGV47Tsv7sNzs64X66nJO2Y1vmp+C5uaczLVK8piriu7wah/pQ977WJw4f/az2yGBW3FmdZXBHrxdL1t6QWMFW2+wZN/uncjxe8IvdrJa23ujhSLFrseSzCMBX/xyNfHSJtg7RJUkdzXVc/b+1XnxwwYT8yGNF2r8ov1ItLbAWAQSZzopL8JWGqVvc28clTN5hJIAAAAFBuPcct3KDnmPm3eph5TSsK/7DqAp770eqItJmrl2R/6T1q4W97j1qwNX0fQJodc9mcHp8tmPuamU+QtG6lTy7pLWytSLub6ZX+l7w7lN0A0y2bfbZmcHbG4BoP/iX3I/LOGwpUKmhsTGWhYuDSSa2Cun9kz3/9QHoDWp4HFkOepbvYF3GOzzEU5xn9q5zuOm3SZveePvlBD+xpKdg+9r5iUfbJit/tLvK+Hf994krFohZ7Xm9nYfjEkydfdd9jAyd0IqNRflam9yZjjoylAHCvrNfI/CQ6VySWem395YQBAAAA5bTPFR+u1XPs/JHy8C1Jv5RUuh9n+Q4RyWaSDpPsH71GL7rxsMsWrE9IgPSP6dVUvHVMdtaGR1029yF3PebStknpEIUXofCDeVryZqXXt5Hblev96/0/nJR9ZyuimT6nX/DW9z7WBi/JfbykDkSkJHnDfBbP+N5V7o9mz339xqFDX1uDGAGskdIS20QXMBn9amUrHvc7eWimJviHzA6tqP5opWrfKHdGLMW6yiI8T5l2RmzkUkw6srY+fOPJ/uOPYvxGvvngJc7JeN5nkZ+vELEUALbqNLuHXBvSaSPp9tc/0X/TOUQCAAAA5bBX1mt6XTl/UJuahrflGi5XO6KCSr4BK+KWv8bc+zfU2IzeVywc0WPCIn74BgkT4zEpgCheNuvBUSPmDgxrMm/I/RDFHFPaoPw5FFubRfhRXNojsOCV/he/O1DOfnBp0C87u93gi2aMtYz+KNdOSZwzijlm1Y51Kc6+fHe88dX/O3Pz/mu21isXXPDa98h0VDrWdeUfcNPzaNdkFTCl1a8HPfTdOR8t+ovLrjR99V1rZe12Z/GOFZbkA1bDzoir1cnM7n36lPFTnjl53AaM70jmAFDZjxeO6xHAJ1T7TWZEA+enuaBmNAkMAACAcug1bsGP26+54GU3XS2pIxEBWmQNmc6vXepvH3zFgv7ZrAeEBNUoOT8iUj+0OkdcMW+nN2vmvqAVj/vtEG8boKVdNJk/vpelcKudZBP6j3j/6VMvfXcTOklyDc7O2KudPn1d8jPkSsXjm73kacOupMldI7To3N2DUM9fdN7rF2ezz9aQ9Uh13rAsroj1YjpPSuf70l1D71rj3sEPjrUg/LNMO+cXrrQVi0Y5vpVptzvL/wVeNXnSxG5nrl6h7I0nTxl/oos/6kKh3auyC/XiEvkPEfvdMLezmfekV0bSga598pSu84kDAAAASqn3qAXdeo6d92sP/VmXdijVeSk8qLr70UrvN53c7MaX2y36S88rF32fDglyDUlwfPa9NkddOmdUkAtfkmk35rp484C8KTrgP2nI2ev9Ln7vOIKRLGef/e/2p1/01g2S/06uLSLNGyPPyj2gRjfWVcwNSY3kF6ph3T9ksy93o69g9XlgEeVNFd7Uo4B+E0NxXhF/lMI9ZsvcO+TBA2oa1viH5GdITf3hRAly35J6sKTudhfjY7Qtvgb2SM5RcLHoWua6+elTrn7siZOv7MwIjnLd21TbNUVeABh4w88l1dKpih76l3jr8EriAAAAgFL57k1e23PM/NPDjP9LbkeLb5uLWc8TAnzZFb4bhP7Hg0ctvOvA0fO7EhCAkbxcjrhs7vbLa9u+INPZkgrcxSjZO1nl+6Mos3Uq8qyDSXf0v+T9ycdn31ubiJXfwOyM3evaBX8z6eS8K15Qlvmpssa68s1D7vq+6jOvZs9/ZS96IcihuI+JQmNb3uI9o6usxqQhk9b99eDf3uTu013atLTtE29xnhfc3tW8w2SyHqMdWV+xRhdQBwSq+fuTA8btx5iOpjqOF92Ho3qfpfreKvICwNB0PB01gonZddUTJ270IZEAAABAKRw0dt4eXT+Z/6qkq/TFowATei8IJKivtfiW31z6RY0H/+41atHgvbLO48NQjQkT+ZjObmwt02eSZ44aOfecQP43yb9dzmtJd5tV5w/mnudHia3N3H/W2vSXftn3v8PYWx7Z7ButBmVnjAzkz8vVnRxifkrF2GXRtoFLndyDJ7LnvXoyUQZ5hnTNZxZh2yWrgCnJ7hny4HH1nnlLUr+WfvbK2u3O4h0rIt+5MspHI1Pk+DWdLbTHnjp5fHZSn0kZxnyUPy+s5NfkJbqmSAsA973xv7uYR/yIsOp8bNXiXG3dOJIWAAAAcdvvyrlr9Bw7/2pz+z+TfYuIALFay+TjO7T98K8HX7nwe4QDla6wAgh2JYnSL0bM3axmxtzn5H65pFbxtBmi7KLFt0Ecf62emLzsbuZ/6n/xuwPpNKU1MDvjWx+p9kVzHy5X6n+08zz7phfdxVM6t1m52iDx800rl92QPe+1mycMnNGaEQKpGuuMdV1q56cWj8lJLTqqrnuyu4Y+2PnXgx982Fx3SLZe1HFMXrFbKdYFZdrtzvJ/QbIfo122YtGMSRetu96sp588bVQ3Rny0rKtW76N8CxVpAaB5cAI9MZLh+uan+2+xmDgAAAAgTgddOW+fVhb8Xa5BimF38IJWwjRLNd2PVnG/8W97qD/1Hr3w2j5XfLgWHRXkGuJw1Mg5xzUEek3SDyp6nrBk5wF5E7nWJptwcva9X/fLzm5HOOJ3+oVvnhTIX5Jr55LljZFn5R5QoxvrKvqG5MQPO3z+XDb7Mj9ic39dUH/3mPMSlX5PFkNxXuS7qVXnHH7vkId7ZRr0uqSDE32PY0k9WDXsjLjSeSy+OHokh450Z8S9Mg21rz518lX7M6IjRYNcaq4psh/5ekyY0dpcR9GRilZvObuaMAAAACAuh4z/aO2eY+bfamZPStqMiMSFr+fRzP2469TlFv6r9+hFfQgHgKj0GTez7ZGXzb3V3e5wqX30Z0j2Tlb5/ijKbJ2+FZOvaN6jzZb/8cQR77OWjcmwYe+sNfiiNx+Q2US52pI3FZA3FSMZ89AXMd1d9ZnnR5z/Snd6JZwcQkLaq7zFe1a1XWXSgElr/nrwgze7h1MkdSmufcq0210B11X4zpU8IjeaXE5QX7GWncelTqZw2tP9x53OGI8o/tgh+vdZLOcrhcgKAL22zYGS1qGDFu2B6YM2nEUYAAAAEIeeY+cf2JCrf0PSL5W2b0f4PhmJ7GtF3/KvL/dJvUYtmnbYqEUbEnxUeMJEPqZ7wl5fbkePmN8983ntC1/M84mU7jaozh/MPc+P4qVrjW/XhP7SgOy7+zEWR2tI9s3dlrUNX3FZX3KoGse6ypDvjjdFtMFmOQ+ez5772neIOqo2z5C6ezeP8FjF95H0f+F39xkP7lRX2+qvLp0YRRwra7c7i3esiHznykh3u6uq+8Y8rzcj01VPnTLuhmez2RrGZ5Q+L6zk1+QluKboCgDdjkpku6VsoRxIY0lUAAAARK33qAXte46dN1GuRyXxiCIgYUx+YIP8771HLTyOaKCSFFYAwa4khThy5JyfhUH4kkw7lb7NEGUXLb4N4vhr9cTm0Lqh2WOnXPz+qXSiaJyefWtQqOB5eWXvFO559ncvOm1SOrdZudogdfNNZ5k9e/G5r+7NKILEj3XGui7Ji8HCd1OLa/Cu5gKmlvn14IdOsVzwosy3abwNrbR9JcI2SdbjoMu0210Bj4BP9mO0k1Msaq6Tc3PXeuzZwePXZh6o/DmusLdV56N8CxVJAWDvWxe0d6knHbdoTz926oavEgYAAABEqde4BT8OM/6a3E5SCr5t4wvnqrkfpd+sam1Jd/QavXDKgaPnd6XzglxDS+yV9ZqjLpt7ldwmS+qwaptVwWO4LNl5QN7E3nAZl1978sXvXdVnkmeIa2GGDn1tjdMvmvFruV0tV23Z88bIs3LnZXRjXbVs5e4d3Gx69vxXD6MfVfPUZRHlTTR5iUq/J4uhOC/y3dQqdw6fNGzSWvcMfnCyS9fLvE3kbVKK6dOSerCk7owYY9+3+OKY/J0Rfd9wmb/wTL/RWzDCI8GDXCquKZICwOXLlh9qUls6UJFNHYZjiAIAAACi0mfczLYHjZk3zkP/nVTZO3gkF1/Po4B7Q1evjAdv9Bq94CiiAaApR1/+n3W61s573KXTSzxSpeSYzNaVumJq5PWnd/zX+w8NyL6xJhHNz5Ds21vWr9nuBUlHkzdVlzdpXTEn9Zit5TYpe+5rJ9JDyUtyCNXQFwva7a4Cusq9pz+yY93y2pck+1l87VOm3e4KuK7Cd66suMfaJvtYCQi3N/7vt/Gg5sWn+o35ASN4NSr+jx080fleOtE8AtiMHyWKH+z+/vhpGz1JJAAAABCF3lfO23FprvXfTDYksnV/su4FgQT1tVi+YljX3O7tPWrBA4eM/2htGgQVOTiXaUyvlAKII0Yu2CoMW70o6adpu3Yv2evT8uO2VU6bWXnzzKVeobV77uTs250Zm1tm4IVvHRTKX3LXDunt75buvKmw+SnNS5WI2iwj08Tsua8fT+BRDRi7Eny/VbXHitfdgx85Jgz8BUlbxvnZ0/5o15KOFV97TGjyd7tL5hgb2T20FfXZO1oQPPF0/3EHMO5DCc8xL/Ca4s7pon8I7DFhTifJ90nV2iaZ/XKszFgnAwAAoGg9x847NgzsBZm2JRpA6m8W+4Z1udd6XfEhfwGLqrHiyxHL8/UtyqeKidFRl87/gXnuecm2iq8N4ns9ou+inufBvNQXWNpR5Luy4IV+I2bwCKlmDLrwrdMtsEfctVb1zjct7+9eziRP6dhUxfOTyfyW7LmvHclIg0TmjbGuS/KASwFTMj2bfbbm7iEPXyHzeyS1yz8sSX20a3IWE4neGdGS0Peroli0ncwfeerksYczJ1TmHJesexEr03ubEpTx3ZLCmrCvpBo6bFFmr9Vx8X2EAQAAAMU46PKP1+k5dv6DcrtTrnZp/ix84Zyge1n6TRJsbBY+e/Cohef1meQZOjTSlmuM6dE6YuS8/qGFv5PUqeVtUPmP4Ur6ZyBvStlwJkmbB2Hw+1MvmbEdo8aqBg6c0XrgRTPulNlVciV2beFWAXljqc0hxrriZWS6K3v+qz0Zdapt6rIY8sCqJW/Qwq4Q647XFuc4HWUBU+nce+bUjrOWLH5G0rCWfEaPN1wln/fL80d31fF4YF/tIZJaLBplX2lSK5Puf+qUcUcz6KP4nLAK+zxNCyK4tr50uOK4/JrJfberIxIAAAAoVO/R8/a0VstfletQopG8FT8QgRqXLl3+3qKneo5buAHhAKpPNuvBESPnjJX7jZJqy39FlfUYT4pW0rdiav71tkHOM384OfvubkT3K6ef+24XradnTTqWvCHPStdmVfs46Vq5Jl987ms/pfeRZ8lTPY9kpy/G235eyLFS1FXuOfPhb+XC8M9y/aj07VOC3e4smlz3gj+GxdyvC/uQpdntrgzHSkDuNf/UB5OkGnO/+6mTx57EaF4tkvjHDulb1xRVALjfDXM7y31POmNRPq218CbCAAAAgMLumN16Xjl/eBjYc3LbuMruBYEkJWOpTrR3UO+v9h61aF9iDsb0FGRsRPqMm9n2X7VzJ8vtjGodNQt/fdUWnZSvzSxRebauTE+ekn1vdwZcafD5b23rteGL5vp+y9uYHKqksZE1RznawNq4+SOXDH+F39LA3TASMs9Vw7GicfeQRw7wUH+SfPNV+3z8n73CHu0a71hhX10vj9Eu9jwWYeiKOlZg0k3PnDJ2MHMAWtLpvMQ55gXmfZw5XVQBoIX1B0slfERABf7QZ657pw3Y5COSEgAAAPnqMWFRh4PGLXxIppGSaogIUC33oNZR8um9Ry0cLndKYlGRCZPvDyqe/sRu1C+yczsHS2ufleywUp6XIpT0pZLneTBPQK6XyFpu/kT/S97/fjV3rdOzb/0orLE/Sr4pidbSPLCi88YrI4cSddkpnZ/WCAObOuL817Ym65CYvDHWdUkecClgKr+7Bj98qqRHJVsrurAk9dGuyVlMJGZnxIhOm+zHaCe3WPQbB3aN/93JYwcxP1TOHJese5HKerxwcY8AtuAwOmlxwiCYSBQAAACQr96jFmwd1DW8YO4HV+pn5AvnBN3L0m+SKCNpZO/Ri6YcMv6jtengSHquMaYXps/l87esq9Xzkr5XfBtUzmO40voZyJtSNtwqx+wQePjUKZe89+NqHEtOv/Ctw93tCbnWSd18YxWQN1YROcRYV7x1cu7Ts9mXOrLCqYapy8gbxDd2r7LbcrwTTbILmOL4vG53n/FI1syuVcEbIVl0n8eS0R/L80d3VhV57as9RFKLRa3kY4av+Oeq35089pfMHcyblTOWxHNNBRcA7nPTO2tJ/hM6WlH+9uSAbn8jDAAAAMhHz7Hzjwgz/pLJvkU00oKv5xHfkBDW5f7c64pF2xEKoLIceem8PYIw/LOk7sm9ysp6jCc/vqdvxeT5vXYNd59yyiVvf7eaYnr6hW+f6YFNltSGvEF524zHSUvaTPU1k27q91ItPZE8I4eQzL5oBTWjF9IXEthVbup3U+3dQx65010XJad9SrDbnUWT616i9q6s3e7KcKzE5J7l89/MpZue6T+uFyN7Jc9DlsD7xnStawouAAzCVj0ltaLLFtHZTez+BwAAgBbbK+s1Pa+cN1au+yWtWdXB4Ptk4Ou2MvMXD75y4aGEAozpLZfkIpSjLpu3r5s/KWldOkjhbRbvrihGG6QzzzrIg8cHjHh/28pvLLfTsjNGhuZjmt8CtLk2I4fIM9YcxbXBN06895xONdfSGABjfXkHsWrepW31Jg2YtGa7Nbo8KtkvkhTH8he7laLvs9td8s5jEYbOovo8NTJ/4Jn+Y37ELIKocz+e91nJc7rwRwCHweF0oqJ8mmloez9hAAAAQEv0HrWg/ZprLnhIZmcQDaCE8vq+q6w/v67poX7be9SCLI2GlCRMCzPK0pGBETpi5NyeoTRF0hppu3aKViLKIYuyDaw8bZDs34E7eph76rQR729WsV3J3QZd/M54k4YzD0V/TI85L6sqvAmdb0owP/W7+PzXTmfeA+s6NDXgJq+AyUrQp8oz2UwaNmmtZa3bPuGy/fJeD1j0bVK5C4CYj2XJDIeXKI6VVizaiLYym/q7U8ZU1a7u3LNV4zUVpqACwD7jZrY18/2JfVEf5L7pg9ZbQoIDAACgOT1Gz9siDPzPknpW22fnC2TQb/K9Y7aLeo1aeFufrLNjPxKXazy+o3lHXDrvGLk9JKlNHNdZFT/kGnmTziCX+pi2QS4Mnzjxsne7VNrYnM2+0WrgxW/f5/KqLS5KZJ5ZdeUlhUMt+dA+Nnv+awewokz33VeUOVSWwlY2Y03vmspWbtd4G9NL9NnLMR/ce+bUjsvq2vxO8j3i+aO2OLtKNReLRtk+CStytIReVx7niLkNO7jbY0+fNHYr5pFqmzIrrXgw+s9TUAHgkjb2E0nt6GWFC0PdSRQAAADQnINGz/9hJrAXZdqWaKRdAn7W4sv9qmDSCcvbLnry0JFL1iMaQHocMXJefzfdJakmvpnFYpgnKuvRoBStVP4K62uv717boCn9srMr5nvugRNmtP5QrX4r6Ygkr//ybjPWsBU01vE46a/JmPuvs+e8sik9krwhh5C4bxUi6xrJ7l93D/7t+g2hPyfpO9HncMs+e6l2Rmy22C2ipkp2sWiUu91FW5xX8qJHS0peF5wnnS3j054+dSTffVbgGirWua3C10oFFQC66UC6aVH9452nTuv2JwIBAACApvQaO/94C/xpSR2JRqrvu4By+HEuU/dCz9HzuxMKMKY3LinFW0eMnNffXTeowO/qqknhP77zg3n62qwkdssEy+/OZj31uXd89r02+tAeclnPlftmNG1gMbQZOZTSvKmCNUccj8NbbV6ua4FNmjBwRmsaBizuGevjim2iC5jK2FXuHvzb9d1qnpO0XXL6e3mL3WI/hxW21iz0upK3M2IpxowSFIsWFDoreu20Gltarva3k/pkeQpKha4hvMS5H8/74riPblxBX2yY6yA6XhGDptvdMuOeHAAAAI0uGHuOnT/SXbdLxg0sUG55fd+VqFu97oEHzx9y+YLv0ohIaMK0MKMsnRnYQn1Hzj/OXderQn4ppWglohyy0uVlbG2Wlh7tftg8vXdlmnvNkHEz27ZX+IikHuRQaYp9q3asS1Bee8JeX0RMd/2ww2djyF2wrsPqBlwKmOJx7+mPdHGr/Z1kWxUTx8J3U7OU5XxSH0Vr5QmtFRrbyikWTc54bz9eb901b2TO4KaiMq8pf3kXAO53w3+3l7QJsS987gyt4W6SGgAAAKvz3Zu8tueYBXfINZxofLGAJgSg3xSjcxjYswdfuXAfQoEk5FqCviROxFUccdncI+V+qxr9js5os/Q2b4W3mVXWMU1nnHzxe/3T2D/6ZWe3a1iyfIrk+zErJTxvrIJzqFrnm+iifNol577al8ytxDWHJSpvvArWTVW1cF1lN7V4GzPZBUwtd9fQBzvXB8EzLm1TivnUY+8qSS0WtWTErcXnSViRo6V1kLYStuH//njuhKdPHnM280m1TJmVVjwY7efJuwDQ3Nj9rzh/fHrAJu8SBgAAAKysz3Xz1+y2ZMEUmY4lGpUqAT9r8eV+NWrvoab1umIRPyoCSZr3L513qMvulpQpZqYo9JEo0c4TlfV43YrZVYoVVl6vN/mEky95e880fe6BE2a0bq2lD0naJ23rv7zbjDVs6sa6apkzImsP0y3Z4a9uRc8kb8ghJEOUu1Inp3/dMuTxdZWrfVotfOyvl+izJ+bRrhE1lcfVHyM5T4U9RruAz+6RXH7pCya96SNc/vQpYw5h7K6cNVSsc1sFr5WCAj7XgXTPorrFPUQBAAAAK+sxYU6npUv1OzcdQDQq7r4LSIJWZn7fwVcsPJVQgDH9m8rxJWSfy+cfYKb7JdXQ8PG3Wby7orAYibfNSjxXevCb07L/7ZaGmPa76aVafWgPNL7zn8XQBhZDm5FDKc8bFiZ5tUGTedneAp88bsif2hJ7gLG+dONTAgqYSrQUuGvoE2vUqn6aSzvE8dnjPlZy53kr6OVeojjyGO1iz2MRhs6KXjs1ITDpnmcHjP42M0tlrcO9xLkfz/viuI9uJBHyefFB1/9nHbn2oMMVrMFymQcJAwAAAL6xzh4/b/NMQ/BHSbsSDSCh8vq+K7FfywZuurbX6IXn0qBIUMK0MKMs/Rn4hSMvXbCLhT5ZUqtK7QEUrUSUQ1a6vIytzdJX29U1Zw2/HThhRuskX2SfSZ5pNWftuyUdTL6UquNZ6fKmGsNb6vnGktpmtuMnbdteTg6DdR2+PlhVZwFTEOk5b+r3Uq1yy38jaffY1gMWfZuUY9IuVbForMdKZmgT/hhtiymXSzphrRGGwW+eHTx+beYPbioq55ryk9fsmVNmHyXlL5PTGftnpw9afwHJDAAAgC/1GjdnOwv1R7m6y/iatPH7dwCR3U67Lus9akGWSKBcY3RyxvTSf7nUZ8TczUILH5W0Jm1Wcc1bhW1WsTsq7t7wUc345HYGt87/fOcWSUcwA6Uwb6wqcoj7vqKa0AZefO6rexMIlHSsYzPW9C5cLWXX28JjRTkfZLPZoM2ac+5w2QHlmnc89tBXc7FolOdJWJGjpXWQtnKea4twWXiby5nZKnrKpHiwMXkVAIYe/pTbsGJmD59EEAAAAPCl3mPn7+wePCepK9FAFd6Pxn8LRks31QkuOviKhZcRB6B0Dh05az0LbLqkLvmNX3H8AGMxzBPV/f06u+MkuQ0K+WHZTxmQffdnSfycp138zmiTjq/KvOFnvLLfPHjMeclNjiQpkOn2bPbFDvS9yri/9jz7pldXf0fkc2oMBUwWxRq2fH12s0++e4Wko8t3vZao3PcSffTq2e3OYsrleCctj+Tyo/yuIso88UOfPXnsYGYGpGcNFd015VUAaGb70CEKVt8ge4gwAAAAQJIOHLdgl9D9KUkdiUYF3rM1iZ/8kZCeaDq396hFY4gEEL8+42a2rfXaRyRtTTTKM8nn+6Mos3X5V0DlbgM33XzaiPc3S1IMT714xqmShhaUQxZVmxl5U0F5Q5tFPw95nsds5PWbWH2bq4g/d/RpXXehFH2qwgqYYup+d57x6C/ldlYxJ/aKzaEy7nZnCb2uss8PSS0WtQg/lhW9dmrhtY/63cmj92SGSfN8Z0XnVvTvsyLOV5r76BYXAB5ww3ubStqCblnwyPbMM6dtuIg4AAAA4MAx838UePg7mdYjGkCabuui+aogWfzMXlcsGEfjoswJ08K3WWwZGGvGupsta3WnJL58Tkublaq/l/yYZWqD9NYTrJ0Lw/v63fRSbRIuZuDF7xxjbtdUTt6kMYesdHmD+Mc6S3ybnZA9/7XetBhYp3FfVcqYJquAqTh3Dnl0H5du/N91WbRtEu/nqYbd7izefmBRt09SCxPLe6wEj/e1UnDf06eO5PeXFMxxyTpuuv8gouU7AIY1P62a/hDPpf6GBAYAAECvcfP2C8ynS2q/+oUjX5M2hsgAMd2vmg3pNXrh5UQCSR7T45sD4v9yqe/l84a7q0+1tUEi5u1K2MjGomyD9BZZldH3MnPWzZb7Ik69+N193f02sT1Tiuebxrp4SnPIqqzNyjUFuE8cOfzlTmQySpI3zDAVsV4s3eCd7F3a7hr86LZumiypNur8KfSjeFSf3Zr+D6UqdktWUWqZdruz/F/gBTdFHI+Tr5Sb8UYLZjeyXKu7Xc4MV5HzXmU/yrdQLS4A9EA/rZ7bqsiFgeqmEQYAAIDqdtD4efu46xFJ7YgGuB8tDe5cW9gdXOf0HrVwOJEAuRatvpfN29/dLik+pnH8AGMxzBNGHpA3CW2DInZRMZ0zIPvOD8r1mQaMeGtb83CSpFbkjfj5LgE3Dx5zXnKT8w1d6jIBu3VXwP21x1K4wYBYVZ0or34TQ3FeJLuplabP3nr2I+3DQL+RtHZy5hRLV+5HdAovURx5jHZhn90jufzSP0Y7z/j0+N3JY05ljimnIIHXVLnFgy2LtrvJtTeds2AvPnbqZnMJAwAAQPXqNWb+DyzUw5LaEA3wkz8SamTvKxadQRiAaBwxcsFWLt0vKcPIX4zovpjN90dR2qz8K6CEtEHgZrcMGTezbalP3C/7ZscgF0xVUT9gW1HplO9uNeRN+vKGNot+HvI8j9nU683184vPfe2ntAN39Glbd6EUfarCCpgsivO6Zeozt0n6VpQn9grLoViLRSN5ebJ3mIx3fkhWsWhkfaWZHbA93s8y6umTxm7FTJPG+c6Kzq3o32dFnC/+++gWFQAeeO2s7SV1pTsWvNiYShQAAACqV+/x8/b0FY/9XYNoxITvqJHIvpbCn4XMx/QavfB4GhplHZwj+iGgnAUQx2QXdQg994iK3nWiuqS7aKUydrKKrQ3Sv1bbetmSupGlPOGQcTPbtlJmqqQtKjdvKiOHKLhL8XxjKWkz8+smDJzRmpZDmtZpiH4+89S0dfn+2OauM6cPl+lnqz+PJeoR9oXGsbKKRS3efm1Rt081PEbbEtD3I+8I7SwT3japz6QM80m13AcWe9z0foHRogLAhoz2qrr+EKFMpmYKiQsAAFCdDrxy7vfCUI9JWrPla1y+VgVQvrtsc93Sa/SiwwkF4pacgonov1yqa5W7XbJtqr0NErGiqYQ/ErAo2yAtRVYJbDizQSV7FLC71S9Zfruk3ZktkjbWWQxdPKU5ZGlps4qw9UftPzubbEbsecMfV1bEerF0g3eyjnXHGdN/6u6XlKaAyQr6Tx7VZ7em/0Opit2SVZRapt3uLP8XlOox2uVfH1mSzrVnx47/4aknFTfvVe6jfAvVogJAc/9B1d5WFe/t6Sev/0/CAAAAUH0OHD//20Fgj0nqQDSiwR1IRd2P0m+SK2Pu9/a6fOFPCAXItfz97PJ5AyQdVo5B26M+Jj8Cx54H5E35Fz55tEHgslsGToh/F66BF789XNIR5E0jr2dsKnsORTfW0Zh5hP+87PBXeXxdqu+v4yjcIIeqrBPl0W9iKM6LfDe16Nw28LFOUni3pEzS2iS1+WrpimP5d0aMcX1s8TVwWotFCzmeu0Y81W/cDsw1qR9QuKYmBC07j/2ATllwGz1KEAAAAKpPrzELtwlCf0rSukQDq8dP/ki0Vgo0+dBRC7clFEDL9bli7g7mNkbSar+3q47isGTvZJXvj6LM1ulbMcX8GLGtcx9lhsZ5itMufruHy0bElkMWVRsYeUPeMA9FeMwWtEFrCzSB3k2epTOHEF8fSUkBU0uvt6B1iltQ63dJWj/Ofs9ud4Vdlxf8MdI2FqV8d00rQV+xlvRJizMurYMgd/tL/W6qZcZJ03xX+B8hxfc+S+yar9kCwH2u/8/mkrrRDQscx3Lh40QBAACguvQct3ADt9zjkjoSjVIuvgkBktjXPM0fc92c9NiBo+d3pdFR8sE5ojG9lD/M9srObqfQ7pfUlnZPR5ulYzFildNmlvaZ8Yvrd503IPv2lnEce0D27S3d7ddq6R/uV0TeVGcOsVto+rpdQtps/+z5r/2MRgOQ/Hm4dH9sc/sZ086UdECLzxP7I+yrYbe7aD+jx96tk7rbnUXQ39Jz31jeNfr/zvfdJbZkqMC8lsBrimKMavaLhIxnfkC7FTzoLm1fb38gsQAAAKrHQZd/vI4897ikTYgGgAqwaY2CR/tk569JKBCHwn5MT2aBSOtWmask+1aUx6ycNkOUXbT4Nojjr9Wr6i8x2krBdVEfdED2jTUD2UOS1iFvkj7WWTR5YxWQQ5aWNquc+ck8vCKbfaMVWYrY8sYqL28qaTFY+G5q+b2wVAVMxR7r1jOm7mSyy5S06807j6y0fUXl6CulmOfLtDNiAY+AT1bcio9jaYpFI7pu0/nPnDqG324q4abC4uxjVqb3Fqf5vyQM/AeVeZtUgm5q9ofJZ2y0lEgAAABUhz7jZra1VsunSNq++MUk62zuQJJ9f02/qaqk++7ytjapzyTPEAyQa6vXd+S8Q0x2UhIG7fwLIKJ/DFe1z3UUSSa54SyqNtvvlOy7vaO9sjY3eRT3EdUy3xh5Vu4cim6sM9osvzbYwhoaTiEOaU07iyhvoslLVObYHeujXYv4o5SoTcpOahVYcIekVlHEsVS73aXqHseSerDyHqssxXsW32dPa7FoEY91bWc5v5r5phLuTSrxmopT0+wrQv2QR2kVOHi4P0EUAAAAqsNeWa9Z6vPvl/QDooEW+lTyeZLmS7bQzRaYhwvc9Km5fSrTpxb6YkmfmAUNX91n5JbmgmCZma2dCVfcrYWeW8tkgSS5qYOZZdzVTq513HzdwG0dN60j93Vlto6kdSSt26J7QkCSZD2WvbvwSklnEAvgm/pkF6/rWn7D6lNHq3wr7crvK8Z8X5+QMUPRf70f3TGrow0qS6La7IuuaNKYPtk3Hp+c3a6u2EMOuPjt/nIdXbIciuzwjR+IPCNvmIfyP2aL28B1QTb7yp3Z7M4f09PJs/TkEFoS48L6SP7tVaq+uPrzNHO9Lfw4ny1Z83xJ35Y8os/T/InLG7fo8/Sr80SZ86seq8nP0+Sp87uu8o+x8cYx9mM18bLI+kozb19xnqZeFFlcDn725NE9977x7EeZj9Kwhvqq3QvN8+jf13RfLNd41OSPPT0mzOkUWsPWdL/CZDIZCgABAACqRPsO869zV28iUWbJ+o66QdJ7kv1THr4t2X/c7P1MJvd+XU3tf6YPWm9JOS+uzyTPfPreh+vXWsMmbsEmCm0jBeHGcttY8k1ltqlcPPY1kr5WGT+nmtmQ3qMWvjZlWMc76QAoyeAc0Zge9w+zYau6qwKpK+0cnTzaYJ5cb3tgc8x9tsvmyX2OzJYE7ovN7aN6yy1RTauclks1reoXN1gulKQ2y9uss+IQyxRmgox7poN72EEZ6+DyDhbaWhb42u7W2d27mamr5N0kW19Sm9IuRpL/I3yL2+yLj1IhhUbdO6rNaZLGFXOQAdn3vm0eXpXgPCvxaibROfSxpHfNNctNcyTNNfkCKZgfBp6TfIlLdcrZZzUKl1mmdmlQt/yzMPS6ZUFNmzatatp+daPQ0C7MZdqa59aywNaSq73JO7iCtWXe2VwbyNRZ7l0l6yqpHUWS5e92yckbX0/1NlzSMBoPQHLn4ZYdq5Cx8o4zH/2uXMPzudJvnCfG5XXzBUzRxLH8xaKrHGupXO/K/AOT5rk0z2VzAoWLQmlJ4PZJzuyjQFpiGeVWHDxcumx5sEwy1Vpd60zrVu3+d3TPtbYw065BvraF3t4Cb++htw9WrJs6u6zTivszdf7in05Nf+wV15u8YtHi+so3z5O24u1SX+8qf3hx9Z+GjHtmj/Fn8ERP5rWKuaYmCwDDmtxu4o9RCjVr+snr/5OEAgAAqHwHjZt3prv6EYmqNl/S3yS9bK7Xchb+q91nXd6anLW6pF7w5L6WkzTri3/+uMoL3O2gK+ZvlgmC7SXbLpTvaGbbSb6NpFqavGrd1GvUojenDlvvRUKBqBT2Y3oyCkT6XLbgIJf/IspjVm6bFXW69116XbK/Bwpfz5lm1Ne3entytvOnRXyMjwp94/HZ97oqaN3dzbc09y3d1F2yb0m+teLcXfdr3an4Nojjr9Wrb7cgk10wcOSMu685t/uCQt4/MDujQ07hJK2mqJQd9Mo6xv3XpDfc9He5/UOuf7dqCN+9/PJtF5Xrms499+9d6jI1m2cUbuEebBHIt/BA28q1naS2ZU6ExKR+NeWNSYMuPe/l68+/7Dv/IWsRed60aBcolGvArbQCpnxls8/WhEuW3mwFr7tLVOSYdx5Ff12x9BXXTJnekPnfFfo/FdjbDTl796hrj5pdzux4bOCE1p97+80yCjbzwDc3980l21zStyRtISmT/7iYR5s0+9I8d0Ys4/qo0P5Y6E5p5VuY2ubLluaGS7qQ+SU5c1xhb4urjxVz3PLcJDU5MZr7rm7xDRsVvmB+jigAAABUvl5j5h3irtHx3PP4FzcvSNgdSINkf5OHzyvQ84HV/O2RM9ebWXn33ObTpHe14p8pX/7rfjd57QdLPto6UMP35MEPJN9TUnf6TdVobfIHe45buOujZ3T8gHCgmnOtzxUfruVhw01lGKAV9aOpXCaL4DFcEfnc5S9K9qfA7YVluYYXJ2c3+jBJbX9HdrO5kuZK+r+v//vjs++1ydVkts+47Syzb8v1Pcm/rRb82MQcVcrOF80uKl+8fu2GuuBcSUMKuZJQwQ2WknVUIucbW3HLVOT8tFTSizJ7wc3/nKur//PVI3eYl7TPOnLFNc2T9MI35qI+ntls6ze3DILcju62o8t2Mfn3Ja1VihyKruAuyt2NqkabBgsulfQLQpG2qSuOR1oW/2g8VMj6Z5XdlmModivij1Ki+Owbf7JsoEk7xxHH0hQwRXis+O/TFsrsz+7+58DtzzWZpX859KoTPk5i1hx4zaDlkv79xT/fcPvxt7fpsIZ/KxME2yv07RXoO3LtKqlD9H0lxu9X/neZKSkWLUHcInis69m/7z/67h/fdPYM5h7m3ErQ9A6A0q4sEgvsJu6/JwoAAACVrdf4Bd/xMLxHUkA0Kloo6W/mesLMf79U/sKTZ3X9rFqDMbG/1Uv6xxf/3CpJvS+b10U1mT1d/kOZ9pD0XeXxl7VInfWDBj20V/a9Hz2X3WwZ4UDVTg65+tFmtkGzL1zNd4nVsUNRi79EdV8xzz4VKHh64Vqf/HH6oO7L09gn7lgxJr70xT+SpF+OWtA+rFu2p8l+4PIfSdpd7KRbkETlzde6t8lOHnDp2+OuP3/LvP4gZMDF7xwj19ER5FChFx777xwJHetCyf9qsicV+O/WVJsXsylez0yebDlJb37xz2RJymY9qNO/vhXmbA+X72nSTyRtWLnzTZlyKKZj5tMG5jr6kgteH33hiB3/zizB/JSOHEJLYlz+3bpKkSOF9a+bz35sQ2vwi1d3rLQWMBV3nuLzdKVi0Y/N9Ht3/527/e6ICUe8YXn9uUUynXDHCcskvfzFP5KkSX0mZVp1+exbZtrd3b4vhXtKtlWyxs4yHKsUO8A2cynNP/Uh0vmpdS6wKyQdzpxU+nkvvz5V/B87RP++5K2Vmt4B0LQrnbDgvvscQQAAAKhcPUYt2tDDhqmS1iAaib6PLNQiyaa76fFcXcOT089dfwGBbdyU87rMk/TgF//o0JFL1qvPLD/ATL0k7S9pbaJUYfswuHbt0LbDBInHnyMVY3rkGXv4pQt2MfMTKzTDS6FB0nNyezhjDQ/fdf5GFbuj6G3DOn0i6fEv/lG/K95Zq76+9b6hdKDJe0jqWnUz3So706ReG28ILpR0UkvfcHL2vU3Nw+vStjqJ/3F1sR1zmaQnXJqaa6h/NIk7/EUpm7VQX/3BzkRJOjf7z+095/u5bH+tKEZuw1RUWLdLWLFX4GF4nqQjaUAAyZyHo53Ta+r9apm1T/q9ZvMFTNFcbETFou+4+yOBB1M0157vO7lv7sv/cGQFTy9ffM6/f/HPzZL08IDbNlKgfaT//dO5mA5Uqsdol/6+KrljREHncx367Cljd9/7hjNfZPxnXivd/XY819RoAeB+17y/maROtFtBZj1x6kZvk0gAAACVab8r566RsYapkroRjYoyR9JDHoQPfvpJl98/l7UGQlKYh87tsEjSryX9ut9NXjtnyaIfyr2nTL3k2pLvDiqFn9T7ioV/mHJOx3vo9Sh1wuT7g0qkX7y7W3DFgmvcq3sH4IIKINxekPTrMOcP3JfttrAa4zbxnC0WS/qNpN/I3Y69bNauQehHyaxv02vLVR+5VnybNX2wUu0+UyEj3PH9R7wz+qYLtmj20VF9Jnkm+Oe7d+l/j2iNOM+YcL5UL9dTZrq/LggeuSbbfUk1B2Nk9ltfFgSOGzr0tTVq2tX2lHsfSQdKaltJ6+IqzJs+2eGvZ7OX7/hv0h6R5k0pdoFCwQNu8na7i7+A6bahj/1EoQ6Lpq+XqIAp79OUrLDqHTPd66FPOnLCkf8gr1Y45PpfzpR0u6TbXW5TBt76bVNwSOh+mEnbx9F8pXqMdvl3Fk30faK5h1dI2ossSMYcl6x7kXR9x9FoAaDV1Owq90jSufq6pfH4XwAAgErlbq3GLbhV8m+X6PZTctbZMd6BfGRuD0jhPd/5vPMLX+yWgQh98cjg333xzxm9Ry3YJQz8OHM7WtK6Ke03+OoG+MaDxyx6+ZGh6/2TYKCYXEtTbvYZueA4N+2eT6KUY3es/NvAZPF8qTnfXbdmanK33TOcP5j9ZjOa3yX9RdJfslk/81374MeZjB8tV19JHZjTyptDeY5dNZmcLpT0i+be0/lf754t6YckQETzjWnlB9P926VbGuqDu665vDu7eK/GmDE7fSbpAUkPfFUMqJ9rxa6kmbhziMLWyAVBJjyvJeMPkjR15ZdD5E1lyUkt+EuiItYqq+y2HG/xQjwFTN+UzWYDfRKMlcKokzGPzxNtcZ7LS/g4VUnShya7J5Tde9TVP/szmdhcWM11jV6R9Iqki6YOur17GPqhkveRtEvZ7kH+d4joi0WT9XjrYo7Xstis9L4f/+6UKw/6yQ1nTaP3V+P3BnHNk6UvHmy8ANB9V6eXFDjIhBQAAgAAVKhe4+af6dIRRCLVGmR63KU7c60WT50+qPtySZpCXEpiyrBOL0l6qceEGUNrlnXoKQXHSerR1P0pEm0Nz/mk/a6c+70nz+r6GeFApetzxYdredhwRd5vXO1TZlL2Q26+31u6/dECu/7D9p/89su5Fo374o8QnpX07IDs/CHLgrqj3fxkSTsTncKVNs/syFOyb110Q3ardxt7xcnZt7eX66L4Ei/PY5bg94gStUG9mX4r03Vjs1s/T89vua8XA5533psbNAS5E1z+y0DarPTzUyoeJ12SxMk7b1xHZs/528XZK75LoX1VzDeV1d+RthgXtiv16vt8yw+y0eLvnSBr6o+xk7ozYinGlmav94+STVy6+NNJJ9xxwjJyrjC9JpwwQ9JoSaMfHnjbtyQdKw9/brIN4s3rCItFSzIslWoXy+jHTne/PJvNTs9ms2wQUMIOlt94+tV7k/PHDsmaxxv9gSWUduWvQwodHcI/EQQAAIDK03Ps3J+6dAWRSN195Jdmm/xmhcHEKcM6zSZI5fVFMchvJf2292XzuoQ1wbGBaZBLG1bwzaIqdB+G7drkaq6XdBw9GyUc00uTsabWP7t8fp///buw/mDJulRVhucndNkjCuzK+87t8gLhKMz12c6fSpooaeIJl8z8nkynS+qrFu/MlYKZbpWdaVI4k646NtWYMmdJOmV1L89mn62ZL7tdUus0r06K/QE/4sH/Q0kTa4LgutHZ7rMYPYpz2WVbfyDp0mzWR9aFb+zrbkMl7cOaI668iTSHaoJMZrikX9GTgWr+9iC5u93lfyzf5vYzpvf52r8Y4XGsOWK811wR2/jj2Egb1rl0fxCG44685sjXyKhoHXLNL/8p6ZxJfSad17brJz8NQ51k5odoNbU3SXqMdhQdPrKdRb/x9lWPFe993+qv3WQ7/GhOu59LuoteXrkL/UL7Vjzvi34SWv253G3/G2Z9KGntKA5XllVR+Sz+/oIN1uXRYQAAAJXlwDGzNwks85KkjqVf31JOUNAdyFf3Bc+56bpu7Ts98sXjaJFQ/W7y2jkfLzpSgZ8p105l6Tex34NWdD4fP2VYxzvpyelx8BWLXpHr26XNNS92TF/NezyGDPSCMtaaOp4XPyJYnoNP/sf3vMa7rx0/59I9YZAb+cC5G75FdkXvuBH/3SIwO1vux0lq/fUN3IrPTY+4H7UwL/P6DB5R3jT/ufM6vq+Sl8saajObTzxv0zkrv/SUi98Zbq6R+beZR/iZV/PZPaqYesR9qMljzpfbmOVB/Q3XZ7f7lBEiPudm3/i2N2ioTH0l1Tabl56AvGx5P1r96z0BeVlY3tSHOd8qe8XO79Nzo3flOX8+NLTgwbza2ItcdxWUBzHMl17Q+B4OGbV7hp6zetcO+8ORQWj3NT/2eQH3K97IOssL6Ive9H2I5zPmeovWD9bEOZpfZ3qL17rW7H2aF5Bj3vi62POdSzyve0D7Kk8XS7oxE/g1fcf3/YBsK52HB9y2URD4AMlPkmu9vNswn/zxlqwdvKB8X/16yPNcYzXft62Zc7TsvjK/fGzhdz7/WVbbeusDrxnEUwwi8nz/i56R9JP81r0FtrsX3O4t6jP53sO07L5hpViYrt7tpisHFxrv1e4AeMCN72/iqlk7/8Pxt84m/zPFfwAAAJWlz7iZbZd65kGVo/hPkswpAsz/DiQ06UG3YPTUoR3/SqTS4YsCzbvlfk+vKz/cV8oNlWzfEvYbFBfYCb2u/PgPU89a+z2CgUJyrbJzMx2PZCugzUJzTQoUZu+5YIM36fXxufOCjd+R1P/YS2dekgl1tuQnS2pVPXNacnNopTZoU1PfcIaks77+mlMvmbGdhyse/cs6pCjz5bris6D9TRMv7vY54YjfyOx2r0r6+TnZf51vDeGFMh2r/+1GWngOsUaIRa0FdoakQYQiDjWS8vzpr9kUyS+H4s4b8iyJ90pFrFVW2W053m3Vo+8/ee12F3kcS7UzYlSPdnXTJwptQk0mHNd3fN8PybDSO+T6X86UNHzSkEmXtK1bcoxLwyRtGUsf+t8hot9hMlmPty7meC2LzWquY5PW9cuPlXQzvbravjeIa54s7WNNgtV29FxmJzpHwXi8CQAAQIVZ6rXXSvoOkUgDr5N8oofaZspZnftQ/JfWe3XzqWev9+TUszvvl5PvLNlvlfevLSh9u6mDhfV395nk7PQArD5HVp218p3lYn59s1/B2zf+v8+EYfCdey9Y/yiK/0rnrvM3+uD2Czc6PTR9S6YHVO5noaRhdRh73qycJHbSL0f9u/2X/yab9cDDzM0q+NG/cfwEZ/EePvo2+NRMF9cu9S3HX7L1+IlZiv9K7Yrstu9fful2v1Qmt71Jk9Xsni0RTpZVc8zi88ZMx2ezL3agx1bDfFNZ/R2Wzuu1KPq8RRgaizC3rEw5nPd5lprZqPr6zGZHT/jZ+RT/lV/f8X2X9rruxFuWzV9rG3P/uaR/RdEfvUxpXv4xzUo+dpp09qQ+k/hus4QdrNA9kT2hn6ecgtX/W6MAsPBJ+EWiAAAAUDl6jpl3jGS/JBKJVy/plpxyW00d2qX/o2d3nkFIKsNjZ3d+derZHX8WWmYnSQ8o9YWAlV6nYXsuf3/RcHouou9a6cjYKqnEelOy3veev/4+D1zY5TU6Z3ncecHG79x+wcZHuvQ9uZ5P80yX6jxb/di0VutlrY798n/M07v9JP9+Ja1OontIa3PxtZyb3xTW1245Lrt1dvTobT4h+8vr8uyO/x45Yru+rmBXVepmCFbKvIk8h9oH9a35/gKoEIWteSzC85SqiKfMN4cWdxvG8tldpnssqNn6qPGHn3PcdYctImOSpe/kvrle1/f79cudPtg+NOtr8n8mY8ywCM9jEeaeFfh5Ykn8LTut958+9OLKXeh7rDmW7/uinYSCRv79jjR+YW23vK6BAkAAAIAKceDYBVvJdAORSLScue7KhL7t1KGdT3psaLf/EJLKNO2sdf8x9exORwZBsIOkeyXlEvbdAf53Z6wLe12+cFcCgdIljOXRPVFElD836Zz2nbrucN/5XacSkWS448KN/3rbhRv9SG4nSvowjhzyNA0HSckX94FytwHZ97qadHnxU2u8r0/ooPOCy3a7KrvNyVeP3Hwe2Z4sV4zY9m+Xj/jWnib/lWQLkpjXVVzEf1o26wG9FEnMM0S5DqrK3e5iOE+JChMt0rP80Uy7HT3+Z784atwhM0mmZMtms+HB1544eY1Os3dyt5MlzWu8T8bfH8tfWJya+e0cl/ONb3onySq5plU1dhOwU1HpUL2xf/u5IZt9TEICAACk317Z99oEHj4gqX0y7i/4WnU1dx5PhUG485SzOh/38Nld3iEi1eGRoev9c+rZnY4J3XaQNLWI/oP41Fqgu3tlZ7cjFEjvTmDV+whCX/2/fCwMtN29560/amJ/q6dnJ4yZ33bRRrfWh3XbyuzuZMyB1ZVDq4np1gMufmd/Vzhe0tqsQ/JqkkUynTA+233Pq7LdXyYgiW4sHzlih9u8Pre1zG/Kt2uzy25s7bJFpuH1nsQhIXNbmX8rjiTPKH9IX79b6a2lLaqrhgImK0GervYcH0o66cirDv/hUeN/9hK5kS57Z7MNva8/8aZwadBdCi6V9Hk06ZHSR4gn/ly+07OnjDmQnpvG7lXdxYOrFAD2vnVBe0mb0zsKwhcSAAAAFWLN9u3GyPRtIpFI/3a3ntOGdt7vsTO6/p1wVKdpwzr+a+rZnXqb6ycm/Y2IJM7W1rZ2BGEAohd/wcQ3vphcZLKj7jt//YPuH77++0Q/2e7Objn/tgs2OtY87KlGdpYgb+LKm9XlUHCdSUdG8wli/sEgKb+RmD1Qo+BbV2W3uoO/gEqPK67Y8aPLL9nhZJnvL2lmMjtkdVQwfZk07j6InpmWNrOC2pgcqs71SbLa0SI8pKW2r3qJrtelu2tyuW2OvurwW4w1UqodfNuvPul13YkXqMa3lXxqssaMlXYWtXj7tkefJxHmsUnuw+mx1XATGtU1JePzrFIAWFe/fHs1vjMgmm5UCgABAAAqQK+x8w6XdCqRSJxP3G3InPaddpx2VqdphAOSNGVYp2e/83nH3czsF5L+S0QSdY98+sFXLvwecUB0XSodl+l5foYE/3oztaE2s/2953W9n86XLrdetOm0+rBuR8keTcs1p3onsEbHJk/4H9lbDG1ghY6Nc9zs4Kuy3Y8ck91yPlmcTiMv2eGpXN2yHeS6g4VJoWNXcXn5NT/Jnvva9vTK5M9nQHNjSmXtdmeFfR4rVy4mojBxjrv1Ouaqw4/te03fBeRJ5eh1df//9rquf29zO1zSB1H1oVIVikf2GG1r+ro81s/S7Hv3fKb/mB/RW5O4hrIixnsrap6I533RzTerFPqFHm5L9yp4jKAAEAAAIOV6jlu4gUsTiUTSltp6MJfLfGvaWZ2u+huPHsRKslkLp5zV8Z42Ncu2MdfFkpaXo5PG/1VB6mQ81K19st6KXooiEibyY/LIwWZ9JtMv7ztv/d6Tz+48l/6aTit2A9ywt5sGtGxetPLkDRsKMXaZP5KR73h1tvsUWjn9Ro3aZfHIy7Y/wdyPlPRJavPMUp9nZgoH0CORxPkJUa6DLMI2sMS0dVkKmCy+Ri14NzXX/bWW2/7nVx/2KMlSuXpef9KD4dLMtjJdu6K7VMNjtNMjsHAwvTS1k2SVXNNKfXbVTLRtKmK5V47YtwopAAQAAEgzd5PnbpO0bjLvearva1WX3ne3nlOHdj58+rD1ZtFJ0ZTJZ2y0dMqwTllz7STp2RTcuVaD7Za1WXgeYajy6TVhr89j4q3GY75uFu5y37nr307PrQBmfvsFG99ggf1IK+0qUZo5sLpyiOLivMP+mbv3uyq79SFjs1svJGEry2WX7fCA58LdXHojTWuKypoC7KhxQ/7Ult6YhnkoBWtxCvbT2++sHP2NAqYiz/OJmx9zzNWHH9V3fN8P6f+V7+DbfvVJr2v7DVSg/dSi3QBX7tJpG6QtNedyqdezJ47akF6atu5VvcWDwar/wrehVxTk/SdO3IhJGAAAIMV6jlswQNJ+RCIR3OQTMznjcb/I25Rhnd6celbHn5rb8ZL4QbnMzOycg6/4cAciAUQ4Scbyer+xTf3S7913brd/E+HKcuv5G/0lDHO7mPR/5E18r19p9otjRo15wi7p6uAty9n3rr5k65vJ0Mp1+eU7/rt+We57ku7NP88s7Z08CWPd2p+0W+MQemISboiaazMrtI0rax5ifVKi88RQnGdJ619W0sT2KK/X7RWF4Xd/Pv7we8mO6tPzmn5P17QKdpR8UvnGjJV2FrV4c9EjzutoH89qklTjNepH76yIm9ASXFP5P0+wmoUmBYCFDQuvEgMAAID0OnDsgq0kH00kEmGWy3tMHdql/5RhnT4hHCjsftt8yrCOd9Y0tN7G5HcRkLJq5UF4azbrAaFA8bmdjsv0PD9DmXco+lxmx95/3vqn3JHdbBmdrDLdkd1sbqbL/J+a/JZU5o0SlzepHJuau/Bo2sCaeb09nDPtOn5E9zfIzMo3ZsxOn428dLufS5ZVRW7IF8duUsXl5TeP5CfQC5M/nwHNjSnl3+0u2uI8L83HKdmjkaM6lrtdX7fOx3scM+FnM8iF6nXA+BM/7HndyUe4+3GSPiukP5blMdqRpYYVvXaKPsftpEl9sq3onUlbQxVTiG1FzRPxvC+a+eYbX773mDCjtaTN6FoFNJbZP4gCAABAOu2V9ZqMhXdJakc0ys3ursnU7jBtaJcniAWi8NC5HRZNObvzcVL4M8kXxdt9S/FVQVpvmrXry20X8hezKDRhIj8mjxD8n3c8Y3vcf26Xu+mTlW9i/13qb71wk5PkfnEhORRb3rChUHWMXaacuZ971cVbHnZNtvsSWrOq5nwfeel2F8t0vKS61OSZpTDPVvXT7LCXNqYPImnzEzIRroMswjawxLR1WQqYIluTWr5zy1KTH/vzqw899YTsCfxBFiRJva4/+S4zfV+uGXHkdaU9RjtmXTut2+5QemV8c0u6vixI9hcY3ygADINWW0qqqZjlXgljH4TGXywCAACkVPsO88911/fScb9UmV+rmrTY3I55dGinYx8ess7H9EpEberZXX5rbjua2RMJu3OtGi67rNeYJR2JRLW2f7Jen9cMlYpjFmRaECzf9YFzurxGD60ut120SdbMT3YpV5JVXhUdk+LiRi1UqB5XXbL15RV7Q4NmjRyx/V0KdIBki8mzkgmCoOZYel/FruVKmzcU7Ke331k5+lv8O+dVRAGT6b1MEOx5zFWH8wdZWMVB1/b/e+sG7SrZI8136bQN0paqc7n5AHpk2rpXdRYPfvPxO5mAx/8WKMzk2AEQAAAghQ4cN3cHd51HJMrqT/Jw56lndbqXUCBOU4Z1mj1l6Ho9zG2gpKVEpLRMWtdyy68gEkA0fOUMa/nrQ8my29R36X3v8E0+IpLV6dYLNrlJbn2Ugt244sub6F+vPPMyGceMfQXwkizz3asv2eopMg8jL9n+2dB8X0kfNZ9n5FA0H9mPdzmlWwm4GWp6vsmviZz+XtXrk+LPE0NxnpUgUdKW2M17Ilfnux417uBXyAI0Zt+J/RcfdN1Jh5r8gi/T2EvUtz2Srh7lzqJRPgK5pe/78pz2o2dPvnJ7emQix1LuGb7mGwWAHjoFgIWpX2u9T94iDAAAAOnSZ5JnArdbJLUiGmXhkq749NNOP556Vtf3CAdKc/9uPmVYx2tDy+xmLu7jSt8AJ/QatWh34oBqmeQaT4U8Xx+dxYF5r/vP63JxNmshrVTdbrtoo4dkOkJSfSryRmXLmxZOcamdm4v6DE3+UGaattTW+PHV2S3+S8bhS1eM2P6vodlPJS2qkPVtDGOdRTc2mm1x2Xl//yE9rzgNaZ6fmOwqIsbl3+0u2rb32D9OUh+NbJLk5j6y1Qf1Bx133WGL6PNovteYH3TdyZdKdrRky6PLsYgfox1jmnkJPkvznzU8id6YtO8ErOi1V/Tvs7KuEYNv3gcEW9ClChqR3prcd7s64gAAAJAuS2fOP13SbkSiLD52s0MeHdp5+HNZayAcKLVpZ637j/q2wa6SHo729jCarwoqWGDy6/pM8gy9EAV/QWvRHLMKHyE422Q/uvfc9R+j7+FLt16w8cNmdqRaWAQYW95QTxCbso11ptvX0QeHTMx2+5xWwMquGLHdKwr9J5ItSHTeWInzJiY5D/vS65C0+QbFFeCv7liemraOcheviAuYLPa4feLSYcdcfdh5fSf3zZEHyEfP6/rd7659lPcfUcT/SO7YxsdSj8dNv+7IZ7PZGnpiGto07muyxMYpWGnq2Yy+VNCU/QZJCwAAkC4HjZ+3uaRL0rnGTf3Xqq8FgXaddmanKfRElNP0QestmXpWx8Pkdq4kvngtne8sf28hfzWLZiWnQK8SHkFob1rge953XpfX6VlY2S0XbPSgmR8tqSE9/b1yKgYrsRjZTZdfne3+q2x2b/7QB40aOXKH1xXaAZItJm9iXgVIh2WzHtDrqnseiiRvKNivgi6b1EIhS1X+NHK98yzwvX9x1aEP0yFRqF7X93/eFOwh6d1i86T8RcOlzOtIztXZ57Tbj16YkjWXJXXhEu81rbzg37zc02FKvUniAQAApIi7WaiJktYgGCW/vZlsnzbsMeWMzm8TDSSjU5pPGdbxcjM7QNJCAlKywF/cY8KiDsShyqZfQhBzTBv9EvHFoD73g/uHr/8+EUNjbrlgk9+4dFJ1p2o0j9xrYV5WqtDdBk3Idj+3Ev5qCfEbOfJbL7vlDnbZ0nzyMo5cr3Dr19T//Qf0uEROM1+bP+Io3KBir7LulRL0uM7VXZeV/t6vVI9GjuBYb+dqfM9jxh76N3o7inXQdf3earD6H0r2r/iG+pV2FrV488QjzrloH+v6jR1bf04PLMMiiWtqsf8VAPaZ9EYrSRvQuQoaCWYQBAAAgBTdJI9bcIKknxKJ0q6aXX7J1DM7HTGVx4AhgR45q+PTyvn3ZaI4tTQ6t/rchxEGVPzk19R/tDxfX9j5p7VqpX3uy3ajwBnNuu3Cje9waWhF5Zniz7Pm8jodJynuMYS+4n3L5TpywiVbXkM2IR+Xj9jx9+Z+hKQU7xhpheVNHscsaqwzKefhz+htFTTfpKy/I5oYl6rYrVS7dXkh57D8P7uXqN83cZ6XPBPuefyVh75D30ZUDr524GwLan8s1yvFzUMJKiy2gnOslPPTwc//clR7emCS1lxW9Nor+vdZ2daI/ysA/PjDDptIytCdCghiQAEgAABAWhx67az1zH00kSippTIdNW1ol4tk7ASC5JoyvPPb9fUNe5j8haIOlNf3TdWbEm4acvDYRRvR86qdxfA2iy0D05Wxdsf8+i6H3H1W18/oZ2ip2y7ceJzcL4t0vM8zr1ksxjDnxj/WLQul3ldf0n0y0UYhLrts+6kmOy2ReWOx5U2pV1yH8xhgJG2+QXofkeslut6yFDBFGEozPdF6ed3ex445bD79HVE78JpfLqhr1fonJr2QtDEibWNaHudrV1drh9L70tCmcV9TXJ8niObdGffN6UuFqQspAAQAAEiL+uW1l8u0XvrXuKn5WnWhWfiTR8/s/AC9D2kw/dz1F7SqWf5TmT9INGLX1uv9UsKApiSnQC9djyA0+Y0PnNv5l89lrYFehHzdetGm57v5fdHmGY/xTMdYV5A6d//ZNdnuT5I9KMall253k6SbqyRvyqFbTf1rexCG6p6HIskbNgBMdHfySM6R1MJES1X+mHT3Z5/O69X3+r6f0sERl0OvOuFjBXUHmPRyIXlSaTuLlmIMMR4DnJ5J0pK6cInvmv5XAOgebJaM6TB1q+UPnzltw0UkHQAAQPL1HDdnN0m/IhKlWirr/SBnP5h6ZtcXiQbSZPIZGy39zmed+rjbBKIRM9PPe41e8B0CUVVzA2KNqcmk27ap73oqu+6iGDW5VidK9lo1TkxRjF3egmNWSLjqA7Mjrrlkq2lkDaKwZHHrgZK/qGrJoRLLufMY4GROM1+bP+Io3CCHKuteKUGP61zddVnp7/3K/8cpqx7Lza85ZvzBx/Wf2L+eno24HXjNoCX1tZkD5Yr4MdMrPUbbos2TwnPZYhwbmn88uUs/efK0Ud3oeSVeJHFNLfJVAaAqeAfAOBcVpreIAgAAQPJlsx6Y23Uqdg9ttNRrDRnbY8qwTm8SCqRzzLBw6rCOp7vbZUQjVkHgxmPZUb1W812iF3e4e7ap73JSNmshwUUxJma7fW4WHiopFX/4XH07gcW8o6K16OU5ST+/Krvlw2QMonLNNd2X19bUHi5pbqpzKIljnUkmO4RexnyTlv4Oi7BPWex9Pdqcsgg/jkX4eVpawOTX/2Lcwaeb+IMslM7BV580z2psf0nzyjGmJ6fgtyTzUybTYAfT65K05rKi+2L07yvPWulrP37aRnSjQgJo7xAFAACA5Ptb+/knuWwXIlESzy9rqPnxE0M6zSEUSLupwzqeL1M27zfmdY9f3d8Ju/TTQy5fsBe9rZpZSd9WbAYm9Ydfk0/Kde98PMV/iMotF2z6npsdLSksWZ5ZBcyMFVIT0UwbhCYdPyHbfRKZgqhls9vM9tB+maihwCLJmwJeH/mAssmI8/+2Lb0MYOGQjOuNcheviAuYCj/cxJ+PP/g0iv9QDgde0/+d0OxAlz4tdG1S9jHCyjk+Wh6vpACwcua88lxTXLkZfPWxfAP6UgENY/4fEhUAACDZeo2Z3dFd7OJVmoX3M3UeHvD0OesuJhaoFFPO6nSxmZ9PJOITBhpBFNCYwn5MT+fOPkV4uEPHLj+f3Ndy9BhE6bYLNn5S8quKzcsU5FBKx7r4Xt9EM7qbTro62/0eWg1xGTlyu+kun5i2PEvHwjtzAD0MReeBVVnelIpFc4DS7nZXiWvAgq/31nfXeuUUiv9QTr2u6/+yTCfl07fLv7NoGu8Tfa/HBk7oQI9LwdhsCbymGC/sawWAirEAsHLnOZcoAAQAAEj8vUHmEpnWq7zPlax1tknTPv30055PntX1MzodKs0jZ3W+TLJhRCK2EeQHB1+xaH/iUB34NWSl2bP4eE4P6xceMbG/1RNPxCEX+nmS3qjUHGrpMYsrHKqc4keTzr8m2/02MgNxa1UTDJX0TpR5CclNFACWex6yaI+Z7+5o5E0l3CtZ0V3W41yjWJzjdEILmNzueHetV/pls1l2Y0fZ9bzulPvN7aoocy55hcWF5mwxO49+472t29QvZ01Vyeu1lN7LrygAdDeXutHwBQQwF1IACAAAkGAHj5nzLVdjf/WGyG6mzR5p82mnw57LbraMaKBSTTm742i5LiYSMY0jgY+QO9tDofqspte39Etvd72ieus7ObtdHYFEXO7IbrYsDP1YSYkuMq2+nb1iLn5c3eHN77w6230kWYFSyGa3+1TuxyqCx5CXJYeSONaZJNePstmX2tHDmJ/S0N9R3uJnL1Gf8EKOZflfV1wFTCbd0+aDZSdS/Ick6ZyzsyX9X+T5m4Chv/mnPpTqIr03PS3q+cSKmIeK/2OHUhWtxymQpF4T56wnqQ1dL3+haigABAAASPJ6LbDRkmqIRKymt/ukY9/JWaP4ABVvyrBOWUk3Rn+Pzz4Mcu3ae/TCXgSiWiXxUR7RZWxMGf6BlOk1Odv5U/oP4nZ7dtOXJV1akryxCpgZK6QmYqU2+MO6qu9HNqCULrtshz/JdUua8jr6NULkA0qbzPLMXvSu0q0DgWQsHIxj5ZvfLTicu01pPWvZ8X0n983Rj5Eku0zsX59pCI6QNL/0RcMWYSqX+sYqr/Md+FK/m2rpbZVws2wR9f3yrykDSarzcAP6UmFtslZ9jgJAAACAhDpo/Lx93O0gIhHrrf3v2gbLD6f4D9Wk9aYdT5PZb4hEHIJL2AUQkcxOkvL5IqjQv0Yuo89MQe/J53f8gNZGqbRbu26UpBn5500icyjBY1dyXv+1ZpuRq2s4LMtuoyiDMMycK+nDtORZKmJqxiPrUHweWHXlTclYNAdI3uM6y1NcEXNDvGQ1rY6m+A9JdcDE/nNC08kt6dtlf4x2Ou8T11kcLPkhPS0Fk6Ql8JpiurBgxWG9BAWAFbncmz/5jI2WkmgAAADJk816YKHGVP49T/nW2W76Y517b9bEqDaT+1quvvVHP5f0LNGIfGTZqdfoRQcThypo6Zhfn7LJPN83hOZ+zAPndXqZnoRSumZQ9+XufnoF5FDBx6zSsevDnIKe112+7SKyAOVw+eXbLpL5eeV+FGaFrTwoACz3PGTRHtPzPCl5Uwn3SlZ0l41st65mLq9Uj1QscQHT+7maTK9jx+z/GT0WSdbrulMecunXUeRc8gqLCx1TrcD3re69PAa4otdrsX7nEI9AkjynDWjwgvBX1gAAAAn11/YLjpe0E5GIzT9qg9qeT57VlS+6UJWmD+q+vL5NcIjJ/0E0omXSeUQB1djxV9bEl95nP3B+10cIGsrhtos2nS5pSlKvL9kFepa+Y5rq5Paz67JbvEXvRzm99e9/3Sz5y9WblxGOdSsur3t22Esb07OYn9LQ32Gp6ruFXq8XcizL/7oiKmD6OAjCg0648qC59E+kQc3y2kGSZkeWvwkY+pt/6kNpLtJc+9DDop5PrIh5qPg/dihV0XpcghX/r3elyxVkDiEAAABInl43zW5n8hFEIrY72//mcpkeDw9Z52OCgWo2fdB6S0ILe0taGM09PvswfGGXXld82IMwVOUEU9K3FascP+SaNHHSeV3G0ldQ1kw1HyxpWax5YxUwM1ZETYSfNeGSLdnxGGU3eXLfnAfB2WnJ6+jXCDE8HiyT+QE9q3TrQCAZfTDKsaRyj+VNH67O3A//+dhD/kkvRFoccOuJH4bu/Uo7NlmEqVzqGyvL56XfenbAaGqtKuJmuTyPqo96TbmiADC0znSygjrBbGIAAACQPP5J5jRJ3YhELLdBi4NQvaYPW28W0QCkqWd1fc9DP1RSHdGIcqwJLyQKKHo98OXMldfrWzgbluXz+Eth/cKBtCzK7ZYLNn3PpBvzy5vy51Blj3XRv96kR6+5qPs1RBhJMfKS7Z6R9FyS8yZlYwcFgEDC7oKjWyol9XGd5SmuiPCzu2T9jr2q9+/or0ibnjcMmCbZw03lYokfo10p94kW5rQ3PaysYzPX9DUrHgFs1rFktxQVFXtna18AAICE6TFhUQdJZ1fVh7aSrbOXh6F6TTmry+v0NOArU8/p/Ly7DSESkdq956iFPyUMlY0f378xmTf3go/DwI6YnN2OYmMkQyZ3haTPUpRDZTtmOsc6e7++datjZcYmV0iU0Fb/RyJ01PwFsh8ShTLPGRbtMeOeb7xU0y/yaB8rust6iRqzVI9UjLOAyd1GHje+5530TqR2HeXhmSpwJ/doC4tLP2Z4pBOYrfw/f0LvSstSLcJ2T9j3Dl+t8SWZeSdavICBwnkEMAAAQNJk6huGyLQekYjhVsR08rSzO/8fkQBWNXVYx+tduolIRDXgSOY6n0Cg2vr9yvyr/8+Jvx3e5V2ChKS45bzN50m6rhI+S2kL9JJbqPg19UEQHnnD8E0+oqcjaS4fsdP/yfVUwnMoFWOdS9tls2+sS6+q1Pkm1fMQUh9jK+iyPfbPXlQB09PtPvj8Ivoi0qznDQPelWtc+YelpD5CvLC52EQBYPRrG4tkTZScPxIq3TwefPHJKQAsKHoBBYAAAAAJcui1s9aTdAaRiOUmZfTUMzvfQRyAxrX5vOMgSX8t7ijsX/K/UUfaq9eoRbsTCbS0w5RDKX7INfNrJ53f5bc0MpImE9ZeKemTpOVNombSFNZEmPycqy/c6s/0cCRYNvl5HeXj8FZ/TC/+M1hmeQOPAebODVXXB5P6uE6L8G2RL8Bm5RoyR/ed3DdHr0PatbXwckmz47yBiWxnUWv6urywASKOMWnzZ0++fFN6V1Julotv91IXHEa5pgy++L8UABYgo5BHAAMAACRIw/LasyR1IBJR8ym7fNpxOHEAmjY5a3W5XHikpI+/8R/YEKFg5n4mUai6Vo92BsvzmAn8IfflJWt+MpR+gSSamO22UK7rY/vxmfkztrGriR/yp064aMvxRBRJdtllO/xJ0ovJyZvUrClWEZooAAQSNXdbhOugKB/XaQV+nugXeKV//KjVB2ZH/PKaAxfQa1EJ9r7+1E/d/fxyPEY7beuk/D5Phl0AS8q4pkYEcjdJHcu9pEll7BtCJnsAAICEOHD0/K4uDazee57Y1tlv5lrV/CKbtZBeBjRv2vAu77rCE4lEZA7tdeXHmxGGypXeH9NL8vi0JQrsiOmDui+npyC5S9DMtZLqqygvK3asc+mDGrU6XmZsaoU0LCCuSu4aIVWB/CExKPOcYdEesyyFrRTsl/leyYrusl6ixvQS5VykBUzmZ/1iXM8/0RtRSdp1mX+3XO8k436r8XNEPWZ4jJ/HXXvTs9KyVKvs4sHgoBv+u7akWlo7f0tzuUVEAQAAIBkygQ+V1I5IROpTC3KHTx+03hJCAbTc1LO7/NZk1xCJIq347iNjuYbTCQaqrN9Lktw1YPLwzm8TFCTZLdkNZ0k2Oe2fo7QFesksVDTzU8ZnN/qQXo00qK1d+FuT/pukHErjWGfSd7LZN1rRoyp1vknXPIRKi7FFeNnRP2q4hbk1+bixva6m76HS7J3NNrj8sqLnMktWXpd27raV7qX0fXpW1Gsbi2RNFO1ayhLbT78U1AVBR7pZQeqfG7zpYsIAAABQfvuPm7mum/oRiYiZTpx6xvpvEAggf3VtPjpLrleIRCR+dcj4j9YmDGjBvFUW8fyQa1N/c36XX9OoSINAq+7EVZ68Kfz1lTg25XeJfu81F3WfSm9GWmSzezeE0rXJzus4HocXzQ+hXztUK9U1bE+PKt06EEhGH4xyfIq2iMdL83GaP6T5mw01uV/Rw1Cpmt4FsPikimxnUWv6ujzWASKv927+bL8x1F0l5ma5+HYvdcFhVGvKQPK16FgF+ZDHIQAAACRDrWoHSGpPJCJ19aNndn6AMACFmT6o+/JckDlW0opHd+b1vQO3mitZM1yeo8i7qkT7BaDnecwEZOBieXAK/QBpcfOFG//VpT+mYDioaEUUSS6oVchuu0idVjXBrZKWlSlvKmZVH0jfoTcBSZq7LcJ1UHFFDPkuyjzCYxV/nqLOUZ/L6ehfjT74E3opKtWKXQB1WXTrF4spl1PD3MLd6FklDTnXtLq1vXnQISlLmlTF3p3H/wIAACRAr5tmt5PbQCIhKaq/TzG9nGu1eBgBBYoz7ax1/2GyLJGIxMC9sl5DGCpTen9Mj+fxaS4fOvn8jh/QM5CyTL4+KTlUrWNjEREbNDa79UL6MNImm93uQ5OmJHONkKaxJqQAsMrnoUjW4hTsl7mvWGq6rJcojkUVMJku/+VVvV6mj6LSdcll7pGUwO8eLJXncnMKAFcrSGD3qtziwSBgB8ACE9gWEAUAAIDyCz+p+ZWkzkQiMp+ZB8dMH9R9OaEAirfz5+uNlul5IlGgr7772LB96w8PJiCoAs/+5twutxIGpM2SNTMPSfo4zZ8h30fbFVcwkYziR5M/OiG75f30YKQ4c+8sZw5VxlhnO9OPEnPP00ibWZFtXKr+ThVgadcncZ0nhsJES1H/Mr3arv3nl9HzUA12mdi/3kw3FpKLHklqln5n0Wgfz/rNcwYSBYBVsbawRH+eQCEFgIU1jX9EFAAAAMprr6zXmPkQIhHhOtd02tShHf9NJIBoZLMWKtSJkpYSjWLHJz+ZKKD5jpKOy2zkS+fPQvMTZcYGRkidyWdstNRNk8uQN5G9vgrHpo9D5frTe5Fmb7757ydcPruSFiae5zG9yMszaads9ll22q7W+QkVcbNT/sd1WllzKv9LaPTRyHVmueP6ZvvW0ddQLYKcTZS0PI68jqyw2Jq+Lo92gCji89puLqcaPsa1kBfYcTzR1xntGrFGgXVgtVnAOOO2mCgA6dYn+0arzzuvuQaRAFASeawcPlseLn0uu9kygta89h3m9XW3zYhEZDdekx49s/MdnsplTwAAgABJREFURAKI1pRhnd7sPWrBRTKNbvn9t4sdFFbx00NHLtjqoXM7vUUoqoEp+p9HW37MfDMwiox12fm/Hd75XdoeaRWY3+FuJ0WeN3EMB5CZzrnmom1mEwmk2eTJfXPnXfD6PXKdXcL75q+eHOZ5vD652qpu3W0k/YMeBZTe6seIrw0wRa+DVhwgmrGo+Ysp/jwt+8AtO09+wTOzi48bc/Dr9EpUk/1vPGX+9FOun+SmXxSfy/kPWMlfJ+X1mdb7Xb8rN9dEvUPPirffxP9lQRKvqWVqXL5W1f6oUETs3fwTkhFIt0/WW/dga/BJFXe3GOugGdWrqiluaZsYyxOzqliJtGl53NZsbVdKpfvyOuXjHrv/rZJQrgL/0Gxuq7q6AQQQiEfXtTteNW/xgmNdtj3RKHyEawh0sqQzCEUlTunxFtzF96VyZF/svbR9XccJv6ErIMVuPm+TF04c8Z+3JNuqDDkU8zErbWz01+Zuu+Ut9FpURJ7k/G4L7OzkrRHSI5C+IwoAq3oeiiRvKNgvc18p4lglbrsV/Sf+z55nv/7Lxu3bjqZPojqHIr9Gsl9U71wa4blMu0kUACZ+bWT64jc0T2CcilzXm1uH8i0nU3xT6UYBIIBkzp8AUs8VbkEUmnfQ2Hl7uGwXIhFRvzPr/9C5Gy4iEkA8Jva3ekkDxE8iRa1xTXZ8n3Ez2xIUVNzyL9CQbNZCQoF0j9fmMrs33cnYgsmoRa9vyfHj+BKnpce0Myb3tRydFpVg5Mid/iGzt0qbQ2lfeKz8v/3b9KTk3POsvs2sqDYuXX/nB4rSrk/iOo9F3ycs0f1rWRD68Xtn926gt6Ea9bj+1L9K9nK+ueiRpGbzb/aIx4hoH89qK/0v25keVQ1rC0vs5wnctBadppB28SUEAQBQtV8l8F1O3AsNCgBb1A1tEFGILP3vmnZmpykEAojXI2d3/j9zu5NIFGWduvp2RxIGVMJa1b+63N9MPqfz8zQcKkHgwYMJuWst6PXVMDaZ9Mi12S1/R29FRU39rocqaWHieR6z2KeDmmlbelEVz0+oiJsdj/BYhfVdK2tO5X8JXxUwmXTFsVf1/Bd9C9U9soT3xJHXkRUWW9PX5dEOEMUsSrejN8W7FvICO44n+jq/UuxfBgcWqh3dq4DctYAdAAGgsu+ZgXKiALAZPUYt2tDkhxGJSMytqak9nTAApVEX1p/t0ofxflVQ2dz9RKLAQr0UxyzRD7nLAsudTVujUky8cKO/S3o78rzhvj2ypYhl7CzCgIpbMZiVtAAw3x1vEr+qd21NLwLKmYLNLH6KXgdZScei4s8T5S5ezR7r3bb+GY/+RdULpfskRbBDeBx/+FD2lWY+L96e3lSafhP/lwXJ3eWvKYGb2tKXChkF2QEQANK5UAP9JhXrjjX3u3JuZ3pGE6GsqR8QSrVEorEA5bWj5+CHh6zzMUEDSmP6uesvMPNLiERR9ug1cuE2hIE1YXJ2WrFiPvO4+4ev/z6tjwq77XmwVDlU2mNWxNg4YcIFW8ygl6LSjBjxrb9Impm8NUJqbJLNvsRmIVU+D0WSNxTsl7mvWAneaqn67N7su3xI3/F9l9IPUe0Ouv7UuZKeSdb6yNJ4ro0eGzihAz0qBYsEq8yFS+CuNulZTiapP/inJCmA6po/+SoMKKXawLYkCqvXZ9zMtiY7iUhEYvqjZ3Z+gDAApdX68043SHqHSBS+xg0C/YKgoALMrcvYFYQBlcaD8KFUX39LJ6NmX9+S45eu+NGkhTXKXEYPRYUuFl1uj8SZQxU3Vq+8vF4adKcfJeueZ9U2s2LauKr7ewXmbAnOE0NxnkXxeaK7LndNP35czyn0LuB/q6m7881FjyQ1m3+zR3isYsYgb/6c1rZh6bfoTSVeJHFNXy3qrdp3ACw0uQOrIwoAgKr+KoHvh2Jea/AY4MYsVesjJXUkEkXfn3xuHp5KIIDSm5y1OrnOJxJFzJOmX2SzHhAJpHsq1vlThnX6hEig0txy3qZ/ljQnhXe5JUn88sXBL7oqu9nH9FBU7Lxq/kSiZ/3Ixy6LbqwzyWsCdtgu8XxTuX9uz5fG5Yqxl6i9Ev0o4ZZ/nOVWE55OXwK+0sb8YUmfRz2mR1ZYbC09T5nnpzDYjt4U73ziBXYcT8x1xtcXAxcFgAXlrQf1RAEAKv6eGSibIAwpAGx00ez9iUIUC1pdOvWsru8RCKA8pgzr+IBMfy3mq4Iqnww2eqX1op8QCBbqca/v4/oh16TXtqvrdDvti8pMW3NJT0WeZ8bMWIT/1K2/+GbCgEpWV1f7e0kl+90m3x1vkj52BW4UAAKVci+UgOv1En32gne6dI094cpeM+hjwFf2vv7UT2V6mvGxuPO5OQWAFTPnWeo+T2AUABYU+0AhBYAAUNRNF1Cl/aalXwybUQC4Gr2vnLejXN9jvCm6G76Ta714HJEAypmI5nINIxBFrR2OJwoorECvdI/cbPzlfnE2ayEtiIrNTc/3hyP+Ki/6se4b8b1iYv9d+D4bFW306G0+Mekv0eVNtQ004db0ojKvDytlfmJKL6iveOzdyZof66wcfbssx5qZyWRG0u+A1d7IPVr8+ijKnUVLOalE9pekFACmZc1llbdwCVT2AkBPaRdiB0AAlTfPVeqYDaQUBYCrEQbqRxRaOhc0PmaHZmdMH9R9OUECymvKsE7Puuk5IlHwmvfQHtlFHQhEZamSO47XJ5/T+WFaGxWdy27PlD+lS1fsW1yhUew/OMyydUN2HEW1eJoQFDhuB+wAmJB7nEjntnx3R+Pb/0q4V0rQ4zpXd11W+nu/lc/jZsOOHbP/Z/QoYFVBQ82jLU9PizCXLe9cLnYcjPaxrvb1/y8FgLHMUZW2Q2BMOSx2ACzwZihXRxQAANX8VUJi11uVswymAHAlvW6a3c6lY4hE0Z3ryf9n777j7SqrhI+vtc+9KZCElpseigoWLCDgax1RkfSAMwadsY8OkQTSqPYzVlIIJCQglrGPSlQgPcESR1RAigoIiICQ5Ca5NwmQntx79nr/INSUe/Y+uzzP3r/v5+M78zrn7rP32utZz3rOebLPkgtbFhIIwJFZ1/TLRCF233FIU087i8DAw1T+0t6fSAUK63+qR7eqyP0ernJjvb7B+SzVN1GR6Vfzj39QEjUNf+XuQE3/mA3WupeQQe7PN/40kHxonFeM839aVxZjSuNfjslfH+9920/JH2D/hn9j/DoRuSNWjdB6xnKD84M2WpsymZ8G/eaj1R5kU7rzicVMHHPmPNPJxUBMu5FWcQLHEwABoCRrZiCvprfl9OqjLBKeJ9zeNE5EDicSDem0IJhCGAB3LL60769E7Na4HxWUvn0L5RyiQKOedn+f7Bezet+Je1p+wT1FSdY0v0x8nCkzY0StW6XyLcKAsti0oeNWEdnhaqvi+Gavwy6/9I7DyCKgIGshB87XMrr2KE9GVNXPVavVkLwCDjpeFlEfG3o/tZ49jyGPijLn+TUPB6JWIZGi37ea1NgACAANL7qAkuZNfX2HHnrYIYPIiucniJ1LvWk09+w7S6b2vZ9AAI6VN9WvEIXYc+qZZ1/5xOEEgh4y+utzerKPyZerVeULJ5Sk9bRVaSyUqHX1v95EZ363etwuooey+MY3Tu1Q0Tuz7SmKY0+3bkeTRTn0h0Wcn5jS06lBmkw+WiLvoY6Ok4M+guy2j84ewa+iAF3VokCXNd7vJPlk0SwnlWTeS0M9jkzypOfSNHMs+4YoEBEHNgD6t0xqqgX8BDCAkn62wFYbILNGraZsANxr1JWtrxSRNxOJqHOBPX9e2CFa+W+CArhn0cV9l4jIn4lELN1qu2pnE4ZiKfCK4wE9vu8C7jDKosPsjw40xJkds7GNQ6l8iLOhW59u15GJKGEncWsJeop0IlersQHQBdrwC2LMT0k+tQ1p9iyW4LHqe58UNudp9mu/p/9hRPBZ8gzo2vYNR94tIk9FGdfJjGWtaywnXRuS+7vnzj8UO5ZMSmOO4gmBXXFkA6B/Oq2JJwACAAosQtvLv+hMTS2osQHw2YwMPkSuNRzEuYun9V1LIAAXPydQM7U5BCJe36Fq/Aww/JiKzb6y4BytEQmUxXerx60Xkcc8XOXGen2j81kK73HFldOG7iQTUUK3ujtQ0z9mI7UuCAI2AHow37BBD13VlPyf1pXFmNKol/Ob/7xy+C/JGaBr5yw4p2Yit8SqEVrPWG6wH9J6aobmuhhT5QmAWcwnFjNxzJnzTD4Xg73/QUQV62QDIAAASHeRYDwBUESkWrVATT9AJBpaQm1uqjRPJw6Au7bu2P4TEdkY56MC6BnjZj91JHHA/tMjp5l33//qkeD4fj/mhqCEY/DWBsbNQcc1M+NBbWu2yjcJA8qoqan51lzeuM6ew+XNXmbGBkAAji3CkjoWT/8Doo08W1W+epPk+/EEQH/uqa/ndIDZzngCYKz7tidsZgMgAHTV3tBXoCx5k1KuqbIBUETkT73Xv11E+BC6oXGlV9w49YgniQTgrlXV43ap2LeJRCzNuzo630MYaJ6i95wa8fXxz1NF5/P0P5S0Eb01z7Fe3vWyfueq6nH0/yilavUVrSryePrjLN7r3W63lM9ekMm4QdRYaoKtkqs/16mp5aCaLPnP2cP+QHYBkUb3bxuv80k+WVQ9ix9PAMwtczP8MwcOvo9AndkA6Fd72KPbrj0MIABFnedY0gOOdEdmbAB8uph9kKrUUCZtqtT0auIAeFDtwtrXRYQNQvEmzbMIQsFuabFWKNs79jT9D3cVpRSEt+Z/Etn9jKcjtSs0CeeSfCizUOx2Pi+I01LzBEBn5iFN9pj8zHCxcsXSyrsX/WliP9eZeb696HzVvkxuAdFsbW+5S0S2RBlz+f4seJLHa6QWPxuLY8mirNfoeZ6TO9cTCE8AjGW79eQJgACAgovQRvOQhrT6zdJvABw3e3VPUX0vydBAGqldufDSlq1EAnDfjZ8a+E8RWUIkovcdKnLGmGrrIQQHbnbV+v0bqzyJF+XUs0/n3SLS6eEqN9brE5/g4l3l4muqL/sH2YdSt4sm97g1LtM+ZjK1TnkCYMnnJz7gLcwC2eHcffZ8NYn30Xre6taPzR55K3kCRHPOgnNqIi9+mrtGGub51zTNs3a2LDq3yueUqcwn2sA8pDmt9bObx4O9/0FEPWtPsQEQAACk3PbxE8A7pPksEemT3bqscDZ3Njfz9D/AI2Z6kKeE8RyGgy3TtWfzGYQBB2iq8hnPe/9HIME8bgLK6upJx+9Wkb9HHDd1j2uvZ8aUapOpXEXmAXqPy+M6+c1eCRUUs37kTqJ9IOBZDma18SbLYxl9ERB35KncmV5tarBG6MFrRLrzcH3n3rPSfQBZ5NhiOYFzsoZzP10BfWi8XNrZu4mvnwHAoQmt8H0FStl3mPATwCbBf5AoDS3S5yybdNQWIgH4o8euo5aJ2CYiEWvSGEsQSt48xVqraMTXRztPFf3Vgk8f9TfuHUpdnjXqk7hYlDfgL9d84WW/IQxgLSx/bbxHSO/1Li9Hpl/yQG8yCFmMG0SNpSbYKiX5c52aYG5osnEze/zxPj1/TkYBcQeV3dF4ndfGx7Kn68SKBPzDinxWApn+mQMHf4FARGq0h9F129iTn04GwDIUILvS1vuMyzcfVtaLP+PyzYep2JnkTWzbm7p1zCcMgF8WVHWPivyUSMSho6pV41cOStwTOtoL8CReIK8ncb3wHJw9ZpK1znjKDSAiIk1Nr35URLbxeUF0e7p18GW1K/OQJnvMEm9sLWSuWFp596I/TexpXZnnm4oFOq9afUcnOQXEE6rdGWXMZTl3WOrHa6QW741FGPQni7Jeo+d5Tm5cj2MbAP3R48gKXyoAYP5ECRi5lrPuTbteVtZr79a9Y6yIdCcLYo/f79xw/hCeIgZ4KJTKD4hCrL5jwJ09N7+B4MAhj5y4p+9iwoDSd6Wh/dXr80/59cktrHVT5Uj7MRkHiFSrGprYfWk2nu4dM5napRa2kEFlmG/yy00U775Z3PPVJN7ngAfZ3qOp9i1yA4hv1PzzHxORjbHqTUNlKaufEE+5dgbGBsDU5hNtYB7SlHupfHOeDYAxbdmyjScAAgCA9Ns+DUq7AVBF3pvHuqwgahrKbMIA+GnRJUfeJiIP7f//ynMYDiYwG0MU4Er/YGLXVasaEnyUXbOF90QbO9HGtddPNEq0NtlPrp50/G4yDtg7vCynp4/WOa6Tr13JFJSaCBsAM7tngFs5m3xzkt+xVOS7H7h89BNkAdBwIbkz+UMmVCP04DUi3Xm4jnM3ZQOgO4vlRM/JGs799LABMGYuVZqb2QAIAA5NaKXoK1DKvsNESrkBcMTcTX3EZBgJEjuxfrbo4gGPEgfA1yGsJiI/IRCx+s4ziULJm6dYaxWN+Pq6zrNWCSs/4n4BIl//wrGPyfN+ipNFeUpzYCDfIwrA88aE2j8a7xHSe72znZYZGwCR2bhB1Fhqgq1Skj/XqQnmhiYRt1CCYA5ZBCTST93deJ3XuGPZ63WiivQjg3KMfoZ/5sDBnxWIiGP/EtmP9rBbyE8AAwBLepBdWXRrWsoNgFrrPEti/PwvefNMHGwuUQB8r//hzwhCLK8fM2tLX8JQ3p7QlV5AxX694LN913IHARFRNRV92IWR6eoxE6h1f7vm8y/9E8kGPK+dlsrDfF4Qq6qxAdCleUiTPSZPMSxwrqRxrH2etpzu5oXk8s1WfWzmmQ+RR0AiFeR+V8/Nsrj6xs6QJwDmskYv4jlFWQPxBMB4t72yiycAAmD+BMi1DIQvK2kqvZd7Hzt29yy5sP8fiATgt4UX9/+riDxIJCL3HYF0dryT4CD3Dk6CHxAF4PljorEnceUt2w0TGuMvjKf/AS+uO6EkWHfK8YGXiUgYsAGwPPNNufO9ePni233TBE/7hQcxU/oiILmRen/UsWiJlKXsN0In+7OuKsYGwJR7Ic2gJ8oyb5PJeTYAxs687t0JAgCAdgvph18Hl+2Sz5y5/lCxLn7Ckc8iDxabrxMEoCgzsPIUwFh1MHw3QUDO/cP2yp7wBgIOvGBS+0e6h/d4ldt4baqJdPshSQa8UGdn5WG3zzDJn8Pb/zHj1LrAlKdpF3W+ATmbS31KdhNPHdeztTnQn3PngYRqSKX24L5DvPFxndiTRfXg5xW1d0qyVpoo/6jCgz7cYv5tshtGkxOYSAc3OLowsB5EAQBKM/8DeRooZqXKxu5N+m4RodeKZ2tnUxNf/gEFUdED/QwwXyMdTBAqGwBp1COxiMe0rk/vhgXVftu4T8ALxs3D0ccl6/Y6g3DzvOrRrcQBeKEZM16xVUQ2NN4jxHi9pnP8bOq19SF7AGf6p4M3Pw33QY1tYojalGVU83724VnDtpM9QDJGXj1pi4i0Nj6W0/iHD46v0kToqTKYW/z6sCD9cwpUZJcvLY1LsbdONgACQJSazdfU8LQjcKHv6DHq8scPL9N9D0MbQ97ETqUfLpt01BaqB1AMN17S788i+k8iEXEeUDlm9Iy244lEeXvCvHuBMAy+z10DXigILMaTuNL4cNzdY8avdSE/cwcc2MN8XhBZL0KQJs3kT8rci5c6V9I4lmZ7X63B8zXR75I7QOL16IHi1sdU36s3ueNBo7Pf0/H3XxoGIrKTpIoRuCbpSRQAMH8C5FomfUf3boPKcq3VqgWiOpK7HnP4hfz8L1DAgb2EIETvO9QCngKIvFKyten4I39NJIAXrWlqtX/4fg3ZboCoe2G9vVuf7jeRYcCBRlKS/5imHB94GV9We3jPNOo9Jt+LNWYzvm8pbEzUpI5lj3z8ijN/R1YACY96tQeijuuoT0WOW28swWM1soY7wBNbe1Wr1YAMSnPtXbSn/DV+PWwAjJt0NZ4ACACg3UI2Qg0GluVa7zx8/SkiMsDb3j7fUfr7hRf3/yuRAApnMSGITs3eThSQR/9gIj9ZcI7WCDTwQk+86iVrRaSW8vjzd5UbvzatvHLaUD7fBw40ztUc/3nsNH4OTxutdTwBkPkJJc/B5OtTspsGD/g+FnxfRRlCQMLCUB5JY1xbUsfSg59X1N4pwVoZnPF4z0PJoKTngaTmO21gntSGerY0J6pAlA2AsQpdhScAAgA9CZANE2spTY9VC8Zwx2Pj6X9AAW3ZsX2ViGzb3+yAgzZxbyUGNOppHvNAI9AC40lcwH4sOEdrJrIh2jqIdXvX107NAQ4q1LWNHiL25i1N5/gZYAOgf/cMpcs3TbAP0gTzWvMcPxYG8n0yBkhhyaH2eDJjOY1/+OC2HYfwZOUs5ha/PixI95wCMVc3AJrTsQ9C4QmAABCxZvPhCDztCPLv+ULtU57FpIwmb2J5ImzesoCKARTPqupxu0TlV0QiskFnz9jwUsJQ3p4wnyet2KbKS1p+z90CDjjQYjyJK9/NvlkfM2ItqklzB08KBg42poJ9nwDI55NdYgNg6jSTP/GpF0cWN14b/lPLNN806jne+V+zhj1KzgDJC8Lg8WLXx/Teq6nGBkAvGp39no6f/9KQnwCO3XwoiyAAzJ8AMhq7YSk2AI6d3j7IRE7ihsdKkp8vm3T8buIAFHUa0JuJQvQet1arvI3gIONkXMrP/wIHrddrfb+EbDdAdPUhjt0y/9Ov3ERiAQfro4OEfwK4FB+u8kW1l/OTRnw9+e5bT5HVsbKvhZrIIc2EpyIDaQmD1XHGddSnIsetN5bgsRqpqfv7u1ArfUqfPl7NSf6fU2Ciu6hacSKnfQgCAKBcIrS9fD6UbKto5fjwNWwKz4icPeTa3tFZ+1+iABS4PoY8ATDW/KnCBkBkPB/bQqIAHGyQWGv64zDd16c7cUWe6PiiG+hCrbnW6v5ZpvFzeNpIret+3bl3NJM9zE/wdiWcYE4lWZ801TEVhnYD9x5Ix7BvnLteRHanMa4tqWPpwc8rau+UYDfKQ8VixjjJjZj1nFM275f+fBmo2Q6SLU56GhsAAYCeBMgmBVUPK8lYO4O7HUvraVsH/JYwAMW16NN9HxDb31OT+FqoC2wApFGP8Wf1H/NFI3BPzz2VldwT4KDDqzW1DRAlXLdXgpBNx0AXekjv1jya5qhPvHGtq998ZDe+rPbsnqHkayFN5ljmzfjZZ5Pzw+deOfw+cgJIq9qoicmaxGtXYebcA19TUAvYU5RT3qT/YYGL5yQSSCBbSZgYsTeeAAgA+SzuQN6Ur+8wLUHfYaYmyW4AtNKkjV5frWooAIpeKHkKYHTHj5zRNoAw0ENm0zvYqh9Vj9pC1IGDivkkrjQ+HPd+x+C9V3/u+IdJKeDgqtXjdons+x0YT2M7uN09Kt3JnrT5Nw/xuX5+uWJepaxm/qaqxlORgfStdm9eUOffywLrRur43Kr5168FYvIU7WR0IU8ABOD1hMVHAIBXzHoU/RJHzd1woogM5GbHSA+t/ZgoAGXo4YJfE4ToPW7FgjcSnALNeW6P0UXcIaDLxrW92LUomZ/cszqOqSJLSCig7tqzOZPGs1A6m0gcf9Y8z80fafy0Hj+N48v6Jqv7aankhu5zyCixCVRuJJuA1K2PM66jPhU5bu2yBI/VSH22fd5Nm0mdLOYoF/uVfM4pEDX+dXI8bAAEANCm+dZveUrFir9I6Gzg6X/lzrV/LJ428HZGCVACYfh7ghAnbnIqQUAmXXKtwgZAoOu+fXMm4zHl16ccozrP2VaRUEC948o2e3CSKdQ6jV/rdoVsAGR+gudNV3I5lWR90uTHlEr7of/c8gfuOZB6P7UxrXGd2MZirfd9sqlRIiISGj1VAzFOaiNmveeUzful2+sFYvoUiRanxrEBEADoSYBsmJbgXwmpvJs7HSs5fkIQgHJY+Kl+/xCRDdl8VFAcgcppRIFGPfqf1X/MvSPw4V989ojHuBdAF8Nu7yac1DZAlGfd3rmrZyf/MACoXy4bAKM+8catrp4NgP7dM5R+LaTJHMu8GT97L9h08TkLzqmRC0Dag7aS4NPcs1i4Zb041AP91/RU3t7TtM8pnesJVNgAGCf2GshRBAYA8lrcgbwpWd9hxd4AeMp11iyi/0LeRFcRfv4XKNnS9I9EIZpQ5FQx459y0EOm2juY6P8RaaAOQdjAJpw0Srmf04OK3PU/l75iKwkF1G1TXj2CvwuPZr6szqqiF7y3RnK5Yl6lrGb2pipyM/kBZDD8VTbmOS9k9WTRpGsbPwHsec+l/vVrgWjo+E8Au9lOmrEBEED55jk+AgDy6oaK/RPAA7evP1lEenGnI7vvposG/o0wAOURmvC0n+ht75Fnz2x7CZEoUl/k4kmFbAAE6hD03bxZCvLBQdQvoBrbaPTCY4aivyWbgCjjKUjhCYAF//clys/VubzAOXi+p/HTevx7Kl/WN1ndT0slN3SfQ9ZzPVYR+iIgk2IVtscd11Gfihy3dlmCx2qkPhs9VU5zVNGeEBhPoBbwBMB4WggBAIA2zcN+y0/FXiRY8FYP+2gXlg6LGRpA2ca93U4Uos8FYRjwM8BIN/UCYwMgUIdvjD+1Q0QyeXKd10/26mpto8YX3UAEQU4/AZz84I9TuzRWrQsqxtNqmJ9Q0AWyJXiseLmb6Ie4D358xpmt3GsgAxVtlxTHdWIbi7Xe98mkRomEARsAG4xxIhsxI5xTNu+XXq8XdFgnGwDjOWLc9VYhDABATwKkzQqefabyVu5ynJoULCMIQLl0l6a/7P9zAb4W6gIbAGnU0+zvV//8U/0f4R4AdYu1EceyHdcuq9W6yy2kERChfpjl/ytYddYmd7p6nlaT+PwEuLYWKsSVB/yjCCCrRUinbPSv3mju7xdKyD+qKPyc59Y5Bd3EniBRYt23YNv69UcSGACIhw9HQN7U33cEIrXi3lRTkXQ3ABY0b57cuqUvPwUKlMyCy458SkQeJRKRJ9aTiUH9fQc95DOvrzswPP0PiFZytsbv0flXeSLy529c9lL+QT8QpXKobM+3p/BQJxsAmYfg5bpGk8lxy2i8NPpznaHYKrICyEZzED6VbL/j7JNFkz1vFXoq3/s4TTPHkj9usKP92I3ur0PcPL2OivVloAAo2zzna80GfGYiYVGvbcwVm14uIi3c5chFfMWqqnYSB6CEo9/0bqIQeSZ9DTEoXG/kzphUNgACkcav6Xa3zkgzO2ZjG4f0mf+XJ90A0cfkjmR/CrP4wiDg169cnoc02WNaxDdl3OS1vtHMj3WwP03s5zr3d3Ct73qCCn0RkJUO022NjGv3NhYnWZ8P/HeBKD2VE2v08lxPsPeLQ54CGENFhQ2AAICSitD28o9jEwi3FfYJgKadb2NdECtySxkYQEmnhCD8M1GIOhdo37HT2wcRHKTUzLABEIg0ZGxHAVa5sV6fxNomFLmTLAKiCTXcnulAdfyYbN4q/nzDPUZXNSX/p3Ulcm0PfnzGma3cYyAbA2qVbYnUCM2gZmg9tUkz6cdCVb4h3e89TuMfKzTa9zb+jx2y/rv9Cfb+z3bSLc6IDQcSBAAAkDrVAm8A1Ldwg6N3obXmcBlhAEo6JZg8cICKSnAOGreApwAW/y5n+md7bf75p456kNgDkcTeAGgRx3URZ8ZQ+IcAQFSBiRsbj+vsOdjs5R/uAbxdC3l8vjwVGcjWqd8Y3yEiu7OpN+rosYpYj5nzinZOezcAKhsA4903niAAAA3w8sMRejfyJodcM5FagS/zjeRNxJip/GnZpIH070BZ58HA/k4UYsTNwlcThXL3uPG+TO8yMH8WVb7zBSIInrcBMKunzxTIjs2vehmbjoHolSfRDYBs0KNxBpxe12gyOe7ez3W++KlO4R/IBiDzKXB7sv1Okk8W1UwDgZL1cZrmfU/2uIGIiJl58AWig8skNZ4ACKCU85yXNRvwmRVzA+AZl28+zESO5wZHE5osIQpAeXWv7HlIREIiEbnx5QmAhWuPnDiHP3MngIi9rNp2984qu5/xbGzjkP51wTnFfTo8kNp8bbojyXEJODEPabLHtIhvyrhxO1csrbx70Z9aEseq4/T2dz2mlbvJByBz2xoZ0O5tLE5yjqTHdH+NXo7r2fsEQGsjieLcpmAwUQAAlFeE9pV/ENNYz6FWyI0ezd33nPJcP8q6oO4G3sLljAqgvBZMG7pTRB8nEhHnAhU2ACKFdlj/QhCAiCXagu1OD+uUX9/g2VFzgDgjx2op/gSwenLMPGsX8phvuMfFz4lGa0r+T+tq6D12h1sOv5+sATK3LZEa4cB3OF3/6gNfaqY/36XxjxX2PW60eajxf+yQ94bRp79w1YCfEIu3cuQJgAAAIAPaWcSrCsLgNO5t9EX21m0D+BeuQOmnBXvkAItUYnNgrxp3vVUIQ+EHR6Z/JpUam3GA6HY18scWcVx7PTO+uDZpwDoAiFM3LOh0dlw3Wuvqfj1fYqeeZ4QAmS1CijLOGzrfe8d/49QOcgjIeNSa7MxuPm2wpmme9ZG+q5wxduOceAJgA/fNVAYREABIqpmjrwAOlGsqtruQl6fGBsDoNfOPq6rF3BAKIILQ1hCEyHrseuypowkDPW70tcoBA7O75Yh+fyNKQNRxZZ2NfyZQzoKlys+OA/EkvwGQp7EByH+dkmar5OrPdT57LP5RBJBP7ek42LjO/8mifLCFdHIu/fRK7uCBiEhgsrYgLU3W+AlgAPCnZoPs8vh6dVdB7+Np5E3E5l3lFioAANNgNVGIobN2PEEod0+YcC/wt2+MV546AUSkZjVHz8zZY+6tXbWOsPs9ZBAQXaXSWatznAF+zRma7DHZ2Fqs/LO0c3mfpy2nu/HmhddjbAAE8mDSwFouyY3F2c9RlkkvAPdjrM5fTyAiEnqzAdA5vd81b81RhAEA8yfK3PGTa5kM051Fu6axV23oLyI8iSmqmrEBEICo8ATAOH2HBnYCgUGCSfZnYgDEKc/Fe5p1RhsmHv1GddAOMgiIMUat0nnQJjGNxtPJYyZSi1D8+Sb33OQec9+e97M4+/+/aoUNgEA+Q7Mz6WGef01T5jyP5juLeV8tZk742C8HIiKVUNkAGFMlCI4lCgAAIE2hFe8JgDWRk1JciBZ0fS0d0ie8lREBwFQOsgGQr/IOWEdN2ACIxPoHtfAvBA2IIWj8CYDm2Oszqk2PkjxAPM3NHW49ebTOniP52sWX2Kmv03yeb+DHIiTnnI17zgn/XGetWWp/JXeA7IVSzwbAxutaYk8W1YOfV7rzMH1X+nFy9wmB6W9wPLBARGTn5sHrRaRGgkXPJa3VjiUgAJDHQrPUa3OUrO9QDQu3AdBCeS03N3Iu3LVoPE/9ACBiGmwiCnHiZvwEcCl63GQvwg50TJWHSBggzpja9wmAqX35XKh1uz1C9gDx7NnTnMp3X2z2ApBvT9VF89NwH5Tkz3VqzOvZ77Ee/vCsYdvJACB7gUmXT1X2dGMxUqWcU4bnFIiIrKpqp4hs8Lmlya/S6bEMWgDwpGaD7PL2WrVwPwGsks8GQJ/zJjT5HSMfgIhIc0fIBsBYk4CyAZCeMMFeIGAzDhBv0Dr8j9Bd/hlPag4Qu+zYrrp+ro5PMeHlnKHJHpONrcXKP0s7l/XF75Puhgp7+i3+wf0HcuqpVBv8CeAkNxZnP0dZJr0AnI6xNnpO6V9P8Lz/nZ8BjjfUjyUGAJg/UfK5kFxLe4ia7CrgZb2aOxuxcVe7hSgAeFp3NgDG6zuOHVe1bgQGSTTAQY+djxEGIM7qsdEvjbxfFcd6PU8ABBrRM+yqSUyj8XTzmGC+ITeLdo+Le990v6etpo+SJUBuFaozjWGef01jXvNpvrOY9zXPn+XNUtPz/ve1InIaqRa5IBxHDAAAQLqNcLGeAHh61ZpE2l6ZbosmhftnyGGou0bNaj+FEQH4oznJg3U8b14I9lT2Vjk90MzBh1f7VenstvFYEfk7oUCD/cO6BdOG7iRgQIxhpmJJ9OlRZ7q0X592bVLjCYBASXuOhGvjC9+YVUMe94CVGzIqCKnmYPRzPvD7RDuWiT1MzgC5VauwvprReF177n0aPNYL/nzfY0XtnaK/OdKdB9OaQxs/p7g9XtjgmTc9L7vXkIOxvIQQAAA9CZCmIJBtRbqe3n3WvzyUoDt3NmLJUVneePvf1cqaBUGs5boV6mqyUZL5M9ERW3l+3GhAYt8T1aOFDYAl6HGTvYinP7R73jFN2IgDpNAapPLlc0HW7c08ARAoRO1icxiA9GvQ85qfhvugxjYxRG3K6nkfU9ZigDv2P65921iM/HKFc0r+nJ77CeDA/ulXS+NA7J8+lZc+/RQbAEAjNZtWDJ52BJkI1Z4q0vXUVF9L3ri6DiM65A3Im6LfEz2aKDDWGh6bARtxgAI3xC4ec/NV1eOe5N4A9O9gzmDcIJ1cUW9SViXkCYAACt4LwOkYq9v3PXjuPJUPL+Pd4G7dW9YcSyAAMH8C5Fp6wi1FuprAgldxT4E8OfQPqoDMcy1kAyASaM30UYIAoNEOq/7XU3MAPxYkLHLgZjpbxNw08t27niKrY9X3PilsTHzukNZNhL4IKMCkZYmUjK7/2BI8VpY1lfmuyP15uuf07AbAGh9exr9FJicQBQAAbRrSC2/TlmJlS5hN78RnkSjGmg1AknOQ8gRANF7TjX9EC5Ri1erOKtfWc/cAGpPkapc6WuuYn/ybn5DnWE/yfSyjc7bGj7X+w7OGbSdfAB/mLU3wfRo8lh78vCyDa0GyMbZUc3ffc7KY15NHz/bsBsCm2k4+vIwpVH05UQAAehIgvTSzLQW7Iv7xBACk3nfwtdABQngMUShLj5vek30qgT1OkgDJS20DhHofmE1kB1DAWqcRX4/CzmdA8vmmCfZBSW5iaPBpXSbsZQCc4+rGYpQ9B8vxYcG+nt0AuGzS8VtEfPowwZ2frVLhCYAAkETNplGDpx1B+g1brVacDYBmKiIvI29cXi8RHfIG5E2h8QRAxlrDr1cL2og44EzzWvhjqko79xkoTk8B5qF8jsm6l/xL8ViZPcDQ1nHPAbg3l/KkmPTjpA5eipv3PXjR//9hEi/WDX4FQQBAPwSQa2npse2JwmwAHHH15sEi0ou7CuTNnX9QBWSca0P3bkYHYtttnTyNC0AiHVY9rzeVzUQW8GVBQpsJN9PZUvlpPfLdpZ4iq2PV9z4pbExUEVOeigwUadKK+lTkuHORJXisLGsq812R+/P0zulFGwD1UVIsVlaeSBAAAKDtTakP3LWgeuKewlxPreOEjOMHkGsAnq/7e7629UjCgAZqum3p6McXT0BJVq1urHJ1I3cOoDFJtnapg7WO+cm/+QlFqin5/1xn18cKTHkqMuDVvKUJvk+Dx9KDn5dlcC1INsaWau7ue04W83qy7tmCF15s+AiJFUvLyPmPDiAMAEBPAqSwkirUF8wV0xO4qQCQVd/B10L7E0pHf6LAgGngmE+tqmonsQXSWv6k9HqP1+0ahmwABIpa6zTi61HY+QxopFmxro6nyZybZXSddsC1vNETAR7Vr/w3FoM5tOAfFuzHi54AGDxICx0vHzqk+2sZWADQeM2mUYOnHUGaNhbsXp1A3viwXiI65A1Q4HFcCdkAWNdcUPwaHfP1fOkElKJgqUNXxxMAgaL1FGAeKmIzzjgoQv6p4ykb0BMBhZvvinK+PCkm/Tipg5fi3n1vesH/r2IPSI20i9VySPgaEVlJJAB/9N60+aYd/Xrx819AxmxP94ki8iVR4ZOh+nrIov3E3DHcVcCZipz/IrUkc4EDkcbzc82EDYBoJJf40glAzHl//41PV31Cp1SoO0DG45JFDrxf8+x3HKhohNysbx1LvvvyWUJWn0s89z5J5sbTx6oEIT8BDBRs0nq2ZjRUMrr+4/prYH0nwme97s53/vQr6ZzTCzYA7tnR+WD37k1kWJzbY/IaogD4ZUH1xD0isodIANkaeeWG3jxdLFLjW6wve1SOybzP5rNIAMALBGwARPy2wtgACJRwTZbrlzsVCTdzF4DSdyAS9YONrmvXC4/JF9n+zTfcMyRdU+LlVJL16eDH4h9FAD7OW41/OZPYxuIuN8pH652Qf88btxeK9nfPnVM279eYF/wE8Kqpxz0pIutJrBg3TdkACABAnY0OX7pHane1vWAJwBMAUez1KeBcrvHB1L4hMXoRBkzsPzMRnjoBuLfGjDSufZsZu4ns4i4DBa5dGvH1cH++4Z4h67VLJsfT3Mdbc62TtRhQmvrF+aII9zT7cwr289/dT3LEum+vOuW6O5oJBgAAXUybKv2y+lCgCKxAT3sYc13rISLS16344sCDlegAKOwang2A9ceq8CJ/kauyhcQA0i0ulsIxfS6CO6Q7v14B+NAjEDLmNppxxkGO+WcZpZMl8h7xTmbnrm5PcK8Bv+a7rNZ25sRcyqZCf+PUyD8edut69rMBUB+gnYylR79w4KsZsAAAdDlz86V7lHipFuanDcIdPP0PhaljKPqan7wp+s3oRxAYaw0ULTbiAEi88TlY7RokD1J3gFR7BL6sRXnW15bKxg3GkC/rm6zup6WSGypNnb13kxFA8SatqE9Fjlu7LMFjJV2fkey98adfSf6c9tkAqGoPkDjxhLXwFKIAAEBX7czzfnaPz4fqaDBkY3FufuXoAvXRQEHwUQVK1YQ88z+PJBiI35sZG3EAOqYsO6xatfqOTu4A4Gvjme8xLeIxWR2Wer4BdaqBnNLUc11EwvHfOLWD+wb4OG85tLFYG70evmhKP5eyeMpk1L/TjN8vvn02ANZCNgDGTkrVU4kCAAAHmyxNRaSFQERoK83WFaiD5wmAKMGgJQRwMdf4WuhFDicEDJi4f6aB8tQJwMmlRrRx7dHMyKZjoAy1SyO+Hu7PN9wzZL12yeR4mun1Gz0RUPL6xfmiCPc023PaZwNg0BTeQ2LEu28qwgZAAAAOYtiVa44QkW5pHb+IH6rVKmFrYS4mlCEunhYfxh6sxyU6AArpCEIQZS4o/iVapNfyBEAgi+KS1dNnPCiCbDoGPOkR4tcu0DiXvBlHYrliGaWTJfIekU+GnggoST8Vt2CZE3Mp87a/cWrkHw+7cz37bABcMf7YdSLSVoaykcJpvGbE3Ie6M2ABADhA49HUNIAoRNO7uXltgXp67j8Kgy92SrDmJ2+K7HBCwFiLXa6MJwACSKfxOUDtYtMxkEmPwJe1KNP6Oo2f1mv8p/GQzfrGu5/rfA7rMMCZ+SX5J4tasieYQD2t7xqZ85xsdFKd39y6nn0F+38P+yuJE+vedOvU7q8hEAAA7F+lJv286LfcsXXBxH7binIxJprvBkByDTjg6ARKtG4XEenJP95D/BziCYAAHVN2HZaxARDwvvHM+5gW8ZisDos/33CP81dzvE7l/7Su/aInAryet+qsEVrP+zTYY2myvRPSyKU0/rFCo3+nGb9fPMEB/uu/kF4x60VF30QUAADYv5pqf6IQpZ3U1mJdj3H/UZbBCziYa3zN84LQ7TqMnwFmwMT8M+WLJ8BRFnFc+zAzqkgHdxagVaGrL8n8BDS6dsnseDlcv7IBEIAP9Rbc03zP6QAbAIUNgDHvm5q+hUAAAHDAqTL1DWDF+lDN1hbqakQHMgoAAC6odAaHE4VoTRyeaWiMn54CMiouWT19xvllFIBCD1oGedHuMY0zHK9BDadoTj/XafwEMODzGi//J4syP/v2eYBX5+TQpex3A6CaebgB0JllEhsAAQA4cA/EE+CidTfrinMxpirWj07Sx4FLdMibEq/5yZvCCkQOIwqMtVivN6sRXYAmJa1j0icAefYIjEsUaB7SZI8Z9ecdGTdu54qllXcv+tPEfq7z6UN0cn8Bl8qMJn7QzDcWp9ZbstnQzzV6nueU3PXsdwNg775bHuBRurENGTmv9RjCAADAfnuYY7zp1RxgooV5AuCwK9ccISLduauAuxUHKFE/IlaxQwgEACDtjokOC6Dx9OOYYH5Cee+ZehUHACXoixxodazLE6EfS39eSOMfK+x7XIuZw9bw9aVjvxsAF5xz4h4RuZ/0iqcW1HgKIAAA+2tsTF5KFCK1kv8syrU0aaW/K0EFyDWUN9f4aP15oWADIAOGmg4UsrxHG9fMjAB8bFWS3zhEs+PM/MTKDY6MS8v9nKlLQJHnucbfp8EaodQb5tBinlNwwMFjcgeJEe++mSkbAAEA2L9MNgAW5UOyUMJ/FuXGB7Wmo0h/AIAzS3cNehKFqEEjBACSWONEKy75f/kMANGx2avs95h5CC7mpyaYon7/XCeAtGmuaztjfvY+V7w8J0cu5YAbAAPVPxV/WZVaSvwLgxUAgBcaMXdTHxFpIRIRVOSxolxKTcPD6SR9XocRHfKmxGt+8qagN4GfAGasMTYB5N2kJPnFGAB6BDAPRf2TNH5aj80VvuRK6vdzn6ctkxtA8cpM8k/99HVjsTEfFmSNnuc5JXM9wYEPr7eTl7Gd+K6rNvQnDAAAPK+3qNVe4l2vlrPabi3MBsBA9EjuKOA6vtZCqfKdJwACADLpmOiwAJ9oiY8J5ieU9575+HPDAArdaznQ6liXJ0I/ltbNtIbuWfRzspjX4+L8dcANgG3BuntNZCcJGS+LK82dpxMGAACePzvaSwlCpBaybeXFA7YX6P4f4fF6AyDXUCB8tC4iIkHAEwBBTQfKPtMpMyMAf3uO5DcO0ey4thJjfoKfG/O0MNcPwM15K7Eniyr1ptjzoLtPCExzrBxwA+Cd40/tUJE/k1Rx75u9g0AAAPC8plzDTDcA+v4hmYn8s2AJcASjAADSXIMi2rzETwCXN9cYMIADa51I49IY6wAKUeuSfT1cv8fMQ3AxPzXBFPX75zoBpE1zXdsZ87P3ueLlOTlwKUEX//fbi7+sSi0l3slgBQDgeXOj6UuIQqSIPVakq7FAD6OT9H4QEwPyBuRNceJv0oMoMNYYmwAiNsSeHBMAPQKYh+r9E2UclDhXLK28e9GfJva0LgAOlhl/n/ppqR+PmufnGt3vcwq6SNI/kZexHT9yXusxhAEAgGdbnpd52avlxMT+UbDrOZK7CvgxWlm3oySNSYUgAABc7bDYYAEUbUHCIgdlmm/Idz97BO4bgIMLs66LDZUlfo7crXkuyac4JvV3mvH7ZZNrB98AqD4+AdChIqghPwMMAMBzTRBPAIzSpJk9VLDVYR+nzoc1G8g1oOyDs4kYgJoOFHr96dTrASD5niONL1Jpdnyfn8AiJO+cTb4+UZeA4s1zmuD7NHgsPfh50Tv5Pg+qs+eUVo930A2AN48f8g8RaSOpYhee4UQBAACRU66zZhEZSiTqV9Pg7wXr0Q/hrgJAqnU22mq19EKeAJhJrnERAOqdiTSfmYtyACDTWpfv65H/PQbyz09NsA9KchMDTRlQPJrg3JndE+QAn+el4ODXpCYmt9Byx86HM0+vGk8VAACUXt/t7ceISOZzotcNfiUs1AZA9WgDIAvDg91IokPegLwpSvCVDYCMNcYmUPzmtcTHBECPAOahev9EGQfkX3rH0hfnDX0PULwyo76eeAZzWkCepD5nqYOXkt85dZlxpnoLc3FsR/RoWfdGwgAAKLtAwlf62qvl1CE+sWzSwPZCXZLxBEDApwHr9ZofqC/H2AAIAHC6w2KDBVC0BQmLHJRpviHffblnxn0D4NQa5UVPFtXGj5XlvMYa7mBxye4pjhbzvrpx/4J0/zoIw1tIyQaSWcMRRAEAUHaq8mqiEKmD+HsBr8m9DYB8pgVyDSgzntaPeNg6ChR3FZby6wEg+XVkGl+ksoBlvoGnBcGZnE2+PlGXgOLNc5rg+zR4LD34edE7+T4PaurnZDH/No0er8sNgLvah94tIttIqtiVZyRBAADQm4VsAIzU+hVxA6DyBEAASH8CibRYLXmw2MaVWa5xEQCSGZepbZigHABIkTn2euR/j4H881MT7IOS3MRAUwaUZY2X/8ZioJjzUpcbAFdVtVPEbqXljp0Prxt97erBDA4AQMmbpNw2APrY4IeqBdwA6NdPALMwPNhwJjrkDcibIsQ95JsFxhpjEyjFHKglPiYAegTkz5E5Q5M9JuOgjPmnDf+ppTouAORbZtTXE2dOK8ScpQ5eSj7nFNR3fvp75uL4t7czDM4iDACAsjrlOmsWkVcQiQgNWqj3FfCyeAIgAK/X7ShaeukuogAAyBobjYCyL0hY5KAY8xOKdc+4/wDcqhkverKoNn6sLPs4aurB4qLO5ltR1LUB0EL9LSnZSDLb2UQBAFBWfbevP0FEukVq08r+eWhF7y3gVXV38qz47B3kWm5LayDnQbmTGAAAGu2A6JgA+LjYpHYxP8H/e5x1Tcn/5zr5EBfwqe+wBI9V3/togpelMa6HGuVaz2sN51S0c8rm/bpW1wbA3Yd0/NFE+HA8vtNHXfPYEYQBAFBGTYGdTBQi2dlzYMsjBbyuCrcWADIQ6bOQ8n4tZBbyGQeED2gB/8ZlahsgKAcAXOpVI9YmNns5dM9YicHBtYt1dTxN5tzIawDpL7b4hw/IOgfVg3HxnLo2AK762HG7VOz3JEbs+9Zck2AUwQAAlFEowSl5n4NnDf59C87RWpFyYNz15uXmPxaGB+txiQ55A/gt4AmACcwFxa/R1HSgKL0TP+MJgJ4CRWucmYeQR65oBn9KbgP+lplsntDGXMqc5cX91HzOKah/AOqv+NmqBs7E9D0MWABAKds1tVOIQqSIFe/nf//2N57+B6AQ6/bir1zLwwI2AAIAXJv3+QIKKMe4ZKx7qQifbGlX48C3jRswR49V3/tQCwHqT9eTVtSnIsftvSzBYzFHdhUXdTbfiqD+DYBqvyQlGzJszHWthxAGAECZVKsWiMnrYrVp5f0M4L7CXVGfPm5/TMrnTSDXcltaA7kJwx0EAQCQRAdExwTAx8UmtYv5Cf7f46xriiV4LHIXKH7fYQkeq7730QQvS2NcD180udbzWsM5Fe2csnm/g6t7A+DhRw69W0Q2k1SxHbqnIxxNGAAAZXLnUetOEJE+RCJCo2fFewLg7o4eTdxZAMhQpM9CyvnRuom2kSiIMWAAOFHDU3o95QCAi7VOI74exZufgNSaFU3w0EpeA8iofrGxGFnnoHowLp5W9wbABedoTUxWkRjx75upvp9gAADKpBYGr3flXHxp8Jua9a9Fy4OgW5O3P5TCwvBgPS7RIW8Aj+emiqwnCknMBdR0AGmMM19+cpMdgwC1i54CzEPwI//Mq2FAbgP+TnO+/Zw89aYcPVOel5Lt9QSRzi+wXxV/GZZqezXijOsePoxBCwAoCwvtjUQhknULL2hpLVy73ry9wq0FwJrfl5VrOXRohQ2AZe1PCQEAp2sRX0AB5RiXjHXWpm5eg3m3cQOW+bEc+rlOAIWpPwerN1Gfihy3dlmCx2KO7CouaT3F0cWn/GUr0gZAq+lK5uKG9Gjq7P4ewgAAKAtVeXNDbW/J+g41ubOI17Vjj7m/1qHHBRpaWgO+JbZ128gGQABAYh0QHROA/PFzeMxP3OMy3uOsa4oleCxyFyh+3+HdxmI9+HlZBteCZGNsDedUtHPK5v0OLNIGwBUTh/5DTP5OUjVQfPgZYABASZw5c/2hIvI6IlG/UPWOIl5Xbc+hNe4uwGcAcDnXSvfR+uZlk47fTZKA4gyUR90zHeUAgMetChtmPJpvuGfQzP+Q5geAr4UPKHAOJntOQYwTWExiNHDfzN515rXr+xEQAEDRdWuy00SkyaVzcv1DtcDsriLmQlDZ0+nz+fNhLAAUDk//S1IJPr+lFwDyGGeawrjkCycAfvUU9CA0zsxtyLQGaTL5aIm8B7kNUJuSrRFGvSl5z5TTOWm21xN5A6AGsrQsZSMlTRJ2foBBCwAouprqm4lC5DahkBsA92zfyRMAC7sO4+sIL1YgrPnJG7w4oTYRA2o0ALjbpPAFFOBej5DkT2GCsu/6NWTz03rIen1T0J/rBOBO/dE0xnUdG4sTnMSTntNCUsSzZs3/OSnyBsDeRz71O1HZQuI0lDYfJQoAgKILxN6SSBtdls8AVNYvntZ3bREvbevAY2ue3AMAjdZswAvhDmIAAMi7Y6LDAsqODcRwc75hfvLvHmddp/J/WheA4vUy2vDLEttYrPXUJqUfa3iea2ReyOYfK1jMxMnm/fYv8gbABeecuEdEbiYtG/LaYfNaX08YAABFdXrVmkzkrUQiUmd3Z1Evbcw64QmAAJ8BwPlcK9FH66Y7SQ5QnIEyLrmilQO+dAbgY6vCZi+P5hvuATTzP2QtBCDnedG3ekN9ZPL165yCeIPUlpIYjd03U/sIAQEAFNUhh284RUT6uL/YcMofi5oP1aqG4vnnmXwYCwDFYYGwATBpJfg8lF4AyGOcaQrjki9wAHoVv3oKehCSEci0BmkyOW6JvAfjBaA2JVsjjHpDz5THOWl21xNrA2BTWFsq3v1ktTmWGvaBcdff142BCwAoZltmpxOFaMICbwDcq5O7XNQBz9cRfqxAWPOTN3iubBkbAMFYA+B4k8IXUIB7PUKSP4UJ5DxnaLLHZBz4sr7RzI9V3/vQ9wCFqT+axriuY2NxgnMmc1rZ1+h+z0mxNgAunXjcelG5jcRpyFFPtR82ljAAAIooFHlHxGVBkfutetR6dQtuL/g17in8ugAoND76QJHwE8AAADc6JjosoPR9qSfHhGshNsdej/zvcdYJn//TugAUb1LUhl9mGZ2Kdfki+rH66nsj80I2/1jBYiZOXvNXEDvnTW4gLRuuG+OJAgCgaE65zppV5K1EIpJ7Fkzst63g17iD2wzwGQBcz7VyfLRuKttIDFCcgXKqe6bTMs2MAIrWqrDZy6P5hnsAzfwPWQsByHlezKLeqKPHKqPAwXPSwp5T/A2AFfsFydrwfXvXyHlrTiAoAIAi6b9z3ZtE5FAiEWn588cSXCQbAAEAbizLzR4jCmkElhAASGBlFLG4ZPX0GQD0KunWumRfj+TVaJxR6H4r6RTN9uc6AZSkNiVUI4x6QwOfxzlldCmxNwAuG3/0wyLylzKUjTSzI1T5JAMXAFAwI+gIovZ9we9LsHzz/ucW+cD9YElMdMibEq/5yRsPS1bwKFFAnLHG2ASQbZPCF1AAPQKQ4pyhyR6TcVCsXLG08u5Ff2pJHAuAW72TpjGuk9xYzJzGfFfccwoa/GueAtho8TD5yLjZq3sSCQBAcQTDU2mjC/wZQK0itxa/19btjA3A+9ULIUAxOpUwZAMgAIAOC2CcxeDLZl820qROiz8OmJ+4Z64kPLkIMCkm+5ZZ/Tww/Vh99T3Jpzgm9XfawPtprvNXQxsAzfgZ4ARqwpFbu+v7CAQAoAiGXdk+UMReRyQiWbdsUv+HS3Cd/jwBkHUZyDWUWuE/Wg939XqSnwAGAGa6uns1NkwA8HEdSe0q/kqMewY/N+bxYRjgr8aeLZb6k0X3eZ8Gj6UHPy/mYd/nwWI+IbCpkT9eed7R9w67ZvXfReQEkivifXvhc1Anish3CQwAwHeVoHO4GKv4SG2Bym9KcaGhbCczImXGn8zsW+VZbBVbQNiSxacrGQzPAgfZdPeyScfvJilSzDXjIgA0PtVrhHFpsVoqxjpAr+JarUv29XD9njEPId902H9+Pu9EGj6npw+QTO1ivABlKXxZre0O/D7UG/cmOhfvScxzyuBSmho9gIn9XEU/VdwWPYszslOHzV/zjhUTh/yGwQ8A8JrJCDqCyFaVpL/fUYwUzyZvVGzT4ov6f4OiAgCAW3N7jZABOEgXn/yn+Wz3AXzpEdigBy/noS7/JNoxGQfFypX67mcD/c/eP33ufdh4AxSvzCQ5rpPcWMycxnxXzHMKGj1AU0V/TOIk4mJCAADw2Yi5D3UXkeHx2ugIfVHh+s9gVUlSZDujJNK46EsMAAAAgJJ0/4QA8GicpfHhlC/HhO8h5meGuWfUFABp1QjL/i0dqWnUx8bnOY35d2nOq9rA+2luvVTDGwCXjh96j4jcS2o2bMS75685iTAAAHwV1HqdISK9iUQkrYsn93uoHF28PeHZejVXoSgbAAEAAIC0licR1wVsmADglDo/s6B2FXh+4p4hakFwJGfjnjO5DhSj5lgG7/HC99EEL1epTYXLyeJt3gwSCipPAUwglwKVaQQGAOArC+xsohB5FfLr8vQ+nm0AzL9VZAMgAMDbSYyLAND4UinauDTGOgAPhz6bvYowP3HP4G9tsq5ORJO5KMYBUM45MG7hy39jMetE9yY6Lc71pHwpiWwArITBj/yav83V03r/yHmtxzD4AQC+qVYtENPRLFgivr/Kb8uzOtTCbADMKG96jZu9uifVBQCA4veEAIqEL4uAMvcI9BTIf87QFP5EGQclzr/Un9a1z9OW6aWA4pWZ5H9uN6u5hjmNfsu3c0pkA+DS8wc9JiJ/JHka1hxqOJkwAAB8c9thrW8SkQGl7dViX4ryBEAc0LaOQ44iCgAAAEA58OUS4NM4c2TjFvKnjBu4dw+MhAdQljlDc/tj6mPieZPdz8Nbge9rkOBN+QmpmUgcz33XvDV82QsA8IqKjvNsWeCCfyyZ2v+R8jQ5Hj4BMOfevrmp1kJ1AQAAABxZ0rDKBeCd7L5IBfMT/BrreeagC+cMIL9alPqTRfd5H03wspR5tcTzoMU8pyxzJLENgLXmjutFpJPkatihTSLjCQMAwBfVqgWmjW4ALGM7qivKdL1WCZ9kKRQ1aNaXIAAAPG10uAgAmY/L1DZAUA4AepU0l/5xX6/pHB9dJ45ldY9BbcqtBmmC56TkNVAgcZ/UFrXwZbWxmNpU4iY8kXNy73oS2wD4q/96yQYR8eiLbHM3l1Qmj5u9uicFAADgg9sO23C6igzye8GSw/uqrSxVW6/B5uItdNN+DzYAAgBQ9J4QQN7jkp/xBMoh/rhk8xZKMQ8xdZF/eR5LqZ9A8cuM+nriKMQ9UQcvJZ1zChI9T5P/IfES0W9rd/0wYQAA+CBQeT+9d2Qdld2V35QpTyq7KpsZLdGEErABEAAAACgRvvgGfBpnbCBGeW6bRbxI5rP8a5fl+N4MKoB6lUWNiPpU5Lj1xhI8FrqKc3ZPcSzqfU10A2Dvli2LRaSd9EwkwS8cd71ViAQAwGXjqvd1M7F/82VZ4NA8/4eFl7ZsLVOurD28b7uIhN6duOb61v2oMgAAAIBTazlWuQA8w5fRzE/MT+6ppHAPshrr+f5cJ4Bi9B2W4LHqex9N8LKUebXEPa/FPKesciTRDYALzjlxj4j9iORKxPFbNrbyFEAAgNO29TlqmIgcSSQitqEmK8t2zXeO1w4R2cRSKEKeqB1LFAAA/k5kXASA7MdlahsgKAcAvYpDoj7xhk9ikk+ctDfccc+oTbnUlAOdiOYzbgCUpVjlu7GY2kQTXqSfFw6SD41+x8Nlkpu5ZPb5cdff140iAABwtk0L7KNFuI6sO4JAw+UlTZn1RbqYtPMmFDmOKgMAKF4nRCQAuDYu+RlPoByyG5ds9gLzEMqZf0rKAqzRDjK+fRvoFKZi3RN18FKSP6fENwAunzD0r6J2F8mXiGOfajvs44QBAOCi98xbc5SIjKL3jmztoikD7y5pb76ekRMpxdkACAAAAJQMG4EA98aZHWzlnsanAfCPFv8ajNwsUO1ytz+xQg0qgHqV9qQV9anIcSdxS/BY6CrO6my++SBIKQDfIT0TiqTK58Zc13oIkQAAuGZ3remDItLdt2WBA5P7TaJayu90TGydn/cst3ceeHr10R5UGwAAAMCldQ2rXAC+4cto5ifmJxfHpXl87snlFPUJKGvfYQkeq7730VQvi3nVv57XGs6paOeURY6ksgGwycIfmchOEiwRA/d0hucRBgCAc0w+ShBihC3URWW99sCCDSyFoq0MevfqfSxhAAAg1+mYEADeLVVTej3lAICLtU4jvh7Fm5/AEiS1ZkUTPLSS1wDFysNjsTgsT/yKcU9T2QC4ZMIxT6joT0jcxHLp0rHfbu9NoAAArhgxd+3JInZSka4pow8ftlrTU78pbeJY8X4COP28CfkZYACAvzMan4cCSKDiWCbFhZ/xBEopxWHKZq/iJ445n4zMQ6g/V8ydoQWggGu6uAPdcr8eClOpGvisz0mTv54gtUu08Nqil6cMtezZuXsygxkA4IogrPB02lj9ka1cNun43aVdFKq1kgVRB5uxARAAgCz7FUIAgFoEFFj8n+DK9othvmz2PL0Kew1Gbpa6p/Du5zoBuFN/UhnOL9qQr40fK5l6Su1qPG+0sXxL5d74cV9T2wC4fOLRf1KTO0jRhBJd5aJh31p9JJEAAOTtjMs3H2Zi/5HRsqBQfXSowU0lb2ge9/bcc8q10IQNgAAAAIBrS5uUXw8AyePLaOYn5icXx6W/90wTPD/qE1DWvsO7jcWaxPXApZ7XGs6paOeUdo4EaR48DOxaEiwxh9kuvYgwAADy1q3Hno+IyKFEIrLO7s0dS8scgEpn8E+WQpGXKmwABADAhRkZgFdS+zKdcgDAxVqnEV+P4s1PYAmSWrOiCR5ayWuAYlWgxRaLw+LFz/97muoGwMN26o9FZDPJm0wuqcqkd121oT/BAgDkO2XZuUW9tpQ/fPjNDecP2VTm3Fl4Sd91IrKbvImEDYAAAL9nND4PBZBAxbFMigs/4wmUUorDlM1exU8ccz4ZmYdQf66YO0MLQAHXdHEHelZPFjUKEw18HuekyV5PqhsAF0wbulPEvl/k8pSxQ5ua93yWAQ0AyMvwOevfZSInEolYXdzPCIGaiKwmFyI5vlq1gDAAAJAdvnwHAKDI4v8EV7ZfDPNls+fpVdhrMHKz1Osb736uE4A79SeV4fyiDfna+LGSqafUrsbzJq0Yak5/m43Uv0xUqXxd+Ow0yYh+cti8x9h4AQDIp3Ewm5LDsqAIfXRnWAlvIINEROSf/rZhubxr77v6tL+EtAEAAAD8xpPAAOSPL6OZb5hvXByX/t4zTfD8qE9AWfsO7zYWaxLXg3R7oCyeMhn17zSTHEl9A+DyCYMfFJHlpFtimlQqcwkDACBrw69a+3IRGUkkYlm1bNLAdsIgIiKPsRSKuIgwex1RAAAgb3whBRS+745YDljNAHCqdmnE18P9+YZ7Bs38DzM4HusqgGJVpBpBTSte/Py+p5n8nFhodhXJm1wumco7z7ym9WwCBgDIUkUqF2bVO+QpnQ/VdAEZ9Ewo9DHyJjI2AAIAPJ//CQGANHpuTaFHp2AB9Cqu1Tq4njhW1GQE/VaKKUqtA4rRMGU1lrNa2xnzMw18HuekyV1PJl/i3zxh6M0icp/nLY1jqRPOGjH3oe4MbABAFkbMXddiYh8kErHw878v7GMfIQqRu1Q2AAIAspt1QCQAxlnyqyAAzo7L5J7GluRPYQI5z0OawjFRmFxJ/ec693naMvkGFGbdp2mM6yQ35Gu06wFrdMdk8xQfVRORq0ikRCvlS2uVHlMJBAAgk6ncZIKI9MxxWeBvr2byW37+9zmh1R5kXRAZGwABAACAAuBnHwFEo54cE66F2Bx7PYp8z5Lc/Ex9ApgUEziWM/MwNa2R+SduDONuHreYeWgxcziteTmzn/ELOnf9QEw3kOJJljj9zLuvfnwQkQAApOnMmesPFZPziUTc+dp+RBSe09TR/OALe1s+MqzD0aO+9uQRhAEAgPw7OwDFVvfqRFnNAPC3VaF2eTTfcM8YvM4ck7UQgPRqRPY/JawJXi71sXjzi7/3NLMNgMsmHb/bVL5JAieaS72CIPgaQQMApKm52c4Xkb5luubEFhsqu3bt6f4Lsug5Cy9t2Soi64lEtEwKune8ljAAAPyezQgBgMbrgUU8GE+fAeDj0GdzmH+JY0VNRpSyNlnq55TGuAGQV1GyDN4jy7WdMT8zSeZxTgldSpDppVY6rxGRPe4miJetxofOnLf6/zG4AQBpGHNd6yEmwk/Ox3fjLy878inCsI8Hi3hRqXaSZvwMMACgCDMakQBQ0nHGl0WAy+MyuQ13SX5hDeQ8D2kKx0RhcsXSyrsX/elz7xNwa4CirPs0jXkkyY3FGu164Ol6uJjnlOlsuWL8sevE5IckeLJZoKrzq1Wj8wEAJC7cIeeKSH9HlgXe9Wpasx+QRfu9Vw8ShKgjIWQDIAAAAFCI3h4AolBPjgnfQ8yTJ4t/DyzjhCdHACQ/KWr2b9lQTWcLTyPzgcW8mXF/6tli5qHFzOE05snMM86aKjNFJCTNE3XKrS1rP0wYAABJOv07j/YwDS4iErGXIW3btg5YSST20w/aizcAmnc3N4c3PYXMAQDABRVCADTE/S9A6l6dqJerGQBFV+dnFtQu/7BBj8Gb/zHV0zgA8KGOZTVvWULn+8I/p3aRz27I/BOXleMHPSAiN5IwyeaSicw889r1/QgeACAphzzZfYKIDS7r9VvjB/jJqqp2kkn7aUDNeAJgdK8Z9bUnjyAMAACv8XkogATqgUU8mGV9ggDoVRLAZi//EifZe8Y8hHzTwVI/pyR/rhOAb31L3MKX1drOmJ89mugK9FO+CVxKkNP1Ti9TecpIXw07rqI4AACSMHZ6e29R/RSRiC+UkJ//PVAr2GT3stCN3rdr911vJXsAAN7PaEQCQGnHGV8WAUUal2zQQynyXdMbQ/A/VyytvHvRn1I/gQKuazSNeSTbjcXUpiKsh108pyDHv45pxXlDb1eRX5PkiSfovw+bt/Ys4gAAaFRnj85pItLXjbOJ0Ea706vds3TaoDvIpP1bNHnQ46L6BJGIKNS3EQQAAAAAAJKX3Je4PvyMZ1rHhO8hZmMr94yaAiCtGmHZvyU1rQC9tsW8H5b6eWrG71efIK8bXDObTpqnUcjsmtOvfPRwAgEAiOs989YcJSbTiEQDjazKt4hCFzEy+6vn69U83vPtZA4AAACQwXrFsdcDQCR8Z838xHzj7eDN6mc0Xc1ZihjAPJdFjbCkjqXUrmI3xurgOR1cbhsAb5549EpRu4uES9yg7t2av0YYAABx7e5s+oyI9CESsfu2XbWw44cEossm9C9xlnYl9/px89t6EQYAgOe9EgAKQcP1wCIWl9S+fKamAfQqKWIzsn+Jwz1AkWqTdXUims+4AeCmuE9qi1r4stpYbCwCPZro+HnhZwS5XnKoX3G5PHmcD+OHz1vzLooEACCqEXM3vFTEJhCJ+B2BivxixbShm4lel7H9K3kTWdOu3fZmsgcA4P2MRiQAlHac8WURUKRxyWYv+DdnaAp/wtxW5vxL/WldSv0ECjtHaRrzSLZzErWpCOvhYvUxuW4AXD5hyA2yz9NfkESWmsq142av7kkoAACRhOFsEenu3olFaKNz7tVqJt8mkeq5oyE9YJwhavovRAEAAAAAgOQl9yWuIxu3kD8t/jhg8wP3jDoFoN4akdWcYYmUJWqaK7123KdLWurnqRm/X9eCfMe4mqh8iVRPxfFbuwefJwwAgHqNmrPuHSoylkg01L0++v+e6r+KQHTtUKndJyKdnq9X81giv53sAQAAALJY3rn1egCIRBN7EUo2PyH/wWv5FARncpb6BLgpdKpmaILv0+CxlNpVkMY44/koneMGeYd6xSeH/MJU7iHp0iiOdtGIa9eeTCQAAF0Zd71VLLQriUSD7ZrKN6tVDYlE1xZMG7pTRP4eZ2lXcqfxlGcAgP9NEyEAoA3XA4tYXFL78pmaBtCrpIjNyP4lDvcARapN1tWJaD7jBoCb4j6pLWrhy2pjMbXJp4mOnxcWcWADoKhaYOrgUwCtCPnQFIb27VOuu6OZYgEAOJjtazd8TFRfRyQa6AhUdtUq9i0iFqkPvL30eRNd913S7W0kDwDA+xmNSAAo7ThjxyBQpHHJZi/4N2doCn/C3Fbm/Ev9aV2kF1DcOUrTGOia6bXT2xWhqBdnoglcOInl5w3+GU8BTM3JLZ0Dv0gYAAAHMnZ6e29R82CuiNBG5/OvIX+8bNLAdjIqglBuJwhxck1HEgUAAAAAANJYcyfFkY1byJ8Wfxyw+YF7Rp0CUG+NyGrOsETKEjXNlV477tMlLfXz1Izf7+ACN8a5mop+mXRPaxDZJWdeu+adRAIAsD+dPTo+JSIDiURjKhbOIwoRG9GgdlsB1qs5NHc2iuwBAAAA3MOGCQD+4Ytt5ie4OC6NHKQ+ASWeT1J/sug+79PgsZTaRc/rxjkFrlzamzYM/pmI/JnES0UgoXx/zHWtfQkFAOD5hl+57lgxnUokGl4m3LJo6qC7iEM0rYcMvEdEduSzhPTay0Ze0X4CYQAAAIDfsn86Vmob9PiOB6BEOSTqE2/4JCb5xEl7Qzj3jNqUZVGzro6n+YwbAGVppDTBuTC7J8ihSE24enM9zmwArFY1NNXPObpM8j6/VWTwns7aNykYAIAXNAIqV4hIDyLRWEegqjz9L4Y7x2uHiNxd1rxpRMVqPAUQAOD3jKZEAsC+9cDNDRD8jCdQumLkWE9BD0JuMg+hGPlH3gFlqBEW+xDq/bXD53tSjPsZuHQyK88bslhU/o/ETC3hzx4+f8144gAAEBEZdeW6USLyr/R5DWtd17P/L8ioeEztNqIQJ276HqIAAAAAAEAKa+7EXs/GLRTotmlX44DcLE7tSv+9AVCvspi0oj4VOe4kTg2Mev+1gbxRZ/PNBYFrNzsw+Twpn2oxnX3G/NZXEgkAKLex09t7m8rXWRYkckrz9z7JDvHi5/8GwHx6+7eMnNE2gAQCAAAA/F618mUR4N64LB82bjEOGDcujkvz+NyTyynqE1C8vkoTfB9N8Ho0wcuidhWh57VMxogm2ns5twFw2YShvxWR5SRfag6pSPi/I+Y+1J1QAEB51bp3flVEhhCJhm3rlI6vE4YGFldNtT+ksYQsgUArxlMAAQAA4Lnsn46V2gYIvuMBKFEOifrEGz6JST5x0t5wxz2jNmVZ1Kyr42k+4wZAWRqpfI9FbaIJ9+XnhQMXb6dJ+FnGUar5cJJVen6NwAJAOY2eve4NJnIekWi8wTeRb6+YNnQz0Ylv2aQha0TkkTLlTYIt4r+RQQAAr2c0NssA2E89cHMDBD/jCSDf7oovzArbETMPwa9GjbwDUMe4ttiHyOYJbdQ05qyi3k8nNwCunHDMnSLyM1r6VK9qyrD5q4dTAACgXE65zprDinxLRCpEo2GdodhVhCGRxmQVQYjl7e+Zub4fYQAANPDZAAAAAJ4V/ye4rI5jpnGe8DK9CnsNRm6Wek3I+hKAWzXjRU8W1caPRQ1M8v5rA3mjzuZb3gKH7/inRWQPqZ9mBur3Rsxdw88/AkCJ9N+x4SIxeU1plgVp9lsqP1s+deA/yaokYmn/V4TOKgdNnUHwfhIIAAAA8HbVGuv1ANIfl+XDxi3GAePGxXHp7z3TBM+P+gQUr6/SBN9HE7weTfCyqF1F6HktkzGiiY0tZzcArpg49B8idg0JmKp+YUUWjpu9uiehAIDiGza77WWi9jkikVCLGNqVRCEZNZXfprGELMlC+4NEAQAAAJ6vrnzou4tyKQBKJOoTb/gkxqP5hnsGzfwPMzgejRRAsaJGwOX77X4OBk6fXTf9kog8QXKnmksnb+ku8wgwABScmTYFta+LCJu+Gwnjc/PybxZPG3g7EUnG3icpPlb4vEnn6KeNmbXxFWQRAMDbGY3PbwHspx40vgFCU6ho/IwnUPbalHd3xWYvnzpiTeGeMQ8h32JoGaUTtQ4oRsOU1VjOam1nzKU08B6ck9MbAFd8YuhmFfuyTy29pwPgP8+ct+Y8CgEAFNfIq9ZPMJF3EYmkWgP9KkFIuvUtwM8A5yTUkKcAAgDitzWEAAAA4Hni/wQXXwwjQnoV+BrI9zKvCa00AwFgIku8Zmga75HkhnyNdj2oI15F26iX//UErt907dw9X0UeIf1TT+Or3n312rcQCQAonhFz171KVGYWrS3Mq99SlVuXTO3/SzIr4Tuquoq1b9yctI+Mu94qZBEAAABQilUuAMaZ8DQ4ZDUOeFJl8e9Z1nXKnScxA/Chl0l0Y7HW8z6axWVxnxueFxt5iqPG/Ls05+Nk4uT8BsBlk47fbaqfYmCkPu66BYH9fPS1qwcTDAAojlOus2YN5bvCT/8m11iaC08nLmArYk0r9u2H+ciwzlXEkJ1rNowkEAAAAPB4ReBB2x3tUljNAHCqdmnE18P9+YZ7Ro+kKRyzoH0cgDznq+Sf6AfmQM5p/wIfbuuKTw5eICJ/IL9Tf4f+HaEuGHf9fd0oJgBQDP13rv+KiJxGJJKai+3uJVMGLCUQyVs8re9aEbmXxXDcNwjOJYsAAN7OaHx+C2A/9aDxDRCaQkWjYAFlr015d1ds9vKpI9YU7hlPfkS+xdBST6c0xg2AbKYLza1vyWptZ8ylNPCOn1Pgx71Rk7BygYjUfGjpPfemp9oPm0tBAAD/jZrd+jYRmUYkEmxJLPiyqPL5Q2rtlq0gCLGDN3LkrNZjiAMAINYsQggAIM+VJiEAHB6XyW3QY6yjQKmgZbhI1oTpHoscAbCfmqFp1IgkNxZrtOtBHfEq2ka9fK8n8OXGrzh/0F2i8j8MgUzSefyw+av/i0gAgL9GXfPYERboj0SkUpJlQer9lorcd9pT/W4ku9LsQXR5ERqpvPr6QJo+QRYBAAAApVjlAmCcCU+DQ1bjgCdVFv+eZV2nyBGA/iO3Y2k9tVPduSxy5iD3qpGnOGrMv0tzPm48ToFPaRF0NH1GRJ5ggGQyCK9+99Vr30IcAMDTDwT2dLtWRIYSiUS7yS9XqxoSiPTUmrfeIiLbk2mry9i+2fjTq4/2IBAAAADwtKH1YFkY7VJYzQCgzCLV+Sbm6+HbPdYUxnXSBYECA1DL0qsRRr2hgeWc6uLVBsBlkwa2q0qV/M5E9yCwm0bOW3MCRQUA/DLiqnUfFpH3EYlE3Xvalv7XE4a0e73jd4vIKhbDsbX07tXzg2QSAMBLfH4LYD/1oPENEJpCj07BAuhV8sXmMJ/ugaZwD3jyIxzPf00mH6ldgI/9kObWh2S1tjPmUhp4h88p8O0W7dow5BpTucePZZX3jqqpLBr2rdVHUhwAwA9jrm59hYrMIxJJdwD6OZ7+l1Xra8uJQgO5qjpZzFhpAgBi9DvJvxIAUP9KCEBxxiUb9MAQQdlvvJFEAOL2QppGjUhyY7FGux54Oh/4OUd5twFwVVU7A5FJDILMnCC7gxtGzH2oO6EAALeNnd7eu1bTX4hI75IuC9Lq1e5YNqXfTWRYRi11xRayPmrIq8de0XYGYQAAAAAKv8oFkNE4S25c8uQ2+HvbmJ+KX7uMhAeQy7jO4ViUpUL0GBbzZlrq56kNvF9jW/gCHxNg+XlDV4nKjxkKmQ25f6lVen6Lp8kAgMul2rSze+d3ROSVBCPp2AafE1U+48rIosmDHhfRu1n7xhcG+mkyCQAAADTTKS0RI14Ki0kAlFk4NT/FfD3yvmfF20BMDgJlq2Wa0fskdT0N1kh6Lg8CooW7wYGv6dHZ1DFVRJ5gbGT2lh8cNr/1axQmAHDTyLkbLhWRfyMSifv90mn9+Ena7BuPG/NZ2hVlxW2nj5nV9lYCAQDwsAcAgIbrgUU8mGV9ggDoVZJY+qf8eiSfOMneM+Yh5JsO1tWJaD7jBoCbNccyOoms1nbG/OzRRFeunxf2dgPgr/7rJRtM7TPuL6uKNK7s0jPnr5lKgQEAtwyfs/5dYvZlIpFGo2SfJQo5dFtmNxb22rJ6Hw0/RSYBANKbp/gaBkB2PXF5Kg5fFgFFGpfUOuazUuQ7Uxe1seExQhIB9E/7qRmaRo3IdmMxvV0Rmgr/5qjA5xR484ah14nIbQyGTFP8imHXrP4PIgEAbhgzp/XowOzHIlIpbxQitNHRerUli6cOXEWWZW/ptAH3iMg/iERDXduIMVe2v544AAAAAIVe5QLIaJwlNy6L9zOeKM9tY34qfu0yEh5ALuM6h2OpK+eLRuYfi3k/LPXz1Fx6KK83AFarGlZq8l8i0sGQyLCSm3532PzVwwkFAORrxNyHutdMfyYiLUQjcTUN5DLCkGe37/lTANWBM7DaF0kkAAAAIIXlSsR1ARsmADiF76yZn2K+Hnnfs+JtICYHgbLVMs3ofZK6Hpqm4jehxfp54cD3FFl6wdB7xHQuYyNTzSL6s+HzW99KkQKAHKcCO3S+iJxGJFLp7r+7ZPKAewlEfsIguDGfpV2B0th01JhZbfRrAADPmlxCAEAbrgcWsbhYI+cJgF4lr3V/yq9H8omT7D1jHkK+6WBdnYjmM24AuFlzLKOTyGptZ8zPHk105fl54aAIt3q3dKuKyOPuLqsK6VCTcOmIa9a8kVAAQPZGXLXuQhH9OJFIxfam5srnCUO+/t9T/f5oIquLeG2ZdpJqXyGbgHI564pNQ8dcvulEIoH05yk+GwGQXU9cnorDl0VAkcYltY75rBT5ztRFbWx4jJBEAP3TwQ6R/M8DZzV/hyRCAZoKv+aoQmwAXDWx3zYT+SQDInO9Q5Pl77768VMJBQBkZ9RV68apygwikVKvZnLlwgtaWglUvqpVDdXsp0SiMSbyL2NmtY0gEkCJxn2tNkeC8J4xM9pvPGvmxv9HRAAAAIADrplTff2BFe9nPFGe28ZGVWoddQpAOuNas59j1JVrRyPzj8W8H5b6eWrmPVRQlGRYOWHoMhX7HsMic4cFGqx49/w1JxEKAEjfqLmtbzOV7xdpDs+3LdzHhqaOCpsrHREE9mPWvgmMDrUZp1etiYwCim/MjE1nmuh79lags0KzW8fOaP/12Omb3k10AADwa9XKBgsAqeI7a+Yb5htP75lm9jOaruYsgGLMP+m+jyb4PjRNxW9Ci/PzwoXaPNBZ6ZhsImsZNJmPhyMDkZvPvPbxVxMMAEjPsNltLzPTn4tID/rOlKY0lc8svLRlK5Fww6Kpg+4Skb9lv4QsnFf37tN2LmEAim1c1bqJhHP28396h2i4cuyM9rvPmrHxw+OutwrRgvtNGSEAoCnUg4MfLLUNE9Q0gF4lRWz28i9xuGcoUm2yrk5E8xk3ANysOXGf1Bb1JCyjC6I2lbgJd/R6CrUB8JfjX/qUWHCem8uqwud3Xw2DX434+rpXUXgAIHkj5q5raWqqLRORFqKR1rxqd5/2ZP/vEAi3mOr1hbyurN/P5EvvmbfmKDIKKK7dh2yaIiKvOEi9OcnEvrf7nxsfHDujbfKIuQ91J2pofJ7io04A7vbQ2VQofsYTKIf445LNXsxPpZiHmLqojfQ/ANIY1+prjaCmuRc7LcX9LNzPB66cOHiRmF3PwMhFv7BWu/ndX199PKEAgOScOXP9oRrKUjN5GdFIrc+zUCuTqlUNCY5jzWqg/0sUEnFk5+5unyUMQDGNnd4+yMTqHeMvFdGrmncd/vcxM9ouGFNtPYQIAgDywCYXAD7WouRqFxuI4e9tYw6n1sU/FnUKYCLLe4550ZNF1Z1rR/z7H/fpkpb6eWqm+R0UMimCbheIyEaGRy4GBTX91ZlXrz+OUABA406vWlNTN/upqJxKNFJcFqj8ePnkfrcQQ/csntzvIRG5g7VvEiPEzh87c8NrySqggFRmiEjviH91tIrO1UOaHx0zo+3TZ1/5xOEEEgAAt1atbLAAADDfcM/29yFA8vdMvcpZAHkIMhjL9dUiS/BY9b0PG/2KNOf4c05pjFIPrTxvQJuZnc/Ayc1QDTp/PWz+ap5UBQANdZamhx6x/joRGVWCniRP2y3ovJQwuLwUsO8luYQssaYwkGvFjKoBFMiYy9veaiL/0cAh+qnoV8KOzsfOmtl2+divbOhPVOFIAwCAQpBCPTj4wVLbMEFNA+hVUhS7dlGbckscNuihSLXJujoR9fCiAKQ2PC3xca0Jzp3ZPUEORZoT3Pl54aCot33lxKN/Kio/dmtZVZL8ftqxInrLsHmtr6cIAUCcKcZ05Nz115jIfxKM1OfSy5dNGrKGQLirQzr/V0R2FW6Y5/O2bx5zxYaPk1VAMZx7nTVLRed1tTKss970MdNLpTn451kz2+aPmclT3eH4jAaAiuNMheJnPIFyiD8u2ezF/FSKeYipi9pI/wMgjXGtvtYIapp7sdPC38+gyGmxe1fnBBFZzQDJTX/R8LfDr358GKEAgGhGzlk/XUQ+SSTS7R9V5B87ntw5i2C4bcW0oZtF5EYikQxTnT5i7roWIgH4b/2TGz8jJq9L+LA9zHSCWuUfY2e0Lxozo51/1FXW+YIQAKDWAKAWpVy72EAMbhvKUOtefCwSHiheHdGM3ifZiTeZpyJT01z5nCDu0yUt9fPMLkcKvQFw1dTjngzNPiF8lpSnXqbBwjPnr30foQCA+oyYs26mqFxMJNJvC011wqrqcbuImwdUv+3vuTt3RkdWOoMrSCrAbyNntJ1kKp9O+fOC0Spyx9gZ7TeeNXPj/yPqAABkvWoFAMDN+Yn5LO97oCncA/UqBwHkQTMYy/XVIkvwWPW9Dxv9ijTn5HlOac53QdHT5uaJR68UkWsYQLmOk24q9uNh89dcSDAA4OBGzFn/ZRW5qBB9kvt+vHRK/5sJgx+WTOn3KxF5JP32uCRMPjRm1oazCQTgp9Or1lQR/baINGeyohM5y8xuHTuj/ZazZraPETM6DwBARrKfclLbAMHsCcCpjwWoTb7NbWzQg8PtU9cnooW5KABOFqt8j8WcW9qJLqFzSu56gjLc/m6VyiUi8iD5nftZzjpz/to5fFkEAPs3cs66qop9hkhkYktTpXIRYfCp31Ez1e8X7bJyXRiqXDPqa08eQXIB/undc+PnRSSPn+Z9i5ksHDtz411nzdj44XHXW4W7gVRnND49ALCfetD4BghffnKTIgj4VJvy7q744tm/jticT0bmIdSfK9QggH4oygssvTdzrD8KyI8yNfAOKEXGLRo/aIeF8hER6cy/pS99CzjpzGvWfPP0qjURDQB4zoir1n9aRL5AJLJhYp9ZeEFLK5HwSyWofUdEQiKRWBc7ULrtmUkkAL+MmdH+elG5LOeV60lm9r1dj268Z+z0jR859zpr5s4Udq4AAGoNADxLY9cuq+OYaZwnvEwvrgGF7NOMJAIKXhc0vfdJpTToC99HGz8Wkrz/jTwxOa2nOKrzOVKaLacrzx96m4p+nqHiQv+vH+/ed+3Px81e3ZNoAMDTm/9U7StEIrOPEu7oNWjAtcTJP4smD3rcRJZ42gA5elr2n6NmbRhGdgGe9AxzH+ouYt+TbH76t57S9koR++6GJzc+NGZG2wVjqq2HcJcAAEhg1QqAcQl4MA4YN/mvyv29Z0pOAcwnkWtEvPfRBK+HjX5ZzAU+nZPlNkb2r1TPnHxj2+DpKvJrBpIT42bslu76yzOvXd+PYAAobwdsOuKq9VcmtvmPvrMenRYE5y44R2uEwk8V0Xnptsfl68pU5X/eM2/NUYQCcF/TriM+L6KvdmRN91xLI3KMms7Vns2PjpnR9umzr3zicO4WACCVSSer5Xpar2fdDsAhyTzxBlnObWzQK9G4zK190vRynVoDsD4r8LGYc4v/OUG655TM9ZRqA2C1qmGtZh8SkXby2wlv1lrnn949f81JFCgAZXPKddY8cu7676naFKKR6Xw5c9mkfncTCH8tmtrvZhV9sEjX5MDCcFDH7ubryC7AbaNmtL1NxC5x/DT7qelXwt2dj42Z0fa1sV/Z0J87VyYpzWh8SQRgP/Wg8Q0QvvzkJkUQ8Kk25d1d8cWzfx2xOZ+MzEOoP1eoQQD9UJQXWHpvRn9UlmaZ/mYfQdnS6+YLjm41kY8kO9YpGw2MraMDkT+eOX/1BwgGgLIYMfeh7v13rv+JiHyIaGQ66Ty4o8/OLxIH32+jmqnNJxCJ+7cxV7R9lDAAbnrPzPX9AtEfi0iTFytXlT5qepk0BY+fNb39+6NntB3PXfQXn3gAoNYAwAub3bi1y+o4ZhrnCS/Ti2tAIfs0I4mAgtcFTe99UikN+sL30caPheTmEWvoiclpPcVRnc6RoIwJtnLC0GWiMpeh5oweKvqD4fNXV8WMygig0EZd89gRGvb+laj8K9HItJ0MQ9VPrPrYcbuIjf/CSvP3RGSrdyeuro8amzPqyg0vIcMAt1SrFnRY5UciMtjD0+9mIh8KTP921vSN3x9z+aYTuaMAABxg1QqAcQl4OA4YN3lTj++ZklMA80nkGhHvfTTB62E7SxZzgU/nZLmNkX0FZU2joGPXpSLCTwA6NIpM9AvDr1l7/Zkz1x9KOAAU0dir2wdZR7ffitpbStUnudGqXbN8cr9biEQxLJt01BYR+R4fByWuTxDaT0fMfag7oQDccVfPjZ9XkTNcnWDr1GRiH1K1e8bO2HjjWTM3/j/uLADA9cVual+ms24H4JBknnhTBhX37llKr4d/9zj5niPpgqD0QQDrs5IfC0X5nMD1cyrtBsBlk47fLSbniMhT5LdTTe179ZDOW864rvVoChaAIhk2u+1lnWHnLSLyGqKR+eTyWGV35dMEoliCMJwvBfoM05w5Dz210tF7FhkGuOGsmRvPMJXPFeiSVEzOslBuHTtj46/GTt/0bu4y6swcANinHjS+AYKf3ARQvKHPZi+f7oGmcM+Yh0ANAuBqP6S51YyivQ/NMud0IEGZ02zFxKH/ULEPJzMWGc4JOqnSGd45/OrVpxMKAEUwfE7rWytB7fcichzRyFxoIv+58NKWrYSiWBZdNOgBE1lMJFJZZJw/Zvb6/yAOQL5GzmgbEJr9IOl1uzMrV5N3itjKsdM33X3WjI0fHne9Vbjr7jL/MgxAoWsNAOS+bo5du6yOY1Ib4Wq+p/knKEKf5tbPdQIoxvrN9lsakn/SnyV4LCSZL0XbqJfu9QRlT7TlE45eqGpXMeSc09dUVwybt/oThAKAz0bOaf1kIPprUelHNHJoJ02uXjZ1wK+JRUHvsOp0705avQnuNWNnt72MLAPycXrVmppErxeRASWo5ieZyfd2PbrpnrHTN37k3OusmQwAAABAbt1poa6GL6G5bdmMAzaqcs+STnhyCmAiy+1YynxXhN7cYuaPxcw9y/j6DiQgZUTag7ZLReQPRMK5uaGbqH5z2Pw13ztz5vpDCQgAn5xynTWPnLNuvoheKyLZfpHNZ3vPuP9Q6/gUYSiuZVP7/17Efk8kUllUHRaa3TBuflsvogFkr/chGy83kbd5sm6LVl0OfJhXish3Nzy56aExMzZeMKbaegiZAADwbbFrES+FL5AAUGYJUKrzTczXw7d7rCmkrRZ2/ADIblxbgseq/33UiWtHVvHk54Wfjw2AInLn+FM7gk59n4i0s/5w0of1kM47h81d8zqyFYAPhs1efeSAXeuXicgEopGbziCUjy6YNnQnoSg4kxnFuRTnvHrnLvuBmLGaBTI0dkbbf4rIheUt63KMmszVns2PjZ3eXh31tSePICsgIny2CmC/9aDxDRCaQo9OwQLoVXLvqVN9PZKMqaZwD5iH4Hj+k6JAifshza0PyWptR1/lU/Ev3oTEBsC9lk0asiY0+6CIhFmXDdTl5VaRPw6bv/q/CAUAlw2bve7ESqXpdhN5F9HItWf78uJpA28nEMW3ZFr/RSLyNyKRmrNHz26/jDAA2Rg9feO7TPTrab+PHytX7SuiX6ho5z/HzNj4tbFf2dCfDMmXFSzDAPheawAgUm+Z6jGT23DHT2GiTGMIxezTNPNjASj++s32WxqS/3lgS/BYKHof4uZ9ZgPg89w88eiVKvpZIuHssO4pot8YNn/1/479dntvIgLANSOvWj+6UpE/iMhLiUauE8btO54Y8BUCUZb7raais1irpLq8/vKome2jSDYgXaOmb3ylqv1MRJqJxgtqZh81uUyaKo+eNX3j/DEznzyOoAAAACDSqjbl17veUIPbxrih1rl9z9j8DDCROXYsZb5zYZ5K5u8aeYqjpnSemlpOsQHwRZafN/hyEVlAJJyeMP59967dd464du3JxAKAC6pVC0bOWfcFUbtJRPoQkVxtNQ3+Y1VVOwlFefTc0v4jE11NJFITaBD+eOSVbScRCiAdI766riVQWywih/u5RIvy4tgfafQ0kQkadv79rOkbvz/m8k0nkjkAUEbub2SxiJfCF0gAKLMEKNX5ptGVGDy5x5pC2mphxw+A7Ma1JXgst+Y5alqyYdKC3Yt8zokNgPvcB7U+u+QjonYX6w+nHR+G9sdh81dPJmkB5GnMrNa+tx25fqmIVJ2aV0vad6rYhGWT+j9MZpbLguqJewKxrxbhWhz+MLZ3ENqSs65YO5SMA5J1evXRHpXm5htF5CVEoy5NJvIhVbtn7PSNi0bP3PQmQlKqZg8AGq4HFvFglvUJAqBXSQCbw3y6B5rCPWAeguP5T4oCJe6HNIM+JMknizbyBDm4X/yLNSGxAXA/FkwburNmNk5ENgvD2WXdVfSq4fPXLBh1zWNHEA4AWRs1t/Vttebgz2oyjGg44ftLpgz6IWEop55bNv6PiDxGJFI1qCZNN42b39aLUAAJMdNePXt9R83enPlb+x89FZHRQWh/GDtj46/GTt/0bhLKpbzhsxEA2c1RVBwA9beP6R0zudrFT2EWZX5iDIFcSWJMkXcA8+N+3kfTqBFJbsindpWjD3HvnNgAeAC/nHDMI6HZv4tIjWg47701q9w77Jo1owgFgGy6TNMRc9ZdYqa/FrHBBMSJm/LQjubKROJQXguqJ+4Rla8SidSdvHO3XX/KddZMKIDGjZ7V/hVVeT+RaLQNkHeK2MqxMzbePnb6xn+tVo3POgAAANBgi1kkfAnNbWPccIOTuWdGwgPIZVyr36ePhueRxv5OHTxPTWV+5UPxg7h54tErzewyIuGFQWqyePj8Nd8547qHDyMcANIybPbqI0fOXb9QRaaLSBMRccIeVfn3VRP7bSMU5bb+kH7fEZF/lm7tm/0KbcTAbW3fZYMN0JgxMzZepqafKufVW1qHPU1Efn5Xz43/J2Z8TAcAcH+m01RnRgDpd6BAoccB48a3e6aZ/YwmtRtAlDqRy1MCU6xr5kiNLGMu+XVO2V8PX9p1YeXEo2eJ6ncZG940vh9t6ux+7/CrH+fnOAEkbvTcdW+oVJruEpHRzAUOXabZpUsmD7qTDMWd47VDxL5MJDLxH3f03nAlYQDiGTOzbZKIfa1YE7JD60STG0WV7wkK2/wRAgDacD2wiMXFGjlPAPQqefXFKb+em5z8MblnKFJtsq5OhFYJKG4hiTG+4z6pLepJZLW2Y47Oeg7ya6NeWtgAWIc+Rz01XlT+j+HsjSESBMuGzV/7jRFzN/UhHAAadXrVmkbMWfe50OQWETmGiDjl50umDJxDGPCM9Yf2/76IPOLzNfjTSeqkUVds+BxZB0Qzemb7f4npVdSb1KzeumvbPDLNhbzhsxEA2c1RVBwAda5jnTomtY75qUz5Dupt/DFC3gH0ZAc7RPKbBum5XL33WsxcThAbAOuw4JwT90izvEdEHiIa/lQOFfsvq+z867Br1p5BOADENWLuhpf2PGL9b0TkiyLSTERcYg/t2dX94zzhB89353jtMDE2pWW3tPni6CvaPkUkgPqMnbnxg2rydeHT6/S6A5XPr6oet4tIAAAAoOHeMuXXH3S1ncYKHv7R4o8bbnCZax11Cih+z5Ts5rzM5xjN7Y/psRP/O3XwPDXx+ZUNgHVa8Ymhm1WCMSLyBNHwyjFqtnL4vDXXjf12e2/CAaD+2dl0xJzWc8XCv4jIWwmIc3ZZYO/75WVHPkUo8GJLp/b/sYj83vkTLcz6z7466oq2S8k84OBGz9z4HjP7DuvwZ2tHGke8f+uOo35IbAEAPs50bJgAfOxAAeYnuHbP0tggo17lLIA8qDNjOasni5ojNbKMueTXOWV7PXzxEMHyCYMfFAnOEZEOxoZXja+Kyrl7du3+67B5a88ikwF0ZeS81mOGz13/KxG9TkQO9XqhWdC5QFU+uWzS4LvJVhwgQSxUuVT4fCjDUmNfGz277XwiAezfmBnto9XsJyLSVPBikKvA7NJVVe0k40ox8QCgEDRcDyxicbFGzpOaBtCr5ITNXj7dZOWelUStRLXJujoR+iCguPNfjPEd90ltUU/C0r525BS+ov28cHRsAIxoxYTBvzTROr7cpOV20LGqduPw+WsWj7rmsZcQDgD7M2Lu+v+0mv5VRd5BNFztEfWbSyYP/B6RwMEsm9r/96LyM1/P33wcmmZzx1zRNonsA15ozIz20SKyQES6UW9SLUO/u+mylkVknGt5w2cjALKbo6g4AOpdvrp0TGod81OZ8h3U2/hjhLwD6MkOdojkNw3Sc7l677WYuZwQNgDGsHLCkG+I2FeJhLdG1axy3/D5a79w+nce7UE4AIg8/dS/EXPWLRKzb4tIHyLirNvCYOsFhAF1ukxEdhOG7FY5JjZn9BVtnyIUwNNGT2//gIj8QkRYd6QrNA2nEAYAAAAkLb/NXmzcgr+3jU0T/t1gdza2UqeA4vVMyW7Oy3yOoSw51Ss09nfq4Hkmm2BsAIxpxXlDPyuq3yUS3uohYtUeO5vvHXbNmlGEAyiv06vWNHJO62Sr6T0iMpqIOG29BbX3Lpt0PBu6UJclU/s/IiZXO32ShVw82lfHXLHhcjIQZTd2xsbzVOX7ItJMNFIvpt9adEnLXcQBAOB9J00IAMYZwLhBw/cgjQ0y7IAB4M98ktWTRY0amRKe8hcXGwBj31+1jcH6c8X0ZoLh8WRh8lI1WTxs/uobRs5rPYZIAuUybG7r23oese5uE7lKRHrTJzltd2DBvy6bNGQNmYsomoNuX1GRNiKReW926egr1l9drRrrDZTS2JntnzOxa0q55o7UdyTysd9TlaDjc2RdCfHZKoAcno6V2tNxqGkAJcohHdy93OehtJ/Gxoa+/FmR0jbWtSp9EFCGeVETPFbChc9yPy9SpDxNeHbnxBdyDbhz/Kkd3Xt0/zcRudvZFpoaVGeY9OxQw/uHz19dHTH3oe5EBCi2Udc8dsTIq1rnBCarROTVUWo2H47kw8QuWDy1/x+JBKK6ceoRT4roZX7mvfcd1vl39G77+bjZq3uSiSjPhGU6Zkb7TDP5IvUmo0qj+t83XDyAjd5kGIAy0/gVx7I+QQDuFQ4PxzqbvfzrcI18B/UWQGHmvnQ351nsQ1BvmB/yPCc3rocNgA1a+PGWrVKpjRKRx4iG93qK6Bes0vPeEVevfZ+YMUsAhetOTUfOaf1E2NH8kKlMYh70pgecv2zKoG8SCMS1eGrLd0Xk90QiF2fvtG4rh81efSShQNGdXrWmMTM3/Y+IXEQ0MvNg/8OOnEcYcmqtCQGAGEJqDQD6pAivZ+MWuG3wsXaxvgSoI+lOZOnXjBc9kZd52Il557m/0wbeT53NtySw8SEBK8Yfu65mtREispFoFMLLLLCfDJ/fevvweWveRTiAYhh+1brThs9dd4uJfFNEjiIi3vjNhh4DphIGNNY7q6nJRBHpdPP8Cn8H3tps3W8ZM3P9cSQjimrc7NU9ex+ycYGIfZRoZFrfp3xjvPILZQCAQuELcMC9cca4BBgHKS9uU7gHmsI9U6fiAaCs80mSNVMTvB5qV/HnAs0416NjA2BCfjnx2PtD03eLyJNEoyiLDztVRH45fP6am4fNa309EQb8NGZO69Ej5rRep2q3qsib6ZO88qB22/Nvd/LFPhKw+ML+f1Gxa4hEbp3aK031T6OuWPcOYoGiGTu9fdCuzh6/FZGziUacviP2v/W8fuElRy0n2OQaAApB1sdMbeMQNQ2gRIGb/Lxjpr1RlQ19+bMipW2sa1XqJcC8mOuxLPfzIkXK04Rnc05sAEzQzROH/FlV3iMiu5xqoalBjXYo1+TNAAA/rElEQVSlZ6iEdwyfv+b6YfNXv4yAAH4YNnv1kSOuWnd5p8iDInJufXOe1VkWkMEHApsCrYxZMuGYJ4gGklJrav6ciKzzbCwUaWF3lEqwcvQVbRPJRhTFyBltJ5nKH0XktALMvT6d7JawWaeRgWQYADyv14xdcSzrEwTgXuHwcKyz2cu/DtfId1BvARRm7tMES4A2Pmcq9Yb5wYVzyv962ACYsOXnDV0lob1fXP2JOcQfrSbj1PS+4fPWzh0xd10LIQHcdPp3Hu0xfO66i4NK5R+idqmI9CAq3tltamcvntzvIUKBJC2bdNQWMbmESOSqScTmjb5i/ZzTq9ZEOOCz0TPa3lcR/YOIHE00smUqn1o8re9aIuHAvSAEADKoHdQaAOWudWzcArcN5ejT6PmAotcRzeh9kp14jXm4QUEq99Fi3hCLeTOzyrd0o41YVpx/9E1i+nF6lUIuprqJ2AUW1B4ePn/tF86+8tHDCRTghmrVguFXtX6w55buD6jZDBE5gqh4ujZQ/c/lkwfdQiiQhiUX9v+hmKzwpO8ocqM1qVfvtt+Mnd4+iKyEfzOV6Zjp7V9U0R+LSE8CknmncNspO4/6OoEAABR7ugPg2jhjXAKMg3RpCvdAPb5n7LQBmE+yqpma4PVQu4o/F2jGuR4NGwBTsmLikO+ryhQiUVi9xay6q7npseFXr/3au67a0J+QAPmoVi0YMXfde28/Yt1dqvIDETmGqPi7ZlaR6tLJA/6Xm4VUF5dWGy8i24hE7t4aNoV3jZm5/p2EAr4YU209ZOysTdeLyueET3QS7Dvq/iikM5Ta+GpVQwIMAEh3savJzFxRX093AVCiwE1+3jHT3qjKhr78mXdpqwlfq1IvAebFXI9luZ8XKVKeJjz9c2IDYIqWnzd0roh+hkVmkRtl7SNqlzU3dTw64uq1V58xp5Wf/wIyMu56q4yc0/oftx2x7h4xW2AiryvFwrzQ/Z5+c8mUgV8kEkjb0osGPSaqn6a/cUJ/C3Tl6NnrPzvuequQnXDZmMs3Hy2HNP/OzN5LNHJrFmYvvqz/XwgEK/YX5QUA7FMP3NwAQcECnC4cJeiu+DyzsB1xjvnO3AZyBSjvXKYJlgBNcM6k3jA/lHfOYgNgylZMGPJVEWMzQ/H1NJXzmyryj+Hz1nx/1PzWVxISIB3VqgXDr143btv6dfeZyI9E5FVpta7I1OLtT/afQBiQldOeapkvKvzUtBsqYvqlnavbbhl15YaXEA64aPTM9jES1O4WkdcX+Tqd7oJUHujetLNKNpI3AMpZO6g1APyhKdQ6Nm7RC3PbUI5xQM8HFL0uaHrvk8oc+aIn8jIPOzWPWMwbYqneTM3pb5/GBsAMrJgw9Asi8lUi4fVavc5SYc0i+qGa2b0j5q1dNHz+utMIIpCMU66z5hFz1334tiPXPaBm14vIy4lKYdzW2aHvX1XVTkKBrFSrGtY0+ISI7PKz7yikNwah3DV61oYPkKFwxelVaxo7s72qIjeKyJFEJDe1wOQjC6YN3UkoAAAAkBQ2IwPpjxtEkc5mX39rHR+WAmi8RliCx6rvfahdycbXnXjGvcdZzqtsAMzIiglDPiMis4lEaQQmMlosvG34vNYlw+aveQchAeI547rNhw2/unVqv93rHhax74nI8USlUGvm+2th58iVFw/Yzs1B1pZPaXlQxL5EJNxhIoeJyg9Hz97w/VFfe/IIIoI8jbpyw0t6H7rxDybyBdbOWfQdB/23wbNuvLTv7QQUAFiY+rTYrX+m2/+lsMECAMo+t6U838R8PQp0z9SVfGezDFDGedESPBb1htbJn/ud7jnxJUaGVpw3+CIVvZr1h1uNcvpRt5Fq+uvh89beO2LemvPGfru9N6MB6NrIeWtOGDF33dXNu3etVpPZIjKUelO47m5tRW34imlDNxML5GX7lv4zROQ2+hvnLvhDQbfd942ZteFsshR5GD2r7b1BZ3CXiPBE7/zrwd/29HziCwSCFXtXK28AeHE9aPzLdE2holGwAKcLh4dvwWavInfEmsI94+ekkW+9NdIJKNhcplFKQOQXWObXw/xX2H68JPeXDYCZ5oja8vMGTRaRrxOMUjrRRK/Zs3PPmuHz1s498+rWVxAS4MUdlunIOa3DR8xtXWph8ICInS8ivbOfe/koLAPtFtiZiyYPepxQIE+rqtqpFf2QiPAUSvc+RBhoKjeMntX24zGzWvsSEWTh9OqjPcbMbJuvpgtE5LACrPl974I6A5WPLZt0/G6yk7wBQO2g1gDwh6ZQ6/iSmV6YVEA5xgE9H1D0uqDpvY+m8R4v2pDPPOzUPGIxb0i6c00jSdLYFj42AGbemKutOG/wBDGbRzC8W6snVSr6iMgFgdrfhs9fe/OIq1vPHne9VQg0yuz0+W29hl+9bsKIq9fdbyrLRGQELVSh6+pTFbPhyyYN/BvBgAsWT+73kIpc5F/fUZaaYe83qTwwZtb6T1SrxvoFqRlz+aYT+xza648iOoFouMK+xk//AgAAINWOM+XXO77gJgGQybhB3uNSPa511CkAjdcIS/BY9b0PtSvZ+Koz5xT3Hmc1r/IFWi65rbZiwpBJIjKbYJS8ypmcYWo3bGtrfWT4vNZPjZi7roWwoEyGzV3zuhFzWq/qWetco2bzReTlRKXwa+btFoajFk0ddBc3Ai5ZPLXfdSK2lEg4W7eOMtVv3tGr7ZaRV7adRECQpGrVgtEz26dJJbzDRMivXPuOF3yE8sctO/t+kQACABOEL4vdaDOd95cCAHC4ePOUXf/kds/UlXyn+QHKOC9agsei3tA6+XO/0zunJrIqr3uqtkLkwuHz1+4xtcsyzaUSdPLmWek2kaNF7KsW2BeGz1t7Uyj2g03N61fcOf7UDgYLiuZd89Yc1RwGH1CRj4rIyb73Wb7Vm5ztFgnes2zqwN8TCrjYm9mMto9rk90jIk7+3Cz1RkRU3hSEdsfoK9Zf29y9s3rD+UM2kbxoxNlfW3fsnU0bv6sibycaThW8LWGl6QOrqtpJMFixR5gj+OYSwD71IGrF2ff1By8u8SoaBQtwunB4+BaN1zq42xE/nTjJ3rM0kpG5DfXninX1g42kE+DZXBZh0Hb50n1fkFXfwtquBP14Ce4vTwDM2fKJgz8lYjzVAM/oLiLnBKKLWjoGrhkxf81VZ17Tegphge/GXW+VYXPXjRoxp/Vn3cKgVUXmiMjJic29qbV6SFCnqL5v6ZT+NxMKuGrpJf3Wq8i5RMJ5FRE9v2N380Ojr9gwbVz1vm6EBHF6k7Gz2ibXmpr+KlE2/5XkW7LcuyC1CYsuPvxRMpW8AQBqDQB/aezaZWVfkDA/AYwpQgAwluO+j6bRNym1yZO+u+znxAZAB6yYMPQLZvJZIlGUmpFY6e9nppOD0O4YPm/tfSPmrb10xNw1Q7gZ8MmoK1tfOWLOuunb1q9bHYgtFpV/ExE2apRPp6h8YOnkATcRCrhu8bT+N4jINUTCC0eIyBU7e/e9b8wVG/5NzPgmBHUZM6P99bse23irmV4lIr2JiHNLrx8svLTlR0QCAMqBL1AA+FiLilW7WEpz21CWG2yOvZ6EB6hz3h6LspRKfOPOI439nTbwfprJeUbBTwA7YuXEIV8ZNn/1NlG9kpKB/XiViVwugX51+Py1v1axH+yUbr9YNbHfNkID14y6svWVYZO+V0zeG4q9lo/zS6+mqh9aMnnA9YQCvti+ZceFvfoc8iZL6kmlcdZAlM4oXmYiPxt9RfufddaG/150Yb+bRJUIYh/jLt982K6g9gVRuYC1sLN17eE9PfV8AgYATBBFbqbr/mkp1gUAABfnp5ivR973wIe+i+YHKOOar/5a1liNyP6nhKlpyd7WosUznevhSw+HrJg4dM6w+WueEJVvp3pvSlJrCrr4CMTkDBM9o4d0XDN8futSC+XGWredS345/qVPMYqQl1Fz1r/apPZeU31vKHKiWLkaGi/rTTZzQU1MP7RkyoCfMErgk1XV43aNntP2PqnZncLTwXxykoneMPqK9rt15vr/XnRR/4VsBISIyOlVa+rVa+MndlntiyLSQkSctctUzlk26agthAKO97gACl4P9l3jH/xg8T4ToGAB1KZ8sXnLp5v89DGT3RzGPIR806HLfCZFAS/E2uwWY3wn37fs/yRY2xV1QmrkuH7dX34C2DErJg75vpn+q4nsJBrowqFiNk7VftTU0WPT8Hlrbxl2devk0deuHkxokIVh89adOHLO2uqIq1v/Fmp4j6l+QUROzK0fSK11RUw1UfvY0qkDfkwo4KPFk/s9ZKKfcHFBjQPNBc9G52TT4MYxV7T/ZdQVbeP4aeByO2vmxjN6H7rxTjW5VpLa/FeSjLLs33DSokta7iJry5I3zGgAspujqDgA8mv0NYXapdQ65qcSjSGUud5S14Cy1vp472H7PUTyPw9MbaIPcfmceAKgg1ZOHLxo2Pw1o0TlJuGpM26Nz7oreub/fq4iIm9Rtbd01oLZw69ee7uJ3FBRu3Hp+UP+zs1DEkZd89gRtc7md6jIGSJypoT2UlOl08H+1FTso0smD/ohoYDPlk7rd/2o2RveJSLnEg3/mMhr1OT60Ve03ykz2/978UV9F/NEwPIYM6vtrWL6pVDsdKLhw4C17y+8rN83CQQAlLZvY8sAAO9qUbFqF0+u4bahLDc47VqXXm3kmUZA8XqsJOtcDsdiHk4lvnHnkcb+LvrNjPtTz2mvIdgA6KgVE4f8Zvj8x99lGiwVkb5EBJG6YJU3qsgbQ9Hpw+et/ZuK3SimS3duGnTbqqp2EiLUY1z1vm7bjjzyTaL2bhE5I+yUU/XpzabAwXSI6UeWTB3Ik/9QCIfInik7pNsbROQkh9ZAiOYUUVs46oq2v+msDVfvMfvByosHbCcsxTTmik1vlLD232J6JtFwzAHrmt5juzrOI0AAwARRpma67g/92RkJAHBxfor5euR9D8rZdwFwf81Xfy1rrOZkNW8xP/r0+UGxrocNgA5bPvHoP50xv/VfKhouFZFjGRsU15heZaKvEpVP9+jbunXEvLW/DU1/aU3Br1aeN+BewoNnjLveKtvXrn1N2BS8Q0XO2GbydhE7lLVbgetN8nPBbhU9Z8nUAQvJCBTFgmlDd46Zuf5fw4r+SUSOIiI+L6X0VSJybTfVr46a2f7t5qbO+TdOHfhPIlMMY2dterdZ7SIJwzNZAXjVQG2phPbeG6qDdhAMONzjAihhPdh3jZ/GUwooWAC1Ke92nNWTPzf56WMmuzmMeQj5psP+8/N5J0KKAl6I9SS0GOM7+b5l/yfB2i7vOSitWDZyXH/uLxsAHffLiYPuH3bdP98staYlInIyEUGDepvIaFUbrbWaDJ+3dr2I/ErUfqk1+eWySUPWEKLyOH1+W68enXv+nwSVt6rZm7etX/dGqQR9vP1xxNTmXj4Kq9N2keA9S6b0v5lQoGgWXTzg0VFXbni/mCwXB56ESlU62FxgItZldI5QtYs6a5Wpo69oWyihzl18ccsqguefc6+z5nVbN71fzC40C1+X6cjgH1Qlcnit6EdvuKzv38nmsuYNMxqA7OYoKg6A/Br9+Mek1jE/MYZQ9npLXQOoEbHn4WcPkfzPA1Ob6ENcPSc2AHpgxfhj1439dvvb9+ze9TMTfsqquEu9XAwQkQ+I6QcsEBk+b+2DIvJLNfmdqt669PxBj3Efi2PE3DVDRPUtIsFbxOwtUut8rWjQJMaCHA33Lk+FYqOXT+5/C8FAUS2Z2v+Xo67ccJmYzCQahVERk/eI2ntGz2r7q4nOb640XX/j1COeJDRuGz1742Cp2SfWbdn4XyIymIh42j6oVG+6uO8NRAIAIMKXuwDKUbuSq3X8jCe4bdzgMtQ6AEWpTQeuC8lvzmMe9j+H4s4jjf1dknmd3zzJBkBPLPx4y9ZTrrtjdEttwDdN5CNEhMVUSl4uIi83lYkm9swTAm830dtUwts07PmnZZOO2kIiuO/Mq9cfF1h4cvD0k0NPNpHXi8jAp/OXTgSJLv43BWLDlk8edCfRQNEtmdLvilFXtp8iYu+n7yic16rYdZ21jjmjZ7UtVgt/2GN7/2ULqrqH0LihWrXgrkPazzTR8VILR4soa1m/F1YLbrr4qC/JJUQCAFDexpcvxwHGJVCEccC48e2eqZhYJj+jCQBR6kRW80l979N4XWN+LNPnB+78vDBfmnjkzvGndojZx4Z9fe0aMfkMEaG4ZmCAiIxVsbEiKhbsCofPW3u/itwuoreGYXjb7s2D71tV1U5ClY/Tq9Z06GHrjrcmOdnEThaT14voyWLhEcKSC+n3FY8HZsOXTBl0P4FEOcaLWsfM9Z9orugrReR1BKSQeojIe02D9+7s1b5p1Ky2n4raj5ZM6/dHUWVazcHYmRteG2rwgTut/d9FZCjdTSH6jrtt556PMqbgcI8LoEiFoIF6sO9nimk8pYCCBdCr5IvvT3y6yfF+dpB77J/c7lkOtWn/1/q8E6FVAopbt2KM77hPaot6EqztijoHubNRLy1sAPQu8dVWiHx22DWr/ymi14hIcxEWmfBGICInmsiJIvYxDVR69G3dPWze2vvV5H5TvVdVHggsvHfHxsGPsDEwOWOnt/fuPKTj5aHIK9TklWLyclF5hci640ORbk+PZZbxebeuJfsw5V4LaiOWThqyhvxAmay8eMD24VeuO7tiwa0i0t+rBXVp+mUTsUSic5SKTBDTCWOuaH/YZm74YSDyi4UX9/8rQU7X6Bltxwcq7zWR/zCRV6uxaHG/C6rbBrPK2YuqLTuILHnDjAYg6zmKigOgzkWluPTzutQ65qcy5Tuot9Q1gD4q0WM9ewjPf2qYPPL8/mR3TmwA9NSKCUO/dea1ax5Rk5+JyBFEBDnqriInicpJKiZiIqE8vTFw+Ly1D4jI/Wp2r1lwf6jytz29dv9z1ceO20XY9jVi7roWVTsmNDlaAznaQntZIPpyE3lFh3QMeeYfrj87T4CeK78w3yLd9oxdOuGYJ4gGymj51IH/HHnV+rM01N+ISE8iUnwm8lJR/UIo8oXRV2x4XCxYqipLZGvHrxdVB7GRqeEAm46esek0CcKzVewsEXmVFx//0ndEtUvD8F8XXtbyOKEAADg6uwNA6rUruVrHxi1w21CGWgegKJPPgetCspvzkv+Z8y6uh3n4oMKY9z3uPNLY3yWZ1/nMk2wA9NjK84b8euS8NW+sBbJYRI4nIi7OZ6VucbvL0z+P+DrTp4MWiEiPbd1k+NVr20TkcRFZrWKPiwb/DE1Wa6CPB1JZvXRiv/VFCkS1asFdh7e17G4K+6pJS6A21EyOFpGjReSYvf/zWBHraSKiz/xKjarwwBs4uNBfeGjY+f4FE47ZSTRQZkunDLht9JVtHzazn8rTT8h1ZR2N1AuhHi1inzSTT0qvpl2jZ7X9RlSWaBguXXTxgEcJUH3+9cr2gR218Aw1PcNmtb9bAhn4XNKjgEIV++hNl/X/A6EAAND4vmCNTfcDMC4B78cB4yb/HinaPUhjgwwfYgJovE5kNZ/U9z6N17WQm16izw/ceGohGwA9t/T8IX8f9q3Vb5Q9+jMReQcRYfHhiX57/3OqiYrY3oVGaBJKKMOvXrtLRB4XkzZR2SwqmyXUzarh0/+76eaaymYV3aQdulkr3TYvm3TUlrRP+uwrHz18d6W5V02DXk0ivWpmhweqvUykl6r2FpEWMen79LVZfxFpEZGW22RdXxEJgr11m0198LZPUvvWzicGnreMn/cGRERk8dR+Pxt1RdunRe1yolFaPURkhJiMMA1k9My2+1Xtd6HoHyo1vXXhpS0PEqKnnXXFpqG1Wu3NqvJmUX1XR6ed+PQHzijJguyymy7t91MCASd7XADFLwQN1IN9P1NM5ykFAOhV8m3XqV3+3OSnj8kGvTIso3O6ZznUpv1f6/NOhLUdwFS5T81I/yd949VhCpb7c1Cx7xEbAAtgxSeGbj7lujuG9a0NvEbEPkF+owAFu4eInCAqJzw3w+7990h7j/H0ZjoTaTIx2SXDr14rIrJLRJ55Ktl2Eduz9823qkqniIiF8uSLvmvuriqHPDuZm/QQsZ7PnbYeIiK9RKTX7r3/XWXvAjvQp89BhXHEktuBhXnaF6/66aWTB7LJCXiRJRf2mz5qdtvxIvZxN6tSWfsOE7EcoqPyShN9pYqcG1ZMRs9q2ygifxSTP4Yqv69s67yjDD8ZfPaVTxze2dl5koqcJGpvVJO3hGFtiOpzDReK2AUdYFioXXPTJf1mEkXyhhkNgAtzlJsVhw9oASnFuIx/TDZ7MT/5me8AfRBQzrkv/c158Q5BvSnP/JDWvXbxnF6IDYAFcef4UztE5L+GXbPmPhGZyb1FSfXY+x8RkSOev8h89nvm/aw79/0OmsUp60U8zy5R+cjSyQOuJxTA/q0/tOW8/tvbhqrImUQDL9JXRMaIyphARKRXU8foWW33itr9Kvo3EXsgsKb7u2078h8LqrrHt4sbO729d60iJ1RMjjcLXykavE7UXlfr7Dj22W7K0pyWHfhai76jqzu0qPsxLZOIBADAo9kdAFKvXcnVOjZuZaUmIoHLJ8jaFIWudfyMJlCUyefAdSHZTYPJ/8z5/s/32ethHk7lvsedRxr7uyTzOrt58hlsEiuYFROGXDVs/pq/iMr18vQXjsh9PuOjS7Bwh7faAgvOXjyl/x8JBXBgd47XjnHz2/5tx277lYi8gbkAB+kKm0XkZDE92fbe3JrUZGev9s7Rs9oeEZX7xORBNfmHBLohNFmnga5fd+hRbXeO146sz3fU1548ItCdg6SpcrSIDpYwHCqBHi0ix4jJCSY2OHhmg5/uTVRyFc/l++27tfbvi87RGtEAAND4Asi5N+UJegDjpvA9UrR7kMYGGXo5oMhCSWIzfNd1Iqv5pL73oa7x+UFW55TM9bABsIBWTBzym5HzWk+tBeENInIyEQFcXA4DzvckD6gFoxZP7f8IwQG6tmBiv21jZrWOCoPgdyL6CiKCGOuyE8TkBJG9v15sez+EDU0Gbm230bPa2lSkzURaxWSDBPKkiuyU0PaEottFtVNEtgYiYaj21P7eJAilT6haCcS6i8khonK4qBwiJoeIyRGicpSY9BV55j97mkQqe+cHe3qTH593oD5/k6Bj1MqLBm0nFAAA1xa7aR+TDRMAci1RKM08xHxTfLndsxxq0/6v9XknQvICSLVYuXosbitNeDRsACyopecPemzc7NVv2do9+KapfYAaxOKmPAWbvEH+GeF73pjIiu626/03Tj3uSe45UL9FFw3aOGZO67BarekWFRvKPJV332F7d9IVpovqbyL9ReQ18vyH7anuzQF7LicO0G+ZPvPvu/c+sE+e15uRSEjOo2GTnrl42qCNhAK5z2h85gpgP/XAzQ0TFCzA6cJRgu6KzxfKfg+Yh0C9BZDk3BdhXHf50n1fEHnOfPYQ0eoN/RHzQ7LnlP71BCRNcS2YNnTn8omDP6giF4pIJxEBUKp+AHFjN7vXoAGj2PwHxLNo8qDHVTuHicgmogHQdxSJ1feidYGE7148re9aEgN15w0ANFg7qDUAfFw8JFfr0liQNHOrfJxv+EwcjBsAHkw+WfU0ltG1G/NwqvfdYr+fNnCe6mC+1YcNgCWwfMKQ2YHYGSKyjmjkNZ/R4gJw3i5V+ejSyQMvXHCO1ggHEN+SqYPut8BGici2HNfRQElyjT7boTuxuRZUzrzxkv4PEw0AAI0vAN9XDmxGBlihF79HUmodACdrQOPvowm+D2vUcs2N2Z5T0mOKDYAlsWzC0N9WrOP1IrKKaACetT30FUjfOjE9fcnkgd8jFEAylk4ZcJsFOkpEthMNACWwtWI6YsnFR95LKAAA7tHMj8mX6QByLVEozTzExtbiy+2eafb5bhRJgHmRY3HPMwufFnJssAGwRJZOPG59n76DzzCRr+3TR/GzVfB5rUvegLxpxG1BrfO0pVMG3MZdAxLuvab0+79QbayI7KTe5NV3EB3yBhn099sstJE3Xtr3doIBJysTn7kC2E89cHMDBAULcLpwlKC7Yp1Y9nvAPATyD0CSc58mWAK08TlT49Ub+iPmh2TPKd3rYQNgySw4R2srJwz5tIiMEZHNRAQA/UD81tX/Jly/cegTm/9l8bSha0kYIB3Lpg74tYVylojsIhoAfYf/vcM+dgQiYxZd1u8WkgDF754BuFw7qDUAfFw8JFfr2DhDb0sqgHEDwJ/JJ6uexjK6dmMeTvV+xP87beD91MF86xobAEtqxYQhSyph8HoR4YlPmc1ntLgAnLFdRD+wbPKA8QuqJ+4hHEC6ll7U/+ZQ9V9FZHfG62igJLlGn51TnmxTseE3XtyyimAAAACgiCsHNiMDrNBdW4incUxqHYD6ZLu1qPFaowm+D1/OuDu/+f+EQPN2lMIpS88f9NjGyvq37f1J4JCIAA4vb+krkJwHazX5f0snD/hfQgFkZ9nUfstUbJyIsOkWQBFsF7VRN13S73eEAgCQPPXkmAfHl+kAABfnNuYn/+R2z9SVfOcLMsDnmpT+uC7DsUrYC6mD5+QBNgCW3J3jT+1YOWHIp03l3aZSip+AZLEC8galzRuVBU27mk5bMW3gfdwdIHuLpw1YFKqeLSI7macAeGy7iYxaeFG//yMU8KaD5jNXAPupB41/mV6MjYoAHBiXKb4Fm72K3xGbb/kOHCT/qEFA0eYyjVICIr/AMr8eFLYfL0jPxAZAiIjIyvOG/Lp7JThJTBYSDZS0HoJcK3Krt0tEpyydNPCchZe2bCUxgPwsm9pvmYgOE5EtRCOruYDleWFmM3pcFzwpEg5bdEnLb7nhoN4AcK12UGsA+Lh4SK7W8aE78xOpANaEAPLvbVyrC7bf00z+SX/UuXTve/y/K9fmQTYA4lmLxg/auOL8IWeJyEdEZAcRSWN8UvoBZO6BQIM3Lp08YA6hANywZFq/30kYvFNENjm0LgBK+tEBImirib1j4SX9f08oAAAAwEqDlQnAOMiDOnHPuMcANciP98jhWHyHk8O9Sj7oFvO4FvOckppX2QCIfayYOOT7QaVymojcSTSAkvVUKJofdO7RUxdP6v8XQgG4ZclFLXcGEr5dRNYRDdB3wAOP1yrytqWX9PszoQAA+NuMuN/g8GU6wDgDc5uL44BxU/R7pimkLR8sAdSkxuuEJXis+t+H+lWu1qlY95sNgNivZZ8c+LeNTevfJCJfEZFOJiUgSt6QYcg9G7aI6AeWTh744ZUXD9jOXQDctGjawPuCsPJOE11NfwPAVWrydwkrb1t6YcvfiQb8TmZCAGDfetD4l+maQo9OwQLoVVB2UTc8GMlY4HtMbAD4PpYjzCsa/QW5/JRw3diOlVyPUa6f8o2LjMMB3Tn+1I4VE4d8NlB5m4jwZQ+KXg9BrhVjGWr6ew2Dk5dOHvC/3HzAfYsu6vuANVXeLCL3EI005wI+OvRsNqPvcOdy/iyd4b8suuzIx7m5yK7eUJkAxK8IVBAA/jT6mkKtU2oj81Mh16Yo07gheYEy9Uu5bN7TNOqNZno9ZeujGs+X8mweZAMgurRswpBb++y2k8R0uoiERKTR8UnpB5CKThH570MH9X/7kqn9HyEcgEe91qSj1lQ6greYyEpv1yqA1x8d4AB+1T2snL7wM/03EAoAAACw0mBlAsAV6Xw4SK0DUMw6l8Ox+A4nh3ulic9XFvOcLOb1JDGvsgEQdVkwbejOFecPvsxMh4vIP4kIUKh1HXxPC5X7TMM3LJ08sLrgHK0REcA/Cy9t2WpNW8aa6k+JBug7kP+tt+8PPKzviAWXHfkU0QAAFKsZcb/B4ct0gHEG5jYXxwHjpuj3TFNIWz5YAoo5jSX5tLuu64QleKz634f6Va7WqTj3mw2AiGTl+YNv7tYUnLj3aYBebzJhsYJ084YMQybZYCb6jaC7vWHZpMF3E2nAb8smHb976ZSWf1eT/6a/AZBf46JzF17c8tFvjNcOgoHC4fNbAPupB41/ma4p9OgULIBeBaVfmkVMHCMZC3yPiQ0A38dyhHlFo78gl58SRg49Rnl+yjcuNgAiskXjB+1Ycf7gy1SC00XkQSIC1pAob67l2uo9HITyzmWTB4xfNH7QDm4yUJR6pbb4wv5VM50snv9jC/diy/LcydmMvsMlNVH55KJL+04WZcAg73pDCgKIXxGoIAD8afQ1hVqn1EbmJ8DzccOXh0CZ+qVcNu9pGvVGM72esvVRjedLOTYPsgEQsS2fOOiW3Yd0nKSil4tIJxFhqQcgE6GIzan0sNcunjpwFeEAimnphf3mSiCjRORJogHQZ2dgq4icvejilusIBQCA2RoAqHUoAPZQcYMzqF3UOgB+1LkcjsU87PX89sK/y25ja9jgdbIBEA1Z9bHjdi2fOPhTpsEbReQuahFAriFVD1oQ/svSyYOm8NQ/oPiWTOm/IggrbxKRh5gLQN+BFD0aauXNiy5pWUwoAAA0I27gy3TAvXHGuAQYB8WvXek+6RRAkZZoST7trus6YQkei3mu8MlZ6nNiAyASsXLCoDv7tAx+g5pNFrEtLFbAAosMQ6LZUBOTmYfWOk9edsHg3xNNoDwWXdT3gU7Z80YR+RXRAJBCg/J/EnS8YcnFR95LMFAafP8E4JlC0EA9sIjFxRo5TwD0KuAm13nMZDeHkYzZLMupTd7HBkCdYzlCIdFG3ifdwkdtymFS0SwmJM3pb5PFBkAkZsE5Wlt+/tC5YWivFJEFRASe1UPA1WXonyqhvWHplIGXLJg2dCfxBspnxbShm7dv6TdcVK51oip53XcQHfKGHvd5vtVjZ993L7po0EZuGNysN1QmANn1NlQcAPk1+vGPSa0r/nzDPQP1FgBSqhGaRr1J8smI9FHlmFuSPacm0gpJu/mCo1tF5Jxh81cPF9V5YvJSonKgkkYDC2Q6f/rVcT1lJp/tNWjAtQvO0Ro3ECi3VVXtFJEJo2e3/cnE5otIT6IC0GfH1KliFy28pN8cQgEA8GW2ZnYHQK2Lwr8PQpESUoEb7GDtoq8DqE3114Uk65yKiWVbf3gcWyo5FHceaezvksxrUg4eWjFx6PI+u+w1IvIlEdlVmloEkGto3PVNQdOrlk0ZOI/NfwCeb/G0ft8x1TeLyCPMBaDvQAxtanImm/8AADQj7mO/BuDeOGNcAoyD4tcut550CsDlJVqST7vruk5Ygsdq/H2oa44nZ2nPiQ2ASNWCaUN3rpg45PMWNr3KRG9gsYLyLbDIMETKhodFbMTSyQPft/CCllYiBmB/lk7t9+dm7XaKiS4iGgAidCJ/7LTglIWXtvyGWKD0+JwWwDOFoIF6YBGLizVyngDoVcBNrvOYyW4OIxkzWa1Tm/yPDYA6x3KEQqKNvE+6hY/alMOkog6ek4M9ExsAkYmVFwx4dOXEwf8qIu80kXuICFhDgiX6C+wQkf/e0WfXq5dOHrSceALoyo1Tj3hy6dSWs9Rsioh0sgCN0ncQndRmM7jc436jx46W05ddetQabgz8qjdUJgDZ9TZUHAD5Nfrxj0mtK/58wz0D9RYAUqoRmka9SfLJiPRRyd/7Yj8hkA2AyNSKiUN+s6d98OtFbIqIPElEKP1AydeLZiI/Ma29fOnkgdVVHztuFzcJQP01TW3xRQPmiIRnishaAgLQZ+/HDlX90KJLWsYvqOoewgEA8Hm2ZnYHQK2Lgo0zIBW4wfR1APypTZZJnVPqT0FyKO59bOzvNLP3i4sNgMjcqqp2rpg4dE5Qq5wgKtfKfp5aQ68NkGsl8FcxO33Z5IH/vmzSEJ7GAyC2JRcO/E237h2vE5GbiAboO/A89wdh7Y0LL+77Q0IBAKAZAYD9Y9MKkP64gW/3TDP7GU0AxVinWYLHcmH+sYTOF/nmZRnPiQ2AyM2ySQPbV0wYMsHC4DUilusX1ixWQIYhQxtE7LxDBw54/dIpg/6PcABIwg3nD9m05ML+Z4vKRBHZSUSA0ref396ttdNuumzAPQQDOAA+pwXwTCHQFI55wCk6mpCbBNCrgJsc45hsbPVxGe/JPVP3YwOgQPUgxntY4ien1CZXbrAWJbHTwwZA5G7lBYMeWDFx6NmByptU5fdEhPpe1AUZSr9E3yEm0027nbB08qCvLzhHa8QMQNKWTOt/jQS1U0TkL8xTB+s7iA79TWFtMZMPLrq05RMrLx6wnXCAygQA6VYcKhRQ2kWlU8ekdjHf+JfvAPkHlHfuS39zXrxDUG/KMz9oYc+JDYBwxrIJQ25dft7gt5no+0XsUSICoCDrxVBEvlOpdZ6wbMrAy5ZNOmoLNwFAmpZMHXT/IbrnTSo2V3hoCErNga+1su07bg9r4cmLL235EfcejFAARa0FbHIBQK1zd0HCPXYYqYBC1zoARZl8LKOJzBy89jLnQdz7bhnff0s8r5PHBkA4Nv7VVk4c/NM+LVteIaIXiMi64s9ntLigfyjwgne5WXDysskD/3PxtKFriQiArCyYNnTn4gsHTFYN3ikijxAR0HcUWmgiMwYe1vetSz7Vn/EOAKAZAYCI2LQC5iGUITct4jGNMQQgwtjOqj+yhM43mfehrtG3uXVObACEkxacc+KeFRMHz+vWFLxMxKaIyAb3JwuADMOzbpVA37V88sARy6f0/yvhAJCXRdNafqu9aq9RkenC0wCBInrMVN61+JKWS78xXjsIBxARn9MCeKYQaArHPAA+IQJAr4J0b3K8jRhshM2fN/dA3Y8NgIwGv7r8Hun/1DC1KYdJRR08J4ewARBOWzR+0I4VE4fO2S3dXiZql4nIk0SF+u7zggyFX6LfaybnLJs88E3LLhjwa+IBwJV+atGF/S9T07eLyD+IyDN9B7M4/Y33vfMP1OQ1iy9uWUUwQGUCgPwqDhUK8KN5LvoxqV3MN/6NIYD8A8o796W7Oc9iH4J6U575QQt5TmwAhBdWTey3bcWEodM7TV4mYjNEZBtRAeDKnK4iD6jo+5ZNGvja5VMGLiDAAFy06KJ+t9Sam04Rk68LTwNEaTjwtVbynyWsF5Exiy5u+fDCS1u2co/BCAVQtlrAJhcA1Lp8FyTwdL4hFVDoWgegKJOPZTSRmYPXXuY8iHvfLeP7b4nndbLYAAiv/Or8IZtWTBx6abem4DhR+aqIbSnGfEaLC/oHT90vKh88dODAVy+dPPB6UR4nBcBtyyYdtWXxRf3PM5G3ici9RAT0HZ6FX/VnEnS8ZtElLYuJBgCAZgQAksOmFTAPoQy5aRGPaYwhABHGdlb9kSV0vsm8D3WNvs2dc2IDILy0aPygjSsmDPlMUDtk6N6fBn7CjckCIMNK4l4x/UivgQNfs2zSoB8tOEdrhASAT5Zc2P8P27b2O1nMpghPVgZ8aCPXmdm4hRf3HbfookEbCQiQID6nBZDDz3jyCREAehVkMQ/xlF0fl/+e3ANqE8CclVo9UK+OxVyYw31SB8/JEU0kE3y2bNJRW0Rk+hnXPfz1po7uF5jKFBE5ish4Xt89mymNtU6Z8vMuqcmXlk0ZeBNP+wPgu1VV7RSROSNmbFhcqcg1InJm+eq6iRizOJwWqti1HT0rn9679gFKjJUXgNTX/M9+JhW14lChAM8GudPHpLuCq/fM73xHEWo4gGLNZRHmlS5fuu8L4s+ZzHf0+P6eExsAUQi/HP/Sp0Tky6fPb7uqu+z+uIhOFZFjiAyAROZelVWiOmPZ+QOWi6rJVMIHoDiWXdL/YREZNmr2+verBTNEbChRAV8EObHmvy8Iw3Nvuqz/HwggqDcA0FjtoNYA8HHxkFyt44ts5idSAawJAeQ1XqNPPln1NC94H+bI3JuQuPNB/L/TWD92//T7JZnXL45TfPwEMApl1cR+21ZMHDpnd/vgl5nYB0Xkz7nXsUhDHoBDQhH5mZm+YdmkQe9YdsHAZTz1D0CRLZk24Cfaq/MVZvJFEdlJRFAc3k3fO1Xl8z129H09m/8AAMzWAFCc2kWt8xw7lOB8QqVzTGodABcnSsvofM3Baye3fG/g0jsnngCIQtr7k3Y/EpEfDZ/f+lbT8FIxGUX1Rf5S+rdM/KuEJO0xkZ+GgXx15QWDHiAcAMpk0fhBO0TkCyOmb/pmpbnzq2LyQfon0HdkanGl1nnBjZ8a+E9CAQBAls1I9g0OT7sB3MO4RJnmoaTGAePGv3uQ2D2LnbZ8sAQUeWpMpsYkWSdcPRYaim0mt8K/+80GQBTe8omDbhGRW4bNa329SjjJVN4vIt1ZrCDPBRmctN5Ev97Ngq8vnNJ/A+EAUGbLLj1qjYh8ePTMdf8jQXCViLyuuOtKEzFmceTeTN4dqk1eckm/3xEMIIeVF5/fAthPPWj8y3SKC+D0IPepkUjxLfhcu8gd8dOJk+w9Zm4jlADQeAF7bm6KcKwuX7rvC+LPgdGukX6KSdWVc+IngFEaK84fdNfy84d81IKmo0XtMhFZTVQcrtFAVrmmcpeIjO9Vq71k+eSB/83mPwB4zuKLB646dWu/15voOSryMBEpFz6HzqLHtU0qNqXHcX1PY/MfqDcAkG7toNYA8HHxkFyt40N35idSAawJAeQ1XjXB99H0roc5MvcmxDLNSxGLedMt8bxOBk8AROmsPG9Am4hMH3f9fVc+1d5nnIpOFpHTUq1jFmXIM7MAGeg0sV+oytxlFwz+PeEAgAOrVjUUkQXjqvfdtLPXUeeJ6mdEpIXI/P/27j24ruq64/hvnXMl+SUZbEm2hR2iALEnDmagwaQuST1MApbBTsPETmca0vaPhDYOCjiAIdOZinQ6GXscd+LEJDhQCg0ZWoWJQTHC1EyUAIGKAdxgHh3LdbH8tiWwJctGuues/oEajJ+674e+nxn9I13pnrv23muvfc7WOSgtRVdnD8j8h2OixPda75p0mPYBAICzYgBGR+4i15U47tqGou9QufmbnuIWCXIdQF4rp+MdWU6jSCjevjV67hDIBkCMWq1LZw9KekTSI0337vp07LpZ0lJJ44gOcovHVhVwLt1tsd/v5vc/1Tx9FwEBgBRqp5bZg5J+sHjlwX+OE/FySd+WVE1kWG8jJYNuvj52/eOTd9TvIxwAABRTMZL/AoeL40DxYVxiNM1D2RoHjJvSa4OstVna3ZYTS0A5T43ZyTHnzhMjf59s5hzyV9HUV3lpitJqbzYAApLavzH9RUkvfu6+7beG0ZivuPxr5rqMyCCXCzLkTezS04H7TwZ6GzZ2tFiSkABA+p5YUdcn6Z6mtXvvDYaCO036G0kTSntd6ZIziyOnIpn9a5gcumfD3dP+l3AARbjy4vwtgNPkg8wvppNcgGIb1yW7cSuHb8F57XKuiN/vONltY+Y2QgkAmSewD+amFP7WOV966gvSnwNT+4zUU0yqxXBMbAAETrD55osOS1onad11P+6ea7G+LtmXVeoXtcnRGJ32uenBWMFPn75l6g7CAQDZ1d487aCkOxat3rMytsStJr9FUg2RKS+cuMhYLLPH4kh/v3FF7ZuEAyDfAChs7iDXACgdH5wgz16u46Q78xPAmhBA4WubYssLH3ofyqWC94P8zwfl0+hsAATOYNPfzuiU1Nm0tme5h8eXSPFfSnZ1WvkmpZxBiQtkYFCuNpk/dKy3oZ27/QFA7rXd3nBI0t9d/713v2+V7zVLapY0icig+OS1zh6S2SNxpFVs/AMAoEhnawAoUO4i15W4crhGzOaGMm+M3DQwuQ5A8YzvYn2kLxNsIds93X6Z2e9lsrE1+/2FDYDAObQ3Tz4i6QFJD1z7w32NYRjd5O43SbqY6ICFe9F4We4PDYb+82e+Ob2HjgAA+bfx7vPekXTP4pUH10QJ/4bJmyU1EBnqjlFmQLL7FQXfb7tr0k7CAQBAqRUjFDhAOWLTCpiHGDfkukxff5a+mXa3pe4CynNqzObj57N5t7jMcg7zXKmXY5m0f+nMV2wABFIw/BjR78r9H5p+tGeem3/VTUtNOo/oILXJnzIhC3aa/N/Mw4c3fmvqVsIBAMXhiRV1fZJWLml5/Z8GqmuXmnSbpCuIDMrcO+a2big5tLb9O9MOEg6gRHH9CUAW8sGpZ3xyc5cCAJmM6xKd9KlVkNb8kc2NGHTGfI5ragQA5V6YpHUntHO+9NQXZD+fnv4gyNuF7lfFWJ/k95jYAAikNU7N26XnJT3ftHZbs8Jx17r5Erl/QbIaAsQaEjnT69JGlz+86ZaGZ2RGDwGAItXaMntQ0s8k/WzR6gNXy7zZpRslhcVZd/jwfyfiZJy4OKv/NvMfV43VA63L6voJB5CvfENmApC/2oaMA2CEi0rl8m5w2ctdXLBmvgEAoHTqpXzNjx96nz8cJpsVclMPZfPOjsVcy+cfGwCBDLU3X/KepDZJbUvWdI89UuELLbAvS7pe0rj0cgZLPeAE75p8Q2z26PGeac90tFhSktRMYACgVLTdXv+cpOduWHXgEiW0TO5flXQ+kUGxnHJIUdJkG2L5ul/dUddBTAEAKOxszVk0AOQu5L2Ny+EaMXsayrwxctPAuc515EagfGuf4s6dxfq3kGp80+2Xmf1eJhtbs9tf2AAIZFHr8hnHJD0m6bH56w5MGONDN8j8RkkLJFUTIbBwH7F9Jj0em35Z3fPOr4fvIgUAKHG/urN+m6Rbl6zpvntAVUvN/euS5hEZ6o6S4Npvsp8Oud3XvmLyLhofAIByLUa4YAOUZznPJhSwKGbckOsyez11F4CRDutsPn4+m3eLyyznMM+VejlWbo8XPhUbAIEc6VhW3y/pUUmPNq3dVhUnxn3GXIsk/5KkBiLEAosy4RRvm/R4JG97r7eh4w93+gMAlJ3hf5p4SNJDi1YfmiWL/sqlr0maRHRQZCKXfh24r586sW7D+pttiJAAZY7rTwCykA9OPeOTm7sUAMhkXJfopE+twgSU1vyRzY0YdMZ8NnnJ1Ah0B4AElqa07oSWxttmP5+e/iBY2xW6XxXjhJS/Y2IDIJAHw48J3ixpc0uL3/a7uj2fDjz+M8kWS5pJhFg0jFKRpBfctFFR9ORTt874PSEBgNGn7fbatyTdtei+Pd/1vvCLZvqKS5+XFOa/7vDh/07EyUbbiQuTtsj8X4YGo5+3f2faQXoAynh0PyazzmLLN8V8EIHFXfQbIJPhZa+5+foRzMWpzt3ZrwZOyAfp1EKeYoY7/d/3Q/QaIDNDQ4PHrbJy/emHoqc4jguRu05zgnyEB3bm3GVn/bwVFdpHzzkpNu47ZLY+nbkgyGQeykGR6ym+jaU4SkySe8BVHZ1tTRFsj6X1J3WyHCxnPCe9zQozCHfTc4DCMvP/iD04eGo+8LNmo+zkDEsx45mkOOX89aF520byW36u779CDaWNLu9Kpx46cx01kpbMVoU/0nk39WOy0/zMZC/kYqQAyJPr7337Y5EnFph7k0vXSBrHEM15Hs59EVToNFy8MTtkrqdi+UaP4qc3LZ/RSwcHAJxs4aoDUy2M/9xkN0m6Ir91B/VXylWLl8enMWmXu1oj+cNP3lm/hRYHAAAAAAAAAAClgKtbQBGZ/+COMWMHqj7rcbxApibJZhEVsQGwtOP2nqQXXdpsCjZPmDrlpdalFtGpAQAj9YXVez8RB+FfuPuXJH0893UHS6S0qhYv2U/TLdcvgjD+xePL61+QGXcpAAAAAAAAAAAAJYWrW0ARW7juwNQ4HvyMTJ+T7FpJHx2VgSjRy7Cj9i6Apv+RtNllm80rN7U3Tz7CaAYAZMOiNXtnxx7eIPkik+blZBJlA2B6FUtp1WvdUvBLWdza9u2659n0BwAAAAAAAAAAShlXt4AS8vkfdF8SJuwauV0jab6k+lHz4bkLYLHGLCnpVXM954F+O2jxs898c3oPoxUAkGuL1xy4OI79Rpm+KGmupCB7cyjLpJSrluKu1SJJL5q0Melq5/G+AAAAAAAAAACgnHBlCyhhC+7dPdMjzZPp6uG74JTvI4PZAFgsMRuQ9JJcv7XQnx2wihc6ltX3MxoBAIW0aPWeWgXBtS5bINd1yvSfJNgAmHrVUny12iHJnpLpycGgctOm5RN7aT0AAAAAAAAAAFCOuLIFlJGmtXvr4iCeZ9KfSPpjSZdLGl8WH44NgIWIWyTpLbl1uvl/mrzzWG/Dax0tlmS0AQCKVUuLB501h64IFC2Q23UmXeVSRWrzJ8uktKqWwtZrRyQ96/LfmIUdf9Q/+eWWFotpMQAAAAAAAAAAUO64sgWUsSX/7uHR/bs+ESn4lMyuNPmVkuZIqiy5D+Ol2QYldBfAWNI2ybbI4ldcQWflQOLlJ1bU9TGSAAClbNF9e8bFA+G8INZnXZqv9x8XXHX2+ZNlUloVS37rtcMyPavYf2MedFQ11r7autQiWggAAAAAAAAAAIw2XNkCRpklLa9X9tVNuszcL3f5HJculTTHpPOK/uC5C2C2YnZM0uuSXnWzLWEcbzmaqPg9j/IFAIyKWmhN99hjUeIqBcGfynSVYs2VafKpcyhLpZSrltzVakmTtrp7p8w6gzDurJw+5Q02/AEAAAAAAAAAALABEMCwhT/ac2FS8aWmYI7JL5M0c/hrTNEcJBsAU33zPsV6y+Svu+lNud6UEm9c1Vu/g0fiAQDwgaZV+y9KBD43DuxKueaadLncxhGZFKuW7NRqSUnbXPovM+uU/CX1J19pa2kYIPIAAAAAAAAAAACnYgMggDNqafHgd5P3X2hBPDNwzXJplqSPyzVL5tPyfkBsADydY5K2S+qSvMvduhTEXRVRsK3tWw076cUAAKRufosnqmv2zXQPP2muOS7/pGSXSvooa6hsPgbYd0q2VdJrJt+adNs6fqDujdYWG6QXAgAAAAAAAAAAjAwbAAGkZcma7rH9iURjFEQfC90aXdbogTeaq1FSo6SarL9pWW8APOOrj0p62107zdTtrp0m2ynpbSna3n7LBbtl5vRIAAByb/HKg9WeiGYrDma76WLpQ18TWESepl5z7ZepS1KXm7oCty432x6G4bYNt53/Lr0KAAAAAAAAAAAgM2wABJAT89cdmDBeyRlxHE9ToOnuwQWST5P0EbmmyDRFUp1SvVheLpsATX1y7TVpf+zaGwTaJ9m+WLbHXAc8TO7249q1afmMXnoTAADFb+GqA1NNuiQIdZHLLpTiC8ytQdJHXH6BZJPKcCHZJ9cuN9sduO9xqdtde4PQupOR70y4bX9iRV0fvQMAAAAAAAAAACB32AAIoKDmP7hjzNi+ilrJ6uLQplisWjPVuvlEudXIfKJkNZKfL7caafj78jGSTZC8ogCHPaj378zXL6lPsn7Jj5j8sCvol3u/zI+4q0dmvaGpNzbrsch6LQx79yd29rx886eGaH0AAEaPJWu6xx71MTPkPtXktVJQK3mtuU82s8mSal2aLOk8ycZKXmPSBJdyWuuYNORSv8z75Hb8/dpGfXL1uPxQYNbjZj3u3mNuvR7EPWEy6Kma4Ltbl9X307IAAAAAAAAAAACFxQZAACVv8cqD1VH1QMLjihoLwjBOJidGbsH//zwRRokoDqrPmgwDPxpHweCJ3wst+W6QqPI4GfcFicHk0bHxsY6/bjxOxAEAQL7Mb/HE+KrD1YnKaIJbVBXFNvHEn7t8vLlXnvx7gcI4Nj984vcSCo4lw+TxeDAxGMTh0XEXTTzSutQiogwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArt/wBQqoPCJ89/4AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNC0wMi0yMlQwNzo0Nzo1NSswMDowMEK7CccAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjQtMDItMjJUMDc6NDc6NTUrMDA6MDAz5rF7AAAAAElFTkSuQmCC" + } + } +} diff --git a/integ-tests/baml_src/test-files/functions/prompts/no-chat-messages.baml b/integ-tests/baml_src/test-files/functions/prompts/no-chat-messages.baml index 47bc019ed..836a92fae 100644 --- a/integ-tests/baml_src/test-files/functions/prompts/no-chat-messages.baml +++ b/integ-tests/baml_src/test-files/functions/prompts/no-chat-messages.baml @@ -7,9 +7,19 @@ function PromptTestClaude(input: string) -> string { "# } -function PromptTestOpenAI(input: string) -> string { + +function PromptTestStreaming(input: string) -> string { client GPT35 prompt #" - Tell me a haiku about {{ input }} + Tell me a short story about {{ input }} "# -} \ No newline at end of file +} + +test TestName { + functions [PromptTestStreaming] + args { + input #" + hello world + "# + } +} diff --git a/integ-tests/baml_src/test-files/functions/prompts/with-chat-messages.baml b/integ-tests/baml_src/test-files/functions/prompts/with-chat-messages.baml index a83bc2702..1455ff3aa 100644 --- a/integ-tests/baml_src/test-files/functions/prompts/with-chat-messages.baml +++ b/integ-tests/baml_src/test-files/functions/prompts/with-chat-messages.baml @@ -41,15 +41,15 @@ function PromptTestClaudeChatNoSystem(input: string) -> string { "# } -test PromptTestOpenAIChat { +test TestSystemAndNonSystemChat1 { functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem] args { input "cats" } } -test TestClaude { - functions [PromptTestClaudeChatNoSystem] +test TestSystemAndNonSystemChat2 { + functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem] args { input "lion" } diff --git a/integ-tests/baml_src/test-files/providers/providers.baml b/integ-tests/baml_src/test-files/providers/providers.baml index 81466a2ab..ddb8b47df 100644 --- a/integ-tests/baml_src/test-files/providers/providers.baml +++ b/integ-tests/baml_src/test-files/providers/providers.baml @@ -12,6 +12,13 @@ function TestOpenAI(input: string) -> string { "# } +function TestOpenAILegacyProvider(input: string) -> string { + client GPT35LegacyProvider + prompt #" + Write a nice haiku about {{ input }} + "# +} + function TestAzure(input: string) -> string { client GPT35Azure prompt #" @@ -33,9 +40,16 @@ function TestGemini(input: string) -> string { "# } +function TestAws(input: string) -> string { + client AwsBedrock + prompt #" + Write a nice short story about {{ input }} + "# +} + test TestProvider { - functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini] + functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini, TestAws] args { input "Donkey kong and peanut butter" } diff --git a/integ-tests/python/README.md b/integ-tests/python/README.md index 9a89befd3..de458c20b 100644 --- a/integ-tests/python/README.md +++ b/integ-tests/python/README.md @@ -7,4 +7,3 @@ env -u CONDA_PREFIX poetry run maturin develop --manifest-path ../../engine/lang BAML_LOG=baml_events infisical run --env=dev -- poetry run pytest app/test_functions.py -s ``` - diff --git a/integ-tests/python/__init__.py b/integ-tests/python/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/integ-tests/python/baml_client/client.py b/integ-tests/python/baml_client/client.py index 1bf92fd1f..35af6a690 100644 --- a/integ-tests/python/baml_client/client.py +++ b/integ-tests/python/baml_client/client.py @@ -56,6 +56,28 @@ def stream(self): return self.__stream_client + async def AudioInput( + self, + aud: baml_py.Audio, + baml_options: BamlCallOptions = {}, + ) -> str: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "AudioInput", + { + "aud": aud, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("AudioInputReturnType", inner=(str, ...)) + return coerce(mdl, raw.parsed()) + async def ClassifyMessage( self, input: str, @@ -248,6 +270,50 @@ async def DynamicFunc( mdl = create_model("DynamicFuncReturnType", inner=(types.DynamicClassTwo, ...)) return coerce(mdl, raw.parsed()) + async def DynamicInputOutput( + self, + input: types.DynInputOutput, + baml_options: BamlCallOptions = {}, + ) -> types.DynInputOutput: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "DynamicInputOutput", + { + "input": input, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("DynamicInputOutputReturnType", inner=(types.DynInputOutput, ...)) + return coerce(mdl, raw.parsed()) + + async def DynamicListInputOutput( + self, + input: List[types.DynInputOutput], + baml_options: BamlCallOptions = {}, + ) -> List[types.DynInputOutput]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "DynamicListInputOutput", + { + "input": input, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("DynamicListInputOutputReturnType", inner=(List[types.DynInputOutput], ...)) + return coerce(mdl, raw.parsed()) + async def ExtractNames( self, input: str, @@ -296,6 +362,28 @@ async def ExtractPeople( mdl = create_model("ExtractPeopleReturnType", inner=(List[types.Person], ...)) return coerce(mdl, raw.parsed()) + async def ExtractReceiptInfo( + self, + email: str, + baml_options: BamlCallOptions = {}, + ) -> types.ReceiptInfo: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "ExtractReceiptInfo", + { + "email": email, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("ExtractReceiptInfoReturnType", inner=(types.ReceiptInfo, ...)) + return coerce(mdl, raw.parsed()) + async def ExtractResume( self, resume: str,img: Optional[baml_py.Image], @@ -872,6 +960,7 @@ async def PromptTestClaudeChatNoSystem( mdl = create_model("PromptTestClaudeChatNoSystemReturnType", inner=(str, ...)) return coerce(mdl, raw.parsed()) +<<<<<<< HEAD async def PromptTestOpenAI( self, input: str, @@ -896,6 +985,8 @@ async def PromptTestOpenAI( mdl = create_model("PromptTestOpenAIReturnType", inner=(str, ...)) return coerce(mdl, raw.parsed()) +======= +>>>>>>> canary async def PromptTestOpenAIChat( self, input: str, @@ -944,6 +1035,28 @@ async def PromptTestOpenAIChatNoSystem( mdl = create_model("PromptTestOpenAIChatNoSystemReturnType", inner=(str, ...)) return coerce(mdl, raw.parsed()) + async def PromptTestStreaming( + self, + input: str, + baml_options: BamlCallOptions = {}, + ) -> str: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "PromptTestStreaming", + { + "input": input, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("PromptTestStreamingReturnType", inner=(str, ...)) + return coerce(mdl, raw.parsed()) + async def TestAnthropic( self, input: str, @@ -968,6 +1081,28 @@ async def TestAnthropic( mdl = create_model("TestAnthropicReturnType", inner=(str, ...)) return coerce(mdl, raw.parsed()) + async def TestAws( + self, + input: str, + baml_options: BamlCallOptions = {}, + ) -> str: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "TestAws", + { + "input": input, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("TestAwsReturnType", inner=(str, ...)) + return coerce(mdl, raw.parsed()) + async def TestAzure( self, input: str, @@ -1328,6 +1463,28 @@ async def TestOpenAI( mdl = create_model("TestOpenAIReturnType", inner=(str, ...)) return coerce(mdl, raw.parsed()) + async def TestOpenAILegacyProvider( + self, + input: str, + baml_options: BamlCallOptions = {}, + ) -> str: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = await self.__runtime.call_function( + "TestOpenAILegacyProvider", + { + "input": input, + }, + self.__ctx_manager.get(), + tb, + ) + mdl = create_model("TestOpenAILegacyProviderReturnType", inner=(str, ...)) + return coerce(mdl, raw.parsed()) + async def TestRetryConstant( self, @@ -1410,6 +1567,38 @@ def __init__(self, runtime: baml_py.BamlRuntime, ctx_manager: baml_py.BamlCtxMan self.__ctx_manager = ctx_manager + def AudioInput( + self, + aud: baml_py.Audio, + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[Optional[str], str]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "AudioInput", + { + "aud": aud, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("AudioInputReturnType", inner=(str, ...)) + partial_mdl = create_model("AudioInputPartialReturnType", inner=(Optional[str], ...)) + + return baml_py.BamlStream[Optional[str], str]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + def ClassifyMessage( self, input: str, @@ -1677,6 +1866,70 @@ def DynamicFunc( self.__ctx_manager.get(), ) + def DynamicInputOutput( + self, + input: types.DynInputOutput, + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[partial_types.DynInputOutput, types.DynInputOutput]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "DynamicInputOutput", + { + "input": input, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("DynamicInputOutputReturnType", inner=(types.DynInputOutput, ...)) + partial_mdl = create_model("DynamicInputOutputPartialReturnType", inner=(partial_types.DynInputOutput, ...)) + + return baml_py.BamlStream[partial_types.DynInputOutput, types.DynInputOutput]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + + def DynamicListInputOutput( + self, + input: List[types.DynInputOutput], + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[List[partial_types.DynInputOutput], List[types.DynInputOutput]]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "DynamicListInputOutput", + { + "input": input, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("DynamicListInputOutputReturnType", inner=(List[types.DynInputOutput], ...)) + partial_mdl = create_model("DynamicListInputOutputPartialReturnType", inner=(List[partial_types.DynInputOutput], ...)) + + return baml_py.BamlStream[List[partial_types.DynInputOutput], List[types.DynInputOutput]]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + def ExtractNames( self, input: str, @@ -1743,6 +1996,38 @@ def ExtractPeople( self.__ctx_manager.get(), ) + def ExtractReceiptInfo( + self, + email: str, + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[partial_types.ReceiptInfo, types.ReceiptInfo]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "ExtractReceiptInfo", + { + "email": email, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("ExtractReceiptInfoReturnType", inner=(types.ReceiptInfo, ...)) + partial_mdl = create_model("ExtractReceiptInfoPartialReturnType", inner=(partial_types.ReceiptInfo, ...)) + + return baml_py.BamlStream[partial_types.ReceiptInfo, types.ReceiptInfo]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + def ExtractResume( self, resume: str,img: Optional[baml_py.Image], @@ -2536,6 +2821,7 @@ def PromptTestClaudeChatNoSystem( self.__ctx_manager.get(), ) +<<<<<<< HEAD def PromptTestOpenAI( self, input: str, @@ -2569,6 +2855,8 @@ def PromptTestOpenAI( self.__ctx_manager.get(), ) +======= +>>>>>>> canary def PromptTestOpenAIChat( self, input: str, @@ -2635,6 +2923,38 @@ def PromptTestOpenAIChatNoSystem( self.__ctx_manager.get(), ) + def PromptTestStreaming( + self, + input: str, + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[Optional[str], str]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "PromptTestStreaming", + { + "input": input, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("PromptTestStreamingReturnType", inner=(str, ...)) + partial_mdl = create_model("PromptTestStreamingPartialReturnType", inner=(Optional[str], ...)) + + return baml_py.BamlStream[Optional[str], str]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + def TestAnthropic( self, input: str, @@ -2668,6 +2988,38 @@ def TestAnthropic( self.__ctx_manager.get(), ) + def TestAws( + self, + input: str, + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[Optional[str], str]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "TestAws", + { + "input": input, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("TestAwsReturnType", inner=(str, ...)) + partial_mdl = create_model("TestAwsPartialReturnType", inner=(Optional[str], ...)) + + return baml_py.BamlStream[Optional[str], str]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + def TestAzure( self, input: str, @@ -3163,6 +3515,38 @@ def TestOpenAI( self.__ctx_manager.get(), ) + def TestOpenAILegacyProvider( + self, + input: str, + baml_options: BamlCallOptions = {}, + ) -> baml_py.BamlStream[Optional[str], str]: + __tb__ = baml_options.get("tb", None) + if __tb__ is not None: + tb = __tb__._tb + else: + tb = None + + raw = self.__runtime.stream_function( + "TestOpenAILegacyProvider", + { + "input": input, + }, + None, + self.__ctx_manager.get(), + tb, + ) + + mdl = create_model("TestOpenAILegacyProviderReturnType", inner=(str, ...)) + partial_mdl = create_model("TestOpenAILegacyProviderPartialReturnType", inner=(Optional[str], ...)) + + return baml_py.BamlStream[Optional[str], str]( + raw, + lambda x: coerce(partial_mdl, x), + lambda x: coerce(mdl, x), + self.__ctx_manager.get(), + tb, + ) + def TestRetryConstant( self, diff --git a/integ-tests/python/baml_client/globals.py b/integ-tests/python/baml_client/globals.py index bf4341dec..4db980cea 100644 --- a/integ-tests/python/baml_client/globals.py +++ b/integ-tests/python/baml_client/globals.py @@ -19,13 +19,13 @@ from .client import BamlClient from .inlinedbaml import get_baml_files -_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.from_files( +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.from_files( "baml_src", get_baml_files(), os.environ.copy() ) -DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = BamlCtxManager(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = BamlCtxManager(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) -b = BamlClient(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +b = BamlClient(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) __all__ = ['b'] \ No newline at end of file diff --git a/integ-tests/python/baml_client/inlinedbaml.py b/integ-tests/python/baml_client/inlinedbaml.py index eb654c367..9a28553f2 100644 --- a/integ-tests/python/baml_client/inlinedbaml.py +++ b/integ-tests/python/baml_client/inlinedbaml.py @@ -16,29 +16,33 @@ file_map = { - "clients.baml": "retry_policy Bar {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Foo {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient GPT4 {\n provider baml-openai-chat\n options {\n model gpt-4\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4o {\n provider baml-openai-chat\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4Turbo {\n retry_policy Bar\n provider baml-openai-chat\n options {\n model gpt-4-turbo\n api_key env.OPENAI_API_KEY\n }\n} \n\nclient GPT35 {\n provider baml-openai-chat\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\nclient Ollama {\n provider ollama\n options {\n model llama2\n }\n}\n\nclient GPT35Azure {\n provider azure-openai\n options {\n resource_name \"west-us-azure-baml\"\n deployment_id \"gpt-35-turbo-default\"\n // base_url \"https://west-us-azure-baml.openai.azure.com/openai/deployments/gpt-35-turbo-default\"\n api_version \"2024-02-01\"\n api_key env.AZURE_OPENAI_API_KEY\n }\n}\n\nclient Gemini {\n provider google-ai\n options{\n model \"gemini-1.5-pro-001\"\n api_key env.GOOGLE_API_KEY\n }\n}\n\n\nclient Claude {\n provider anthropic\n options {\n model claude-3-haiku-20240307\n api_key env.ANTHROPIC_API_KEY\n max_tokens 1000\n }\n}\n\nclient Resilient_SimpleSyntax {\n retry_policy Foo\n provider baml-fallback\n options {\n strategy [\n GPT4Turbo\n GPT35\n Lottery_SimpleSyntax\n ]\n }\n} \n \nclient Lottery_SimpleSyntax {\n provider baml-round-robin\n options {\n start 0\n strategy [\n GPT35\n Claude\n ]\n }\n}\n", + "clients.baml": "retry_policy Bar {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Foo {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient GPT4 {\n provider openai\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4o {\n provider openai\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4Turbo {\n retry_policy Bar\n provider openai\n options {\n model gpt-4-turbo\n api_key env.OPENAI_API_KEY\n }\n} \n\nclient GPT35 {\n provider openai\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\nclient GPT35LegacyProvider {\n provider openai\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\n\nclient Ollama {\n provider ollama\n options {\n model llama2\n }\n}\n\nclient GPT35Azure {\n provider azure-openai\n options {\n resource_name \"west-us-azure-baml\"\n deployment_id \"gpt-35-turbo-default\"\n // base_url \"https://west-us-azure-baml.openai.azure.com/openai/deployments/gpt-35-turbo-default\"\n api_version \"2024-02-01\"\n api_key env.AZURE_OPENAI_API_KEY\n }\n}\n\nclient Gemini {\n provider google-ai\n options {\n model \"gemini-1.5-pro-001\"\n api_key env.GOOGLE_API_KEY\n }\n}\n\nclient AwsBedrock {\n provider aws-bedrock\n options {\n inference_configuration {\n max_tokens 100\n }\n model_id \"anthropic.claude-3-haiku-20240307-v1:0\"\n // model_id \"meta.llama3-8b-instruct-v1:0\"\n // model_id \"mistral.mistral-7b-instruct-v0:2\"\n api_key \"\"\n }\n}\n\nclient Claude {\n provider anthropic\n options {\n model claude-3-haiku-20240307\n api_key env.ANTHROPIC_API_KEY\n max_tokens 1000\n }\n}\n\nclient Resilient_SimpleSyntax {\n retry_policy Foo\n provider baml-fallback\n options {\n strategy [\n GPT4Turbo\n GPT35\n Lottery_SimpleSyntax\n ]\n }\n} \n \nclient Lottery_SimpleSyntax {\n provider baml-round-robin\n options {\n start 0\n strategy [\n GPT35\n Claude\n ]\n }\n}\n", "fiddle-examples/chain-of-thought.baml": "class Email {\n subject string\n body string\n from_address string\n}\n\nenum OrderStatus {\n ORDERED\n SHIPPED\n DELIVERED\n CANCELLED\n}\n\nclass OrderInfo {\n order_status OrderStatus\n tracking_number string?\n estimated_arrival_date string?\n}\n\nfunction GetOrderInfo(email: Email) -> OrderInfo {\n client GPT4\n prompt #\"\n Given the email below:\n\n ```\n from: {{email.from_address}}\n Email Subject: {{email.subject}}\n Email Body: {{email.body}}\n ```\n\n Extract this info from the email in JSON format:\n {{ ctx.output_format }}\n\n Before you output the JSON, please explain your\n reasoning step-by-step. Here is an example on how to do this:\n 'If we think step by step we can see that ...\n therefore the output JSON is:\n {\n ... the json schema ...\n }'\n \"#\n}", "fiddle-examples/chat-roles.baml": "// This will be available as an enum in your Python and Typescript code.\nenum Category2 {\n Refund\n CancelOrder\n TechnicalSupport\n AccountIssue\n Question\n}\n\nfunction ClassifyMessage2(input: string) -> Category {\n client GPT4\n\n prompt #\"\n {{ _.role(\"system\") }}\n // You can use _.role(\"system\") to indicate that this text should be a system message\n\n Classify the following INPUT into ONE\n of the following categories:\n\n {{ ctx.output_format }}\n\n {{ _.role(\"user\") }}\n // And _.role(\"user\") to indicate that this text should be a user message\n\n INPUT: {{ input }}\n\n Response:\n \"#\n}", "fiddle-examples/classify-message.baml": "// This will be available as an enum in your Python and Typescript code.\nenum Category {\n Refund\n CancelOrder\n TechnicalSupport\n AccountIssue\n Question\n}\n\nfunction ClassifyMessage(input: string) -> Category {\n client GPT4\n\n prompt #\"\n Classify the following INPUT into ONE\n of the following categories:\n\n INPUT: {{ input }}\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}", "fiddle-examples/extract-names.baml": "function ExtractNames(input: string) -> string[] {\n client GPT4\n prompt #\"\n Extract the names from this INPUT:\n \n INPUT:\n ---\n {{ input }}\n ---\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}\n", - "fiddle-examples/images/image.baml": "function DescribeImage(img: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n\n\n Describe the image below in 5 words:\n {{ img }}\n \"#\n\n}\n\nclass FakeImage {\n url string\n}\n\nclass ClassWithImage {\n myImage image\n param2 string\n fake_image FakeImage\n}\n\n// chat role user present\nfunction DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n You should return 2 answers that answer the following commands.\n\n 1. Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n 2. Also tell me what's happening here in one sentence:\n {{ img2 }}\n \"#\n}\n\n// no chat role\nfunction DescribeImage3(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\n\n// system prompt and chat prompt\nfunction DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"system\")}}\n\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}", + "fiddle-examples/extract-receipt-info.baml": "class ReceiptItem {\n name string\n description string?\n quantity int\n price float\n}\n\nclass ReceiptInfo {\n items ReceiptItem[]\n total_cost float?\n}\n\nfunction ExtractReceiptInfo(email: string) -> ReceiptInfo {\n client GPT4o\n prompt #\"\n Given the receipt below:\n\n ```\n {{email}}\n ```\n\n {{ ctx.output_format }}\n \"#\n}\n\n", + "fiddle-examples/images/image.baml": "function DescribeImage(img: image) -> string {\n client AwsBedrock\n prompt #\"\n {{ _.role(\"user\") }}\n\n\n Describe the image below in 20 words:\n {{ img }}\n \"#\n\n}\n\nclass FakeImage {\n url string\n}\n\nclass ClassWithImage {\n myImage image\n param2 string\n fake_image FakeImage\n}\n\n// chat role user present\nfunction DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string { \n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n You should return 2 answers that answer the following commands.\n\n 1. Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n 2. Also tell me what's happening here in one sentence:\n {{ img2 }}\n \"#\n}\n\n// no chat role\nfunction DescribeImage3(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\n\n// system prompt and chat prompt\nfunction DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"system\")}}\n\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\ntest TestName {\n functions [DescribeImage]\n args {\n img { url \"https://imgs.xkcd.com/comics/standards.png\"}\n }\n}\n", "fiddle-examples/symbol-tuning.baml": "enum Category3 {\n Refund @alias(\"k1\")\n @description(\"Customer wants to refund a product\")\n\n CancelOrder @alias(\"k2\")\n @description(\"Customer wants to cancel an order\")\n\n TechnicalSupport @alias(\"k3\")\n @description(\"Customer needs help with a technical issue unrelated to account creation or login\")\n\n AccountIssue @alias(\"k4\")\n @description(\"Specifically relates to account-login or account-creation\")\n\n Question @alias(\"k5\")\n @description(\"Customer has a question\")\n}\n\nfunction ClassifyMessage3(input: string) -> Category {\n client GPT4\n\n prompt #\"\n Classify the following INPUT into ONE\n of the following categories:\n\n INPUT: {{ input }}\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}", "main.baml": "generator lang_python {\n output_type python/pydantic\n output_dir \"../python\"\n}\n\ngenerator lang_typescript {\n output_type typescript\n output_dir \"../typescript\"\n}\n\ngenerator lang_ruby {\n output_type ruby/sorbet\n output_dir \"../ruby\"\n}\n", "test-files/aliases/classes.baml": "class TestClassAlias {\n key string @alias(\"key-dash\") @description(#\"\n This is a description for key\n af asdf\n \"#)\n key2 string @alias(\"key21\")\n key3 string @alias(\"key with space\")\n key4 string //unaliased\n key5 string @alias(\"key.with.punctuation/123\")\n}\n\nfunction FnTestClassAlias(input: string) -> TestClassAlias {\n client GPT35\n prompt #\"\n {{ctx.output_format}}\n \"#\n}\n\ntest FnTestClassAlias {\n functions [FnTestClassAlias]\n args {\n input \"example input\"\n }\n}\n", "test-files/aliases/enums.baml": "enum TestEnum {\n A @alias(\"k1\") @description(#\"\n User is angry\n \"#)\n B @alias(\"k22\") @description(#\"\n User is happy\n \"#)\n // tests whether k1 doesnt incorrectly get matched with k11\n C @alias(\"k11\") @description(#\"\n User is sad\n \"#)\n D @alias(\"k44\") @description(\n User is confused\n )\n E @description(\n User is excited\n )\n F @alias(\"k5\") // only alias\n \n G @alias(\"k6\") @description(#\"\n User is bored\n With a long description\n \"#)\n \n @@alias(\"Category\")\n}\n\nfunction FnTestAliasedEnumOutput(input: string) -> TestEnum {\n client GPT35\n prompt #\"\n Classify the user input into the following category\n \n {{ ctx.output_format }}\n\n {{ _.role('user') }}\n {{input}}\n\n {{ _.role('assistant') }}\n Category ID:\n \"#\n}\n\ntest FnTestAliasedEnumOutput {\n functions [FnTestAliasedEnumOutput]\n args {\n input \"mehhhhh\"\n }\n}", "test-files/comments/comments.baml": "// add some functions, classes, enums etc with comments all over.", - "test-files/dynamic/dynamic.baml": "class DynamicClassOne {\n @@dynamic\n}\n\nenum DynEnumOne {\n @@dynamic\n}\n\nenum DynEnumTwo {\n @@dynamic\n}\n\nclass SomeClassNestedDynamic {\n hi string\n @@dynamic\n\n}\n\nclass DynamicClassTwo {\n hi string\n some_class SomeClassNestedDynamic\n status DynEnumOne\n @@dynamic\n}\n\nfunction DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo {\n client GPT35\n prompt #\"\n Please extract the schema from \n {{ input }}\n\n {{ ctx.output_format }}\n \"#\n}\n\nclass DynamicOutput {\n @@dynamic\n}\n \nfunction MyFunc(input: string) -> DynamicOutput {\n client GPT4\n prompt #\"\n Given a string, extract info using the schema:\n\n {{ input}}\n\n {{ ctx.output_format }}\n \"#\n}", + "test-files/dynamic/dynamic.baml": "class DynamicClassOne {\n @@dynamic\n}\n\nenum DynEnumOne {\n @@dynamic\n}\n\nenum DynEnumTwo {\n @@dynamic\n}\n\nclass SomeClassNestedDynamic {\n hi string\n @@dynamic\n\n}\n\nclass DynamicClassTwo {\n hi string\n some_class SomeClassNestedDynamic\n status DynEnumOne\n @@dynamic\n}\n\nfunction DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo {\n client GPT35\n prompt #\"\n Please extract the schema from \n {{ input }}\n\n {{ ctx.output_format }}\n \"#\n}\n\nclass DynInputOutput {\n testKey string\n @@dynamic\n}\n\nfunction DynamicInputOutput(input: DynInputOutput) -> DynInputOutput {\n client GPT35\n prompt #\"\n Here is some input data:\n ----\n {{ input }}\n ----\n\n Extract the information.\n {{ ctx.output_format }}\n \"#\n}\n\nfunction DynamicListInputOutput(input: DynInputOutput[]) -> DynInputOutput[] {\n client GPT35\n prompt #\"\n Here is some input data:\n ----\n {{ input }}\n ----\n\n Extract the information.\n {{ ctx.output_format }}\n \"#\n}\n\n\n\nclass DynamicOutput {\n @@dynamic\n}\n \nfunction MyFunc(input: string) -> DynamicOutput {\n client GPT35\n prompt #\"\n Given a string, extract info using the schema:\n\n {{ input}}\n\n {{ ctx.output_format }}\n \"#\n}\n\n", + "test-files/functions/input/named-args/single/named-audio.baml": "function AudioInput(aud: audio) -> string{\n client Gemini\n prompt #\"\n {{ _.role(\"user\") }}\n\n Does this sound like a roar? Yes or no? One word no other characters.\n \n {{ aud }}\n \"#\n}\n\n\ntest TestURLAudioInput{\n functions [AudioInput]\n args {\n aud{ \n url https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg\n }\n } \n}\n\n\n", "test-files/functions/input/named-args/single/named-boolean.baml": "\n\nfunction TestFnNamedArgsSingleBool(myBool: bool) -> string{\n client GPT35\n prompt #\"\n Return this value back to me: {{myBool}}\n \"#\n}\n\ntest TestFnNamedArgsSingleBool {\n functions [TestFnNamedArgsSingleBool]\n args {\n myBool true\n }\n}", "test-files/functions/input/named-args/single/named-class-list.baml": "\n\n\nfunction TestFnNamedArgsSingleStringList(myArg: string[]) -> string{\n client GPT35\n prompt #\"\n Return this value back to me: {{myArg}}\n \"#\n}\n\ntest TestFnNamedArgsSingleStringList {\n functions [TestFnNamedArgsSingleStringList]\n args {\n myArg [\"hello\", \"world\"]\n }\n}", "test-files/functions/input/named-args/single/named-class.baml": "class NamedArgsSingleClass {\n key string\n key_two bool\n key_three int\n // TODO: doesn't work with keys with numbers\n // key2 bool\n // key3 int\n}\n\nfunction TestFnNamedArgsSingleClass(myArg: NamedArgsSingleClass) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg.key}}\n {{myArg.key_two}}\n {{myArg.key_three}}\n \"#\n}\n\ntest TestFnNamedArgsSingleClass {\n functions [TestFnNamedArgsSingleClass]\n args {\n myArg {\n key \"example\",\n key_two true,\n key_three 42\n }\n }\n}\n\nfunction TestMulticlassNamedArgs(myArg: NamedArgsSingleClass, myArg2: NamedArgsSingleClass) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg.key}}\n {{myArg.key_two}}\n {{myArg.key_three}}\n {{myArg2.key}}\n {{myArg2.key_two}}\n {{myArg2.key_three}}\n \"#\n}", "test-files/functions/input/named-args/single/named-enum-list.baml": "enum NamedArgsSingleEnumList {\n ONE\n TWO\n}\n\nfunction TestFnNamedArgsSingleEnumList(myArg: NamedArgsSingleEnumList[]) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg}}\n \"#\n}\n\ntest TestFnNamedArgsSingleEnumList {\n functions [TestFnNamedArgsSingleEnumList]\n args {\n myArg [ONE, TWO]\n }\n}", "test-files/functions/input/named-args/single/named-enum.baml": "enum NamedArgsSingleEnum {\n ONE\n TWO\n}\n\nfunction FnTestNamedArgsSingleEnum(myArg: NamedArgsSingleEnum) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg}}\n \"#\n}\n\ntest FnTestNamedArgsSingleEnum {\n functions [FnTestNamedArgsSingleEnum]\n args {\n myArg ONE\n }\n}", "test-files/functions/input/named-args/single/named-float.baml": "function TestFnNamedArgsSingleFloat(myFloat: float) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myFloat}}\n \"#\n}\n\ntest TestFnNamedArgsSingleFloat {\n functions [TestFnNamedArgsSingleFloat]\n args {\n myFloat 3.14\n }\n}\n", - "test-files/functions/input/named-args/single/named-image.baml": "function TestImageInput(img: image) -> string{\n client GPT4o\n prompt #\"\n {{ _.role(\"user\") }}\n\n Describe this in 4 words {{img}}\n \"#\n}\n\ntest TestImageInput {\n functions [TestImageInput]\n args {\n img {\n url \"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png\"\n }\n }\n}\n\ntest shrek {\n functions [TestImageInput]\n args {\n img {\n url \"https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png\"\n }\n }\n}\n\n\n// double check this before adding it. Probably n ot right.\n// function TestImageInputAnthropic(img: image) -> string{\n// client GPT4o\n// prompt #\"\n// {{ _.role(\"user\") }}\n\n// Describe this in 4 words {{img}}\n// \"#\n// }\n\n// test TestImageInputAnthropic {\n// functions [TestImageInputAnthropic]\n// args {\n// img {\n// base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=\n// media_type \"png\"\n// }\n// }\n// }", + "test-files/functions/input/named-args/single/named-image.baml": "function TestImageInput(img: image) -> string{\n client AwsBedrock\n prompt #\"\n {{ _.role(\"user\") }}\n\n Describe this in 4 words. One word must be the color {{img}}\n \"#\n}\n\ntest TestImageInput {\n functions [TestImageInput]\n args {\n img {\n url \"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png\"\n }\n }\n}\n\ntest shrek {\n functions [TestImageInput]\n args {\n img {\n url \"https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png\"\n }\n }\n}\n\n\n\n// double check this before adding it. Probably n ot right.\n// function TestImageInputAnthropic(img: image) -> string{\n// client GPT4o\n// prompt #\"\n// {{ _.role(\"user\") }}\n\n// Describe this in 4 words {{img}}\n// \"#\n// }\n\n// test TestImageInputAnthropic {\n// functions [TestImageInputAnthropic]\n// args {\n// img {\n// base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=\n// media_type \"image/png\"\n// }\n// }\n// }", "test-files/functions/input/named-args/single/named-int.baml": "// test for int\nfunction TestFnNamedArgsSingleInt(myInt: int) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myInt}}\n \"#\n}\n\ntest TestFnNamedArgsSingleInt {\n functions [TestFnNamedArgsSingleInt]\n args {\n myInt 42\n }\n}\n", "test-files/functions/input/named-args/single/named-string-list.baml": "// string[]\nfunction TestFnNamedArgsSingleStringArray(myStringArray: string[]) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myStringArray}}\n \"#\n}\n\ntest TestFnNamedArgsSingleStringArray {\n functions [TestFnNamedArgsSingleStringArray]\n args {\n myStringArray [\"example1\", \"example2\", \"example3\"]\n }\n}\n", "test-files/functions/input/named-args/single/named-string-optional.baml": "\n\n // string[]\nfunction FnNamedArgsSingleStringOptional(myString: string?) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myString}}\n \"#\n}\n\ntest FnNamedArgsSingleStringOptional {\n functions [FnNamedArgsSingleStringOptional]\n args {\n myString \"example string\"\n }\n}\n\ntest FnNamedArgsSingleStringOptional2 {\n functions [FnNamedArgsSingleStringOptional]\n args {\n \n }\n}\n", "test-files/functions/input/named-args/single/named-string.baml": "// test string\nfunction TestFnNamedArgsSingleString(myString: string) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myString}}\n \"#\n}\n\ntest TestFnNamedArgsSingleString {\n functions [TestFnNamedArgsSingleString]\n args {\n myString \"example string\"\n }\n}\n", + "test-files/functions/input/named-args/single/testcase_audio.baml": "test TestAudioInput {\n functions [AudioInput]\n args {\n aud {\n media_type \"audio/mp3\"\n base64 #\"\n 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\n\n\n\n \"#\n \n }\n }\n}\n \n \n ", + "test-files/functions/input/named-args/single/testcase_image.baml": "test TestImageInputBase64 {\n functions [TestImageInput]\n args {\n img {\n media_type \"image/png\"\n\n base64 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\n }\n }\n}\n\ntest TestBase64URLEscape{\n functions [TestImageInput]\n args{\n img{\n url \"data:image/png;base64,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\"\n }\n }\n}\n", "test-files/functions/input/named-args/syntax.baml": "function TestFnNamedArgsSyntax {\n input (myVar: string, var_with_underscores: string)\n output string\n}\n// TODO: we don't support numbers in named args yet!\n// TODO: we also allow dashes but python fails.", "test-files/functions/output/boolean.baml": "function FnOutputBool(input: string) -> bool {\n client GPT35\n prompt #\"\n Return a true: {{ ctx.output_format}}\n \"#\n}\n\ntest FnOutputBool {\n functions [FnOutputBool]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/class-dynamic.baml": "class Person {\n name string?\n hair_color Color?\n\n @@dynamic\n}\n\nenum Color {\n RED\n BLUE\n GREEN\n YELLOW\n BLACK\n WHITE\n\n @@dynamic\n}\n\nfunction ExtractPeople(text: string) -> Person[] {\n client GPT4\n prompt #\"\n {{ _.role('system') }}\n\t\t You are an expert extraction algorithm. Only extract relevant information from the text. If you do not know the value of an attribute asked to extract, return null for the attribute's value.\n\t\t \n\t\t {# This is a special macro that prints out the output schema of the function #}\n\t\t {{ ctx.output_format }} \n\t\t \n\t\t {{ _.role('user') }}\n\t\t {{text}}\n \"#\n}\n\nenum Hobby {\n SPORTS\n MUSIC\n READING\n\n @@dynamic\n}\n", @@ -53,10 +57,10 @@ "test-files/functions/output/optional.baml": "class OptionalTest_Prop1 {\n omega_a string\n omega_b int\n}\n\nenum OptionalTest_CategoryType {\n Aleph\n Beta\n Gamma\n}\n \nclass OptionalTest_ReturnType {\n omega_1 OptionalTest_Prop1?\n omega_2 string?\n omega_3 (OptionalTest_CategoryType?)[]\n} \n \nfunction OptionalTest_Function(input: string) -> (OptionalTest_ReturnType?)[]\n{\n client GPT35\n prompt #\"\n Return a JSON blob with this schema: \n {{ctx.output_format}}\n\n JSON:\n \"#\n}\n\ntest OptionalTest_Function {\n functions [OptionalTest_Function]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/string-list.baml": "function FnOutputStringList(input: string) -> string[] {\n client GPT35\n prompt #\"\n Return a list of strings in json format like [\"string1\", \"string2\", \"string3\"].\n\n JSON:\n \"#\n}\n\ntest FnOutputStringList {\n functions [FnOutputStringList]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/unions.baml": "class UnionTest_ReturnType {\n prop1 string | bool\n prop2 (float | bool)[]\n prop3 (bool[] | int[])\n}\n\nfunction UnionTest_Function(input: string | bool) -> UnionTest_ReturnType {\n client GPT35\n prompt #\"\n Return a JSON blob with this schema: \n {{ctx.output_format}}\n\n JSON:\n \"#\n}\n\ntest UnionTest_Function {\n functions [UnionTest_Function]\n args {\n input \"example input\"\n }\n}\n", - "test-files/functions/prompts/no-chat-messages.baml": "\n\nfunction PromptTestClaude(input: string) -> string {\n client Claude\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}", - "test-files/functions/prompts/with-chat-messages.baml": "\nfunction PromptTestOpenAIChat(input: string) -> string {\n client GPT35\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAIChatNoSystem(input: string) -> string {\n client GPT35\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChat(input: string) -> string {\n client Claude\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChatNoSystem(input: string) -> string {\n client Claude\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\ntest PromptTestOpenAIChat {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"cats\"\n }\n}\n\ntest TestClaude {\n functions [PromptTestClaudeChatNoSystem]\n args {\n input \"lion\"\n }\n}", + "test-files/functions/prompts/no-chat-messages.baml": "\n\nfunction PromptTestClaude(input: string) -> string {\n client Claude\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}\n\n\nfunction PromptTestStreaming(input: string) -> string {\n client GPT35\n prompt #\"\n Tell me a short story about {{ input }}\n \"#\n}\n\ntest TestName {\n functions [PromptTestStreaming]\n args {\n input #\"\n hello world\n \"#\n }\n}\n", + "test-files/functions/prompts/with-chat-messages.baml": "\nfunction PromptTestOpenAIChat(input: string) -> string {\n client GPT35\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAIChatNoSystem(input: string) -> string {\n client GPT35\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChat(input: string) -> string {\n client Claude\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChatNoSystem(input: string) -> string {\n client Claude\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\ntest TestSystemAndNonSystemChat1 {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"cats\"\n }\n}\n\ntest TestSystemAndNonSystemChat2 {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"lion\"\n }\n}", "test-files/functions/v2/basic.baml": "\n\nfunction ExtractResume2(resume: string) -> Resume {\n client GPT4\n prompt #\"\n {{ _.role('system') }}\n\n Extract the following information from the resume:\n\n Resume:\n <<<<\n {{ resume }}\n <<<<\n\n Output JSON schema:\n {{ ctx.output_format }}\n\n JSON:\n \"#\n}\n\n\nclass WithReasoning {\n value string\n reasoning string @description(#\"\n Why the value is a good fit.\n \"#)\n}\n\n\nclass SearchParams {\n dateRange int? @description(#\"\n In ISO duration format, e.g. P1Y2M10D.\n \"#)\n location string[]\n jobTitle WithReasoning? @description(#\"\n An exact job title, not a general category.\n \"#)\n company WithReasoning? @description(#\"\n The exact name of the company, not a product or service.\n \"#)\n description WithReasoning[] @description(#\"\n Any specific projects or features the user is looking for.\n \"#)\n tags (Tag | string)[]\n}\n\nenum Tag {\n Security\n AI\n Blockchain\n}\n\nfunction GetQuery(query: string) -> SearchParams {\n client GPT4\n prompt #\"\n Extract the following information from the query:\n\n Query:\n <<<<\n {{ query }}\n <<<<\n\n OUTPUT_JSON_SCHEMA:\n {{ ctx.output_format }}\n\n Before OUTPUT_JSON_SCHEMA, list 5 intentions the user may have.\n --- EXAMPLES ---\n 1. \n 2. \n 3. \n 4. \n 5. \n\n {\n ... // OUTPUT_JSON_SCHEMA\n }\n \"#\n}\n\nclass RaysData {\n dataType DataType\n value Resume | Event\n}\n\nenum DataType {\n Resume\n Event\n}\n\nclass Event {\n title string\n date string\n location string\n description string\n}\n\nfunction GetDataType(text: string) -> RaysData {\n client GPT4\n prompt #\"\n Extract the relevant info.\n\n Text:\n <<<<\n {{ text }}\n <<<<\n\n Output JSON schema:\n {{ ctx.output_format }}\n\n JSON:\n \"#\n}", - "test-files/providers/providers.baml": "function TestAnthropic(input: string) -> string {\n client Claude\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestAzure(input: string) -> string {\n client GPT35Azure\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOllama(input: string) -> string {\n client Ollama\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestGemini(input: string) -> string {\n client Gemini\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\n\ntest TestProvider {\n functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini]\n args {\n input \"Donkey kong and peanut butter\"\n }\n}\n\n\n", + "test-files/providers/providers.baml": "function TestAnthropic(input: string) -> string {\n client Claude\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAILegacyProvider(input: string) -> string {\n client GPT35LegacyProvider\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestAzure(input: string) -> string {\n client GPT35Azure\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOllama(input: string) -> string {\n client Ollama\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestGemini(input: string) -> string {\n client Gemini\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\nfunction TestAws(input: string) -> string {\n client AwsBedrock\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\n\ntest TestProvider {\n functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini, TestAws]\n args {\n input \"Donkey kong and peanut butter\"\n }\n}\n\n\n", "test-files/strategies/fallback.baml": "\nclient FaultyClient {\n provider openai\n options {\n model unknown-model\n api_key env.OPENAI_API_KEY\n }\n}\n\n\nclient FallbackClient {\n provider fallback\n options {\n // first 2 clients are expected to fail.\n strategy [\n FaultyClient,\n RetryClientConstant,\n GPT35\n ]\n }\n}\n\nfunction TestFallbackClient() -> string {\n client FallbackClient\n // TODO make it return the client name instead\n prompt #\"\n Say a haiku about mexico.\n \"#\n}", "test-files/strategies/retry.baml": "\nretry_policy Exponential {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Constant {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient RetryClientConstant {\n provider openai\n retry_policy Constant\n options {\n model \"gpt-3.5-turbo\"\n api_key \"blah\"\n }\n}\n\nclient RetryClientExponential {\n provider openai\n retry_policy Exponential\n options {\n model \"gpt-3.5-turbo\"\n api_key \"blahh\"\n }\n}\n\nfunction TestRetryConstant() -> string {\n client RetryClientConstant\n prompt #\"\n Say a haiku\n \"#\n}\n\nfunction TestRetryExponential() -> string {\n client RetryClientExponential\n prompt #\"\n Say a haiku\n \"#\n}\n", "test-files/strategies/roundrobin.baml": "", diff --git a/integ-tests/python/baml_client/partial_types.py b/integ-tests/python/baml_client/partial_types.py index b6f12e325..350ac21ab 100644 --- a/integ-tests/python/baml_client/partial_types.py +++ b/integ-tests/python/baml_client/partial_types.py @@ -53,6 +53,12 @@ class ClassWithImage(BaseModel): param2: Optional[str] = None fake_image: Optional["FakeImage"] = None +class DynInputOutput(BaseModel): + + model_config = ConfigDict(extra='allow') + + testKey: Optional[str] = None + class DynamicClassOne(BaseModel): model_config = ConfigDict(extra='allow') @@ -153,6 +159,20 @@ class RaysData(BaseModel): dataType: Optional[types.DataType] = None value: Optional[Union["Resume", "Event"]] = None +class ReceiptInfo(BaseModel): + + + items: List["ReceiptItem"] + total_cost: Optional[float] = None + +class ReceiptItem(BaseModel): + + + name: Optional[str] = None + description: Optional[str] = None + quantity: Optional[int] = None + price: Optional[float] = None + class Resume(BaseModel): diff --git a/integ-tests/python/baml_client/tracing.py b/integ-tests/python/baml_client/tracing.py index b536ee8eb..7c2bff4d4 100644 --- a/integ-tests/python/baml_client/tracing.py +++ b/integ-tests/python/baml_client/tracing.py @@ -17,7 +17,9 @@ trace = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.trace_fn set_tags = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.upsert_tags -flush = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush +def flush(): + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush() +on_log_event = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.on_log_event -__all__ = ['trace', 'set_tags', "flush"] \ No newline at end of file +__all__ = ['trace', 'set_tags', "flush", "on_log_event"] \ No newline at end of file diff --git a/integ-tests/python/baml_client/type_builder.py b/integ-tests/python/baml_client/type_builder.py index 189265dda..54d4fb68f 100644 --- a/integ-tests/python/baml_client/type_builder.py +++ b/integ-tests/python/baml_client/type_builder.py @@ -19,13 +19,18 @@ class TypeBuilder(_TypeBuilder): def __init__(self): super().__init__(classes=set( - ["Blah","ClassOptionalOutput","ClassOptionalOutput2","ClassWithImage","DynamicClassOne","DynamicClassTwo","DynamicOutput","Education","Email","Event","FakeImage","InnerClass","InnerClass2","NamedArgsSingleClass","OptionalTest_Prop1","OptionalTest_ReturnType","OrderInfo","Person","RaysData","Resume","SearchParams","SomeClassNestedDynamic","TestClassAlias","TestClassNested","TestClassWithEnum","TestOutputClass","UnionTest_ReturnType","WithReasoning",] + ["Blah","ClassOptionalOutput","ClassOptionalOutput2","ClassWithImage","DynInputOutput","DynamicClassOne","DynamicClassTwo","DynamicOutput","Education","Email","Event","FakeImage","InnerClass","InnerClass2","NamedArgsSingleClass","OptionalTest_Prop1","OptionalTest_ReturnType","OrderInfo","Person","RaysData","ReceiptInfo","ReceiptItem","Resume","SearchParams","SomeClassNestedDynamic","TestClassAlias","TestClassNested","TestClassWithEnum","TestOutputClass","UnionTest_ReturnType","WithReasoning",] ), enums=set( ["Category","Category2","Category3","Color","DataType","DynEnumOne","DynEnumTwo","EnumInClass","EnumOutput","Hobby","NamedArgsSingleEnum","NamedArgsSingleEnumList","OptionalTest_CategoryType","OrderStatus","Tag","TestEnum",] )) + @property + def DynInputOutput(self) -> "DynInputOutputBuilder": + return DynInputOutputBuilder(self) + + @property def DynamicClassOne(self) -> "DynamicClassOneBuilder": return DynamicClassOneBuilder(self) @@ -73,6 +78,42 @@ def Hobby(self) -> "HobbyBuilder": return HobbyBuilder(self) +class DynInputOutputBuilder: + def __init__(self, tb: _TypeBuilder): + self.__bldr = tb._tb.class_("DynInputOutput") + self.__properties = set([ "testKey", ]) + self.__props = DynInputOutputProperties(self.__bldr, self.__properties) + + def type(self) -> FieldType: + return self.__bldr.field() + + @property + def props(self) -> "DynInputOutputProperties": + return self.__props + + def list_properties(self) -> typing.List[typing.Tuple[str, ClassPropertyBuilder]]: + return [(name, self.__bldr.property(name)) for name in self.__properties] + + def add_property(self, name: str, type: FieldType) -> ClassPropertyBuilder: + if name in self.__properties: + raise ValueError(f"Property {name} already exists.") + return ClassPropertyBuilder(self.__bldr.property(name).type(type)) + +class DynInputOutputProperties: + def __init__(self, cls_bldr: ClassBuilder, properties: typing.Set[str]): + self.__bldr = cls_bldr + self.__properties = properties + + + + @property + def testKey(self) -> ClassPropertyBuilder: + return self.__bldr.property("testKey") + + def __getattr__(self, name: str) -> ClassPropertyBuilder: + if name not in self.__properties: + raise AttributeError(f"Property {name} not found.") + return ClassPropertyBuilder(self.__bldr.property(name)) class DynamicClassOneBuilder: def __init__(self, tb: _TypeBuilder): self.__bldr = tb._tb.class_("DynamicClassOne") diff --git a/integ-tests/python/baml_client/types.py b/integ-tests/python/baml_client/types.py index 00bdc6fec..418ecd539 100644 --- a/integ-tests/python/baml_client/types.py +++ b/integ-tests/python/baml_client/types.py @@ -144,6 +144,12 @@ class ClassWithImage(BaseModel): param2: str fake_image: "FakeImage" +class DynInputOutput(BaseModel): + + model_config = ConfigDict(extra='allow') + + testKey: str + class DynamicClassOne(BaseModel): model_config = ConfigDict(extra='allow') @@ -244,6 +250,20 @@ class RaysData(BaseModel): dataType: "DataType" value: Union["Resume", "Event"] +class ReceiptInfo(BaseModel): + + + items: List["ReceiptItem"] + total_cost: Optional[float] = None + +class ReceiptItem(BaseModel): + + + name: str + description: Optional[str] = None + quantity: int + price: float + class Resume(BaseModel): diff --git a/integ-tests/python/baml_example_tracing.py b/integ-tests/python/baml_example_tracing.py new file mode 100644 index 000000000..e6606137e --- /dev/null +++ b/integ-tests/python/baml_example_tracing.py @@ -0,0 +1,83 @@ +import time +import threading +import asyncio +from dotenv import load_dotenv +from http.server import BaseHTTPRequestHandler, HTTPServer +import json +import os + +load_dotenv() +os.environ['BOUNDARY_BASE_URL'] = 'http://localhost:4040' + +import baml_py +from baml_client import b +from baml_client.types import NamedArgsSingleEnumList, NamedArgsSingleClass +from baml_client.tracing import trace, set_tags, flush, on_log_event + +class TraceRequestHandler(BaseHTTPRequestHandler): + + @staticmethod + def run_forever(): + address = ('', int(os.environ['BOUNDARY_BASE_URL'].rsplit(':', maxsplit=1)[1])) + httpd = HTTPServer(address, TraceRequestHandler) + print(f'Starting BAML event logger on {address}') + httpd.serve_forever() + + + def do_GET(self): + print(f"Received GET request: {self.path}") + # self.send_response(200) + # self.send_header('Content-type', 'text/html') + # #self.send_header('Content-type', 'application/json') + # self.end_headers() + # self.wfile.write('Hello, BAML!'.encode('utf-8')) + self.send_error(404, "File not found") + + def do_POST(self): + print(f"Received POST request: {self.path}") + self.send_error(404, "File not found") + return + if self.path == '/log/v2': + content_length = int(self.headers['Content-Length']) # Get the size of data + post_data = self.rfile.read(content_length) # Read the data + data = json.loads(post_data.decode('utf-8')) # Decode it to string + + print(f"Received event log for {data}") + print(json.dumps(data, indent=2)) + + self.send_response(200) + self.send_header('Content-type', 'application/json') + self.end_headers() + response = json.dumps({'message': 'Log received'}) + self.wfile.write(response.encode('utf-8')) # Send response back to client + else: + self.send_error(404, "File not found") + +async def main(): + print('Hello, BAML!') + #TraceRequestHandler.run_forever() + t = threading.Thread(target=TraceRequestHandler.run_forever, daemon=True) + t.start() + + print('waiting for server to start') + time.sleep(5) + print('server has started ( i think )') + + @trace + def sync_dummy_fn(): + time.sleep(.05) + + sync_dummy_fn() + + print('before flush') + t_flush = threading.Thread(target=flush) + print('wtf?') + t_flush.start() + print('after start before join') + t_flush.join(timeout=5) + print('after flush') + + assert False + +if __name__ == '__main__': + asyncio.run(main()) \ No newline at end of file diff --git a/integ-tests/python/poetry.lock b/integ-tests/python/poetry.lock index 8720de6ce..8850db6e1 100644 --- a/integ-tests/python/poetry.lock +++ b/integ-tests/python/poetry.lock @@ -14,6 +14,16 @@ files = [ [package.dependencies] typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} +[[package]] +name = "assertpy" +version = "1.1" +description = "Simple assertion library for unit testing in python with a fluent API" +optional = false +python-versions = "*" +files = [ + {file = "assertpy-1.1.tar.gz", hash = "sha256:acc64329934ad71a3221de185517a43af33e373bb44dc05b5a9b174394ef4833"}, +] + [[package]] name = "colorama" version = "0.4.6" @@ -320,4 +330,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "c0890bb7d42663b172b862caa5d317f325f92d8bd1e8e6a9e211461b189f22dc" +content-hash = "75bc9294db7074ba805acc12ba1a8a201c8099a40f8ffe1d2e2aefb14d48e5e6" diff --git a/integ-tests/python/pyproject.toml b/integ-tests/python/pyproject.toml index e50d88083..8c58d850b 100644 --- a/integ-tests/python/pyproject.toml +++ b/integ-tests/python/pyproject.toml @@ -19,6 +19,7 @@ pytest-asyncio = "^0.23.7" pytest = "^8.2.1" pydantic = "^2.7.1" python-dotenv = "^1.0.1" +assertpy = "^1.1" [build-system] requires = ["poetry-core"] diff --git a/integ-tests/python/tests/base64_test_data.py b/integ-tests/python/tests/base64_test_data.py new file mode 100644 index 000000000..8fc46fb18 --- /dev/null +++ b/integ-tests/python/tests/base64_test_data.py @@ -0,0 +1,4 @@ +image_b64 = "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" + + +audio_b64 = "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" \ No newline at end of file diff --git a/integ-tests/python/test_functions.py b/integ-tests/python/tests/test_functions.py similarity index 53% rename from integ-tests/python/test_functions.py rename to integ-tests/python/tests/test_functions.py index 86ed822a9..51a4249f0 100644 --- a/integ-tests/python/test_functions.py +++ b/integ-tests/python/tests/test_functions.py @@ -1,19 +1,25 @@ +import time import pytest +from assertpy import assert_that from dotenv import load_dotenv +from .base64_test_data import image_b64, audio_b64 + load_dotenv() import baml_py -from baml_client import b -from baml_client.types import NamedArgsSingleEnumList, NamedArgsSingleClass -from baml_client.tracing import trace, set_tags, flush -from baml_client.type_builder import TypeBuilder +from ..baml_client import b +from ..baml_client.globals import ( + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, +) +from ..baml_client.types import NamedArgsSingleEnumList, NamedArgsSingleClass +from ..baml_client.tracing import trace, set_tags, flush, on_log_event +from ..baml_client.type_builder import TypeBuilder import datetime - @pytest.mark.asyncio async def test_should_work_for_all_inputs(): res = await b.TestFnNamedArgsSingleBool(True) - assert res == "true" + assert res res = await b.TestFnNamedArgsSingleStringList(["a", "b", "c"]) assert "a" in res and "b" in res and "c" in res @@ -60,7 +66,7 @@ class MyCustomClass(NamedArgsSingleClass): @pytest.mark.asyncio async def accepts_subclass_of_baml_type(): print("calling with class") - res = await b.TestFnNamedArgsSingleClass( + _ = await b.TestFnNamedArgsSingleClass( myArg=MyCustomClass( key="key", key_two=True, key_three=52, date=datetime.datetime.now() ) @@ -93,13 +99,35 @@ async def test_should_work_for_all_outputs(): @pytest.mark.asyncio -async def test_should_work_with_image(): +async def test_should_work_with_image_url(): res = await b.TestImageInput( img=baml_py.Image.from_url( "https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png" ) ) - assert "green" in res.lower() + assert_that(res.lower()).matches(r"(green|yellow|shrek|ogre)") + + +@pytest.mark.asyncio +async def test_should_work_with_image_base64(): + res = await b.TestImageInput(img=baml_py.Image.from_base64("image/png", image_b64)) + assert_that(res.lower()).matches(r"(green|yellow|shrek|ogre)") + + +@pytest.mark.asyncio +async def test_should_work_with_audio_base64(): + res = await b.AudioInput(aud=baml_py.Audio.from_base64("audio/mp3", audio_b64)) + assert "yes" in res.lower() + + +@pytest.mark.asyncio +async def test_should_work_with_audio_url(): + res = await b.AudioInput( + aud=baml_py.Audio.from_url( + "https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg" + ) + ) + assert "no" in res.lower() @pytest.mark.asyncio @@ -125,21 +153,56 @@ async def test_claude(): @pytest.mark.asyncio async def test_gemini(): - geminiRes = await b.TestGemini(input= "Dr. Pepper") - print(f'LLM output from Gemini: {geminiRes}') - + geminiRes = await b.TestGemini(input="Dr. Pepper") + print(f"LLM output from Gemini: {geminiRes}") assert len(geminiRes) > 0, "Expected non-empty result but got empty." +@pytest.mark.asyncio +async def test_gemini_streaming(): + geminiRes = await b.stream.TestGemini(input="Dr. Pepper").get_final_response() + print(f"LLM output from Gemini: {geminiRes}") + + assert len(geminiRes) > 0, "Expected non-empty result but got empty." + + +@pytest.mark.asyncio +async def test_aws(): + res = await b.TestAws(input="Mt Rainier is tall") + assert len(res) > 0, "Expected non-empty result but got empty." + + +@pytest.mark.asyncio +async def test_aws_streaming(): + res = await b.stream.TestAws(input="Mt Rainier is tall").get_final_response() + assert len(res) > 0, "Expected non-empty result but got empty." + @pytest.mark.asyncio async def test_streaming(): - stream = b.stream.PromptTestOpenAI(input="Programming languages are fun to create") - msgs = [] + stream = b.stream.PromptTestStreaming( + input="Programming languages are fun to create" + ) + msgs: list[str] = [] + + start_time = asyncio.get_event_loop().time() + last_msg_time = start_time + first_msg_time = start_time + 10 async for msg in stream: - msgs.append(msg) + msgs.append(str(msg)) + if len(msgs) == 1: + first_msg_time = asyncio.get_event_loop().time() + + last_msg_time = asyncio.get_event_loop().time() + final = await stream.get_final_response() + assert ( + first_msg_time - start_time <= 1.5 + ), "Expected first message within 1 second but it took longer." + assert ( + last_msg_time - start_time >= 1 + ), "Expected last message after 1.5 seconds but it was earlier." assert len(final) > 0, "Expected non-empty final but got empty." assert len(msgs) > 0, "Expected at least one streamed response but got none." for prev_msg, msg in zip(msgs, msgs[1:]): @@ -154,7 +217,7 @@ async def test_streaming(): @pytest.mark.asyncio async def test_streaming_uniterated(): - final = await b.stream.PromptTestOpenAI( + final = await b.stream.PromptTestStreaming( input="The color blue makes me sad" ).get_final_response() assert len(final) > 0, "Expected non-empty final but got empty." @@ -163,9 +226,9 @@ async def test_streaming_uniterated(): @pytest.mark.asyncio async def test_streaming_claude(): stream = b.stream.PromptTestClaude(input="Mt Rainier is tall") - msgs = [] + msgs: list[str] = [] async for msg in stream: - msgs.append(msg) + msgs.append(str(msg)) final = await stream.get_final_response() assert len(final) > 0, "Expected non-empty final but got empty." @@ -187,9 +250,10 @@ async def test_streaming_claude(): @pytest.mark.asyncio async def test_streaming_gemini(): stream = b.stream.TestGemini(input="Dr.Pepper") - msgs = [] + msgs: list[str] = [] async for msg in stream: - msgs.append(msg) + if msg is not None: + msgs.append(msg) final = await stream.get_final_response() assert len(final) > 0, "Expected non-empty final but got empty." @@ -208,15 +272,50 @@ async def test_streaming_gemini(): assert msgs[-1] == final, "Expected last stream message to match final response." +@pytest.mark.asyncio +async def test_tracing_async_only(): + + @trace + async def top_level_async_tracing(): + @trace + async def nested_dummy_fn(_foo: str): + time.sleep(0.5 + random.random()) + return "nested dummy fn" + + @trace + async def dummy_fn(foo: str): + await asyncio.gather( + b.FnOutputClass(foo), + nested_dummy_fn(foo), + ) + return "dummy fn" + + await asyncio.gather( + dummy_fn("dummy arg 1"), + dummy_fn("dummy arg 2"), + dummy_fn("dummy arg 3"), + ) + await asyncio.gather( + parent_async("first-arg-value"), parent_async2("second-arg-value") + ) + return 1 + + # Clear any existing traces + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.flush() + _ = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.drain_stats() + res = await top_level_async_tracing() + assert_that(res).is_equal_to(1) -@pytest.mark.asyncio -async def test_tracing_async(): - # sync_dummy_func("second-dummycall-arg") - res = await parent_async("first-arg-value") - # sync_dummy_func("second-dummycall-arg") - res2 = await parent_async2("second-arg-value") - # sync_dummy_func("second-dummycall-arg") + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.flush() + stats = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.drain_stats() + print("STATS", stats) + assert_that(stats.started).is_equal_to(15) + assert_that(stats.finalized).is_equal_to(stats.started) + assert_that(stats.submitted).is_equal_to(stats.started) + assert_that(stats.sent).is_equal_to(stats.started) + assert_that(stats.done).is_equal_to(stats.started) + assert_that(stats.failed).is_equal_to(0) def test_tracing_sync(): @@ -238,6 +337,11 @@ async def test_tracing_async_gather(): await trace_async_gather() +@pytest.mark.asyncio +async def test_tracing_async_gather_top_level(): + await asyncio.gather(*[async_dummy_func("second-dummycall-arg") for _ in range(10)]) + + import concurrent.futures @@ -258,12 +362,14 @@ async def trace_thread_pool_async(): # Create 10 tasks and execute them futures = [executor.submit(trace_async_gather) for _ in range(10)] for future in concurrent.futures.as_completed(futures): - res = await future.result() + _ = await future.result() @trace async def trace_async_gather(): - await asyncio.gather(*[async_dummy_func("second-dummycall-arg") for _ in range(10)]) + await asyncio.gather( + *[async_dummy_func("handcrafted-artisan-arg") for _ in range(10)] + ) @trace @@ -347,19 +453,88 @@ async def test_dynamic_class_output(): for prop in tb.DynamicOutput.list_properties(): print(f"Property: {prop}") - output = await b.MyFunc(input="My name is Harrison. My hair is black and I'm 6 feet tall.", baml_options={"tb": tb}) + output = await b.MyFunc( + input="My name is Harrison. My hair is black and I'm 6 feet tall.", + baml_options={"tb": tb}, + ) + output = await b.MyFunc( + input="My name is Harrison. My hair is black and I'm 6 feet tall.", + baml_options={"tb": tb}, + ) print(output.model_dump_json()) assert output.hair_color == "black" + +@pytest.mark.asyncio +async def test_dynamic_class_nested_output_no_stream(): + tb = TypeBuilder() + nested_class = tb.add_class("Name") + nested_class.add_property("first_name", tb.string()) + nested_class.add_property("last_name", tb.string().optional()) + nested_class.add_property("middle_name", tb.string().optional()) + + other_nested_class = tb.add_class("Address") + + # name should be first in the prompt schema + tb.DynamicOutput.add_property("name", nested_class.type().optional()) + tb.DynamicOutput.add_property("address", other_nested_class.type().optional()) + tb.DynamicOutput.add_property("hair_color", tb.string()).alias("hairColor") + tb.DynamicOutput.add_property("height", tb.float().optional()) + + output = await b.MyFunc( + input="My name is Mark Gonzalez. My hair is black and I'm 6 feet tall.", + baml_options={"tb": tb}, + ) + print(output.model_dump_json()) + # assert the order of the properties inside output dict: + assert ( + output.model_dump_json() + == '{"name":{"first_name":"Mark","last_name":"Gonzalez","middle_name":null},"address":null,"hair_color":"black","height":6.0}' + ) + + +@pytest.mark.asyncio +async def test_dynamic_class_nested_output_stream(): + tb = TypeBuilder() + nested_class = tb.add_class("Name") + nested_class.add_property("first_name", tb.string()) + nested_class.add_property("last_name", tb.string().optional()) + + # name should be first in the prompt schema + tb.DynamicOutput.add_property("name", nested_class.type().optional()) + tb.DynamicOutput.add_property("hair_color", tb.string()) + + stream = b.stream.MyFunc( + input="My name is Mark Gonzalez. My hair is black and I'm 6 feet tall.", + baml_options={"tb": tb}, + ) + msgs = [] + async for msg in stream: + print("streamed ", msg) + print("streamed ", msg.model_dump()) + msgs.append(msg) + output = await stream.get_final_response() + + print(output.model_dump_json()) + # assert the order of the properties inside output dict: + assert ( + output.model_dump_json() + == '{"name":{"first_name":"Mark","last_name":"Gonzalez"},"hair_color":"black"}' + ) + + @pytest.mark.asyncio async def test_stream_dynamic_class_output(): tb = TypeBuilder() tb.DynamicOutput.add_property("hair_color", tb.string()) print(tb.DynamicOutput.list_properties()) - for prop in tb.DynamicOutput.list_properties(): + for prop, _ in tb.DynamicOutput.list_properties(): print(f"Property: {prop}") - stream = b.stream.MyFunc(input="My name is Harrison. My hair is black and I'm 6 feet tall.", baml_options={"tb": tb}) + stream = b.stream.MyFunc( + input="My name is Harrison. My hair is black and I'm 6 feet tall.", + baml_options={"tb": tb}, + ) msgs = [] async for msg in stream: print("streamed ", msg) @@ -373,22 +548,59 @@ async def test_stream_dynamic_class_output(): print("final ", final.model_dump_json()) assert final.hair_color == "black" + @pytest.mark.asyncio async def test_nested_class_streaming(): - stream = b.stream.FnOutputClassNested(input="My name is Harrison. My hair is black and I'm 6 feet tall.") + stream = b.stream.FnOutputClassNested( + input="My name is Harrison. My hair is black and I'm 6 feet tall." + ) msgs = [] async for msg in stream: - print("streamed ", msg.model_dump(mode='json')) + print("streamed ", msg.model_dump(mode="json")) msgs.append(msg) final = await stream.get_final_response() assert len(msgs) > 0, "Expected at least one streamed response but got none." - print("final ", final.model_dump(mode='json')) + print("final ", final.model_dump(mode="json")) + @pytest.mark.asyncio async def test_dynamic_clients(): cb = baml_py.baml_py.ClientBuilder() - cb.add_client("MyClient", "openai", { "model": "gpt-3.5-turbo" }) + cb.add_client("MyClient", "openai", {"model": "gpt-3.5-turbo"}) cb.set_primary("MyClient") - await b.TestOllama(input="My name is Harrison. My hair is black and I'm 6 feet tall.", baml_options={"client_builder": cb}) + await b.TestOllama( + input="My name is Harrison. My hair is black and I'm 6 feet tall.", + baml_options={"client_builder": cb}, + ) + print("final ", final.model_dump(mode="json")) + + +@pytest.mark.asyncio +async def test_event_log_hook(): + def event_log_hook(event: baml_py.baml_py.BamlLogEvent): + print("Event log hook1: ") + print("Event log event ", event) + + on_log_event(event_log_hook) + res = await b.TestFnNamedArgsSingleStringList(["a", "b", "c"]) + assert res + + +@pytest.mark.asyncio +async def test_aws_bedrock(): + ## unstreamed + # res = await b.TestAws("lightning in a rock") + # print("unstreamed", res) + + ## streamed + stream = b.stream.TestAws("lightning in a rock") + + async for msg in stream: + if msg: + print("streamed ", repr(msg[-100:])) + + res = await stream.get_final_response() + print("streamed final", res) + assert len(res) > 0, "Expected non-empty result but got empty." diff --git a/integ-tests/ruby/baml_client/client.rb b/integ-tests/ruby/baml_client/client.rb index b08b95c10..9de2dbe2e 100644 --- a/integ-tests/ruby/baml_client/client.rb +++ b/integ-tests/ruby/baml_client/client.rb @@ -49,6 +49,26 @@ def self.from_directory(path) BamlClient.new(runtime: Baml::Ffi::BamlRuntime.from_directory(path, ENV)) end + sig { + + params( + aud: Baml::Audio, + ).returns(String) + + } + def AudioInput( + aud: + ) + raw = @runtime.call_function( + "AudioInput", + { + "aud" => aud, + }, + @ctx_manager, + ) + (raw.parsed_using_types(Baml::Types)) + end + sig { params( @@ -209,6 +229,46 @@ def DynamicFunc( (raw.parsed_using_types(Baml::Types)) end + sig { + + params( + input: Baml::Types::DynInputOutput, + ).returns(Baml::Types::DynInputOutput) + + } + def DynamicInputOutput( + input: + ) + raw = @runtime.call_function( + "DynamicInputOutput", + { + "input" => input, + }, + @ctx_manager, + ) + (raw.parsed_using_types(Baml::Types)) + end + + sig { + + params( + input: T::Array[Baml::Types::DynInputOutput], + ).returns(T::Array[Baml::Types::DynInputOutput]) + + } + def DynamicListInputOutput( + input: + ) + raw = @runtime.call_function( + "DynamicListInputOutput", + { + "input" => input, + }, + @ctx_manager, + ) + (raw.parsed_using_types(Baml::Types)) + end + sig { params( @@ -249,6 +309,26 @@ def ExtractPeople( (raw.parsed_using_types(Baml::Types)) end + sig { + + params( + email: String, + ).returns(Baml::Types::ReceiptInfo) + + } + def ExtractReceiptInfo( + email: + ) + raw = @runtime.call_function( + "ExtractReceiptInfo", + { + "email" => email, + }, + @ctx_manager, + ) + (raw.parsed_using_types(Baml::Types)) + end + sig { params( @@ -736,11 +816,11 @@ def PromptTestClaudeChatNoSystem( ).returns(String) } - def PromptTestOpenAI( + def PromptTestOpenAIChat( input: ) raw = @runtime.call_function( - "PromptTestOpenAI", + "PromptTestOpenAIChat", { "input" => input, }, @@ -756,11 +836,11 @@ def PromptTestOpenAI( ).returns(String) } - def PromptTestOpenAIChat( + def PromptTestOpenAIChatNoSystem( input: ) raw = @runtime.call_function( - "PromptTestOpenAIChat", + "PromptTestOpenAIChatNoSystem", { "input" => input, }, @@ -776,11 +856,11 @@ def PromptTestOpenAIChat( ).returns(String) } - def PromptTestOpenAIChatNoSystem( + def PromptTestStreaming( input: ) raw = @runtime.call_function( - "PromptTestOpenAIChatNoSystem", + "PromptTestStreaming", { "input" => input, }, @@ -809,6 +889,26 @@ def TestAnthropic( (raw.parsed_using_types(Baml::Types)) end + sig { + + params( + input: String, + ).returns(String) + + } + def TestAws( + input: + ) + raw = @runtime.call_function( + "TestAws", + { + "input" => input, + }, + @ctx_manager, + ) + (raw.parsed_using_types(Baml::Types)) + end + sig { params( @@ -1107,6 +1207,26 @@ def TestOpenAI( (raw.parsed_using_types(Baml::Types)) end + sig { + + params( + input: String, + ).returns(String) + + } + def TestOpenAILegacyProvider( + input: + ) + raw = @runtime.call_function( + "TestOpenAILegacyProvider", + { + "input" => input, + }, + @ctx_manager, + ) + (raw.parsed_using_types(Baml::Types)) + end + sig { returns(String) @@ -1176,6 +1296,27 @@ def initialize(runtime:, ctx_manager:) @ctx_manager = ctx_manager end + sig { + params( + aud: Baml::Audio, + ).returns(Baml::BamlStream[String]) + } + def AudioInput( + aud: + ) + raw = @runtime.stream_function( + "AudioInput", + { + "aud" => aud, + }, + @ctx_manager, + ) + Baml::BamlStream[T.nilable(String), String].new( + ffi_stream: raw, + ctx_manager: @ctx_manager + ) + end + sig { params( input: String, @@ -1344,6 +1485,48 @@ def DynamicFunc( ) end + sig { + params( + input: Baml::Types::DynInputOutput, + ).returns(Baml::BamlStream[Baml::Types::DynInputOutput]) + } + def DynamicInputOutput( + input: + ) + raw = @runtime.stream_function( + "DynamicInputOutput", + { + "input" => input, + }, + @ctx_manager, + ) + Baml::BamlStream[Baml::PartialTypes::DynInputOutput, Baml::Types::DynInputOutput].new( + ffi_stream: raw, + ctx_manager: @ctx_manager + ) + end + + sig { + params( + input: T::Array[Baml::Types::DynInputOutput], + ).returns(Baml::BamlStream[T::Array[Baml::Types::DynInputOutput]]) + } + def DynamicListInputOutput( + input: + ) + raw = @runtime.stream_function( + "DynamicListInputOutput", + { + "input" => input, + }, + @ctx_manager, + ) + Baml::BamlStream[T::Array[Baml::PartialTypes::DynInputOutput], T::Array[Baml::Types::DynInputOutput]].new( + ffi_stream: raw, + ctx_manager: @ctx_manager + ) + end + sig { params( input: String, @@ -1386,6 +1569,27 @@ def ExtractPeople( ) end + sig { + params( + email: String, + ).returns(Baml::BamlStream[Baml::Types::ReceiptInfo]) + } + def ExtractReceiptInfo( + email: + ) + raw = @runtime.stream_function( + "ExtractReceiptInfo", + { + "email" => email, + }, + @ctx_manager, + ) + Baml::BamlStream[Baml::PartialTypes::ReceiptInfo, Baml::Types::ReceiptInfo].new( + ffi_stream: raw, + ctx_manager: @ctx_manager + ) + end + sig { params( resume: String,img: T.nilable(Baml::Image), @@ -1895,11 +2099,11 @@ def PromptTestClaudeChatNoSystem( input: String, ).returns(Baml::BamlStream[String]) } - def PromptTestOpenAI( + def PromptTestOpenAIChat( input: ) raw = @runtime.stream_function( - "PromptTestOpenAI", + "PromptTestOpenAIChat", { "input" => input, }, @@ -1916,11 +2120,11 @@ def PromptTestOpenAI( input: String, ).returns(Baml::BamlStream[String]) } - def PromptTestOpenAIChat( + def PromptTestOpenAIChatNoSystem( input: ) raw = @runtime.stream_function( - "PromptTestOpenAIChat", + "PromptTestOpenAIChatNoSystem", { "input" => input, }, @@ -1937,11 +2141,11 @@ def PromptTestOpenAIChat( input: String, ).returns(Baml::BamlStream[String]) } - def PromptTestOpenAIChatNoSystem( + def PromptTestStreaming( input: ) raw = @runtime.stream_function( - "PromptTestOpenAIChatNoSystem", + "PromptTestStreaming", { "input" => input, }, @@ -1974,6 +2178,27 @@ def TestAnthropic( ) end + sig { + params( + input: String, + ).returns(Baml::BamlStream[String]) + } + def TestAws( + input: + ) + raw = @runtime.stream_function( + "TestAws", + { + "input" => input, + }, + @ctx_manager, + ) + Baml::BamlStream[T.nilable(String), String].new( + ffi_stream: raw, + ctx_manager: @ctx_manager + ) + end + sig { params( input: String, @@ -2289,6 +2514,27 @@ def TestOpenAI( ) end + sig { + params( + input: String, + ).returns(Baml::BamlStream[String]) + } + def TestOpenAILegacyProvider( + input: + ) + raw = @runtime.stream_function( + "TestOpenAILegacyProvider", + { + "input" => input, + }, + @ctx_manager, + ) + Baml::BamlStream[T.nilable(String), String].new( + ffi_stream: raw, + ctx_manager: @ctx_manager + ) + end + sig { params( diff --git a/integ-tests/ruby/baml_client/inlined.rb b/integ-tests/ruby/baml_client/inlined.rb index eb5619c00..6a6545ff2 100644 --- a/integ-tests/ruby/baml_client/inlined.rb +++ b/integ-tests/ruby/baml_client/inlined.rb @@ -16,29 +16,33 @@ module Baml module Inlined FILE_MAP = { - "clients.baml" => "retry_policy Bar {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Foo {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient GPT4 {\n provider baml-openai-chat\n options {\n model gpt-4\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4o {\n provider baml-openai-chat\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4Turbo {\n retry_policy Bar\n provider baml-openai-chat\n options {\n model gpt-4-turbo\n api_key env.OPENAI_API_KEY\n }\n} \n\nclient GPT35 {\n provider baml-openai-chat\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\nclient Ollama {\n provider ollama\n options {\n model llama2\n }\n}\n\nclient GPT35Azure {\n provider azure-openai\n options {\n resource_name \"west-us-azure-baml\"\n deployment_id \"gpt-35-turbo-default\"\n // base_url \"https://west-us-azure-baml.openai.azure.com/openai/deployments/gpt-35-turbo-default\"\n api_version \"2024-02-01\"\n api_key env.AZURE_OPENAI_API_KEY\n }\n}\n\nclient Gemini {\n provider google-ai\n options{\n model \"gemini-1.5-pro-001\"\n api_key env.GOOGLE_API_KEY\n }\n}\n\n\nclient Claude {\n provider anthropic\n options {\n model claude-3-haiku-20240307\n api_key env.ANTHROPIC_API_KEY\n max_tokens 1000\n }\n}\n\nclient Resilient_SimpleSyntax {\n retry_policy Foo\n provider baml-fallback\n options {\n strategy [\n GPT4Turbo\n GPT35\n Lottery_SimpleSyntax\n ]\n }\n} \n \nclient Lottery_SimpleSyntax {\n provider baml-round-robin\n options {\n start 0\n strategy [\n GPT35\n Claude\n ]\n }\n}\n", + "clients.baml" => "retry_policy Bar {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Foo {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient GPT4 {\n provider openai\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4o {\n provider openai\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4Turbo {\n retry_policy Bar\n provider openai\n options {\n model gpt-4-turbo\n api_key env.OPENAI_API_KEY\n }\n} \n\nclient GPT35 {\n provider openai\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\nclient GPT35LegacyProvider {\n provider openai\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\n\nclient Ollama {\n provider ollama\n options {\n model llama2\n }\n}\n\nclient GPT35Azure {\n provider azure-openai\n options {\n resource_name \"west-us-azure-baml\"\n deployment_id \"gpt-35-turbo-default\"\n // base_url \"https://west-us-azure-baml.openai.azure.com/openai/deployments/gpt-35-turbo-default\"\n api_version \"2024-02-01\"\n api_key env.AZURE_OPENAI_API_KEY\n }\n}\n\nclient Gemini {\n provider google-ai\n options {\n model \"gemini-1.5-pro-001\"\n api_key env.GOOGLE_API_KEY\n }\n}\n\nclient AwsBedrock {\n provider aws-bedrock\n options {\n inference_configuration {\n max_tokens 100\n }\n model_id \"anthropic.claude-3-haiku-20240307-v1:0\"\n // model_id \"meta.llama3-8b-instruct-v1:0\"\n // model_id \"mistral.mistral-7b-instruct-v0:2\"\n api_key \"\"\n }\n}\n\nclient Claude {\n provider anthropic\n options {\n model claude-3-haiku-20240307\n api_key env.ANTHROPIC_API_KEY\n max_tokens 1000\n }\n}\n\nclient Resilient_SimpleSyntax {\n retry_policy Foo\n provider baml-fallback\n options {\n strategy [\n GPT4Turbo\n GPT35\n Lottery_SimpleSyntax\n ]\n }\n} \n \nclient Lottery_SimpleSyntax {\n provider baml-round-robin\n options {\n start 0\n strategy [\n GPT35\n Claude\n ]\n }\n}\n", "fiddle-examples/chain-of-thought.baml" => "class Email {\n subject string\n body string\n from_address string\n}\n\nenum OrderStatus {\n ORDERED\n SHIPPED\n DELIVERED\n CANCELLED\n}\n\nclass OrderInfo {\n order_status OrderStatus\n tracking_number string?\n estimated_arrival_date string?\n}\n\nfunction GetOrderInfo(email: Email) -> OrderInfo {\n client GPT4\n prompt #\"\n Given the email below:\n\n ```\n from: {{email.from_address}}\n Email Subject: {{email.subject}}\n Email Body: {{email.body}}\n ```\n\n Extract this info from the email in JSON format:\n {{ ctx.output_format }}\n\n Before you output the JSON, please explain your\n reasoning step-by-step. Here is an example on how to do this:\n 'If we think step by step we can see that ...\n therefore the output JSON is:\n {\n ... the json schema ...\n }'\n \"#\n}", "fiddle-examples/chat-roles.baml" => "// This will be available as an enum in your Python and Typescript code.\nenum Category2 {\n Refund\n CancelOrder\n TechnicalSupport\n AccountIssue\n Question\n}\n\nfunction ClassifyMessage2(input: string) -> Category {\n client GPT4\n\n prompt #\"\n {{ _.role(\"system\") }}\n // You can use _.role(\"system\") to indicate that this text should be a system message\n\n Classify the following INPUT into ONE\n of the following categories:\n\n {{ ctx.output_format }}\n\n {{ _.role(\"user\") }}\n // And _.role(\"user\") to indicate that this text should be a user message\n\n INPUT: {{ input }}\n\n Response:\n \"#\n}", "fiddle-examples/classify-message.baml" => "// This will be available as an enum in your Python and Typescript code.\nenum Category {\n Refund\n CancelOrder\n TechnicalSupport\n AccountIssue\n Question\n}\n\nfunction ClassifyMessage(input: string) -> Category {\n client GPT4\n\n prompt #\"\n Classify the following INPUT into ONE\n of the following categories:\n\n INPUT: {{ input }}\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}", "fiddle-examples/extract-names.baml" => "function ExtractNames(input: string) -> string[] {\n client GPT4\n prompt #\"\n Extract the names from this INPUT:\n \n INPUT:\n ---\n {{ input }}\n ---\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}\n", - "fiddle-examples/images/image.baml" => "function DescribeImage(img: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n\n\n Describe the image below in 5 words:\n {{ img }}\n \"#\n\n}\n\nclass FakeImage {\n url string\n}\n\nclass ClassWithImage {\n myImage image\n param2 string\n fake_image FakeImage\n}\n\n// chat role user present\nfunction DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n You should return 2 answers that answer the following commands.\n\n 1. Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n 2. Also tell me what's happening here in one sentence:\n {{ img2 }}\n \"#\n}\n\n// no chat role\nfunction DescribeImage3(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\n\n// system prompt and chat prompt\nfunction DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"system\")}}\n\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}", + "fiddle-examples/extract-receipt-info.baml" => "class ReceiptItem {\n name string\n description string?\n quantity int\n price float\n}\n\nclass ReceiptInfo {\n items ReceiptItem[]\n total_cost float?\n}\n\nfunction ExtractReceiptInfo(email: string) -> ReceiptInfo {\n client GPT4o\n prompt #\"\n Given the receipt below:\n\n ```\n {{email}}\n ```\n\n {{ ctx.output_format }}\n \"#\n}\n\n", + "fiddle-examples/images/image.baml" => "function DescribeImage(img: image) -> string {\n client AwsBedrock\n prompt #\"\n {{ _.role(\"user\") }}\n\n\n Describe the image below in 20 words:\n {{ img }}\n \"#\n\n}\n\nclass FakeImage {\n url string\n}\n\nclass ClassWithImage {\n myImage image\n param2 string\n fake_image FakeImage\n}\n\n// chat role user present\nfunction DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string { \n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n You should return 2 answers that answer the following commands.\n\n 1. Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n 2. Also tell me what's happening here in one sentence:\n {{ img2 }}\n \"#\n}\n\n// no chat role\nfunction DescribeImage3(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\n\n// system prompt and chat prompt\nfunction DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"system\")}}\n\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\ntest TestName {\n functions [DescribeImage]\n args {\n img { url \"https://imgs.xkcd.com/comics/standards.png\"}\n }\n}\n", "fiddle-examples/symbol-tuning.baml" => "enum Category3 {\n Refund @alias(\"k1\")\n @description(\"Customer wants to refund a product\")\n\n CancelOrder @alias(\"k2\")\n @description(\"Customer wants to cancel an order\")\n\n TechnicalSupport @alias(\"k3\")\n @description(\"Customer needs help with a technical issue unrelated to account creation or login\")\n\n AccountIssue @alias(\"k4\")\n @description(\"Specifically relates to account-login or account-creation\")\n\n Question @alias(\"k5\")\n @description(\"Customer has a question\")\n}\n\nfunction ClassifyMessage3(input: string) -> Category {\n client GPT4\n\n prompt #\"\n Classify the following INPUT into ONE\n of the following categories:\n\n INPUT: {{ input }}\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}", "main.baml" => "generator lang_python {\n output_type python/pydantic\n output_dir \"../python\"\n}\n\ngenerator lang_typescript {\n output_type typescript\n output_dir \"../typescript\"\n}\n\ngenerator lang_ruby {\n output_type ruby/sorbet\n output_dir \"../ruby\"\n}\n", "test-files/aliases/classes.baml" => "class TestClassAlias {\n key string @alias(\"key-dash\") @description(#\"\n This is a description for key\n af asdf\n \"#)\n key2 string @alias(\"key21\")\n key3 string @alias(\"key with space\")\n key4 string //unaliased\n key5 string @alias(\"key.with.punctuation/123\")\n}\n\nfunction FnTestClassAlias(input: string) -> TestClassAlias {\n client GPT35\n prompt #\"\n {{ctx.output_format}}\n \"#\n}\n\ntest FnTestClassAlias {\n functions [FnTestClassAlias]\n args {\n input \"example input\"\n }\n}\n", "test-files/aliases/enums.baml" => "enum TestEnum {\n A @alias(\"k1\") @description(#\"\n User is angry\n \"#)\n B @alias(\"k22\") @description(#\"\n User is happy\n \"#)\n // tests whether k1 doesnt incorrectly get matched with k11\n C @alias(\"k11\") @description(#\"\n User is sad\n \"#)\n D @alias(\"k44\") @description(\n User is confused\n )\n E @description(\n User is excited\n )\n F @alias(\"k5\") // only alias\n \n G @alias(\"k6\") @description(#\"\n User is bored\n With a long description\n \"#)\n \n @@alias(\"Category\")\n}\n\nfunction FnTestAliasedEnumOutput(input: string) -> TestEnum {\n client GPT35\n prompt #\"\n Classify the user input into the following category\n \n {{ ctx.output_format }}\n\n {{ _.role('user') }}\n {{input}}\n\n {{ _.role('assistant') }}\n Category ID:\n \"#\n}\n\ntest FnTestAliasedEnumOutput {\n functions [FnTestAliasedEnumOutput]\n args {\n input \"mehhhhh\"\n }\n}", "test-files/comments/comments.baml" => "// add some functions, classes, enums etc with comments all over.", - "test-files/dynamic/dynamic.baml" => "class DynamicClassOne {\n @@dynamic\n}\n\nenum DynEnumOne {\n @@dynamic\n}\n\nenum DynEnumTwo {\n @@dynamic\n}\n\nclass SomeClassNestedDynamic {\n hi string\n @@dynamic\n\n}\n\nclass DynamicClassTwo {\n hi string\n some_class SomeClassNestedDynamic\n status DynEnumOne\n @@dynamic\n}\n\nfunction DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo {\n client GPT35\n prompt #\"\n Please extract the schema from \n {{ input }}\n\n {{ ctx.output_format }}\n \"#\n}\n\nclass DynamicOutput {\n @@dynamic\n}\n \nfunction MyFunc(input: string) -> DynamicOutput {\n client GPT4\n prompt #\"\n Given a string, extract info using the schema:\n\n {{ input}}\n\n {{ ctx.output_format }}\n \"#\n}", + "test-files/dynamic/dynamic.baml" => "class DynamicClassOne {\n @@dynamic\n}\n\nenum DynEnumOne {\n @@dynamic\n}\n\nenum DynEnumTwo {\n @@dynamic\n}\n\nclass SomeClassNestedDynamic {\n hi string\n @@dynamic\n\n}\n\nclass DynamicClassTwo {\n hi string\n some_class SomeClassNestedDynamic\n status DynEnumOne\n @@dynamic\n}\n\nfunction DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo {\n client GPT35\n prompt #\"\n Please extract the schema from \n {{ input }}\n\n {{ ctx.output_format }}\n \"#\n}\n\nclass DynInputOutput {\n testKey string\n @@dynamic\n}\n\nfunction DynamicInputOutput(input: DynInputOutput) -> DynInputOutput {\n client GPT35\n prompt #\"\n Here is some input data:\n ----\n {{ input }}\n ----\n\n Extract the information.\n {{ ctx.output_format }}\n \"#\n}\n\nfunction DynamicListInputOutput(input: DynInputOutput[]) -> DynInputOutput[] {\n client GPT35\n prompt #\"\n Here is some input data:\n ----\n {{ input }}\n ----\n\n Extract the information.\n {{ ctx.output_format }}\n \"#\n}\n\n\n\nclass DynamicOutput {\n @@dynamic\n}\n \nfunction MyFunc(input: string) -> DynamicOutput {\n client GPT35\n prompt #\"\n Given a string, extract info using the schema:\n\n {{ input}}\n\n {{ ctx.output_format }}\n \"#\n}\n\n", + "test-files/functions/input/named-args/single/named-audio.baml" => "function AudioInput(aud: audio) -> string{\n client Gemini\n prompt #\"\n {{ _.role(\"user\") }}\n\n Does this sound like a roar? Yes or no? One word no other characters.\n \n {{ aud }}\n \"#\n}\n\n\ntest TestURLAudioInput{\n functions [AudioInput]\n args {\n aud{ \n url https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg\n }\n } \n}\n\n\n", "test-files/functions/input/named-args/single/named-boolean.baml" => "\n\nfunction TestFnNamedArgsSingleBool(myBool: bool) -> string{\n client GPT35\n prompt #\"\n Return this value back to me: {{myBool}}\n \"#\n}\n\ntest TestFnNamedArgsSingleBool {\n functions [TestFnNamedArgsSingleBool]\n args {\n myBool true\n }\n}", "test-files/functions/input/named-args/single/named-class-list.baml" => "\n\n\nfunction TestFnNamedArgsSingleStringList(myArg: string[]) -> string{\n client GPT35\n prompt #\"\n Return this value back to me: {{myArg}}\n \"#\n}\n\ntest TestFnNamedArgsSingleStringList {\n functions [TestFnNamedArgsSingleStringList]\n args {\n myArg [\"hello\", \"world\"]\n }\n}", "test-files/functions/input/named-args/single/named-class.baml" => "class NamedArgsSingleClass {\n key string\n key_two bool\n key_three int\n // TODO: doesn't work with keys with numbers\n // key2 bool\n // key3 int\n}\n\nfunction TestFnNamedArgsSingleClass(myArg: NamedArgsSingleClass) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg.key}}\n {{myArg.key_two}}\n {{myArg.key_three}}\n \"#\n}\n\ntest TestFnNamedArgsSingleClass {\n functions [TestFnNamedArgsSingleClass]\n args {\n myArg {\n key \"example\",\n key_two true,\n key_three 42\n }\n }\n}\n\nfunction TestMulticlassNamedArgs(myArg: NamedArgsSingleClass, myArg2: NamedArgsSingleClass) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg.key}}\n {{myArg.key_two}}\n {{myArg.key_three}}\n {{myArg2.key}}\n {{myArg2.key_two}}\n {{myArg2.key_three}}\n \"#\n}", "test-files/functions/input/named-args/single/named-enum-list.baml" => "enum NamedArgsSingleEnumList {\n ONE\n TWO\n}\n\nfunction TestFnNamedArgsSingleEnumList(myArg: NamedArgsSingleEnumList[]) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg}}\n \"#\n}\n\ntest TestFnNamedArgsSingleEnumList {\n functions [TestFnNamedArgsSingleEnumList]\n args {\n myArg [ONE, TWO]\n }\n}", "test-files/functions/input/named-args/single/named-enum.baml" => "enum NamedArgsSingleEnum {\n ONE\n TWO\n}\n\nfunction FnTestNamedArgsSingleEnum(myArg: NamedArgsSingleEnum) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg}}\n \"#\n}\n\ntest FnTestNamedArgsSingleEnum {\n functions [FnTestNamedArgsSingleEnum]\n args {\n myArg ONE\n }\n}", "test-files/functions/input/named-args/single/named-float.baml" => "function TestFnNamedArgsSingleFloat(myFloat: float) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myFloat}}\n \"#\n}\n\ntest TestFnNamedArgsSingleFloat {\n functions [TestFnNamedArgsSingleFloat]\n args {\n myFloat 3.14\n }\n}\n", - "test-files/functions/input/named-args/single/named-image.baml" => "function TestImageInput(img: image) -> string{\n client GPT4o\n prompt #\"\n {{ _.role(\"user\") }}\n\n Describe this in 4 words {{img}}\n \"#\n}\n\ntest TestImageInput {\n functions [TestImageInput]\n args {\n img {\n url \"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png\"\n }\n }\n}\n\ntest shrek {\n functions [TestImageInput]\n args {\n img {\n url \"https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png\"\n }\n }\n}\n\n\n// double check this before adding it. Probably n ot right.\n// function TestImageInputAnthropic(img: image) -> string{\n// client GPT4o\n// prompt #\"\n// {{ _.role(\"user\") }}\n\n// Describe this in 4 words {{img}}\n// \"#\n// }\n\n// test TestImageInputAnthropic {\n// functions [TestImageInputAnthropic]\n// args {\n// img {\n// base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=\n// media_type \"png\"\n// }\n// }\n// }", + "test-files/functions/input/named-args/single/named-image.baml" => "function TestImageInput(img: image) -> string{\n client AwsBedrock\n prompt #\"\n {{ _.role(\"user\") }}\n\n Describe this in 4 words. One word must be the color {{img}}\n \"#\n}\n\ntest TestImageInput {\n functions [TestImageInput]\n args {\n img {\n url \"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png\"\n }\n }\n}\n\ntest shrek {\n functions [TestImageInput]\n args {\n img {\n url \"https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png\"\n }\n }\n}\n\n\n\n// double check this before adding it. Probably n ot right.\n// function TestImageInputAnthropic(img: image) -> string{\n// client GPT4o\n// prompt #\"\n// {{ _.role(\"user\") }}\n\n// Describe this in 4 words {{img}}\n// \"#\n// }\n\n// test TestImageInputAnthropic {\n// functions [TestImageInputAnthropic]\n// args {\n// img {\n// base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=\n// media_type \"image/png\"\n// }\n// }\n// }", "test-files/functions/input/named-args/single/named-int.baml" => "// test for int\nfunction TestFnNamedArgsSingleInt(myInt: int) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myInt}}\n \"#\n}\n\ntest TestFnNamedArgsSingleInt {\n functions [TestFnNamedArgsSingleInt]\n args {\n myInt 42\n }\n}\n", "test-files/functions/input/named-args/single/named-string-list.baml" => "// string[]\nfunction TestFnNamedArgsSingleStringArray(myStringArray: string[]) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myStringArray}}\n \"#\n}\n\ntest TestFnNamedArgsSingleStringArray {\n functions [TestFnNamedArgsSingleStringArray]\n args {\n myStringArray [\"example1\", \"example2\", \"example3\"]\n }\n}\n", "test-files/functions/input/named-args/single/named-string-optional.baml" => "\n\n // string[]\nfunction FnNamedArgsSingleStringOptional(myString: string?) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myString}}\n \"#\n}\n\ntest FnNamedArgsSingleStringOptional {\n functions [FnNamedArgsSingleStringOptional]\n args {\n myString \"example string\"\n }\n}\n\ntest FnNamedArgsSingleStringOptional2 {\n functions [FnNamedArgsSingleStringOptional]\n args {\n \n }\n}\n", "test-files/functions/input/named-args/single/named-string.baml" => "// test string\nfunction TestFnNamedArgsSingleString(myString: string) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myString}}\n \"#\n}\n\ntest TestFnNamedArgsSingleString {\n functions [TestFnNamedArgsSingleString]\n args {\n myString \"example string\"\n }\n}\n", + "test-files/functions/input/named-args/single/testcase_audio.baml" => "test TestAudioInput {\n functions [AudioInput]\n args {\n aud {\n media_type \"audio/mp3\"\n base64 #\"\n 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\n\n\n\n \"#\n \n }\n }\n}\n \n \n ", + "test-files/functions/input/named-args/single/testcase_image.baml" => "test TestImageInputBase64 {\n functions [TestImageInput]\n args {\n img {\n media_type \"image/png\"\n\n base64 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\n }\n }\n}\n\ntest TestBase64URLEscape{\n functions [TestImageInput]\n args{\n img{\n url \"data:image/png;base64,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\"\n }\n }\n}\n", "test-files/functions/input/named-args/syntax.baml" => "function TestFnNamedArgsSyntax {\n input (myVar: string, var_with_underscores: string)\n output string\n}\n// TODO: we don't support numbers in named args yet!\n// TODO: we also allow dashes but python fails.", "test-files/functions/output/boolean.baml" => "function FnOutputBool(input: string) -> bool {\n client GPT35\n prompt #\"\n Return a true: {{ ctx.output_format}}\n \"#\n}\n\ntest FnOutputBool {\n functions [FnOutputBool]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/class-dynamic.baml" => "class Person {\n name string?\n hair_color Color?\n\n @@dynamic\n}\n\nenum Color {\n RED\n BLUE\n GREEN\n YELLOW\n BLACK\n WHITE\n\n @@dynamic\n}\n\nfunction ExtractPeople(text: string) -> Person[] {\n client GPT4\n prompt #\"\n {{ _.role('system') }}\n\t\t You are an expert extraction algorithm. Only extract relevant information from the text. If you do not know the value of an attribute asked to extract, return null for the attribute's value.\n\t\t \n\t\t {# This is a special macro that prints out the output schema of the function #}\n\t\t {{ ctx.output_format }} \n\t\t \n\t\t {{ _.role('user') }}\n\t\t {{text}}\n \"#\n}\n\nenum Hobby {\n SPORTS\n MUSIC\n READING\n\n @@dynamic\n}\n", @@ -53,10 +57,10 @@ module Inlined "test-files/functions/output/optional.baml" => "class OptionalTest_Prop1 {\n omega_a string\n omega_b int\n}\n\nenum OptionalTest_CategoryType {\n Aleph\n Beta\n Gamma\n}\n \nclass OptionalTest_ReturnType {\n omega_1 OptionalTest_Prop1?\n omega_2 string?\n omega_3 (OptionalTest_CategoryType?)[]\n} \n \nfunction OptionalTest_Function(input: string) -> (OptionalTest_ReturnType?)[]\n{\n client GPT35\n prompt #\"\n Return a JSON blob with this schema: \n {{ctx.output_format}}\n\n JSON:\n \"#\n}\n\ntest OptionalTest_Function {\n functions [OptionalTest_Function]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/string-list.baml" => "function FnOutputStringList(input: string) -> string[] {\n client GPT35\n prompt #\"\n Return a list of strings in json format like [\"string1\", \"string2\", \"string3\"].\n\n JSON:\n \"#\n}\n\ntest FnOutputStringList {\n functions [FnOutputStringList]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/unions.baml" => "class UnionTest_ReturnType {\n prop1 string | bool\n prop2 (float | bool)[]\n prop3 (bool[] | int[])\n}\n\nfunction UnionTest_Function(input: string | bool) -> UnionTest_ReturnType {\n client GPT35\n prompt #\"\n Return a JSON blob with this schema: \n {{ctx.output_format}}\n\n JSON:\n \"#\n}\n\ntest UnionTest_Function {\n functions [UnionTest_Function]\n args {\n input \"example input\"\n }\n}\n", - "test-files/functions/prompts/no-chat-messages.baml" => "\n\nfunction PromptTestClaude(input: string) -> string {\n client Claude\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}", - "test-files/functions/prompts/with-chat-messages.baml" => "\nfunction PromptTestOpenAIChat(input: string) -> string {\n client GPT35\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAIChatNoSystem(input: string) -> string {\n client GPT35\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChat(input: string) -> string {\n client Claude\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChatNoSystem(input: string) -> string {\n client Claude\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\ntest PromptTestOpenAIChat {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"cats\"\n }\n}\n\ntest TestClaude {\n functions [PromptTestClaudeChatNoSystem]\n args {\n input \"lion\"\n }\n}", + "test-files/functions/prompts/no-chat-messages.baml" => "\n\nfunction PromptTestClaude(input: string) -> string {\n client Claude\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}\n\n\nfunction PromptTestStreaming(input: string) -> string {\n client GPT35\n prompt #\"\n Tell me a short story about {{ input }}\n \"#\n}\n\ntest TestName {\n functions [PromptTestStreaming]\n args {\n input #\"\n hello world\n \"#\n }\n}\n", + "test-files/functions/prompts/with-chat-messages.baml" => "\nfunction PromptTestOpenAIChat(input: string) -> string {\n client GPT35\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAIChatNoSystem(input: string) -> string {\n client GPT35\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChat(input: string) -> string {\n client Claude\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChatNoSystem(input: string) -> string {\n client Claude\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\ntest TestSystemAndNonSystemChat1 {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"cats\"\n }\n}\n\ntest TestSystemAndNonSystemChat2 {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"lion\"\n }\n}", "test-files/functions/v2/basic.baml" => "\n\nfunction ExtractResume2(resume: string) -> Resume {\n client GPT4\n prompt #\"\n {{ _.role('system') }}\n\n Extract the following information from the resume:\n\n Resume:\n <<<<\n {{ resume }}\n <<<<\n\n Output JSON schema:\n {{ ctx.output_format }}\n\n JSON:\n \"#\n}\n\n\nclass WithReasoning {\n value string\n reasoning string @description(#\"\n Why the value is a good fit.\n \"#)\n}\n\n\nclass SearchParams {\n dateRange int? @description(#\"\n In ISO duration format, e.g. P1Y2M10D.\n \"#)\n location string[]\n jobTitle WithReasoning? @description(#\"\n An exact job title, not a general category.\n \"#)\n company WithReasoning? @description(#\"\n The exact name of the company, not a product or service.\n \"#)\n description WithReasoning[] @description(#\"\n Any specific projects or features the user is looking for.\n \"#)\n tags (Tag | string)[]\n}\n\nenum Tag {\n Security\n AI\n Blockchain\n}\n\nfunction GetQuery(query: string) -> SearchParams {\n client GPT4\n prompt #\"\n Extract the following information from the query:\n\n Query:\n <<<<\n {{ query }}\n <<<<\n\n OUTPUT_JSON_SCHEMA:\n {{ ctx.output_format }}\n\n Before OUTPUT_JSON_SCHEMA, list 5 intentions the user may have.\n --- EXAMPLES ---\n 1. \n 2. \n 3. \n 4. \n 5. \n\n {\n ... // OUTPUT_JSON_SCHEMA\n }\n \"#\n}\n\nclass RaysData {\n dataType DataType\n value Resume | Event\n}\n\nenum DataType {\n Resume\n Event\n}\n\nclass Event {\n title string\n date string\n location string\n description string\n}\n\nfunction GetDataType(text: string) -> RaysData {\n client GPT4\n prompt #\"\n Extract the relevant info.\n\n Text:\n <<<<\n {{ text }}\n <<<<\n\n Output JSON schema:\n {{ ctx.output_format }}\n\n JSON:\n \"#\n}", - "test-files/providers/providers.baml" => "function TestAnthropic(input: string) -> string {\n client Claude\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestAzure(input: string) -> string {\n client GPT35Azure\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOllama(input: string) -> string {\n client Ollama\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestGemini(input: string) -> string {\n client Gemini\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\n\ntest TestProvider {\n functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini]\n args {\n input \"Donkey kong and peanut butter\"\n }\n}\n\n\n", + "test-files/providers/providers.baml" => "function TestAnthropic(input: string) -> string {\n client Claude\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAILegacyProvider(input: string) -> string {\n client GPT35LegacyProvider\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestAzure(input: string) -> string {\n client GPT35Azure\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOllama(input: string) -> string {\n client Ollama\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestGemini(input: string) -> string {\n client Gemini\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\nfunction TestAws(input: string) -> string {\n client AwsBedrock\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\n\ntest TestProvider {\n functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini, TestAws]\n args {\n input \"Donkey kong and peanut butter\"\n }\n}\n\n\n", "test-files/strategies/fallback.baml" => "\nclient FaultyClient {\n provider openai\n options {\n model unknown-model\n api_key env.OPENAI_API_KEY\n }\n}\n\n\nclient FallbackClient {\n provider fallback\n options {\n // first 2 clients are expected to fail.\n strategy [\n FaultyClient,\n RetryClientConstant,\n GPT35\n ]\n }\n}\n\nfunction TestFallbackClient() -> string {\n client FallbackClient\n // TODO make it return the client name instead\n prompt #\"\n Say a haiku about mexico.\n \"#\n}", "test-files/strategies/retry.baml" => "\nretry_policy Exponential {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Constant {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient RetryClientConstant {\n provider openai\n retry_policy Constant\n options {\n model \"gpt-3.5-turbo\"\n api_key \"blah\"\n }\n}\n\nclient RetryClientExponential {\n provider openai\n retry_policy Exponential\n options {\n model \"gpt-3.5-turbo\"\n api_key \"blahh\"\n }\n}\n\nfunction TestRetryConstant() -> string {\n client RetryClientConstant\n prompt #\"\n Say a haiku\n \"#\n}\n\nfunction TestRetryExponential() -> string {\n client RetryClientExponential\n prompt #\"\n Say a haiku\n \"#\n}\n", "test-files/strategies/roundrobin.baml" => "", diff --git a/integ-tests/ruby/baml_client/partial-types.rb b/integ-tests/ruby/baml_client/partial-types.rb index 1697d7c55..e80d0cfde 100644 --- a/integ-tests/ruby/baml_client/partial-types.rb +++ b/integ-tests/ruby/baml_client/partial-types.rb @@ -25,6 +25,7 @@ class Blah < T::Struct; end class ClassOptionalOutput < T::Struct; end class ClassOptionalOutput2 < T::Struct; end class ClassWithImage < T::Struct; end + class DynInputOutput < T::Struct; end class DynamicClassOne < T::Struct; end class DynamicClassTwo < T::Struct; end class DynamicOutput < T::Struct; end @@ -40,6 +41,8 @@ class OptionalTest_ReturnType < T::Struct; end class OrderInfo < T::Struct; end class Person < T::Struct; end class RaysData < T::Struct; end + class ReceiptInfo < T::Struct; end + class ReceiptItem < T::Struct; end class Resume < T::Struct; end class SearchParams < T::Struct; end class SomeClassNestedDynamic < T::Struct; end @@ -70,6 +73,10 @@ class ClassWithImage < T::Struct const :param2, T.nilable(String) const :fake_image, Baml::PartialTypes::FakeImage end + class DynInputOutput < T::Struct + include T::Struct::ActsAsComparable + const :testKey, T.nilable(String) + end class DynamicClassOne < T::Struct include T::Struct::ActsAsComparable end @@ -151,6 +158,18 @@ class RaysData < T::Struct const :dataType, T.nilable(Baml::Types::DataType) const :value, T.nilable(T.any(Baml::PartialTypes::Resume, Baml::PartialTypes::Event)) end + class ReceiptInfo < T::Struct + include T::Struct::ActsAsComparable + const :items, T::Array[Baml::PartialTypes::ReceiptItem] + const :total_cost, T.nilable(Float) + end + class ReceiptItem < T::Struct + include T::Struct::ActsAsComparable + const :name, T.nilable(String) + const :description, T.nilable(String) + const :quantity, T.nilable(Integer) + const :price, T.nilable(Float) + end class Resume < T::Struct include T::Struct::ActsAsComparable const :name, T.nilable(String) diff --git a/integ-tests/ruby/baml_client/types.rb b/integ-tests/ruby/baml_client/types.rb index 5b299b8ef..284546a38 100644 --- a/integ-tests/ruby/baml_client/types.rb +++ b/integ-tests/ruby/baml_client/types.rb @@ -135,6 +135,7 @@ class Blah < T::Struct; end class ClassOptionalOutput < T::Struct; end class ClassOptionalOutput2 < T::Struct; end class ClassWithImage < T::Struct; end + class DynInputOutput < T::Struct; end class DynamicClassOne < T::Struct; end class DynamicClassTwo < T::Struct; end class DynamicOutput < T::Struct; end @@ -150,6 +151,8 @@ class OptionalTest_ReturnType < T::Struct; end class OrderInfo < T::Struct; end class Person < T::Struct; end class RaysData < T::Struct; end + class ReceiptInfo < T::Struct; end + class ReceiptItem < T::Struct; end class Resume < T::Struct; end class SearchParams < T::Struct; end class SomeClassNestedDynamic < T::Struct; end @@ -180,6 +183,10 @@ class ClassWithImage < T::Struct const :param2, String const :fake_image, Baml::Types::FakeImage end + class DynInputOutput < T::Struct + include T::Struct::ActsAsComparable + const :testKey, String + end class DynamicClassOne < T::Struct include T::Struct::ActsAsComparable end @@ -261,6 +268,18 @@ class RaysData < T::Struct const :dataType, Baml::Types::DataType const :value, T.any(Baml::Types::Resume, Baml::Types::Event) end + class ReceiptInfo < T::Struct + include T::Struct::ActsAsComparable + const :items, T::Array[Baml::Types::ReceiptItem] + const :total_cost, T.nilable(Float) + end + class ReceiptItem < T::Struct + include T::Struct::ActsAsComparable + const :name, String + const :description, T.nilable(String) + const :quantity, Integer + const :price, Float + end class Resume < T::Struct include T::Struct::ActsAsComparable const :name, String diff --git a/integ-tests/ruby/streaming-example.rb b/integ-tests/ruby/streaming-example.rb new file mode 100644 index 000000000..e9dfb349b --- /dev/null +++ b/integ-tests/ruby/streaming-example.rb @@ -0,0 +1,57 @@ +require_relative "baml_client/client" + +$b = Baml.Client + +# Using both iteration and get_final_response() from a stream +def example1(receipt) + stream = $b.stream.ExtractReceiptInfo(receipt) + + stream.each do |partial| + puts "partial: #{partial.items&.length} items" + end + + final = stream.get_final_response + puts "final: #{final.items.length} items" +end + +# Using only iteration of a stream +def example2(receipt) + $b.stream.ExtractReceiptInfo(receipt).each do |partial| + puts "partial: #{partial.items&.length} items" + end +end + +# Using only get_final_response() of a stream +# +# In this case, you should just use BamlClient.ExtractReceiptInfo(receipt) instead, +# which is faster and more efficient. +def example3(receipt) + final = $b.stream.ExtractReceiptInfo(receipt).get_final_response + puts "final: #{final.items.length} items" +end + +receipt = <<~RECEIPT + 04/14/2024 1:05 pm + + Ticket: 220000082489 + Register: Shop Counter + Employee: Connor + Customer: Sam + Item # Price + Guide leash (1 Pair) uni UNI + 1 $34.95 + The Index Town Walls + 1 $35.00 + Boot Punch + 3 $60.00 + Subtotal $129.95 + Tax ($129.95 @ 9%) $11.70 + Total Tax $11.70 + Total $141.65 +RECEIPT + +if __FILE__ == $0 + example1(receipt) + example2(receipt) + example3(receipt) +end diff --git a/integ-tests/typescript/baml_client/client.ts b/integ-tests/typescript/baml_client/client.ts index 86adda985..3a1cbd0ad 100644 --- a/integ-tests/typescript/baml_client/client.ts +++ b/integ-tests/typescript/baml_client/client.ts @@ -15,8 +15,13 @@ $ pnpm add @boundaryml/baml // @ts-nocheck // biome-ignore format: autogenerated code /* eslint-disable */ +<<<<<<< HEAD import { BamlRuntime, FunctionResult, BamlCtxManager, BamlStream, Image, ClientBuilder } from "@boundaryml/baml" import {Blah, ClassOptionalOutput, ClassOptionalOutput2, ClassWithImage, DynamicClassOne, DynamicClassTwo, DynamicOutput, Education, Email, Event, FakeImage, InnerClass, InnerClass2, NamedArgsSingleClass, OptionalTest_Prop1, OptionalTest_ReturnType, OrderInfo, Person, RaysData, Resume, SearchParams, SomeClassNestedDynamic, TestClassAlias, TestClassNested, TestClassWithEnum, TestOutputClass, UnionTest_ReturnType, WithReasoning, Category, Category2, Category3, Color, DataType, DynEnumOne, DynEnumTwo, EnumInClass, EnumOutput, Hobby, NamedArgsSingleEnum, NamedArgsSingleEnumList, OptionalTest_CategoryType, OrderStatus, Tag, TestEnum} from "./types" +======= +import { BamlRuntime, FunctionResult, BamlCtxManager, BamlStream, Image } from "@boundaryml/baml" +import {Blah, ClassOptionalOutput, ClassOptionalOutput2, ClassWithImage, DynInputOutput, DynamicClassOne, DynamicClassTwo, DynamicOutput, Education, Email, Event, FakeImage, InnerClass, InnerClass2, NamedArgsSingleClass, OptionalTest_Prop1, OptionalTest_ReturnType, OrderInfo, Person, RaysData, ReceiptInfo, ReceiptItem, Resume, SearchParams, SomeClassNestedDynamic, TestClassAlias, TestClassNested, TestClassWithEnum, TestOutputClass, UnionTest_ReturnType, WithReasoning, Category, Category2, Category3, Color, DataType, DynEnumOne, DynEnumTwo, EnumInClass, EnumOutput, Hobby, NamedArgsSingleEnum, NamedArgsSingleEnumList, OptionalTest_CategoryType, OrderStatus, Tag, TestEnum} from "./types" +>>>>>>> canary import TypeBuilder from "./type_builder" export type RecursivePartialNull = T extends object @@ -26,9 +31,13 @@ export type RecursivePartialNull = T extends object : T | null; export class BamlClient { + private runtime: BamlRuntime + private ctx_manager: BamlCtxManager private stream_client: BamlStreamClient - constructor(private runtime: BamlRuntime, private ctx_manager: BamlCtxManager) { + constructor(runtime: BamlRuntime, ctx_manager: BamlCtxManager) { + this.runtime = runtime + this.ctx_manager = ctx_manager this.stream_client = new BamlStreamClient(runtime, ctx_manager) } @@ -37,6 +46,21 @@ export class BamlClient { } + async AudioInput( + aud: Audio, + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "AudioInput", + { + "aud": aud + }, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as string + } + async ClassifyMessage( input: string, __baml_options__?: { tb?: TypeBuilder, cb?: ClientBuilder } @@ -46,7 +70,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -62,7 +86,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -78,7 +102,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -94,7 +118,7 @@ export class BamlClient { { "img": img }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -110,7 +134,7 @@ export class BamlClient { { "classWithImage": classWithImage,"img2": img2 }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -126,7 +150,7 @@ export class BamlClient { { "classWithImage": classWithImage,"img2": img2 }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -142,7 +166,7 @@ export class BamlClient { { "classWithImage": classWithImage,"img2": img2 }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -158,13 +182,43 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) return raw.parsed() as DynamicClassTwo } + async DynamicInputOutput( + input: DynInputOutput, + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "DynamicInputOutput", + { + "input": input + }, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as DynInputOutput + } + + async DynamicListInputOutput( + input: DynInputOutput[], + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "DynamicListInputOutput", + { + "input": input + }, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as DynInputOutput[] + } + async ExtractNames( input: string, __baml_options__?: { tb?: TypeBuilder, cb?: ClientBuilder } @@ -174,7 +228,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -190,13 +244,28 @@ export class BamlClient { { "text": text }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) return raw.parsed() as Person[] } + async ExtractReceiptInfo( + email: string, + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "ExtractReceiptInfo", + { + "email": email + }, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as ReceiptInfo + } + async ExtractResume( resume: string,img?: Image | null, __baml_options__?: { tb?: TypeBuilder, cb?: ClientBuilder } @@ -206,7 +275,7 @@ export class BamlClient { { "resume": resume,"img": img?? null }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -222,7 +291,7 @@ export class BamlClient { { "resume": resume }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -238,7 +307,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -254,7 +323,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -270,7 +339,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -286,7 +355,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -302,7 +371,7 @@ export class BamlClient { { "myString": myString?? null }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -318,7 +387,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -334,7 +403,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -350,7 +419,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -366,7 +435,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -382,7 +451,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -398,7 +467,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -414,7 +483,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -430,7 +499,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -446,7 +515,7 @@ export class BamlClient { { "myArg": myArg }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -462,7 +531,7 @@ export class BamlClient { { "text": text }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -478,7 +547,7 @@ export class BamlClient { { "email": email }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -494,7 +563,7 @@ export class BamlClient { { "query": query }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -510,7 +579,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -526,7 +595,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -542,7 +611,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -558,7 +627,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -574,6 +643,7 @@ export class BamlClient { { "input": input }, +<<<<<<< HEAD this.ctx_manager.get(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, @@ -591,6 +661,9 @@ export class BamlClient { "input": input }, this.ctx_manager.get(), +======= + this.ctx_manager.cloneContext(), +>>>>>>> canary __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -606,7 +679,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -622,7 +695,22 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as string + } + + async PromptTestStreaming( + input: string, + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "PromptTestStreaming", + { + "input": input + }, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -638,7 +726,22 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as string + } + + async TestAws( + input: string, + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "TestAws", + { + "input": input + }, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -654,7 +757,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -670,7 +773,7 @@ export class BamlClient { { }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -686,7 +789,7 @@ export class BamlClient { { "myBool": myBool }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -702,7 +805,7 @@ export class BamlClient { { "myArg": myArg }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -718,7 +821,7 @@ export class BamlClient { { "myArg": myArg }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -734,7 +837,7 @@ export class BamlClient { { "myFloat": myFloat }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -750,7 +853,7 @@ export class BamlClient { { "myInt": myInt }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -766,7 +869,7 @@ export class BamlClient { { "myString": myString }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -782,7 +885,7 @@ export class BamlClient { { "myStringArray": myStringArray }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -798,7 +901,7 @@ export class BamlClient { { "myArg": myArg }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -814,7 +917,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -830,7 +933,7 @@ export class BamlClient { { "img": img }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -846,7 +949,7 @@ export class BamlClient { { "myArg": myArg,"myArg2": myArg2 }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -862,7 +965,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -878,7 +981,22 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return raw.parsed() as string + } + + async TestOpenAILegacyProvider( + input: string, + __baml_options__?: { tb?: TypeBuilder } + ): Promise { + const raw = await this.runtime.callFunction( + "TestOpenAILegacyProvider", + { + "input": input + }, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -894,7 +1012,7 @@ export class BamlClient { { }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -910,7 +1028,7 @@ export class BamlClient { { }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -926,7 +1044,7 @@ export class BamlClient { { "input": input }, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -939,6 +1057,28 @@ class BamlStreamClient { constructor(private runtime: BamlRuntime, private ctx_manager: BamlCtxManager) {} + AudioInput( + aud: Audio, + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, string> { + const raw = this.runtime.streamFunction( + "AudioInput", + { + "aud": aud + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, string>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is string => a, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + ClassifyMessage( input: string, __baml_options__?: { tb?: TypeBuilder, cb?: ClientBuilder } @@ -949,7 +1089,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -957,7 +1097,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is Category => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -972,7 +1112,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -980,7 +1120,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is Category => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -995,7 +1135,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1003,7 +1143,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is Category => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1018,7 +1158,7 @@ class BamlStreamClient { "img": img }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1026,7 +1166,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1041,7 +1181,7 @@ class BamlStreamClient { "classWithImage": classWithImage,"img2": img2 }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1049,7 +1189,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1064,7 +1204,7 @@ class BamlStreamClient { "classWithImage": classWithImage,"img2": img2 }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1072,7 +1212,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1087,7 +1227,7 @@ class BamlStreamClient { "classWithImage": classWithImage,"img2": img2 }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1095,7 +1235,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1110,7 +1250,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1118,7 +1258,51 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is DynamicClassTwo => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + + DynamicInputOutput( + input: DynInputOutput, + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, DynInputOutput> { + const raw = this.runtime.streamFunction( + "DynamicInputOutput", + { + "input": input + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, DynInputOutput>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is DynInputOutput => a, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + + DynamicListInputOutput( + input: DynInputOutput[], + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, DynInputOutput[]> { + const raw = this.runtime.streamFunction( + "DynamicListInputOutput", + { + "input": input + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, DynInputOutput[]>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is DynInputOutput[] => a, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1133,7 +1317,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1141,7 +1325,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string[] => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1156,7 +1340,7 @@ class BamlStreamClient { "text": text }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1164,7 +1348,29 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is Person[] => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + + ExtractReceiptInfo( + email: string, + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, ReceiptInfo> { + const raw = this.runtime.streamFunction( + "ExtractReceiptInfo", + { + "email": email + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, ReceiptInfo>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is ReceiptInfo => a, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1179,7 +1385,7 @@ class BamlStreamClient { "resume": resume,"img": img ?? null }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1187,7 +1393,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is Resume => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1202,7 +1408,7 @@ class BamlStreamClient { "resume": resume }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1210,7 +1416,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is Resume => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1225,7 +1431,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1233,7 +1439,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is ClassOptionalOutput | null => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1248,7 +1454,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1256,7 +1462,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is ClassOptionalOutput2 | null => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1271,7 +1477,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1279,7 +1485,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is EnumOutput[] => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1294,7 +1500,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1302,7 +1508,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is EnumOutput => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1317,7 +1523,7 @@ class BamlStreamClient { "myString": myString ?? null }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1325,7 +1531,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1340,7 +1546,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1348,7 +1554,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is boolean => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1363,7 +1569,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1371,7 +1577,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is TestOutputClass => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1386,7 +1592,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1394,7 +1600,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is TestOutputClass[] => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1409,7 +1615,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1417,7 +1623,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is TestClassNested => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1432,7 +1638,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1440,7 +1646,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is TestClassWithEnum => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1455,7 +1661,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1463,7 +1669,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string[] => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1478,7 +1684,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1486,7 +1692,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is TestEnum => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1501,7 +1707,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1509,7 +1715,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is TestClassAlias => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1524,7 +1730,7 @@ class BamlStreamClient { "myArg": myArg }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1532,7 +1738,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1547,7 +1753,7 @@ class BamlStreamClient { "text": text }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1555,7 +1761,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is RaysData => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1570,7 +1776,7 @@ class BamlStreamClient { "email": email }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1578,7 +1784,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is OrderInfo => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1593,7 +1799,7 @@ class BamlStreamClient { "query": query }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1601,7 +1807,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is SearchParams => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1616,7 +1822,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1624,7 +1830,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is DynamicOutput => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1639,7 +1845,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1647,7 +1853,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull<(OptionalTest_ReturnType | null)[]> => a, (a): a is (OptionalTest_ReturnType | null)[] => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1662,7 +1868,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1670,7 +1876,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1685,7 +1891,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1693,7 +1899,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1708,7 +1914,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1716,6 +1922,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, +<<<<<<< HEAD this.ctx_manager.get(), __baml_options__?.tb?.__tb(), ) @@ -1740,6 +1947,9 @@ class BamlStreamClient { (a): a is RecursivePartialNull => a, (a): a is string => a, this.ctx_manager.get(), +======= + this.ctx_manager.cloneContext(), +>>>>>>> canary __baml_options__?.tb?.__tb(), ) } @@ -1754,7 +1964,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1762,7 +1972,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1777,7 +1987,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1785,7 +1995,29 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + + PromptTestStreaming( + input: string, + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, string> { + const raw = this.runtime.streamFunction( + "PromptTestStreaming", + { + "input": input + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, string>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is string => a, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1800,7 +2032,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1808,7 +2040,29 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + + TestAws( + input: string, + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, string> { + const raw = this.runtime.streamFunction( + "TestAws", + { + "input": input + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, string>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is string => a, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1823,7 +2077,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1831,7 +2085,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1846,7 +2100,7 @@ class BamlStreamClient { }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1854,7 +2108,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1869,7 +2123,7 @@ class BamlStreamClient { "myBool": myBool }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1877,7 +2131,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1892,7 +2146,7 @@ class BamlStreamClient { "myArg": myArg }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1900,7 +2154,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1915,7 +2169,7 @@ class BamlStreamClient { "myArg": myArg }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1923,7 +2177,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1938,7 +2192,7 @@ class BamlStreamClient { "myFloat": myFloat }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1946,7 +2200,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1961,7 +2215,7 @@ class BamlStreamClient { "myInt": myInt }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1969,7 +2223,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -1984,7 +2238,7 @@ class BamlStreamClient { "myString": myString }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -1992,7 +2246,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2007,7 +2261,7 @@ class BamlStreamClient { "myStringArray": myStringArray }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2015,7 +2269,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2030,7 +2284,7 @@ class BamlStreamClient { "myArg": myArg }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2038,7 +2292,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2053,7 +2307,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2061,7 +2315,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2076,7 +2330,7 @@ class BamlStreamClient { "img": img }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2084,7 +2338,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2099,7 +2353,7 @@ class BamlStreamClient { "myArg": myArg,"myArg2": myArg2 }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2107,7 +2361,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2122,7 +2376,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2130,7 +2384,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2145,7 +2399,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2153,7 +2407,29 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + } + + TestOpenAILegacyProvider( + input: string, + __baml_options__?: { tb?: TypeBuilder } + ): BamlStream, string> { + const raw = this.runtime.streamFunction( + "TestOpenAILegacyProvider", + { + "input": input + }, + undefined, + this.ctx_manager.cloneContext(), + __baml_options__?.tb?.__tb(), + ) + return new BamlStream, string>( + raw, + (a): a is RecursivePartialNull => a, + (a): a is string => a, + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2168,7 +2444,7 @@ class BamlStreamClient { }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2176,7 +2452,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2191,7 +2467,7 @@ class BamlStreamClient { }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2199,7 +2475,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is string => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } @@ -2214,7 +2490,7 @@ class BamlStreamClient { "input": input }, undefined, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), __baml_options__?.cb, ) @@ -2222,7 +2498,7 @@ class BamlStreamClient { raw, (a): a is RecursivePartialNull => a, (a): a is UnionTest_ReturnType => a, - this.ctx_manager.get(), + this.ctx_manager.cloneContext(), __baml_options__?.tb?.__tb(), ) } diff --git a/integ-tests/typescript/baml_client/globals.ts b/integ-tests/typescript/baml_client/globals.ts index c69e3cb1d..b447f4cc7 100644 --- a/integ-tests/typescript/baml_client/globals.ts +++ b/integ-tests/typescript/baml_client/globals.ts @@ -20,10 +20,10 @@ import { BamlClient } from './client' import { getBamlFiles } from './inlinedbaml' -const _DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.fromFiles( +export const DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME = BamlRuntime.fromFiles( 'baml_src', getBamlFiles(), process.env ) -export const DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = new BamlCtxManager(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) -export const b = new BamlClient(_DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) \ No newline at end of file +export const DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX = new BamlCtxManager(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME) +export const b = new BamlClient(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME, DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) \ No newline at end of file diff --git a/integ-tests/typescript/baml_client/inlinedbaml.ts b/integ-tests/typescript/baml_client/inlinedbaml.ts index dc0601810..c1f3ddfe6 100644 --- a/integ-tests/typescript/baml_client/inlinedbaml.ts +++ b/integ-tests/typescript/baml_client/inlinedbaml.ts @@ -17,29 +17,33 @@ $ pnpm add @boundaryml/baml /* eslint-disable */ const fileMap = { - "clients.baml": "retry_policy Bar {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Foo {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient GPT4 {\n provider baml-openai-chat\n options {\n model gpt-4\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4o {\n provider baml-openai-chat\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4Turbo {\n retry_policy Bar\n provider baml-openai-chat\n options {\n model gpt-4-turbo\n api_key env.OPENAI_API_KEY\n }\n} \n\nclient GPT35 {\n provider baml-openai-chat\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\nclient Ollama {\n provider ollama\n options {\n model llama2\n }\n}\n\nclient GPT35Azure {\n provider azure-openai\n options {\n resource_name \"west-us-azure-baml\"\n deployment_id \"gpt-35-turbo-default\"\n // base_url \"https://west-us-azure-baml.openai.azure.com/openai/deployments/gpt-35-turbo-default\"\n api_version \"2024-02-01\"\n api_key env.AZURE_OPENAI_API_KEY\n }\n}\n\nclient Gemini {\n provider google-ai\n options{\n model \"gemini-1.5-pro-001\"\n api_key env.GOOGLE_API_KEY\n }\n}\n\n\nclient Claude {\n provider anthropic\n options {\n model claude-3-haiku-20240307\n api_key env.ANTHROPIC_API_KEY\n max_tokens 1000\n }\n}\n\nclient Resilient_SimpleSyntax {\n retry_policy Foo\n provider baml-fallback\n options {\n strategy [\n GPT4Turbo\n GPT35\n Lottery_SimpleSyntax\n ]\n }\n} \n \nclient Lottery_SimpleSyntax {\n provider baml-round-robin\n options {\n start 0\n strategy [\n GPT35\n Claude\n ]\n }\n}\n", + "clients.baml": "retry_policy Bar {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Foo {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient GPT4 {\n provider openai\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4o {\n provider openai\n options {\n model gpt-4o\n api_key env.OPENAI_API_KEY\n }\n} \n\n\nclient GPT4Turbo {\n retry_policy Bar\n provider openai\n options {\n model gpt-4-turbo\n api_key env.OPENAI_API_KEY\n }\n} \n\nclient GPT35 {\n provider openai\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\nclient GPT35LegacyProvider {\n provider openai\n options {\n model \"gpt-3.5-turbo\"\n api_key env.OPENAI_API_KEY\n }\n}\n\n\nclient Ollama {\n provider ollama\n options {\n model llama2\n }\n}\n\nclient GPT35Azure {\n provider azure-openai\n options {\n resource_name \"west-us-azure-baml\"\n deployment_id \"gpt-35-turbo-default\"\n // base_url \"https://west-us-azure-baml.openai.azure.com/openai/deployments/gpt-35-turbo-default\"\n api_version \"2024-02-01\"\n api_key env.AZURE_OPENAI_API_KEY\n }\n}\n\nclient Gemini {\n provider google-ai\n options {\n model \"gemini-1.5-pro-001\"\n api_key env.GOOGLE_API_KEY\n }\n}\n\nclient AwsBedrock {\n provider aws-bedrock\n options {\n inference_configuration {\n max_tokens 100\n }\n model_id \"anthropic.claude-3-haiku-20240307-v1:0\"\n // model_id \"meta.llama3-8b-instruct-v1:0\"\n // model_id \"mistral.mistral-7b-instruct-v0:2\"\n api_key \"\"\n }\n}\n\nclient Claude {\n provider anthropic\n options {\n model claude-3-haiku-20240307\n api_key env.ANTHROPIC_API_KEY\n max_tokens 1000\n }\n}\n\nclient Resilient_SimpleSyntax {\n retry_policy Foo\n provider baml-fallback\n options {\n strategy [\n GPT4Turbo\n GPT35\n Lottery_SimpleSyntax\n ]\n }\n} \n \nclient Lottery_SimpleSyntax {\n provider baml-round-robin\n options {\n start 0\n strategy [\n GPT35\n Claude\n ]\n }\n}\n", "fiddle-examples/chain-of-thought.baml": "class Email {\n subject string\n body string\n from_address string\n}\n\nenum OrderStatus {\n ORDERED\n SHIPPED\n DELIVERED\n CANCELLED\n}\n\nclass OrderInfo {\n order_status OrderStatus\n tracking_number string?\n estimated_arrival_date string?\n}\n\nfunction GetOrderInfo(email: Email) -> OrderInfo {\n client GPT4\n prompt #\"\n Given the email below:\n\n ```\n from: {{email.from_address}}\n Email Subject: {{email.subject}}\n Email Body: {{email.body}}\n ```\n\n Extract this info from the email in JSON format:\n {{ ctx.output_format }}\n\n Before you output the JSON, please explain your\n reasoning step-by-step. Here is an example on how to do this:\n 'If we think step by step we can see that ...\n therefore the output JSON is:\n {\n ... the json schema ...\n }'\n \"#\n}", "fiddle-examples/chat-roles.baml": "// This will be available as an enum in your Python and Typescript code.\nenum Category2 {\n Refund\n CancelOrder\n TechnicalSupport\n AccountIssue\n Question\n}\n\nfunction ClassifyMessage2(input: string) -> Category {\n client GPT4\n\n prompt #\"\n {{ _.role(\"system\") }}\n // You can use _.role(\"system\") to indicate that this text should be a system message\n\n Classify the following INPUT into ONE\n of the following categories:\n\n {{ ctx.output_format }}\n\n {{ _.role(\"user\") }}\n // And _.role(\"user\") to indicate that this text should be a user message\n\n INPUT: {{ input }}\n\n Response:\n \"#\n}", "fiddle-examples/classify-message.baml": "// This will be available as an enum in your Python and Typescript code.\nenum Category {\n Refund\n CancelOrder\n TechnicalSupport\n AccountIssue\n Question\n}\n\nfunction ClassifyMessage(input: string) -> Category {\n client GPT4\n\n prompt #\"\n Classify the following INPUT into ONE\n of the following categories:\n\n INPUT: {{ input }}\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}", "fiddle-examples/extract-names.baml": "function ExtractNames(input: string) -> string[] {\n client GPT4\n prompt #\"\n Extract the names from this INPUT:\n \n INPUT:\n ---\n {{ input }}\n ---\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}\n", - "fiddle-examples/images/image.baml": "function DescribeImage(img: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n\n\n Describe the image below in 5 words:\n {{ img }}\n \"#\n\n}\n\nclass FakeImage {\n url string\n}\n\nclass ClassWithImage {\n myImage image\n param2 string\n fake_image FakeImage\n}\n\n// chat role user present\nfunction DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n You should return 2 answers that answer the following commands.\n\n 1. Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n 2. Also tell me what's happening here in one sentence:\n {{ img2 }}\n \"#\n}\n\n// no chat role\nfunction DescribeImage3(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\n\n// system prompt and chat prompt\nfunction DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"system\")}}\n\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}", + "fiddle-examples/extract-receipt-info.baml": "class ReceiptItem {\n name string\n description string?\n quantity int\n price float\n}\n\nclass ReceiptInfo {\n items ReceiptItem[]\n total_cost float?\n}\n\nfunction ExtractReceiptInfo(email: string) -> ReceiptInfo {\n client GPT4o\n prompt #\"\n Given the receipt below:\n\n ```\n {{email}}\n ```\n\n {{ ctx.output_format }}\n \"#\n}\n\n", + "fiddle-examples/images/image.baml": "function DescribeImage(img: image) -> string {\n client AwsBedrock\n prompt #\"\n {{ _.role(\"user\") }}\n\n\n Describe the image below in 20 words:\n {{ img }}\n \"#\n\n}\n\nclass FakeImage {\n url string\n}\n\nclass ClassWithImage {\n myImage image\n param2 string\n fake_image FakeImage\n}\n\n// chat role user present\nfunction DescribeImage2(classWithImage: ClassWithImage, img2: image) -> string { \n client GPT4Turbo\n prompt #\"\n {{ _.role(\"user\") }}\n You should return 2 answers that answer the following commands.\n\n 1. Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n 2. Also tell me what's happening here in one sentence:\n {{ img2 }}\n \"#\n}\n\n// no chat role\nfunction DescribeImage3(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\n\n// system prompt and chat prompt\nfunction DescribeImage4(classWithImage: ClassWithImage, img2: image) -> string {\n client GPT4Turbo\n prompt #\"\n {{ _.role(\"system\")}}\n\n Describe this in 5 words:\n {{ classWithImage.myImage }}\n\n Tell me also what's happening here in one sentence and relate it to the word {{ classWithImage.param2 }}:\n {{ img2 }}\n \"#\n}\n\ntest TestName {\n functions [DescribeImage]\n args {\n img { url \"https://imgs.xkcd.com/comics/standards.png\"}\n }\n}\n", "fiddle-examples/symbol-tuning.baml": "enum Category3 {\n Refund @alias(\"k1\")\n @description(\"Customer wants to refund a product\")\n\n CancelOrder @alias(\"k2\")\n @description(\"Customer wants to cancel an order\")\n\n TechnicalSupport @alias(\"k3\")\n @description(\"Customer needs help with a technical issue unrelated to account creation or login\")\n\n AccountIssue @alias(\"k4\")\n @description(\"Specifically relates to account-login or account-creation\")\n\n Question @alias(\"k5\")\n @description(\"Customer has a question\")\n}\n\nfunction ClassifyMessage3(input: string) -> Category {\n client GPT4\n\n prompt #\"\n Classify the following INPUT into ONE\n of the following categories:\n\n INPUT: {{ input }}\n\n {{ ctx.output_format }}\n\n Response:\n \"#\n}", "main.baml": "generator lang_python {\n output_type python/pydantic\n output_dir \"../python\"\n}\n\ngenerator lang_typescript {\n output_type typescript\n output_dir \"../typescript\"\n}\n\ngenerator lang_ruby {\n output_type ruby/sorbet\n output_dir \"../ruby\"\n}\n", "test-files/aliases/classes.baml": "class TestClassAlias {\n key string @alias(\"key-dash\") @description(#\"\n This is a description for key\n af asdf\n \"#)\n key2 string @alias(\"key21\")\n key3 string @alias(\"key with space\")\n key4 string //unaliased\n key5 string @alias(\"key.with.punctuation/123\")\n}\n\nfunction FnTestClassAlias(input: string) -> TestClassAlias {\n client GPT35\n prompt #\"\n {{ctx.output_format}}\n \"#\n}\n\ntest FnTestClassAlias {\n functions [FnTestClassAlias]\n args {\n input \"example input\"\n }\n}\n", "test-files/aliases/enums.baml": "enum TestEnum {\n A @alias(\"k1\") @description(#\"\n User is angry\n \"#)\n B @alias(\"k22\") @description(#\"\n User is happy\n \"#)\n // tests whether k1 doesnt incorrectly get matched with k11\n C @alias(\"k11\") @description(#\"\n User is sad\n \"#)\n D @alias(\"k44\") @description(\n User is confused\n )\n E @description(\n User is excited\n )\n F @alias(\"k5\") // only alias\n \n G @alias(\"k6\") @description(#\"\n User is bored\n With a long description\n \"#)\n \n @@alias(\"Category\")\n}\n\nfunction FnTestAliasedEnumOutput(input: string) -> TestEnum {\n client GPT35\n prompt #\"\n Classify the user input into the following category\n \n {{ ctx.output_format }}\n\n {{ _.role('user') }}\n {{input}}\n\n {{ _.role('assistant') }}\n Category ID:\n \"#\n}\n\ntest FnTestAliasedEnumOutput {\n functions [FnTestAliasedEnumOutput]\n args {\n input \"mehhhhh\"\n }\n}", "test-files/comments/comments.baml": "// add some functions, classes, enums etc with comments all over.", - "test-files/dynamic/dynamic.baml": "class DynamicClassOne {\n @@dynamic\n}\n\nenum DynEnumOne {\n @@dynamic\n}\n\nenum DynEnumTwo {\n @@dynamic\n}\n\nclass SomeClassNestedDynamic {\n hi string\n @@dynamic\n\n}\n\nclass DynamicClassTwo {\n hi string\n some_class SomeClassNestedDynamic\n status DynEnumOne\n @@dynamic\n}\n\nfunction DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo {\n client GPT35\n prompt #\"\n Please extract the schema from \n {{ input }}\n\n {{ ctx.output_format }}\n \"#\n}\n\nclass DynamicOutput {\n @@dynamic\n}\n \nfunction MyFunc(input: string) -> DynamicOutput {\n client GPT4\n prompt #\"\n Given a string, extract info using the schema:\n\n {{ input}}\n\n {{ ctx.output_format }}\n \"#\n}", + "test-files/dynamic/dynamic.baml": "class DynamicClassOne {\n @@dynamic\n}\n\nenum DynEnumOne {\n @@dynamic\n}\n\nenum DynEnumTwo {\n @@dynamic\n}\n\nclass SomeClassNestedDynamic {\n hi string\n @@dynamic\n\n}\n\nclass DynamicClassTwo {\n hi string\n some_class SomeClassNestedDynamic\n status DynEnumOne\n @@dynamic\n}\n\nfunction DynamicFunc(input: DynamicClassOne) -> DynamicClassTwo {\n client GPT35\n prompt #\"\n Please extract the schema from \n {{ input }}\n\n {{ ctx.output_format }}\n \"#\n}\n\nclass DynInputOutput {\n testKey string\n @@dynamic\n}\n\nfunction DynamicInputOutput(input: DynInputOutput) -> DynInputOutput {\n client GPT35\n prompt #\"\n Here is some input data:\n ----\n {{ input }}\n ----\n\n Extract the information.\n {{ ctx.output_format }}\n \"#\n}\n\nfunction DynamicListInputOutput(input: DynInputOutput[]) -> DynInputOutput[] {\n client GPT35\n prompt #\"\n Here is some input data:\n ----\n {{ input }}\n ----\n\n Extract the information.\n {{ ctx.output_format }}\n \"#\n}\n\n\n\nclass DynamicOutput {\n @@dynamic\n}\n \nfunction MyFunc(input: string) -> DynamicOutput {\n client GPT35\n prompt #\"\n Given a string, extract info using the schema:\n\n {{ input}}\n\n {{ ctx.output_format }}\n \"#\n}\n\n", + "test-files/functions/input/named-args/single/named-audio.baml": "function AudioInput(aud: audio) -> string{\n client Gemini\n prompt #\"\n {{ _.role(\"user\") }}\n\n Does this sound like a roar? Yes or no? One word no other characters.\n \n {{ aud }}\n \"#\n}\n\n\ntest TestURLAudioInput{\n functions [AudioInput]\n args {\n aud{ \n url https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg\n }\n } \n}\n\n\n", "test-files/functions/input/named-args/single/named-boolean.baml": "\n\nfunction TestFnNamedArgsSingleBool(myBool: bool) -> string{\n client GPT35\n prompt #\"\n Return this value back to me: {{myBool}}\n \"#\n}\n\ntest TestFnNamedArgsSingleBool {\n functions [TestFnNamedArgsSingleBool]\n args {\n myBool true\n }\n}", "test-files/functions/input/named-args/single/named-class-list.baml": "\n\n\nfunction TestFnNamedArgsSingleStringList(myArg: string[]) -> string{\n client GPT35\n prompt #\"\n Return this value back to me: {{myArg}}\n \"#\n}\n\ntest TestFnNamedArgsSingleStringList {\n functions [TestFnNamedArgsSingleStringList]\n args {\n myArg [\"hello\", \"world\"]\n }\n}", "test-files/functions/input/named-args/single/named-class.baml": "class NamedArgsSingleClass {\n key string\n key_two bool\n key_three int\n // TODO: doesn't work with keys with numbers\n // key2 bool\n // key3 int\n}\n\nfunction TestFnNamedArgsSingleClass(myArg: NamedArgsSingleClass) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg.key}}\n {{myArg.key_two}}\n {{myArg.key_three}}\n \"#\n}\n\ntest TestFnNamedArgsSingleClass {\n functions [TestFnNamedArgsSingleClass]\n args {\n myArg {\n key \"example\",\n key_two true,\n key_three 42\n }\n }\n}\n\nfunction TestMulticlassNamedArgs(myArg: NamedArgsSingleClass, myArg2: NamedArgsSingleClass) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg.key}}\n {{myArg.key_two}}\n {{myArg.key_three}}\n {{myArg2.key}}\n {{myArg2.key_two}}\n {{myArg2.key_three}}\n \"#\n}", "test-files/functions/input/named-args/single/named-enum-list.baml": "enum NamedArgsSingleEnumList {\n ONE\n TWO\n}\n\nfunction TestFnNamedArgsSingleEnumList(myArg: NamedArgsSingleEnumList[]) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg}}\n \"#\n}\n\ntest TestFnNamedArgsSingleEnumList {\n functions [TestFnNamedArgsSingleEnumList]\n args {\n myArg [ONE, TWO]\n }\n}", "test-files/functions/input/named-args/single/named-enum.baml": "enum NamedArgsSingleEnum {\n ONE\n TWO\n}\n\nfunction FnTestNamedArgsSingleEnum(myArg: NamedArgsSingleEnum) -> string {\n client GPT35\n prompt #\"\n Print these values back to me:\n {{myArg}}\n \"#\n}\n\ntest FnTestNamedArgsSingleEnum {\n functions [FnTestNamedArgsSingleEnum]\n args {\n myArg ONE\n }\n}", "test-files/functions/input/named-args/single/named-float.baml": "function TestFnNamedArgsSingleFloat(myFloat: float) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myFloat}}\n \"#\n}\n\ntest TestFnNamedArgsSingleFloat {\n functions [TestFnNamedArgsSingleFloat]\n args {\n myFloat 3.14\n }\n}\n", - "test-files/functions/input/named-args/single/named-image.baml": "function TestImageInput(img: image) -> string{\n client GPT4o\n prompt #\"\n {{ _.role(\"user\") }}\n\n Describe this in 4 words {{img}}\n \"#\n}\n\ntest TestImageInput {\n functions [TestImageInput]\n args {\n img {\n url \"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png\"\n }\n }\n}\n\ntest shrek {\n functions [TestImageInput]\n args {\n img {\n url \"https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png\"\n }\n }\n}\n\n\n// double check this before adding it. Probably n ot right.\n// function TestImageInputAnthropic(img: image) -> string{\n// client GPT4o\n// prompt #\"\n// {{ _.role(\"user\") }}\n\n// Describe this in 4 words {{img}}\n// \"#\n// }\n\n// test TestImageInputAnthropic {\n// functions [TestImageInputAnthropic]\n// args {\n// img {\n// base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=\n// media_type \"png\"\n// }\n// }\n// }", + "test-files/functions/input/named-args/single/named-image.baml": "function TestImageInput(img: image) -> string{\n client AwsBedrock\n prompt #\"\n {{ _.role(\"user\") }}\n\n Describe this in 4 words. One word must be the color {{img}}\n \"#\n}\n\ntest TestImageInput {\n functions [TestImageInput]\n args {\n img {\n url \"https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png\"\n }\n }\n}\n\ntest shrek {\n functions [TestImageInput]\n args {\n img {\n url \"https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png\"\n }\n }\n}\n\n\n\n// double check this before adding it. Probably n ot right.\n// function TestImageInputAnthropic(img: image) -> string{\n// client GPT4o\n// prompt #\"\n// {{ _.role(\"user\") }}\n\n// Describe this in 4 words {{img}}\n// \"#\n// }\n\n// test TestImageInputAnthropic {\n// functions [TestImageInputAnthropic]\n// args {\n// img {\n// base64 iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqWbQ428m9/8k0P/1aIhF36PccEl6EhOcAUCrXKZXXWS3XKd2vc/TRBG9O5ELC17MmWubD2nKhUKZa26Ba2+D3P+4/MNCFwg59oWVeYhkzgN/JDR8deKBoD7Y+ljEjGZ0sosXVTvbc6RHirr2reNy1OXd6pJsQ+gqjk8VWFYmHrwBzW/n+uMPFiRwHB2I7ih8ciHFxIkd/3Omk5tCDV1t+2nNu5sxxpDFNx+huNhVT3/zMDz8usXC3ddaHBj1GHj/As08fwTS7Kt1HBTmyN29vdwAw+/wbwLVOJ3uAD1wi/dUH7Qei66PfyuRj4Ik9is+hglfbkbfR3cnZm7chlUWLdwmprtCohX4HUtlOcQjLYCu+fzGJH2QRKvP3UNz8bWk1qMxjGTOMThZ3kvgLI5AzFfo379UAAAAASUVORK5CYII=\n// media_type \"image/png\"\n// }\n// }\n// }", "test-files/functions/input/named-args/single/named-int.baml": "// test for int\nfunction TestFnNamedArgsSingleInt(myInt: int) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myInt}}\n \"#\n}\n\ntest TestFnNamedArgsSingleInt {\n functions [TestFnNamedArgsSingleInt]\n args {\n myInt 42\n }\n}\n", "test-files/functions/input/named-args/single/named-string-list.baml": "// string[]\nfunction TestFnNamedArgsSingleStringArray(myStringArray: string[]) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myStringArray}}\n \"#\n}\n\ntest TestFnNamedArgsSingleStringArray {\n functions [TestFnNamedArgsSingleStringArray]\n args {\n myStringArray [\"example1\", \"example2\", \"example3\"]\n }\n}\n", "test-files/functions/input/named-args/single/named-string-optional.baml": "\n\n // string[]\nfunction FnNamedArgsSingleStringOptional(myString: string?) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myString}}\n \"#\n}\n\ntest FnNamedArgsSingleStringOptional {\n functions [FnNamedArgsSingleStringOptional]\n args {\n myString \"example string\"\n }\n}\n\ntest FnNamedArgsSingleStringOptional2 {\n functions [FnNamedArgsSingleStringOptional]\n args {\n \n }\n}\n", "test-files/functions/input/named-args/single/named-string.baml": "// test string\nfunction TestFnNamedArgsSingleString(myString: string) -> string {\n client GPT35\n prompt #\"\n Return this value back to me: {{myString}}\n \"#\n}\n\ntest TestFnNamedArgsSingleString {\n functions [TestFnNamedArgsSingleString]\n args {\n myString \"example string\"\n }\n}\n", + "test-files/functions/input/named-args/single/testcase_audio.baml": "test TestAudioInput {\n functions [AudioInput]\n args {\n aud {\n media_type \"audio/mp3\"\n base64 #\"\n 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\n\n\n\n \"#\n \n }\n }\n}\n \n \n ", + "test-files/functions/input/named-args/single/testcase_image.baml": "test TestImageInputBase64 {\n functions [TestImageInput]\n args {\n img {\n media_type \"image/png\"\n\n base64 iVBORw0KGgoAAAANSUhEUgAACgAAAAOxCAYAAAA5Wv7bAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAACAAElEQVR42uzdebzcVX0//veZe7OzyQ4ugIobikKCQEDFDRIWW1vB9tfqt60KtUoEBLKBjrKEPZCACtrN1rZCba24L4XKDmEXXHABgRBQkD3LvfM5vz/CkpC7zMydufczd57PxwNNZs45n8/nfM585jMzr5wTAQAAAAAAAIxItXrHRL0AAACMtoouAAAAAAAAgJHZ5LHHNtILAADAaBMABAAAAAAAgBFaM3GiACAAADDqBAABAAAAAABghHor/QKAAADAqBMABAAAAAAAgBHK0buxXgAAAEabACAAAAAAAACMUJEKMwACAACjTgAQAAAAAAAARqhSSwKAAADA6H8W0QUAAAAAAAAwUtkSwAAAwKgTAAQAAAAAAIARKlLFDIAAAMCoEwAEAAAAAACAEUqpEAAEAABGnQAgAAAAAAAAjFDKaQe9AAAAjDYBQAAAAAAAABiplHfWCQAAwGgTAAQAAAAAAIARyjntnCMnPQEAAIwmAUAAAAAAAAAYue3OOP6qjXQDAAAwmgQAAQAAAAAAYASq1csmR8SUnglTN9cbAADAaBIABAAAAAAAgBHYpG/SFpEiUq0mAAgAAIwqAUAAAAAAAAAYgVqetEVERBGxhd4AAABGkwAgAAAAAAAAjEAReW3wL2czAAIAAKNKABAAAAAAAABGIq8NABapIgAIAACMKgFAAAAAAAAAGImctoyISDm21BkAAMBoEgAEAAAAAACAEUip2CEiInryS/UGAAAwmgQAAQAAAAAAYARypB0jIlLOO+gNAABgNAkAAgAAAAAAwAiknHeMiMiRBAABAIBRJQAIAAAAAAAAI5HWzgAYETvkyEmHAAAAo0UAEAAAAAAAAJp0ztFXT4mIbZ7565RF82/eUq8AAACjRQAQAAAAAAAAmtQ3YdKOEfHcrH89lT7LAAMAAKNGABAAAAAAAACalHuLHdf9e6pVBAABAIBRIwAIAAAAAAAAzcppx3X/mlISAAQAAEaNACAAAAAAAAA0KaW8XuCviEIAEAAAGDUCgAAAAAAAANCkFPGavN7f06v0CgAAMFoEAAEAAAAAAKBJOceuL3jo9XoFAAAYLQKAAAAAAAAA0ITTj79y44jY8QUPv+Sc6tWb6x0AAGA0CAACAAAAAABAEyo9E14fEemFj69ZOfF1egcAABiVzyW6AAAAAAAAABpXi8pzy//mdR5PyTLAAADA6BAABAAAAAAAgCZUIt4w0OMpZQFAAABgtD6XAAAAAAAAAI3KaeAAYIQZAAEAgNEhAAgAAAAAAADNyIMG/d6gcwAAgNEgAAgAAAAAAAANOnvh9S+NiM3XfSw//8fNFy9Ytp1eAgAA2k0AEAAAAAAAABpUK3reOOTzkd+klwAAgHYTAAQAAAAAAICG1fYZ6tkip730EQAA0G4CgAAAAAAAANCgnNK+w5SYqZcAAIB2EwAEAAAAAACABiw58q5JkWPGQM/l5/+458WHXtyjtwAAgHYSAAQAAAAAAIAGrNro0RkRMXmYYhvfs/MrdtFbAABAOwkAAgAAAAAAQANyHm7537WKwjLAAABAewkAAgAAAAAAQANS5H3qLLe33gIAANpJABAAAAAAAADqlCOnnGLm0GWelQQAAQCAthIABAAAAAAAgDqdPf/m10bEFnUVTnnnUxZcu41eAwAA2kUAEAAAAAAAAOpU5LxvI+Un1nr20msAAEC7CAACAAAAAABAnYpKnhWR6i6fK/FuvQYAALSLACAAAAAAAADU4cLDl01IOd7RYLUD9RwAANAuAoAAAAAAAABQh0e3rLw1Ijatp2x+/o87LZp34yv1HgAA0A4CgAAAAAAAAFCPopjdTLVKFLN0HgAA0A4CgAAAAAAAAFCPyrrL+aa6q6WUD9B5AABAOyRdAAAAAAAAAEM7be6yl6VK3LP+o3nIOuv8EPfU5Cc322LO0p1X60kAAKCVzAAIAAAAAAAAw0gpDs4N1lmn/LSVG/9hX70IAAC0mgAgAAAAAAAADKNIMXsk9StFsgwwAADQcgKAAAAAAAAAMIRzjr56Sop4x4bPpLrbyCMMEAIAAAxEABAAAAAAAACGsHrSxIMjYuoIm3n96cff+Fq9CQAAtJIAIAAAAAAAAAwhVeLPn/1zbrDuuuVTT+1QvQkAALSSACAAAAAAAAAMolq9dpPIMas1rSUBQAAAoKUEAAEAAAAAAGAQk9ZM+JOImDJ4idRIc68/a/61r9OrAABAqwgAAgAAAAAAwCBSzn/eyvZqqecwvQoAALSKACAAAAAAAAAM4NT5N20VEe944eO5wXbWLZ9yvF/PAgAArSIACAAAAAAAAAOopHxYRPS2uNnXnLnghtfrXQAAoCWfW3QBAAAAAAAAbKj+5X9TQ+0WkS0DDAAAtIQAIAAAAAAAALzAonk375gjZral8ZzenyMnvQwAAIyUACAAAAAAAAC8UKX4cDQ6td8Q8jp/ThGvOnP+TfvqZAAAYMQfXXQBAAAAAAAAPK9avaw35fzXQ5XJI9xGiuIjehoAABgpAUAAAAAAAABYx6RVG783IrZv5zZyxPsWzbvtRXobAAAYCQFAAAAAAAAAWEdK+YgmajVaYUpPZc1f6m0AAGAkBAABAAAAAADgGWecsOwVEekd7Wh7g2WDc7YMMAAAMCICgAAAAAAAAPCM3B8fjTqn88sj39wbzpy/bE+9DgAANEsAEAAAAAAAACJiyZF3TcopPjia2ywKswACAADNEwAEAAAAAACAiHh640ffHxFbNd9CarxGJf5sSfXaTfQ+AADQDAFAAAAAAAAAiIhcpI+2fRsbPjRt5aqeD+p9AACgGUkXAAAAAAAA0O1Om7ts31yJKyIa/wFt/fK5wfIRUcRvnp7y5Kuq1bf3OxMAAEAjzAAIAAAAAAAAlfjkmG07xU5TV210qJMAAAA0/lEGAAAAAAAAutgZJ9y8c454T2taS01VSZHm5shW7wIAABoiAAgAAAAAAEBXqxW1Y2IUfzfLAz6W33jmvBvf7WwAAACNEAAEAAAAAACga506/7otIscH1n0sN9hGbtneFHOdEQAAoBECgAAAAAAAAHStlCpHRsS0kuzNO04//sa9nBUAAKBeAoAAAAAAAAB0pWr1ssmRe/629S2npqtUUvFJZwYAAKiXACAAAAAAAABdadKqTT4YkbcZi20PtmxwTvHeM467dmdnBwAAqIcAIAAAAAAAAF3nwsOXTYgUcwd7PjfYXm7drvWknp4TnSEAAKAeAoAAAAAAAAB0nUc2T38dES8v477liL84c8GNuzpLAADAcAQAAQAAAAAA6CoXHr5sQkp53vOPpDZsZURtVnJRfMqZAgAAhv3woAsAAAAAAADoJo9sHh/JkXYq3Y6tnxn8k9OPv+HNzhYAADAUAUAAAAAAAAC6RrV62eRIMb8dbefWlk9RiaozBgAADEUAEAAAAAAAgK4xec3GR0Skl9RTNo/xvqaI2WfMv/5tzhoAADAYAUAAAAAAAAC6QrV62eSc03EDP5vasMWRt5lyOtmZAwAABiMACAAAAAAAQFeYsGbjj0XEi0u9ky/IDOaIfU8//oZ3O3sAAMBABAABAAAAAAAY96rVmzdLOc1t93ZyO8pX4vSLD724x1kEAAA2/LgAAAAAAAAA49ykVfmEiNiqLQG9NksRu939ip0+5CwCAAADfF4AAAAAAACA8eukE5a9oqeW7oiISRHD/UC2YeSv0R/UUh1tDll+4OK/mzC591VHV3d71BkFAACeZQZAAAAAAAAAxrVKEWfHM+G/jjBw4nCrvlX9n3I2AQCA4T8+AAAAAAAAwDhwyoJlb085/e+6j7V7BsAN6+QGyw9apT9VYrfjTt3jJ84sAAAQYQZAAAAAAAAAxqmLD724J+V07gsfzw22k8tzSL25iMXOLAAA8CwBQAAAAAAAAMalX77yFR+OiF0bq1X6BbTedcb8Gw92dgEAgI74BAMAAAAAAACNOv34Kzeu9Uz5RURsO9Dz7V4GONXR5rDt50EL/2ryk5vtMmfpzqudaQAA6G5mAAQAAAAAAGDcKSpTTopBwn+joa3LDOd4xaqpjx3nLAMAAGYABAAAAAAAYFxZNO/mPXIqromInqHKDf5DWW6wfD3t5wbLD1tldSXVdj920V53OuMAANC9zAAIAAAAAADAuFGtXtabe4oLY5jw39A6Yg6NSTlXvlStZr/3AQBAF/OBAAAAAAAAgHFj4uqNj40cu5Vvz1IbqqS9p6684QhnHQAAupclgAEAAAAAABgXFs27ecdcKX4SEdMiYthVd4f+oSw3WL6e9lu+DHCkyI9XeuL1nzzlzfcaAQAA0H3MAAgAAAAAAMC4kCv5ong2/NeO9ttcvkmbFLX8BWcfAAC6kwAgAAAAAAAAHe/U+cv+X4787kbqDB3Q66SFtNKBZ8y7/v1GAQAAdB9LAAMAAAAAANDRTp1/01Y55TsjYsv1fvyqYwq+si0DnOrbjReUzxERD/Wl/LoFi/Z82IgAAIDuYQZAAAAAAAAAOluKCyJiywEe7zgjWGZ46wk5fdFgAACA7iIACAAAAAAAQMc6df7NH8kRh47W9nKby4/Qe8+cf92HjAoAAOgelgAGAAAAAACgI510wrJXVIp0c0TaeO0ja+N2rVsGODdYvp72c+P7k4crv16Bp4oiTZ97xh4/N0IAAGD8MwMgAAAAAAAAHadavay3UlT+9fnwXzukcrSZGiowrVKJr1Srd0w0SgAAYPwTAAQAAAAAAKDj9PZt+umI2GvYgh24HtbIlxnO06eufvLTRgkAAIx/lgAGAAAAAACgo5y88OaZKecfR0TP+s8MsATw8w8PaugfzDpyGeCIiKKoFO+ae+pelxkxAAAwfgkAAgAAAAAA0DGq1Ts2mrBm9U0RsfPAJQYIAdYxpd7gP5p1bAAwIuK+ntX9bzxm8cxHjBwAABifLAEMAAAAAABAx5i4evVFMWj4rx1SOdpsbjdeUpvU+6Uc2aQgAAAwTgkAAgAAAAAA0BFOWXDzJ3KKP2+4YhfE3/LgB/neM+feMNfoAQCA8cm/9gEAAAAAAKD0Tp1/0945xeURMXHokgMsAfz8w4NKdbRZf/l6tjFqywBHRBQ54qDjT3vzd40kAAAYXwQAAQAAAAAAKLVTFty+TUTfjRHx4vpqDBACHD5vN8QPZ7nB8vW0P6oBwIgUj0RPnnHcyXv+xogCAIDxwxLAAAAAAAAAlFa1ellvEX1fzXWH/9ohdUibQ8ixefSl/zrn6KunGFUAADB+CAACAAAAAABQWhPWbHZGinjbiBsaD+tiDXMMebgCKd5Um9RzoVEFAADjhyWAAQAAAAAAKKWTF9743sjpa/HMb1r1/7A1wBLAzz88qFRHm/WXr2cbo7wM8HNl0hHHnrbHRUYYAAB0PgFAAAAAAAAASueUBTfumiNdFREbPftYYz9sDRACHD4bN8Q2coPl62l/bAKAEbE6p/TO4xftcZWRBgAAnc0SwAAAAAAAAJTKKQuWbVdEujTWCf9FRH3RtrZJHdJmXSalnP/n7PnXvcpoAwCAziYACAAAAAAAQGlUq8um5qh8PUW8rOWNj4e1sYY5hlz/QW5Ry+k7Zx571dZGHQAAdC4BQAAAAAAAAErh4kMv7uldU/m3iHjzeD3G3ObyjUgRL08TJlxarS6bavQBAEBnEgAEAAAAAACgFO7a+ZWLI+KPxnIfyhTQG5XjzfHmjVblf6pWs98NAQCgA7mRBwAAAAAAYMydtODGo3PEkcOVqz9wlxosX3+bUfo2G5UP3Wj1DacYhQAA0HmSLgAAAAAAAGAsnbLg5oNy5P+JiJ56ytf/A1ceuHweSft5BPszWPnc+P4Mewy5mX362LGnvflzRiQAAHQOAUAAAAAAAADGzMkLb9k3cv5eRJ5ab51ODwBuWCc3fsztCQD255zed9zpe/yPkQkAAJ3BEsAAAAAAAACMiVMW3PymnPM3ImJqmeatyG0uX2K9KeWLz5p7w2yjEwAAOoMAIAAAAAAAAKPulAW3vr6I+GFEvKjRuvUH7lKD5etvM0rfZtMmppT/85z517/NKAUAgPITAAQAAAAAAGBUVefd+Moiiu9HxBYRYzCDXhoHnTjMMeQGDzKv/+epRY5vnDXv+j2MVgAAKDcBQAAAAAAAAEZN9fhbX9JbqfwgIrbr5n7ogGWGN4kc3z973g27GbUAAFBeAoAAAAAAAACMimr11q0rvfkHOWLHsu9rBwT02i/FZkXk7y0+/prXGr0AAFBOAoAAAAAAAAC0XbW6bMueNcWPUuTXDF6q/mVr6w/cpQbL199mN0gRW9UqPd8784TrdjKKAQCgfAQAAQAAAAAAaKtTFty+Tc+anh9FxOsHK5O7vpdSG6o01uYQ5+ClqT9ddc7c63cxmgEAoFwEAAEAAAAAAGib6txlLyui/4qI2LVUO9aBk/iN8bLE2xUp/vfsude90agGAIDyEAAEAAAAAACgLU464dadent6LouInbvheMc4oDcats6pctnZx1+7l9ENAADlIAAIAAAAAABAy510wo2vjaK4Mke8vLGa7Ziab22brQ3opS49s/lFuZJ+cOa8695hlAMAwNgTAAQAAAAAAKClqgtu3T0XlR/niO0bqdcFM+gNI7WhSmpDn6aNKhGXnjX3ugOMdgAAGFsCgAAAAAAAALTMyQtv2bcSxf9GxJal39kOnMSvLCHJHDE1UnzjrPnX/4lRDwAAY0cAEAAAAAAAgJb4zMJb3lvk/L2I2LRb+6DLZjGcGDl/9ax51x5u9AMAwNhIugAAAAAAAICROmnBzZ/IEefECyagaPTHqOfL5wbL1yNvWCePZBu5Bfv0wvK58f3Jw5XPI9if4Y99bfm85InJex5drabCqwEAAEaPACAAAAAAAABNu/jQi3t+uvOrFqfIRw70fDM/Rj0TKGuwfD1aHQAcuIGRBQCH36lU32403Z/1HUMeoHz6Wlrd/4FjFs9c6ZUBAACjQwAQAAAAAACAppx57K3TVk4s/i0i3jNUueYCcaMUAKxjU2ULADZ3DKMxC2BERFxb9Pf/0XFn7fOQVwgAALSfACAAAAAAAAANq1bv2Db19V+acp6x9pHBA2bdFgBs/pjr3KEodQAwIuLXPUXlwKPO2OPnXikAANBeFV0AAAAAAABAIz574i27VPr6rk3xbPivHVLb2swN1spOeaNeXusprj5r7vVv1RUAANBeAoAAAAAAAADU7TMLbz0kirgyInZo1zY6K6CXytFmam2bIz4HOTZPKX//rLnXfsKrBgAAOusTCQAAAAAAAOPMxYde3PPTV+98YuR0YkRUnvuRKW/whwF12zLAI1sCuL5jL/kywOs+/i+xunbEMYtnrvRKAgCA1hIABAAAAAAAYEinzr9ui/7KpH/LEfs/+9h6PzLVEQLstgBg88dc5w5F5wQAn3Fz0Rt/etzJe/7GKwoAAFrHEsAAAAAAAAAM6rMn3rJbX2XSDeuG/0ZP+5bX7axlhseF3VJ/3HDW8de+W1cAAEDrCAACAAAAAAAwoM8uuOUvcxFXRsROo73tzgropQ5pc2zPWYrYIlXSd86ed101R7ZSGQAAdOUnBwAAAAAAANrqnKOvnvLElKmLI8URQ5V77oemOpYAXq98nTp9GeCRLQHcZH+WexngdVv+Wl+ufGje6TMe84oDAIDmCQACAAAAAADwnM+eeMsuuYivRMQbhyu73g9N+bn/qa98HbotALhhndz4MXdMADAiIn7bk9MHjjr9zT/2ygMAgOYIAAIAAAAAABA5cjpp4a0fyRGLI2JqPXU2DACu94ehyzfUfo6G96eOIx78GJrZRm7xMde3Qx0eAIwUUUTk8x+fvPFx1eoua7wSAQBgJJ8hAAAAAAAA6DrV6q1bR1/+hxRxUCP12h0AfL7OKM0CmEfafgmWAR7jAGCzx5wjbuit5b/4xJl73eUVCQAA9avoAgAAAAAAgO71mQW3HBB9+ZZoMPwXEQ1GyRovP+rGw9QZabhzkNpwzlIrdnuPWk+65Zy5137CqxIAALrrYwwAAAAAAAANqlaXTY01E86KlP821vnNaEQz1uXn/qe+8nW3P0ozANaxqXbPALhhna5YBviFf79kVaw5Yv5pb/mDVyoAALTqMxAAAAAAAADjwmfn3/qWohJfjIhXt2L51ue0YRngFMO32Xz7rV4GOLf4mOvbofEWAHymuQdzxPGfPH3PL3vFAgBAqz4DAQAAAAAA0LGq1Zs3i750ekT6SDz3O1G5A4DP1xmlWQDzSNsf+SyAqY42hyw/xgHA1hxzROQckfI3e4v00Tln7HWfVzAAALTmMxYAAAAAAAAd5jMLbz0k5/hcpHjJ+s+MbgCw+W10zzLAIw4ADlOl0f6s/xhaPQvgc+09FhGffnzKnkur1VR4NQMAQPOfNwAAAAAAAOgg1eod28aa/qWR4n2Dl2p1CFAAcCTHu2Gdrl0GeP0DSXFFkYrDj10082de2QAA0PznDQAAAAAAAEquWs2V6Lv9wzny6Slis6FLl3sZ4BTDt9lc+80FAIfeRm7xMde3Q10RAFxrZYpUfWzK0+dUq2/v90oHAKDbCQACAAAAAACMM9WFt8/IUTsvIs2MqOcHofEVAGxsG3mIY2i2/RIsA9xhAcBB6+RB9/MXuRJHf3LRXt/2igcAoJsJAAIAAAAAAIwTCxYs225C6q1GpA9HROXZx8sWAGx+G92zDPCIA4DDVGm0P+s/hlbPAjhskPSHkfOco8/Y+6euAAAAdCMBQAAAAAAAgA5Xrd4xsejv/2jK6bMReZMXPt9ocKv+OoOUH3jp1ha03z0BwA3rWAZ4iPJ9OcXneyfHiXOqez3uigAAQDcRAAQAAAAAAOhgn1p46yEp4tyIePlQ5bptGeB2BwCH3kZu8THXt0NdHAB81gORovriX/327w+75LCaqwMAAN1AABAAAAAAAKADnXjibdN7inx6jnhnPeW7LQDY2DbyEMfQbPslWAa4wwKAg9bJjY6jfEMu8nHHnDnz/1wpAAAY7wQAAQAAAAAAOsgJJ9z+2kouPlOJeF9u4LeesgUAm99G9ywDPOIA4DBVGu3P+o+h1bMANhkkzXFVzmn+MWfueYUrBwAA45UAIAAAAAAAQAdYuPDOHXqjf0GO+FBE9LR79rb66wxSfoilW0fWfvcEADesYxngJvv0h0Uqjv/kaTNvdiUBAGC8EQAEAAAAAAAosWr11pfkvjguRzoiIiY9/0xuTbhqPZ2wDHDnBgBH3KcCgCPpzyIivlZU0gmfXLTnL1xZAAAYLwQAAQAAAAAASmjBgtu36Y08N1J8NCImb1iiWwOAQ7fZfPt5iGNodhutXgZ4/AcAB62TWzaO+is5/VNPrf/kj5+9zz2uNAAAdDoBQAAAAAAAgBI54YRbd+rJcVSO9OGImDp4yc4PADa/jVGaBbB0AcAm+zO3rj9HfRw912TLg6RFpPztoqh85pgz9lzmygMAQKcSAAQAAAAAACiBE0/8yRtTrn0yIv155Oitp05qc3CrvjpDlB9i6daRtd+5ywC3OwDY3DF0zTLAA5TPETmuKlKcfszpe1/qSgQAQKcRAAQAAAAAABhDCxfesm8lpbkR6aDU8Cq33boMcOcGAEfcpwKAI+7P9eus1+ZNEfm87X9931cOu+SwmqsTAACdQAAQAAAAAABglB1++LIJ22wz6b2R8/ERMX3d55778UYAcJjyuUXHu+EOl3sZ4PEfABy0Th61cfSzyPmsoi/+7ZjFM1e6YgEAUGYCgAAAAAAAAKPkhBNu3rkSPR/KEX8VEdsMVKbbAoDNb2OUZgEsXQCwyf7MrevPUR9HzzU5ukHSFPFYkfNXeyrxhTmnzbzZFQwAgDISAAQAAAAAAGijI4+8a9KLNln5npzS4RH5nTHM7zONBQDbMXtbCwNr4yEAWMemyhYAbO4YumsZ4CZmVbwxUrpoVdH/73PP2PcJVzYAAMpCABAAAAAAAKAN5s+/7TU9PZW/SpE/FBFbrn20weCWZYCHKN+5AcAR96kA4Ij7c/06DS0nvSpFujRSvmjOaXv/0JUOAICxJgAIAAAAAADQIgsX3v7SlNL7Ior3R6Q9n328yaCRAOCw5XOLjnfDHW7dMsACgCM/3nWbK9U4uj1H/EeR8sXHnDbzl66AAACMBQFAAAAAAACAEahWf75lrbb6T3JOH4yImTHA7y8CgEMfTPOzt43SLIB5pO2P/jLAqb7daLo/R30cPddkaYOkd0aKS3pS5d8+vmjPX7gyAgAwWgQAAQAAAAAAGrQ29Nd3YM750IiYFRG9Q5Vveva2Dg0ADnwMeYT7NFD5zl0GuN0BwOaOobuWAW7jTJJ3RiouiVrPVz5x5l53uWICANBOAoAAAAAAAADDqFZzpVa7fbeiSAdEitlp7Ux/lXrrtzcA2Hhwa8N9GkgnLAPcuQHAEfepAOCo92fj28g5RdyYU3wncnx3u1/fd91hlxxWc0UFAKCVBAABAAAAAAAGUK3+fMu+vtVvj6i8K1I+KCJe/OxzI5oRzzLATe5Pi/oz6uvPwY+hmW0IAI78eNdtrnPG0QvKP5lTXB4Rl0YuvvuJ0/f9rSstAAAjJQAIAAAAAAAQEdXqsqmraxP3qETP/pHjgIi8W0QedJa/UQsaCQAOU2eUZgHMI21/9JcBTvXtxjrl2xsAbM0xR0Tu2ADgC7vlJxHpe5GL769M+Zq5Z+z7hCsxAADNfS4CAAAAAADoMsdXf7b9hL7+6TnFPhGxb4qYERGTNiw5xrO3dWgAcOBjyCPcp4HKd+4ywGULAK6t063LAI9JAHBdtUjx88hxYyXiykjFVR87fZ87U6QcAADQws9RAAAAAAAAHefYY2+dNmFK7+srRd47p7R3RJ4ZES9Zt0xpl2/N9bbfeE5ofCwD3D0BwBGNo7qPoVsDgPWPpZaEAHNd7T+Uc1yTKunqXNSuiVW9t85ZutfjrugAAIz0cwUAAAAAAEApVauX9a6KLV7WU1R2yZGnR06vi4hdIqdXR+Seoeq2OwC4fh3LALeiT9s9e9vgxzB240gAMIYMAJZxHKXGhsRw7T8Qqbgj5XRnRLojpeLO3imTbzqiOuNp7wAAAN1JABAAAAAAAOgoRx5516SNtujfIffnl6VK7BA5vyxyvDoidokUr47IEyIan0FvvTrrKUHQSABwmDqjNAtgHmn75V8GuN0BwNYcc0Tkrg0ADtSftYj4ZUTcHil+ETndk3L8NlK6Z3VfvvuYxTNXeucAABi/BAABAAAAAIBSmDv3V5umKU9tEbXKFjnF5ili81ykLVMlXhpFvCwqsUPKsUNEbDd0Sy+YbWzEAcDBGynXMsCdHwBsfhvdswxwuwOAa+t0wiyAAoAN1HkoIn4bKd+TIn6bc7o7RX44pXgk5crDRSUembQ6Hvnw4pmPeCcCAOg8AoAAAAAAAEBLHXvsrdN6e9PEYvLEKZVabZuISqVIaZNK1LaMiChy2qqSY+Ncie1SzjtHxKsiYqeI6Bmu7aaCRl0TAGw8uFXfMbQ6BCgAOJLjHdE4qvsYOnsZ4FFfVrmOY298JsZ2jKM83CynOXK6JyLflSJ+ESnujZyfTjk/mFMlR44/RI4/FJWcJ6XaQ32V3qcmFan/Q2fs+4R3PgCAsSMACAAAAAAAjLlq9bLeNWu23KK/EpunXNkiemKLSsTmuchbp0rlpTnnHSNipxSxY0RMHbq18RMAXK+OZYCHKT9Ks7flzhtH3RYA7IhxNMzmWvy6XBUR90QUd6ec7o6U7o3IK3KRH4meysMR+eEJPcUjL5q4xcOHVXdZ4x0JAKCzCAACAAAAAAAd5djqrVtP6uvdMVdix8hph0jFjjnSqyNi14jYasCgUd0z6A2mBEEjAcCW9Gdj28hDHEOz7ZdgGeAxDgC25pjDMsDrl/9DjrgtRfw8It+dcuXunPPdEybW7j7i1Lc+4J0DAGD8EgAEAAAAAADGjXnzbntR7unZpScV0yOl1+WIXVLEbpGHmzXweZ29DHDnBwCb30b3LAM84gBgXcfQCbMAdmUAsD8ifhuR74yIGyOnO1KluPNjp+9zZ4rU+BrgAAB0PAFAAAAAAABgXKtWL+vt799y5yJVdstF3ruS4i050usjcs9A5Ts7ANh4cKu+Y2h1CFAAcCTHO6JxVPcxdPYywKO+rHIdx95oEDOtrfTTyOmqFHFVkfpveWTK5j+tWqYXAIARfp4AAAAAAADoaNXqHRv19cWbcsr7pIh9c8S+EbFZRPkCgOvVsQzwMOVbPXtbcwHAMo6jbgsAlmscDfO6fH5z/RFxa0S6KuV85cRi4mVHnD3j967YAAC07r4UAAAAAABgHKpWL+tdVdtqt0qOfVPErIh4a0RMXr9UCYJGAoAt6c/GtpGHOIZm2y/BMsBjHABszTFHpy8D3B8prko5vhtFuiKv+sOyOUsPXO2KDABA6+/FAQAAAAAAusjRR189Zdq0zfbJKR8SOf9RROyw9plOWAa48wOAzW+je5YBHnEAsK5j6IRZADsuAPi7iLg8Ir5ZW736G0ef+/ZHXXEBABgJAUAAAAAAAIBhzKve9vLe/nRIjjg41s4OOHHd58sVAOyA2dvy8AcjANjGcVT3MXT2MsCjvqzywIqIuDnn+GFK6Zt/mLLn1dVqKlxVAQBoFQFAAAAAAACABsydu2zTnokT35uK9GeR4p0R0TuqQSPLAA9TvtWztzUXABx6GyUJrAkAtmscFRHpyhT5P6LS959zFr31d66cAAC0iwAgAAAAAABAk6rVOzZfU8sHV3L+QES8IyIq9dZtOmgkANiS/mxsG3mIY2i2/VYvAzz+A4CD1inPMsB3RopLiuj98tGn7fFrV0gAAEaDACAAAAAAAEALVKu3vqS/v/KnEXFoRMyMYX6HEQAc/mBKvQxw6QKATfZnbl1/1n8MrZ4FcEwDgD+NFBfnovbvR52x789dCQEAGG0CgAAAAAAAAC02f/5tr+npicMj0v+LiM0HKtP07G115rHaPXtb/XUGKZ+HP5hSBwDr2FS7A4AjGkd1H0N3LQNcZ38+GZG+kot80dFn7n2TKx4AAGNJABAAAAAAAKBNjjzyrkmbbLLyPSmlwyPiXes+N6LglmWAhymfW3S867fXaHhu6G2MamBt8PYFABsZRz+LFP80Mfov+rvT3vIHVzgAAMpAABAAAAAAAGAUnHDC7a9dOyNgPjwiXhRhGeDhDqbdAcDGttEJywCP/wDgoHXatwzw6oj0jZzyRUeftvcPXckAACgbAUAAAAAAAIBRdPzxP9t44sS+v4yIv0sRr1/7qABg8/s0UPluDQA22Z+5df1Z/zG0ehbAlgcAf50iPt/X3/tPx5494/euXAAAlJUAIAAAAAAAwBhZuPCOfSupmBsRB0XkYX+3aSwA2I7Z21ocWMvDH0ypA4B1bKrdAcAN61gGeIR9emOKtOTRKU//W7X69n5XKQAAyk4AEAAAAAAAYIxVF9y+ay3lj0WKD0bE5MHKNTr7XPcuA1yeAODQ28gtPOb6d0gAcANFTvnbKeI8y/wCANBpBAABAAAAAABKYsGC27fprRQfzZGOjIjNByrTbcsAN99+btHxbrjDrVsGWABw5Me7bpONjqO0OlK+uJaKU49dNPNnrkAAAHQiAUAAAAAAAICSOf74n208acLqD0VKx0bEi9d9rtsCgM1vY5RmAcwjbb/Fyyo325+5df056uPouSbrDgA+nCKf21upfP7ji/Z82BUHAIBOJgAIAAAAAABQUtXqHRNrtdpfRY5PR8T2EY0GANsxe1sLA2vjIQBYx6bKFgBs7hjGxTLAT0ROn1udehbNO33GY64wAACMBwKAAAAAAAAAJXfkkXdN2myzlf8vclRTxHbPPWEZ4CHKd24AcMR9KgD4Qk+mnC6INRNPO/rc3R51RQEAYDwRAAQAAAAAAOgQxx5767TJk+PDlUjzI2IbAcDhyucWHe+GO9y6ZYAFAEd+vOs2t95+PpVyOj/31c44ZvHMR1xBAAAYjwQAAQAAAAAAOszxx/9s48kTV8+JnI6NiM2GLt19AcDn64zSLIB5pO2P/jLAqb7daLo/R30cPddkjoh4Okc+P/dPOPPYs2f83hUDAIDxTAAQAAAAAACgQ1Wrd2xe9NeOjxxHR8TEwcqlkgW31qtTRwCwmW10+jLA7Q4ANncMpZ8FMKcc/xmpOP7o0/a+2xUCAIBuIAAIAAAAAADQ4U444dZXpxxnpUgHD/R8o8GttXWG0wnLAHduAHDEfdplAcAccUMlVY4+etEeV7kiAADQTQQAAQAAAAAAxonqCbe9q8ixOCJev/4z3bcMcIrh22y+/VYvAywAOILjvS/nWHjM6W/+lxQpuwoAANBtKroAAAAAAABgfKievOsPKxMe3i1HHBERv+vmvshtLt9aqUPaLNU5ezpHnD5p8tOv/eTpe35Z+A8AgG5lBkAAAAAAAIBxqFq9Y/Pc139KjnR4RK6UbQbA9erUMQNgM9vo9GWAR37OmujPzpgF8N/7i75j556x73KvdAAAup0AIAAAAAAAwDhWXXj7zCLyRSnyLo3WHf1lgAUAR3K8G9YZb8sAp+Up8sePOW3P//bKBgCAtSwBDAAAAAAAMI5VT3nD1St+t2a3nNO8FLG63HubOqrNdi8zbE3b5xQp0kX9xZrXCP8BAED7P/EAAAAAAABQQtV5d7wy9/RfGBHvqKf86M8AuGGbI2n/+TqjNAtgHmn7JVgGeIxnAHxhnRRxWy0Vhx+3aO/rvIIBAKA1n5MAAAAAAADoWDlVF9z2gUhxTo7YYqiS7Q4ArlenjgBgM9votmWARxwArOsYRmUZ4JURccYTkzc6tVrdZY3XLQAAtOYzEgAAAAAAAOPAggXLtpuYJvx9jpg9VLnRnwVQAHAkx7thndz4MY/9LIDXVKL2wWNOm/lLr1QAAGjVZxgAAAAAAADGmZyqC2//SEQ+J0dMG6hEpy8DnGL4Nptvv9XLAOcWH3N9O1SiAGB/ijh7o0d6Tjziohl9Xp8AANDqzzAAAAAAAACMO9X5t70mV/JXImL3Fz7X6QHA5+uM0iyAeaTtl2AZ4LEJAN4dOX/g2NP3utIrEgAA6lfRBQAAAAAAAN2tumjXn6UJj+yZUnwmRdRGc9u5zeVH3XiYfiMNdw5Si89Z/pcpkzd6g/AfAAB050cQAAAAAAAAWuTE+bftXankf42Ilz/72OjPAtjgjHV1tT9KMwDWsal2zwC4YZ2SLgOc49Ec6aPHnb7Hf3jlAQBAc8wACAAAAAAAwHNOWrTrNWlCMT1y/OfY7UXqkDabM+5mPWzO//b0VF4n/AcAAOPlkw4AAAAAAAClUl142+ER+fyImDB0yVbPALhhm61pf5RmAcwjbT+38Jjr26lRnAEwp4ilGz1SOfaIi2b0eZUBAMDICAACAAAAAAAwqBPn3/qWnkr6akTebvBSoxsAbH4b3bMM8IgDgHUdQ8MhwCcipb85dtEe/+mVBQAArWEJYAAAAAAAAAZ10qI3XhET+mdEiqsGL7V+fGxES9yavqIlSrjM8M8iFXsJ/wEAQGsJAAIAAAAAADCkanX35dH7yH6R8umjt9XUIW02p4QBvXaeyv+I/kkzjl20151eTQAAMF4/5QAAAAAAAFB6n1l465/niC9GxLT1nxndZYCbb3+UlgHOI22/BMsAj3wJ4P6IfMJxp+15ulcOAAC0hwAgAAAAAAAADfnsibfsVtTSNyPF9s8/OroBwOa3MUoBwDo2VfoA4DBVhuzPHI9Gyn963Gl7/q9XDAAAtI8lgAEAAAAAAGjIp056080xsbZHRNz0/KPrx8dGtMStKSxaIo9V+Ry/KXJtpvAfAAC0nwAgAAAAAAAADatWd18eE3rfFhHfbN9WJAHXlTtgH1OK6yf0FHvPPWPvnzpjAADQfgKAAAAAAAAANKVa3eXJ1/3i538cOV/QOXud2tZma2fc68jw438/Oany9qNO3etBrw4AAOjcTzgAAAAAAAB0mc+ccOsncs7nxDoTUDT6Q9R65fMGfxi+Tt3byM3t05DyEMfQbPu5Rcdb/06l+nZjoP5c8tTkPY6uVlPh1QAAAKNHABAAAAAAAICW+MzCW96bI/41IqY++9jIQ4AdHACsY1NlCwA2cQy1yPGJ40/f4wKvAAAAGH0CgAAAAAAAALTMZ+ff+paikr8ZEZtEtH8WwG4LAI64T1sbAFyTU/zF3EV7/KeRDwAAY6OiCwAAAAAAAGiVTy164xWVSuUdEfH78u5lalubucFaedT3s2VW5xSHCv8BAMDYEgAEAAAAAACgpT510q43RlG8LXIsb/e2csnKl19qRZWnUsTBcxft8Q2jHQAAxpYAIAAAAAAAAC1XXbT7nT2V9I4ccW8j9dYL3KVx0BEdeAx56CcfTal493Gn7fFDoxwAAMaeACAAAAAAAABtceLJb/x5bxRviYhfjqylpDPXMXazGOaHoie//bhFe17jLAAAQDkIAAIAAAAAANA2J5yy+z15woS3RMTt5dqz1LY2WxvQK034cUWqpHcef+qbbzGqAQCgPAQAAQAAAAAAaKtqdZcVeUJ6V0TcWYb9GbsZ9Mqi0VBhuj96077HnbrHT4xmAADo7Lt7AAAAAAAAaMopC27fpj/V/i8iXj1c2ed+xMob/GHo8nVqdK6++tvPA5fPI2k/t+h4G9ih5+v8rhK1/Y5dtNedRjAAAJSPGQABAAAAAAAYFQtPfcODPdHz7oi4p+5KaYM/EKM2i+FjlVyZLfwHAADlJQAIAAAAAADAqDnhlDfcW0n53RHxwNjvTWpbm+NgmeGniiIdfOxp0280agEAoLwEAAEAAAAAABhVJ568212pUjkgIj08VvvQWQG9NNptrixyHDzv9BlXGq0AAFBuAoAAAAAAAACMuk+dtOvtORfviohHB3p+HMygt77OWcF4TU7p0Pmn7XG5UQoAAOUnAAgAAAAAAMCYqJ662y2pSO+JiKeHLJg2+APRlpBkfyUXfzbv1Bnf0rsAANAZBAABAAAAAAAYM59a9MYrcor3R0RtbPagfcvrdtoshjnFUcedtud/G5UAANA5BAABAAAAAAAYU9WT3/TNyDF3tLfbWQG91NY2U8QZ807d4wKjEQAAOosAIAAAAAAAAGPu06e+6ewccf66j3XaDHrDKu8Kxv/59KQZ841CAADoPAKAAAAAAAAAlMLrfvGLo1LO3xjwyaR/WiFv2K03rJyU/l+1mgq9AwAAncdHJQAAAAAAAEqjWr1jo9TXd0VEvCniBT9m5Q3+sIFGf/xKMXybzbefY/BjaGYbucXHHL+u9E3Y+7iz3viQkQcAAJ3JDIAAAAAAAACURrW6y5N5QnFQRNw7GtvrrGWGWzq3x8PRkw8U/gMAgM4mAAgAAAAAAECpVKu7L0+V4pCIeLKzAnp1KMf6XGtyEX889+Q9fm60AQBAZxMABAAAAAAAoHQ+ddLut0bEh9d7MOmXVsiR58w7fcaVegIAADqfACAAAAAAAACl9OlT3vTVHOncDZ9pRxKwPG22c9bDHOlf5i3a40KjCwAAxgcBQAAAAAAAAMprwiPH5cg/LtMuje2yxCMKKt4yadXqIwwqAAAYP0yUDgAAAAAAQKmdsuD2bWqpdmNEvPj5NN3QsbpGfwRLdbTZXPt54PJ5JO3nZvbnkZ6e2ozjTt7zN0YUAACMH2YABAAAAAAAoNQWnvqGB6MoDo2INaa3aEqRc/oL4T8AABh/BAABAAAAAAAovU8t2v2aiDz3+UfakQQsT7qwxcsML5x/2vTvGkUAADD++DdSAAAAAAAAdIzPnnDLv0cRf7b2b4PH3ppbAnjoNpvfxgDLAOeRtl/3MsBfn7to+p+kSNnoAQCA8ccMgAAAAAAAAHSMonfCRyLil8OVa/EMeq03OtN03D9x0poPCf8BAMD4JQAIAAAAAABAx6hWd3kycv6riKjpjSEVOacPHlOd+YiuAACA8UsAEAAAAAAAgI7yqUW7XZUjndaeafRSaY5zhLMYnjH/tOn/a7QAAMD4JgAIAAAAAABAx8kTH6lGxHVjug91l0wNlq+/zUHctGrSlE8bJQAAMP4lXQAAAAAAAEAnOumE21+Ri/5bImKjwco0+mNYo1G9+tvPG5bPI20/D1T+qdSTp889eY+fGyEAADD+mQEQAAAAAACAjnTiyW/4Vcrp2I49gLZM1ZGOFv4DAIDuYQZAAAAAAAAAOtpnF9z8PxHxnoGea24GwIh6ZwEc0QyAdW4mDdPmOuW+Pm/RjPcaEQAA0D3MAAgAAAAAAEBHKyZWPhIRD5d7LxtdXLj+Np/xUO+a+IjRAAAA3UUAEAAAAAAAgI5Wrb7xoZzTcQM912jgrt3l2ybno449e8bvjQYAAOgulgAGAAAAAACg4+XI6aT5t3w/Urzrhc81twxwbrB8fXs5YPk8kvZzRE7fmX/a9AONAgAA6D5mAAQAAAAAAKDjpUi5yMVHI2Jllx36E7We2hFGAAAAdCcBQAAAAAAAAMaF6mnTf5kiTmpNa+1YSKvRuQVj+PI55p1wypvvdfYBAKA7CQACAAAAAAAwbtQmPnpmpLh53cdaGrhrQfmWyXHt6snTv+CsAwBA9xIABAAAAAAAYNyoVt/eH7U4IiJqHbPTzU02uDqn9KFqNRXOOgAAdC8BQAAAAAAAAMaVT5222w2R0wXj+iBzPmXBot3vdLYBAKC7CQACAAAAAAAw7kyqTT4hUloxslZSG/ZsbZsjWWY4R/xq2lObnuEsAwAAAoAAAAAAAACMO3PPeM0TqYhqs/Vzm8uP0FFzlu682lkGAAAEAAEAAAAAABiXXv3LX3wpRdwWMeoBvcbVP9ngDxcsmv5NZxcAAIgQAAQAAAAAAGCcOuySw2pFpKPG0SH1F6k42pkFAACeJQAIAAAAAADAuPXpU990WUR8o/kWUhv2am2bDc9KmGPpwlP3+ImzCgAAPEsAEAAAAAAAgHEtVWrHRMTqRuvlNpdv8CgeWT159cnOJgAAsC4BQAAAAAAAAMa1E0+e8avI+YJc9h0dYrLBlPP8anXmI84mAACwLgFAAAAAAAAAxr1iUjopIn7fobt/6yt+9au/dxYBAIAXEgAEAAAAAABg3KtWd3s0cpzeXO3Uhj1a22Y9sxLmFHMPu+SwmrMIAAC8kAAgAAAAAAAAXaGY9Oj5EbG8kTqNLhvc+mWG01ULT53+PWcPAAAYiAAgAAAAAAAAXaFaffuqnOLMUu/kCyYbTLl2gjMHAAAMRgAQAAAAAACArlFMePQLEXFfh+zud+eftsflzhoAADAYAUAAAAAAAAC6RrX69lURcVrjNdNo72ouKsWnnTEAAGAoAoAAAAAAAAB0ldrEiV9MEXe3q/1cd8k0VPn/PuGUPa53tgAAgKEIAAIAAAAAANBVqtVd1uSc6p4FMI/2DqYocorPOFMAAMBwBAABAAAAAADoOls/3P8PKeLXpdy5FF9ZeOr025wlAABgOAKAAAAAAAAAdJ0jLprRl3M6o7FaaTR2rYii52RnCAAAqEevLgDK5NDqHRMf3WLjLStpwot6a8WmOdImuZI3jSJtGim/KCJtknPeNCJNqqTYNIroiRSb5IgJEbFRREyMiGnrNPmiQa59xTP/xQu+sHns+cdjdUQ8nSOvrkQ8HZFWR4qnI6fVOeLpSspPRMTjEfnxIiqPR+THK1F5tFYUj0UUj0+M3kcnbb/17y85LNWcWQAAAACA8pm26ukvPzVlykkRsVWr285Rb1wwRUR+rnyO+O+Fi970C2cHAACo9xMFQFtNvzBP2KJ/+bYT+uOlRapsn1J+cc6xdUTaNiK2zJG3TBFbRsS2EbHJkI3lsb0cNnPRzBEPp4jfR06/j1T8PkV6OEd+KHI8lFLlgVoU96XU88DKjZ++//K/3mmVEQMAAAAAMHpOWnDzpyOiWk/Ztd8R1/9Fdf3fKefnyqei8ub5p+12gzMDAAC09nMHwCD2u+ChjSb3rX55JVV2Kirp5SnSTpFjh4i8fUS8OCK2iVYtOd6BAcAGPRIRyyPivhSxvIi4O0W+u4j4TW+t9ptvHv2S5ZFSNuoAAAAAAFrj1Pk3bVVL6Z6ImDJc2VEIAF624NTp73BWAACA1n/uALra/meumJamFK9ORX51JdLrckqvjMg7RY6XRxuWRhjU+A8ADmd1RNwTke6OHL/Jke+qVOJn/f09P1/9+FZ3X15N/UYrAAAAAEBjTlpw0xci0hHDlXv+O+L6vqxuNABYKWL2/NOmf9cZAQAA6iUACKznjxf/ZrOVPZPeUIn0+kjx2ijyayLFqyPiZaXYwTEOAJb8wrkmIn4dKf0scv5FyukXtci3FX3pzu8ft+1TRjcAAAAAwMBOnX/Lq2op/zSGWc2m0QDg+nWGllO+deEpu++WwiowRJz1yWVb9kxcvXOl1vPKVMnb54gpkWNK5LxZpDQ1RZoUEStzLlblSH9IEStTJVYVOT+QIn45sZZ/+dGz9nlITwIA3eKyarV3k3sf27HWG69MueeVKRXTipw3q6SYknNMiUgviohIKR4tcqxMOa9MKR7NkVZFyr+JVPvVk6s2/+Xb/6m6qtOOXQAQulS1mivXb3n/K4vc88ZKzrvmSLtG5F0jYsfS77xZABtVpBy/zhG35YifRI7bU1G7bdpLX/yrSw5LNa8GAAAAAICIzy64+esp4o+GK9e+ZYCLv1h46ox/cya6z5LjrnpFrSe9LSK9NeV4XUTaOSJv1vgYWjs21yn/RET8MkX6ec75qpTi/x6esvcd1Woq9DoA0MnuOvLISX9YM3HPKGK/lOLNOeJVsTbvMqH+e/Y80L17joj7IudfRSVuTUX6v5wqV8y46Ozfl7k/BAChSxxwwb2vTLXKHhFpRiVijxyxe0RM68iDEQBsVZ89nSNujRzLKpW4sb8WyzZ5ybY/EwoEAAAAALrRZ+ff+paUih8PV65NAcC7+yY+tnO1+vZ+Z2L8O23usk0npb73ppzeGZH3i4iXtGAMPSMPXmftUw9HjitTxGU5Vb4254y97nNGAIBOcO2Hj921pxLvzTn2ixR7RcTkwe7L65u5Ow9z35XX/cMdOeL/IufvT330Rd/d5ZLqmjL1jQAgjEPvPP++LSYWaWaktGfk2CMi9oiIF42bAxQAbGefPZUibs4535gjbqhEzzXfOnqbX3tVAQAAAADd4KQFN18XEW8eqkybAoBzFp66+1JnYPyqVi/r3XTl1AMi5w9EivekiCnRwFgawSyA6z78QkXkuDwi/UusSv81Z+lejztTAECZLDv8qO2K6Pn/UqQP5ohdB7v3ae6+venw4MOR8leLIn9ljy8uuSa1McXS4s8cQJnNXvLgKyKKfSLyvhGxT0S8dly/vsc4ANixF8/m++2BiLgmcr6qEj3XTHns9zdeUt1ljVceAAAAADDefHbBTR9Mkf55qDL1zSYyWJ0BPdVTK1487/QZjzkD48/S46/cvj/1Hh0RH4yIrZsdRy0JAA6xuRSxMnL8dyXymR87c59bnDkAYCxd95G5B0SldnTk9K4UuWe4e5/B75+aWga4jvu0/OzTv8opX7S6f/Ln9/2HM54Yq/4SAIQOdNDi5a/NlfSOnPJ+sTbwt13XdYJZAMeyz1ZFpBtz5CtTypc/3dt75eUf2/pJr0wAAAAAoNOdc/TVU56aMuW+iNh8qHKtnAUwp/SPJ5yy29/o/fFl8bxrdoxcOT5F/uscMXnwMVGaAODzQzLHNyOnUz5+1t7XOZMAwGjJEem6I459T8ppYaxd6bLOe++xCAA+8/zzRR6JiPN6+tKS3f7p3EdHu+8EAKEDHHj+8h0i53dEkd6RU7wzujHwV+cH1NG6LCZ9tq6+iHxDTpXLKkW6vDK1dvWlR2z/tFcuAAAAANCJTlpw8zkRcfRQZVoZAEw5Zi5YtPs1en58WBv8S5+OiL+IiAn1jYk8ojG0oTx4ndzANlJ8P9XSpwQBAYB2u+7w4w5NESfmiDc0fu/d9FK+MXQAsI66eYN6j0fOS/um5DP2Wrr08dHqPwFAKKH3nP67jfum9r0zImZHjndGxCv0Sv0fUEfjsigAOKQ1keK6HPGDnlp8b8bj2y6rVlNh0AIAAAAAneCkE259dRTFT2OIr4JbFwDMP1l46vQ36PXOd+HhyyY89aL+T6aIEyNiamPjYhRnAcwNt1/knC+cVJk0/wjLVAMALXbtEcftHLnyuRT5XUPdqKQmAoD13bePMDyYB72fuj9yMWf6l5b+12j0owAglMRBix98eVGpvSsiHxIpvTsiJumVpq7fo3ZZFAKse5MPp4j/TSn/sEjFt78z5yX3GcAAAAAAQJmdNP+mH0VK7xjs+VYFt3KKT5xwyu5L9HhnO2vutfumnD9fSen1jdQr8TLAA1mRc8ydc+bMLzvjAMBILTv88Am1tNkxkaMaEZOHuydKTSzl+/z9TbuWAR4yAPhs3W+movbx3f/+gnva2Z8CgDBG9vvH30ye9MTkd/ZU8iG5iNkR8TK90tDn1jG/NAoANrsH6dYc+XuRi0v3fGz7a8wOCAAAAACUzckLbz4057h4qDItmAVwVd/ESS+uVnd5RI93pjOPvXVapbLq3JTyhyIiNfq7QYcFAJ+t+M3cU/ubOYve+jsjAABoxnVHHLt35Mo/R8TOdd2kxEhn8mtXAPCZ5/Ng91PPPfFkpHzs9IuWXtiuPhUAhFG0/5krpvVMqr0jRzo0pfijiNikwe8HqO/aPyqXRgHAluzOwynHt1OKS3tW9373G3O3esLABgAAAADG2oWHL5vw0JY9d0fE9oOVGXkAMP3rwlN3+4De7kznHn/Dq4tUuyQi3jD4OW5kTOQmxtBQGg8ADr+N5yrelyMfOueMfa81EgCARlx7xPGHpxxLI2JiIzcpbV/Kt6l6zzw/fADwWV/JadXhMy666OlW96sAILTZu5f+dvveNOGPIuc/joi3R8SERj9s0fgH1NG4NAoAttzKHPGDSqRv9PXFpd8/btuHDHIAAAAAYKx8duHNp6QcCwZ7fqQBwJzibSecsvuP9XTnOXvutX+ZIr4QEdOGOseNjYlRnAUwj6T95yqvzimOnHP6Pl80IgCA4dz8V0dttnripH+MyH9c5z84GOA+JTdZb7h7rRGGB4dfBnjdv92Saz1/usc/LP51K/tXABDaYP/Pr9i60p/flyK/PyL2jYhK/Z+XaOBza5uM4wBg54y1WkT8X6R8Sf+ayn8JAwIAAAAAo6067+Ydeyrx6xjk6+ARLt9614JTd3t1iuTXgQ6y5Mi7JvVPfXhpRHykzvPcwLjoqGWAn1OJ9Pe1lY9+bM7SA1cbIQDAQK7+23m7VYr8nxHx8iHvT4a5J0pNLOX7/P1Nu5YBbiwA+Mzzj+RK/MX0C5d8t1V9LAAILXLQ5+55UdE/8ZBIxaER6YAYbKa/xq9hjEmfmQWwRIqIdE2kuCR6K1/99se2XmHwAwAAAACj4aQFN18ZEfsM9nyzswDmFJ894ZTdP62HO8eZx946rad31X9FxP6R87DnuNEx0akBwGdeA99d01f5k2MWz1xppAAA67r28OPfHpG+HhGbPH//MBYz+bUrAPjM8/UvA/ysWsr5b3b/0tIvt6KfBQBhBA49594pT/RW/riS0l/kiP2j0dBffdcwxqTfBABLqhYpXxaR/i2niV/7zpwtHvciAAAAAADa5aQFN38sIs4f7PlmA4C1nmLXT50043Y93BmWzL9pq/7o+3bkmPH8KR9uqbjGxkTUOZbaHQAcfhuD/Die0+Vp2upDPlZ9+5NGDAAQEXHtEce/L+X0rzli0vr3DiVdyrepes8833gAMCKiFrn4yPQvnf+PI+1rAUBowkHnLZ+ee+KDOcdfRMQWLWtYCLBEfSYA2AFWRcQPU8SXV0zZ9us3HpH6vCAAAAAAgFY6df5NW9VSWh4RvQM932QA8GcLT939tXq3M5w3d9nLaqn2/Yh49XMPjmEAsPFtDBICzCNpPw9WftmavnTAMYtnPmLkAEB3u+Yj8/4qpfzFge+j27UM8BiGB/NQ91JD1s058tEzvnj+eSPpbwFAqNPsJb99RUTPB1OKD+RIO7VlIwKAJeqzcRwAHJ9j7aGI/B9FpH/97lHb3eCFAQAAAAC0ykkLb/5e5Nh/oOeaW741f2bhqdOrerb8zp5/3atSjh9FxEvWeyIPfc67cxng5/52Y6VSe/ffnfaWPxhBANCdrjli3tyU82lN3Z/EcPdZjS/lu859eMN1mwkAbnh/NGzwMEfKn5x+0fmLm+1zAUAYwn7/+JvJk5+c9L4U+SMR8ZbnXzNteukIAJasz8wC2KF+miP+Pirx5e/M2e53XiQAAAAAwEh8dsHNf5UiBl2Wq9FZAIueyus/ddKb7tCz5XbOwqtfnGs9V0XEDgPPoCcAOET5K9f0pf2PWTxzpZEEAN3lmsPnfjRF+txw9zVjM5NfuwKAzzzf1DLA+fk/5PyhZpcDFgCEAcw69/5Xp0r8dUR8KFJsOWovHQHAkvWbAGCHWxMR308RX566/bb/dclhqebFAgAAAAA0qlq9dpOeNZNWRMSUgZ5vLACYf3LCqdPfoFfL7bS5yzadkGr/FxFvfP4cv/BUDn7eOz0AOPw2cj3lv/n7qWveW62+vd+IAoDucN3h8/84R/7PiOgZ7majtEv5Nn2f1mwAcL3na5HjsOlfWvpfjfa9ACA8Y/aSuyblNOU9lUiH54h3Dv36EAAsFQFAY234s3R/jvyvOccXvnv0dnd70QAAAAAAjfjsgpv/K0W8d6DnGgkApohPLTx195P0aHmdc/TVU/Kknu9HxL7rn+MXaEsAsKGx1IA8xDE0035dAcBIOf71786c+cEUyS9gADDOXXv4grenKL6TIybVd1/TrmWAxzA8OPIAYKSIlTnHAdO/tPSKRvq/YgjS7Q48f/kOs86//4ycpj6QIl2cI941/OemNn1OEclltHTdWMsvThFzKyl+eeDi5V8/6NzlB1Sr2XsgAAAAAFCn9B/DPF9fK7m4RF+WV7WaK8Wknq/GOuG/ZuQ2l2/dsG5vxZziLz93/NUCrwAwzl374QW7RhRfXz/813E3OC2Vm9ynHDElpfifZYd//DWdd9QwBmYtvXe/iHRkRPqjeG760UZeFGYBLI229plZAMfxwLkrcnyhlmv/9L1jXvqIFxIAAAAAMJhqddnUnjU9v4uIqQM9X9csgDnuOGHR7q/Xm+V11tzrFqQUpwx+jl94ToebYaZ+ZVsGONXRZp3lcyXFIX93+j7fMsIAYPy58m+O37i3t7IsIl5V943Gc/cPzc7kV/+Meg3fs49kGeA81P1R/ceaIiKn+Mnqab1vnrl48cp6zoPZj+gqs5fcNWn2kvs+OGvp/bdEVC6LSH8S64T/6FCizDQ3cHaOlM7uqUxYfuC5D148e/GD++gTAAAAAGAg1eqMp3PEZSNqpJK/oyfL6+zjr90rpag2Vmv8/kDRwlkMU5Hjy+d/8qodjDIAGH8qvZULYsDwXzvvldIY1W1X0xtWTDleP+nJ/vPqPg+GIt3gkAuXbzlr6f3VHFPvyyn9c0S8Ua8Aa+VJEfnQlPKVB5674poDz3vgsP2quVe/AAAAAADrSfHtkVTPKX1PJ5bT+fOv2yJV0iURMaEMA62u8dRgm2O8KNDmqSf+pVq9zHfvADCOXP2RBX+TIj7Q7H3GcPMDtuY+aOT1Gr1Pa+Fd4Udu+vCRf15PWQFAxrWDPvfgy2ctuf/8vjX5noj4dKTYsnWt57a9gqFE3yF0m70ip69O3ezBuw5c/OAxs5c8vIkuAQAAAAAiIlKqDDOD35Bfuj616WMbX6EXy2l1jn/KES9pZZu5zeVbN7BHp2KOeMuWKyd+2mgDgPHh2iPmvy6lvLScwYPW7lNrAoepqXo5xYU3fujvXjlcHQFAxqUDL7jvTbOW3PflWq3/55HiYxExtfQfsCipbNx0px0j5bNT0XffgeeuOG/W4gd21CUAAAAA0N1OPPmNv4mInw703LDfEad02ZylO6/Wi+Vz1rzr/jwiDh6u3IDn2D+0b0yOeZ879tpddQQAdPpbeqSc43PRQBZnkJvkEh5duZYXThEbp9TzheHKCQAyrsxeet87Zi29/0dFkW6OlD4QEaYS7xY+ZNMeG0fEnEpKdx147or/OHDxQ2/SJQAAAADQzVJTywDnnL+v78rnguplG6WIM0c4JnTks+N8+CK9RSrOy5F1GgB0sOs+Mv8vI+JtY3uvVK6g3sibTkM99c6bPvLxPx2qtgAg48KsC5bvO2vp/T/KkX4UEe/QI0Bjhv1aojci3h+puPnAc1dcOeu8Fe/UZwAAAADQfYoovtNUxUr6rt4rn1Urp54YES8u356ltrRZimWJU97vgrlXv9/oA4DOdOXfHL9xTnFaq+4bcpP3RO3Z3ljdp9W12cW3fuDYaYN+3DA06WQHLLn/XQcsXX5tFPmKGJPgX27XCxc69zuE8W+fShE/PHDxiitnn7PikMj+pSIAAAAAdIs8cdIVEfHE4CUG/LrwNyeevNtdeq9czjju2p0jxSdKNb7aXL6xYdvGijkvXnLktZsYhQDQeXp6K5+JiO1bdDPRRq3dp9YEDlPz28vx0trklfMGKy8ASAd+us5p9pL73jdr6f23pBQ/SJH3HOsPWGDcdKV9UopvHHjug9fPXvzgHwsCAgAAAMD4V63usiZH/LCxWvk7eq58enrSmRExqaEzOdCDqcHyRETaNk3pO0Y/AEBnue7DJ+wUkT7e4vuCMt6rlHSf0rE3/c3Htx/oWQFAOsr+59938AHnL78pp3RJRLxRjzA612Af0RnSjBT5v2ef+9CyA89dcbDuAAAAAIDxLeX0vYEeH+yb5JwrP9Br5bL4+GtemyPe49v/1qu3T1Okj5957Pem6TEA6By1Su2TETGhRHfmZfy00M7ZlSfn3nzUQE8IANIRZl2wfN9ZS++7vJLTpSniTXoEaL0GvupJAz2Ud48clx64eMW1s89ZcYj+BAAAAIDxqSeKKxoonnsiX6XXyqWWeo6Llv5i3I4fn9vzg/aYLTO8oS2mpY3+xmgEgM5w3cfmb5Ei/qq5+4Y0VvcbbbrXGrvgYcrpiJv/6qjNXvi4ACClduD59+45e+n9l0aRr4hIbyvnXrbpUmQxUTrhfY2B7JlSfGP24hVXzzpvxTt1BwAAAACML/MX7fbTiPjd4CXW+9L1lwsW7f47vVYepx9/0/aR8l+Udf/aG9BLTT3VdJvD7XvKx1Srl/UalQBQfkVfOjIiprXjnqDZe43cZN1mUz6tqZdGur1N8oS+I174oAAgpTR7yQOvm3X+/d8ocuXaHDEmS2qa9h3jhhHehuxdKeKHBy5e8YNDFi/fXY8AAAAAwPiQIuUc+do6C1+rx8qlJ9U+ERETm62fBz7PjZUnIlLkiB23XjnhMH0BAOW27PDq1Ij4WDvvC8p4r1LefUpz7jryyEnrPiMASKnMXvLAVrPOv/+8nIpbI4clNCnRNdhHdJr2rlpUlh24+MGLZy958BW6AwAAAAA6X4rKgMv6vvCb5FxY/rdMqtXLeiPlv1r3xwTf/rdeQ31axEf0GACUW39e/acRsaWgXgP71N7Zlbd/fGUctO4DAoCUwv5nrpg2+/z75+ZK8avIMSciTPcNjIEGvpZo7A07ReRDUy3/dPbiFRfuf+aKrfU1AAAAAHSunPOV9ZSrpLhGb5XHRiunvjMi2vT9bOqQNtu9zHCDbad46+ePvvrFRicAlFeR0vtHft+Qxux+oz33WmMbPKykWO+cCAAypvar5t7Z59/30Z7JtV/lHKdFjo31SmmuFxhrtN6EFHF4b2/62YHnPnDcftXfTNYlAAAAANB5Nntyo2URsXrwEiki8hM73/WrO/RWmdT/4/VYam9ALzX1VNNtDq9Sm5D/1NgEgHK6+kPVzVPEu8f4Hm4E90GpJfdbra2XRry9HPngWz9w7LTnbqgMVcbK7KX3vWPKFvffnHP6XI7YprM/YJkgHqOBhkbJiyKnM6ZuOvWu2ec++EH9AQAAAACdZc7SnVdHxA1Dl0rXHnbJYTW9VQ7V6h0ToxJ/1Iq2BvwdIDVYnuf6JkXxfj0BAOWUetb8SURMrLP0SLZUxqMv8z5NrU1eecizfxEAZNTNXvLbV8xacv/Xc6Qf5Uiv1yN0zjXYR3RaPqZeknL+5wMXr/j+7CUPvE5/AAAAAEDnyCkNuAxwfv7/r9VL5TFt5VMHRI7Nn38kbXDOGG3PnoO094Vzr3yZ/gCAMt70xmEDv3+X8Z6iZPuU2n1qnp/dWgCQUbPfBQ9tNGvp/Yty6rkjUmv+hRVAO94mx+A+4t2plm45aPGKxX+8+A+bOQcAAAAAUH6VSFcP/Xxco5fKI1XigFHYSoe02e5lhhsun/rzWC8tCAC80NVHHz0lUryt7Pc13btP+Z0XH3pozzOfPaDNck6zL7jvg5Nz388jYl5ETNIpHX6tAdphQkQc1R+rf37g4hUfrlaz92gAAAAAKLH+vrh5qOf7+uNWvVQiRezTSbvb3sBd+YKKOfI+BikAlOx+5Ompe0Tdy/82fx9TX700yturp14awfbSiPczRdr45S/a+o0RAoC02YHn3/eqWRcs/0HO6Z8jYvuOvKC1/dLAuHwj7MSdFjYtxbjJEVuniC/esOlD1x903vLpegUAAAAAyql6xhvvi4iHB3n6D9Uzdl+ul8phSfXaTSLFG1rZ5oC/A6QGy5fRGPxWkCMiRWVfIxUAyqWSiyben0dyM9GuG5Ey7lNrjqeS0z4RAoC0ySEXLp86a+n91SLS7RHxzlK/Lhif2jbWBD0ZLXl6FJVrDz5nxXmHXvDQRvoDAAAAAErpjoEezBG365ryWLMy7R0RPUOV8e3/WHn2B5288wXHXbat/gCAEsmVfYZ+/y7jPUXJ9im1fRMCgLTH7AvuP6SvL98ZKT4dTUwFClCCO5my3Ef05hRznl5d3DZ78QOznRcAAAAAKJeU822DPCUAWCI5pVH88bpT2mz3MsNNhCrThJlGKwCU5P4pIuWU9+qU+5qu3accb4kQAKSFZn3+gR1nn3//pTnHNyJiBz0yzq81wGheA3aqRPr2gYtX/MeBZzzkX0ACAAAAQEkUlcrAQb+c79A75ZEi3tSJ+93ewF0pg4pvMloBoByu//AJO0bE5s3OktyeemmUt1dPvTSC7aVW7Of2t/7t324tAEgLPn3kNPv85YdHrbgtRxw8Lg+x7ZcGunvclIiwadlPz/vThOKnBy1+8HC9AQAAAAAlUBQDBgBz9PxE55TKK9rR6IC/A6QGy5fRGPxW8EzfvNxQBYCS3Oamkdw/jeRmol03ImXcp9YcT3//hJcLADIiB1xw7ytnnX//ZTnyhRGxcce+LmDkH+lhtEbXZhH5woMXP/jt2Uvue4keAwAAAICxU0yadHsM8LVeManXDIAlkSOnFLFjfWUZG8/9eCgACABluYeq5JfX+f5dxnuKcu1Tm3erUskCgDRnv2runX3+/XNTrvwkUnqbHqHcnxdh/I21HHl2pdb7E7MBAgAAAMDYqVZ3eTJF/OYFD99fre7yiN4phzOOv3m7HDF18BKlXAq3tNq7LLEAIACU6E1/p/Y1LjzYyn3KOQkA0rhZFzywx+Qtl9+YI06LiEl6pIuvNTDO72g6wKYR+cKDz1lx6XuW/m575wwAAAAARl8Rsd4ywCmy5X9LJPXUdhonR1JXqdxgm3mM9nMQ21xQvWwjoxYAynDrkV7+7Pt6s/cL7amXRnl79dQb2+WFUzIDIA04tHrHxNnn33dK5OLqiNi1244/t/3SAB31HQJluj6lOLjWX7v9wHMf/FO9AQAAAACjK0X+2bp/z1H5hV4pj0rOO5Zpf9o8g14rB/aY9E1eOWEHoxYAynDTUozwPdksf62+v8uDHE/OsYMAIHXZ//MrXv/EVptdmyMtiIjecfKagrZfksVBGcU3/M1Tzv958OIHvnzoBQ/5F5IAAAAAMFpy3LP+A8U9OqU8ihybNHY6Gz39A/A7WBPWdlolx8b6AgBK8d686VjfF4x+3TbuUzvvD3NsIgDIkPar5t7Z598/t1KrLYscu+kROvTzInTNWMuRPvD0muL22Ysf3MdJAQAAAID2q6S4e70HNggEMrYnKKYNX6gdX/CO3x8o2jmLYRHFNIMWAMogTW3v/Y4ZAlu2TymmCQAyqNlLfvuKyVsuvyxHnBYRk/SIaw10n46dw3HHSuTLD1r84GnTL8wTnEcAAAAAaJ+iku9e9+85JwHAEqkUMXX8HE19PxTlBtvMY7SfA56vqAgAAkAp5Gnrvq+3btnaVtRLo7y9euqNaaBHAJCBRmdOs5fef2Su9NweEfvqkNG8NEBHfYdAufVG5LnbPr3if2cvue8lugMAAAAA2mPaU6vvjnV+GCgmVwQASySnVLoAYG5z+ZYZg98Kaik2MmoBoBRacA9llr/67u9Sk/WeqZsFAHmB2Use2GrWBcv/J6dYEhFTuuA11RkfsOjoEWHcMLbXm7RvpdZ78+zFD8zWqwAAAADQescsnrkyIh565q8rP13d9Xd6pTxSyg0HyloS0PMP7Zs5W5HG1YyNANCZcrVaiYjJY31fMDZ1O22fwhLArG/W0uUH5EpxW0QcojcYZ58XodvH2paVSN88aPGKkw+9OPc4UQAAAADQauk3z/zhtymSfxdeIjmiUt8JaccXvGk892t7ylfSBKMWAMbWjcuX99R/I1PSUFwZ9ym1rWKvACAx/cJlE2Ytvb8aKX87IrbVIwDrGjff1VUiYuHT9z/0v+9Z+rvtnVcAAAAAaKm7IyJS5Lt1RbnkHE+PryNqT1CxNN+E5+JJoxYAxtaMiy7qi4i+Dd6mm317b0u91PLtlfM+rS5PCQB2uf2XLn/Nln3bXR8pPh1rwyG07hPKOLte0HWMtfF6bXprrb920+zFK96hLwAAAACgNXJaGwDMKf1Wb5RMiqdKOWZKVn6I/hvViinSUwYtAJTCky24IYhOmuVvbAOOaSTbe1Lgq4vNWrr8Lysp35Ai3lSy11S5P8QbOhg3dP642aYS8b2DFz94jF4GAAAAgJFLRfHbtf8vAFg+ualAWUsCd/6hfcOKVBEABIAOvodq8V12Ge/8y7hPT/UasN1nv3/8zeTJT008PSLP0Rt0jRRtSlNln+DpVL058tkHnbtij8qU4kOXHrH907oEAAAAAJqTKvFQzhE54nd6o2SKylORcp3f5rftxwSizl9UimQJYAAoxft2err+JEQZ76FGsk/tOp4UkXKTTQ+5T2YA7DazPnf/qyc/NfG6iBD+A2jg9qah993OOrQ/K57uueKQ85a/zHkGAAAAgObUcuWRiIic4g96o2yKJ8Z2+6lj2hyzZYbX0ZPTE8YsAIy9FPF4K9//c5P3NbnJe6I8lj032nIWAOwmsy5Y/idRpOsiYle9MWqvsnFzvaB739XpimvV7kVRueng81a8U18AAAAAQON6o/ZwRESO4mG9US65J99b2n0rWflBpdGruLp/pWW0AaAMUtzbohuC6KSlfFsfcGykXmquXkr3CAB2gUOrd0w84Pzln4ucvxaRN+2Q11S5PywaVhg3jL9xs0Uu4rsHLX7wo3odAAAAABqTU8/DERGpWDsTICU6N7XeXzVdtxXl/UP7Rjxy9Llvf1Q3AEAp/Kocu9E54cGx+yySfi0AOM69e+lvt39iy80uT5EFOqBt12DRPsaN3oj8uYPPWXHeoRfnHt0BAAAAAPXpn/CHhyMiitxvBsCSWTVl+n0RsTqi3m/zJfbaKQ/95K/0EACUQ8rp1w3WKONRjFHdYdpt8ezKKcevBADHsdlL79+nJ3qXRcTeegNgpBoIenb490M5xZynl6/45uwlD2/ivAMAAADA8KrVt6+KiKdjyhQzAJbu3KQiIu4e271IHdPmmC0zvHbzAoAAUBLFEDMAtn6Z3DSC+w0zBKYQABy3Djj//o/llC6LlLfTG2Mtt+0VDOPwvYnSXLrSrEqt/7L3LP3d9joDAAAAAIaXIpZXq7s8qSdKeXZ+WdY9yyUrP9QAb3fFFAKAAFAiv2rhDUGMRfAgN7lPuW3bq6dearhe34R+SwCPN7OX3DXpgPPv//sUcX5EnqBHyvOBDIwbOm/c5N1r/bUbDlm8fHdnAQAAAACGVkTcpRdK65bR2tCA3+f6h/b1vYZy3KwXAKAcZm7f+5uIeLQce2OWvyFuPle8+XOfWyEAOI4c/Pl7X5wrU69MEX/TcTvvgw8dP9ZE+xi3ti+icvlBix98l64AAAAAgMGlEs8y1/XnJhdXPPvnXOfZbKw8jRisT2sTeq7UOwBQkvunarVIOa5u9I64jHfppdynFs2unFL8OCJCAHCcmHXBA3v01yrXR8QMvQGDejQi/jDAf4/rGurTwFc94yvYvHFE/taB5zxwmDEAAAAAAANLOf9WL5TTxCn5moiojfEI6ZA2x2aZ4RRx11Gn7vWg0QoA5ZEjX9nq9//c5H3N2PyjjPIveZwjXRkR0Wu4dr5Z59//Z5GLf4iIKXqj275NiPH8T89Wxdpw3iNr/z89Ein/IRXxSK6kP6QiHilS8Uglpz/UUnpkQu7/Qy4m1iIi+vOaR3snFzki4lsffdmjkVJDvVSt5soNW/920740acKEVWmjqNRelHNMK1LaqBKxUY68WeS0cUrFxhGxVY60XURstfa/tE1E3sxYYxyamFL69wMXP7DVt4/e7gLdAQAAAADrKyr5Sb1QTnOqez1+5rzrb4uI3cbD8eRo7CflxsoP8YNA078VDF8xp7jCSAWAkt3f5nxlJaVW3RC00eD7NPx90MB1G73fam29+vu4VmQBwM6/u89p9vkPfCZHPiEsolvyD1jZKXrB+0REWhER9+Qo7k2R7s0Rv00pfpsi7uut9dz7jaO2ac2/8vq7xqtUq6mIteHDiIiHGq1/aPWOiSs32WSrvtSzTaWn8uIcsVPkvEOK2CFy7JBT7JDWBgah7TcKLVZJkc4/6JwHtv7WMdt92lkBAAAAgHXkigBguV0RoxQAHPD73CF+x/UrUkTOYflfACiZx6c8ef1mqzdZHRGTWtPiSMKDnRU8HCWP/ebxFbdFCAB2rP3PXDGt54L7/zmn9Kfj5qDMMDbeFJHi7ijynRGVO1Ol+FlRpLsqPXHvgxO2W37jEalvvB74JdVd1kTE/c/8d9Ngr+HUk3es9KaXp8ivSTleU6R4bcrxmoh4keFDua/X6VMHLV6xzdQXb/OxSw5LNR0CAAAAABGVlJ/QC+WVcvpuTnlORL2Bu+d/uBLQa70X9GnR25e+r1cAoFwOXLp09dWHL7wsImY1cNcVgnp17lPKI9qtHPGDwy65pBYhANiZL7ALHto2575v5kjT9QYl0B8Rv0oRd+SIn6UUd+Scf7pRf/GzS4556UrdM7DvH7ftUxFxxzP/XfrC13jqr702R351SmmXXKTdUspvzBEb6bkyaOCrnvEdbD7iqfsf3Gy/av7Ly6up37gAAAAAoNvVsiWAy2zjP6QfPr55fjgithi7vWjHl8bt+SK6vcsMb1D3io8unnm/UQoA5ZMi/iMPEgBs/TK54y082K7jWdtuJcdXn31EALDDzF7ywOuK3PetiNhRbzAG17++iLgtIq5PKd9Q1IobN3708Z89M+MdLfLtj229IiJWRMRlzz526MW558kVK15dKfLuRVSmp5R3j7VLFWysxxjDy8/7p2324MRDq3f8mesAAAAAAN0u5R4BwBI74qIZfWfMu/5rKeLw8XA87Q3oDfHjU9O/Sw1eMaXnf7wGAMplQvR/fU30roqIyS24IWjj/c/g+zT8fdDAdVsfcGyk3rB9/MSqjXu/9exfBAA7yKyl9+6XU/FfYXnQDv2A1XETxOeIuCsibsgR10eluGHVtL6bL//rnVY566PvmWVW73zmv3+NiKhWc+XGLR54Va1Ie0fEWyJin4h4Vdt2wjLdHXS9GdWdeu/Tm27xX/tVf/O+y6uuDwAAAAB0sV4zAJZdrhT/kYrKqAQAB/w+d4jv2bt4meH+nlp8zegEgHKacdHpj119xMLvRI73tqbFMs6oN1bHMyLfmLl48XOrcgoAdojZFyz/i5zz30fEpHF9oAJGY+mpiLgyR1yZIq6v9Pbd8K2/2+EPuqW8qtVURMTPnvnvHyPWLh8cff37RIq3RKR9I+JNEdGjt2izg6ZtOuXSQy5c/keXHrH907oDAAAAgG5UKQoBwJLb6a7f/vieV+z4QERsN5pL3DKkyz561j4P6QYAKK9U5P/IKTUQABTUq3ufUm5ut4r1Z1AWAOwAB5y/fEHO+WSfK2ixvoi4LuX8o1pKP9rkkT9cZwnPzvfM8sFfe+a/eM/pv9u4b0ptv0rk/XPOB0SknfVSKzTwVU/3BJvfVXu68u33nP67Q74xd6snjBEAAAAAuk2l6BMALLnDLjmsdua8678UESfWV6MdX/B2SpuNayZUGTkuNDIBoNz+MPmJ/9ls9SYrImLb9m9NeLAOv809q7+77gMCgCV26MW55/GHHliaIn9Ub9CCa00REbekyD+KnP63f03liu8ft+1TOm98eyaIdekz/8VBix98ea7U9o9UOSByfkdEbKKXaOGl6G21ibXvHHrBQ7Mu+djWvuwEAAAAoKusmbSRfxjbCfr7zo/eCcdGxJRuO/TGAnopcuQWz06ywQ9adz08beZ/G5QAUG4HLl26+uqPLFgSKZ36wvf1ZmdJbk+9wcMzY7efjYUH19/eIHVzXjzjixf1vfDIKaHZS+6alHum/UvkfGjXHXyHzpSV2lByxP2W4v4o4tKc4ge5v3b594556SNeXTxrv2runbrZAzMjxayIyuyI/Ma6Bqhluht/Lecx2epYds1lU4u+gy455qUrjRMAAAAAoGzOmHfD51Pkv63v+9bnv+Bt9PvZQcvn3HidYcvnke3TIMeehu+WBtt/vmJO6W/nnD7TDIAA0AGu+Oi8F/XUeu6JiI1f+L6eGrlZqOc+Y8i6w/0DhaHus4bfp8Hvbxqvm+o8nhc+nYZoN0U8MmlC/w67fO5zT47kHpJRsP+ZK6ZVptS+FhEHdG0ndGDAqDQBwBS/Tjm+WeS45LtztrsqUhLXor5rz+dXbD1hdX5bTnFIRDokIm82Xl6fY/2qb3Wfdcib9w+eemzley6v7rTKWAEAAAAAymTxvBte3h/5FxHR0+i/im9JCFAAMCLiob6+tOMxi2f6h+QA0CGuPnzBORHp6Be+r7c+yJeHuZ/Jdd+7bXif0njd9gYAn3k+D3Y/lV/YayfP+OJ5J470HpI2m73kga1ypfh2RMzo6o4QAGxELSKuTEV8I6ee//nOnG1+5ZXESE2/ME/Y7ukV+xQpDkyVeG/O8cpOfn2W4ZXfdbMArj3kS6c99vD7LqnussZYAQAAAADK5My5110SKb1vTGYBzOu3OWz5utvPze3PEMfdaABw+G2srZhzXjjnzH1PNRIBoHNcefjcl1Wi966ImLju+3q5ZvJrVwCw8bptCAA+3ZfTy/f60nkPjvQekjY68PzlOxSRvxcRr+76zhAAHM7KiPyjSOnSlHq/8e2Pbb3CK4h2OuCcB3bp6YlDI+LQyPE6PdLE67kLA4DP7Ox/P/XoNoddXk39xgsAAAAAUBZnHLfsFamnuCNFTBq+9PgJADa+jTzEMTTbfr5vVfHka44764CnjEQA6CxXHb7w9BRx/AtvChpfBlh4cL269SwDnKM6/UtLPtOKe0ja5KALlr+2losfRKQX643o2BnG2hwC7IvI38spvrLxmuJ/LjnmpaZEZ0zMXvLA6yLHn6Yi/2mk9Mbu7g0BwDp9ZY/HtvlgtZoKryAAAAAAoCzOmn/9osgxb/iSoxcAHNk2OmQZ4Fz82ZFn7vtVIxAAOs+Vf3P8xpXeCT+PiO3WvSFoPAA4zH3GmAQAB6/b3mWA6woA3rN6o57Xzly8eGUr7h9pgwMvuO9NRY7vR8RWTkkD14ESak8AMF8bOb4SUfnqd+Zs9zsDg1Jdv86+71Wp0vOXOcVfRsRO3dcDYxMA7MQ38Bxx3reP3vYorxoAAAAAoCwuqN6x0dOrnvp5ith+6JLrf8HbmhBg1wYAf/zxM/beL0XKRiAAdKarj1jwwcjpn9e9IWh9kC8Pcz8zFjP5tSsA+MzzQywDnFM6bMZF513SqvtHWmz/zy2fXimK70XEFk5LQ6/lUmphAPC3kdO/p0rtH7798Zf8wmCgExx03vLpOccHI9L/FxFbds+RmwWwgX1e8M2jt13k1QIAAAAAlMVZ82/4QOT85eFLjp9lgNsdABxiG7WcatPnnP6WW408AOhcOSJdffjCH6eIfS3lO3TdFgUAr9z9i0vemoZoRNJsDB2wZPlbUqX2zYi0idPS4DWgpEYUAMzx+xz5q1HJX/nux19yjQFAp9rvH38zedpjkw/JKT4QOWZHRO/4PmIBwIau7Ck+8q2jtv17rxQAAAAAoAxy5HT23Bt+ECneOVzJZ3V6ALDxbeQhjqH+9nPkc+acsc8njToA6HxXfWTBm1JK10bEpOaXARYeXK/uwAHAlalSzNj9wqV3tu7ejpbZ//z7312J/PWImOq0NPE6LqnUTOkcV+ZKvmDj3z/6X5dUd1njxDOevGfp77av1fo/nCM+HBEvHZ9HKQDYoP6c433fPmbb//EKAQAAAADK4PTjb9q+p9J/awy5us3oBQBHto3SLgN8c1756N5zlh642ogDgPHhmiMWHpNznN18AHCY+4wxCQAOXnc0A4DP1kuRP7r7F5d8obX3drTE/uffd3Al4pKImOy0NPWaKrU6z97TEekrRS4u+N6cl5jmnHHv0Itzz9PLHzwoIh+RI2ZFRGX8HN3YBAA7/N1iZY7KzG8fvfUtXh0AAAAAQBmcPf+G9+Scvx6DfvW6/he8rQkBdk0A8KnoiRlHLpr5MyMNAMaPHJGuOWLhdyLnAwa/v2hXAHAkM/m1KwA48PN136flDe43vz79i+e9t55zUTEcR9es8+89sBLxtRg0/Mc498sc+ZhJ/Wte/J0jtz9c+I9ucclhqfato7b9xreO2u6gIscrUuRTI+LBrusI+e5n/e+0x353p24AAAAAAMrik4v2+EZEfH7wEu34gnf8fmm87s/XKaejhP8AYPxJEbm3Z8JfReSH2nO/k9q352W8f1u/6fv7J/Z/2F1lCc2+YPn+ORf/E3WF/5yaDT4ddM4F7oWKiPh2qqQL3vy77b5frabCiYWI2UvumlQpNv7LiHx0jtil429txuC61qHvFD946rGV77m8utMqrwIAAAAAoEzOOfrqKcWk3msi4o0Dlxi9ZYBH1v4ozgKYh2s/f/XIM/b5M6MLAMavq484YVbk4psR0dP4LIB5mPuSsVgGeLhZmtu+DHB/zunde3zp3MtHdK9J683+/H3vyLX4ZkRMcWoa+izRcdLzf3giIl1UqfR87lt/t82vnUwY7HWe04FLHjggchwTkd7VmRdAAcA6D/3/eqYWB156xPZPG/gAAAAAQBmdvfD6l+ZaXBsR22/47OgFAEe2jZIsA5ziur418fZjFs9caWQBwPh21eEL56TI543uMsDtCgAOXnc0AoAp4vDpXzzviyO+16S1Zi+9f59cyd+NHBs5NU3ovBDg4ynH54v+4ozvHfPSR5xAqN+scx/cNeX8sZTyB6LuwHQZjE0AsJPeLVKKayure/b/xtytnjDSAQAAAIAyO3PBDa9PRb4yIjZd/5n1v+BtTQhw3AYAf1P0VvY+6tS9HjSiAKA7XH3EgnNTjk/Ue7NQ133GMHWbn8mvXQHAgZ+v+z4tF4tmfHHJgkb7Xsqszfa/4P6ZlcjfjYiNGwt9ODUNfkYpgxUp4uyVlQlfuPxjWz/pxEHzDj7n3hcXlZ7jI9JHoiOCgA1es7tvFsBlq1dPfNcP523+mNENAAAAAHSCs+beMDtS/kZE9K7/TCcsAzzmAcBHUk/sc+SimT8zkgCge+RqtXLd8jVfyxF/XM8NQ133GcPULe1Svk3UyxFfnXHRuX+emkgUSJm10f6fWz69kosfxbr/OkgIsIkrROn38J6IOGPVRmv+4fK/3mmVEwatc+AFD20b/bXjIsffRsTUcu+tZYAHcWt/7nuHGVEBAAAAgE5z1rwbDo/IX4j1vorthADg4G2ObBt5iGN4zqrIMWvOmTP/zwgCgO6z7PDq1L605keRY6+o+94kD3Nf0gXhwRRXPLF6s/3f/k/VpnJHEmZt8u4v3Ltzby1dkSO2aeJe2+lpus9Gdcd+naOypJKf+sJ35uy82omC9jnkrOVb1nrSx6MSR0V+4ZILZSEAuOG+pZ8XfWm/bx+/9QqjGAAAAADoRGfNv+F9kfO/RMTktY+MXgBwZNsYk1kAHy1S/qOjTt/nx0YOAHSvWz9w7LSnp0z894g4JOq+N8klCwAOXrfVAcAU8cOV/RP/ZN9/OOOJZvtcwqwN3nXh8pf19hdXRsRLGxqTTk/jr+OxcUdE/sxeD7/4a9VqKpwgGD2HnLV8y1pvfDIizYnSzQg4NgHA8r5b5F/0R+9+3zt6qweMXAAAAACgk5019/q3RiX+O3JsPsAPtg0ZOAQ4LgKAy4uiMvuos/a6zYgBAC4+9NCel26+85LI8Xf13Zs0GwAcyUx+7QoADvz8QPdpKeJfcjz9oRkXXdQ3kv6WMGux2Use2Cr31H4cEa9pYkw6Pc29lkfL/Smlz678/Xb/cHk19TspMLbX2lTkEyLS30VEbzn2SgBwHb/NteKt3z52+3uMVgAAAABgPDhn3o2vLP5/9u47Xorq/v/4+zN7L03BRhN7wRJbTNQYTdHEhgK2gC2xJAqKgqAoYl1FUZCi2LGXWCCxgIg1mnxNNImxJSZRbAlIRwULcO/d+Xz/QKMCt+zuzO7M7uv5ePj7/qK7M7Ofcz7nnNn93DPKTZO0VfS7AKa+APCdjOmAU6/Y4216CgAA+LoXTzr3dDeNkxQUvpNfXAWAzR27gEf5NvHfVn2fTfhut7WGWDZb9OZjVJhFaJ+b3lmrpqH1s5J2bmZtTBPly8t66o9NNqp9fe7qyWdstJTGAJKj1zWzt8nl7DJJhyZjwOQxwJL+m5P/+PEh679PDwUAAAAAAABQSa4c+sfOlqm9V+Y//fLfxf0Y4OKO74VdT5NW+XH+dwoajhx0+Y8W0EMAAMDq/Knf8ENMdpvk6zS1xmh6bRJ98WD5CgBV5wrP3HXi1ddGFWOqyyLSZ9zMtp+01hOS/bAF62KaKP97iXJYLrfr6oNw5DOnbbiIRgCSq8eEubtb6KMk/ai8V1L1BYCzMx78eMoZnfkrTwAAAAAAAAAVKZv1YM3lfxkq1whJreIuAGz0PS06R6y7AOYkXdL13VmX9Z3cN0fPAAAATXm+37CNa5S52+U/asE6o7EFUwHva26dFddjgBt7n78TmB35nZvGvxRlfKkui0CfSZ75ZMGs30p2cAvXxTRRvkpbABjK/ddBEFzw2Gk8vhJIk4Oumttb8rEubVmeK6jexwCbNN8V7jVtSLd/0RMBAAAAAAAAVLpxZ/95lzDQryVtVYWPAZ6tUEcPunKP39MTAABAS03q0yez0bpbDpfrIkk1jawzGl2DNL2eKfQxwHEVAK763800qaFVw0m7X3PNkqhjS3VZBHpcN+sGl07OY11MExXCS3KOx11+zhODNnyNgAMpHZMnzGhtufZnyPw8SWuU9uxVWwC4yF17P3ZG17/TAwEAAAAAAABUi+uyz675+fJ2owNXP0mZlr4vzQWALn8wCBpO5pG/AACgUH/sP/z75rrZpO1WXmmUvgCwuWNHUgD4sbudvdvN426OK6ZUlxVp/2tnnWumy/J+I0WAijdmeafCOyYbOH3g+tMJNFAZekyYtaGFwWjJjiztQFp1jwH+OFD406lDur1MrwMAAAAAAABQjcae89edpXCCpB+05PX5Pga4uB0GvbDrWfVVb5pp0KArdn+SFgcAAMV6NputaTN7+QCTLnZp7a+vW6J/DHBcBYDNvjeU7I5WQTB8pxvHzI8znlSWFWH/62cebW73FBRHCgAVb8xaHNt6dx+3vH1d9rkTNltGkIHK03PcnN3CjK6Ra7fSnLGqCgA/k4c9pp3R7f/oaQAAAAAAAACq3bhhf+nl5tdI2qSp18VdAPjN9xS9C+DnMl1pn310+aBrDlxOKwMAgCj96VfZdS2z/CJJp0rKFL4LoDezZir5Y4BfdtfA3W4e96dSxJHKsgL1uG72fq7wUUm1BR2AAsCYY9YiT+TCcOBTp280g+ACla3PJM98PmfeAHe/VFKHxEyt6X4MMMV/AAAAAAAAALCSK4e+tobVLOtn0mBJGzf2uhQ8BniJu93kNTXjh4zcZQ4tCwAA4vSnfsN2MNnZko6wRmux4noMcKQFgK/IffQuG6w1ybLZsFTxo7KsAD1u+GBnD/33ktoXfBAKAEsQt0Z9IPmQxwduOJmAAtWl9zULujXkGq6S1CcRU2t6CwCXWqBej57e9Rl6FQAAAAAAAACs6qZ+L9V+uk54hMyHStpp5f+e3AJAn2NmV7f22hv7j9plMS0JAABK6fl+wzbOyAabdKJWqcuKqwCwuWO3pADQnpZp9K43jX2qHHGjsixP+17z326ZIPizpA2LPhhFgDHHbBUNcpvQamltdsqwTp8QTKB69Rg/p4eZrpO0Wdmn1/Q9Bnh5KD90+pD1p9OTAAAAAAAAAKBpLrexZ/95nyCwX7h0sL54Sk3cjwG2VQ/clHpJT0t+f/D5xw/wqF8AAFBu/3fKOevU5uw4mR8h1/e+Wt4UupNfLAWAc+T6jTJ++643jnulnPGiqiwPfcbNbPtJK3tOpt0iWvHTVLHG7BteCmSnPDaw20sEEcCXY/pnVjNMpnMktS7b9JquAsB6d/V57Iyuj9CDAAAAAAAAACA/EwbOaN3Q7qP9ZN5H0qGS1vzGCyIsAPzme1Z7zFCuF8xssmd0/+CRu8+jhQAAQBL9ZcB5G4X1DYdJ1kfmezb+Sm9mzRRJ8eCHLk0zs8mfrb/m9L2z2YYkxIiqshbKZj14ofMHk8x1eGQHpQAw5phJkj5309lPnNrtepk5AQSwsv3Hzdkuk9Ft8oiKu/Mds9PzGOCczI+aNnh9Hp8OAAAAAAAAAEUaN+RPbYNWNbuG0o+++CF7D0kdYnwM8DIz/6sUPB+6/VHLP//jkKv2/piWAAAAafLiiWdvaJnghy79QO4/lLSdpOCr9U+huwA2+t8+kPx5N/0xMH/+vUUzX+87eXIuaXGhqqyF9r9+1mVynRtpwCgAjDdupj+5hcc9cepGbxM0AE3ZK+s1a6w1Z5ibXSipVUmn13QUAIYyO27a4C730FsAAAAAAAAAIHqT+kzKfNB90x08F27j7lvIbHMz20LuW0jqIqm2Bd//1klaINO7kr9rbu9KeleBz/i4dYdXstnt6og0AACoJP93yjnr1DTou4H5Fi7fIpBt7vItJG0sad1vvrrRH+c/MWmmLHxXbu/K/V0F9m7Oav7+/RuveD8NcaCqrAX2v27WsZLujCVgFAHGEbPlLl3YoUu3sZP7Wo6AAWipA66at2Mgv1Pyb5d0ik32Y4BdppOmDe56Kz0EAAAAAAAAAMpjUp9JmYVbrN9haab1mgq9bY17e8vlPm5oZcva5HKfz2/zg8XZrIVECgAA4Cuv/WLoGss61LYJQl+rPudrSFJtxj6zXP2ST2raL9v7+uynlfA5qShrxr7XfLBnEPgzklrHEjAKAKOO2cthmDnuydO7/oNAASjEd2/y2q6fz73ATcMl1ZRkik1uAaDL/bRpZ6x/PT0DAAAAAAAAAAAAAIDkoaKsCT1vmLlBfRi8JHnX2IJGAWBEMbN6yUcuaDXnsr/136WeIAEo1oHjZu+iwO6U9K3Yp9iEPgbYZGc+OqTLOHoDAAAAAAAAAAAAAADJREVZI/a6/b02rT+r/b1Mu8UaNAoAo4jbPwPZcY8N7PYSgQEQ9VzQbnHrUZINinWKTWYB4PnThnS9jF4AAAAAAAAAAAAAAEByBYRg9Vp/XnvD6or/ystpmJUD4jZu2Zp136X4D0Acnjths2WPDe52usuOlGlxbGN20uq73S+h+A8AAAAAAAAAAAAAgORjS7nVOODamYPc7OqSBY1dAAuJ2RJz/9X0QRv+hmAAKIUDr529iRp0r2R7xDJmR1jjbcW9efy0wV3PoMUBAAAAAAAAAAAAAEg+qslWcsB1s3/gHj4jU6uSBY4CwHy9bGGu7/RBG79DKACU0l5Zr2m31tzzZbpALdpFN3UFgNdMG9J1EC0NAAAAAAAAAAAAAEA6UE32Nftd98FGJv+bpE4lDRwFgC3/9K5r5Z8PnT6o+3J6LIByOWj8nIPc7B7J145szI74Ke8FzBY3TRvc5RSZ8bx5AAAAAAAAAAAAAABSIiAEK3z3ppdqA/P71ILiP5TFJ5KOmj5wg4EU/wEot2lD1p+WC4NdJf2j6VfmUUtX1vpuu3PXxV0GUPwHAAAAAAAAAAAAAEC6UAD4hY4NXa90155lOXleRR9VWZvxTwuD3R8/bYP76akAkuKJMzq//Xlt5vtm+k26P4n95rPFnU/MZi2kVQEAAAAAAAAAAAAASBceASxp/2s/OFjmD+UbDx4DXAp+d21tcPLU/t0+p6cCSOYw5XbQ1XPPdmmkVltYX57HAFvLXvTQZx936ftc1hpoSAAAAAAAAAAAAAAA0qfqCwD3vXFm9yCnlyTrUNbgUQC4smVm3n/6qRveRZoCSIODxs85yM3ukXztgsfsiDd5berM5nq07ZJFh0/ObldH6wEAAAAAAAAAAAAAkE5VXQDYZ9zMtkva2Aty7VT24FEA+PVPN8/lhz5+2oYvkKIA0uSAqz7YOlAwTdIWBY/ZJdgF0KUnP1+89ODnspsto9UAAAAAAAAAAAAAAEivoJo//JLWurbQ4r/I5VUf4hXcKvZ3k32P4j8AafT44A3ebKi3PST9OcFj9nOZduGhFP8BAAAAAAAAAAAAAJB+VVsAeMD1s/pI9ku6QKI83lC79IePndbtP4QCQFo9eVbX+Z+vtWwvSQ8k8PJeyNRlek/t3+1zWgoAAAAAAAAAAAAAgPSrykcA73P9fzbPeOZlSWslKoDV/RjgCe07dztjcl/LkZYAKoK79bh67uUmDctrzI54w8Avz2zmr3irup9OG7DJRzQOAAAAAAAAAAAAAACVoeoKAPfKek3rTh/8QdL3ExfA6iwAbHBp8BOnbXAd6QigEh149dzT5Rqnlu66G0MBoEuvt65t+MlDp224iBYBAAAAAAAAAAAAAKByVN0jgNt0mj1CERX/RS6vmj6vhOb4UB7uS/EfgEr22Oldrzb5kZLqop8LWuQNz/g+FP8BAAAAAAAAAAAAAFB5qmoHwP2v/2AfuT+hCAsfIw9g9ewC+KZb2POJUzd6mzQEUA0OuHrOgYHbbyS1jXYuaPJAb6k+8+PHzu48lxYAAAAAAAAAAAAAAKDyVE0BYI8JczqFmdxrktZPdBCrogDQ/1pbGxw4tX+3haQggGrSc/ycvUKzKZLaRzcXNOpdzzT8ePqgDWcReQAAAAAAAAAAAAAAKlPVPALYM7nrFUPxH/JtCP+9hW33ofgPQDV6dMj6zykMf+JS3I/jnZmp0T4U/wEAAAAAAAAAAAAAUNmqogDwgOtmHe/Sz1JxsXlt6udpa4qp7eu9x/RB6y0h9QBUq8fO6PaSAv+RS7OjmQtWMS+TC/ebOrDre0QbAAAAAAAAAAAAAIDKVvGPAD7w2oRJjIIAAIAASURBVNmb5Cx8TdJaqQliZT4G+I5lC7ud9FzWGkg7AJAOuOqDrQNlnlVju9MWVuM9L5ML95o6tNu/iTAAAAAAAAAAAAAAAJWvoncAzGY9yFl4u2Is/pNSuA9fiZnr2t0XdvsVxX8A8JXHB2/wpnKZvSTNjeiQH3sY9KD4DwAAAAAAAAAAAACA6lHROwDud92sISaNS10gK2gHQJdGPXHaBueQagCwegeOm7uDB3rWpPUKnwu0WB7u89gZ3V4iogAAAAAAAAAAAAAAVI+KLQDc57rZ2wYK/2ZS21QGMv1FgG6yM6af1u0q0gwAmnbg+PnfloXPSFq3gLlgiUz7PTa465+JJAAAAAAAAAAAAAAA1aUiHwHcZ5JnMgrvLFXxH1Zm9e72c4r/AKBlHhvS+dXAraekT/J862dhEBxE8R8AAAAAAAAAAAAAANWpIgsAlyyYfaakXUt5TqcvfanOXH2fGNjtXkIBAC336JAuL0hhT0mft/AtS13q/fjpnZ8negAAAAAAAAAAAAAAVKeKewTwgdfO2qrB9Go5dv+LNJjpfATwcpeOeOK0DR4htQCgMAdcPefAwO0RSTVNzAV1Jj9s2pD1pxExAAAAAAAAAAAAAACqV0XtAJjNepAzv6UiHv2bV01fIvYf/DyUelH8BwDFefz09R8z6eQm5oJ6M/Wh+A8AAAAAAAAAAAAAAFRUAeCLHWedJtkPadaS+1QeHvTkaRs8RSgAoHjTBne9VWbZ1fynBpcfPW1w1ylECQAAAAAAAAAAAAAAVMwjgA+4Yc6mHub+LmnNigloOh4DvNTND3ri1A2fJZ0AIFoHXj3vWoV+6hf/MzSz46YN7nIPkQEAAAAAAAAAAAAAAFKl7ADobh7mblGZi/+q0DIzO4TiPwCIx+cfdR4saZokd+kkiv8AAAAAAAAAAAAAAMDXVcQOgPtfO+sXMt1VcQH1RDdnXSg//MnTNnyUNAKA+Ox35dw1amrtgMcGd/kt0QAAAAAAAAAAAAAAAF+X+gLA/W+Zua6W278kda7IgCbzMcANMjvi8VO7PUgKAQAAAAAAAAAAAAAAAEB5pP8RwHXBKCWk+E8qYNO+9HGT+lP8BwAAAAAAAAAAAAAAAADlleodAPe7dub3zOxPSlghY/keA1yK5vQzHz9tw3GkDgAAAAAAAAAAAAAAAACUV2p3ANwr6zUW2E2qhF0MIxPv/oPmNoLiPwAAAAAAAAAAAAAAAABIhtQWz7XqNGuoXDtVfAslZI9GM7tx+sBuF5IyAAAAAAAAAAAAAAAAAJAMqSwA3O+6DzYy2QVJvT6vtF7i/uD3Fqx/KukCAAAAAAAAAAAAAAAAAMmRygJAk4+V1I7mKwX/a7is5ths1kJiAQAAAAAAAAAAAAAAAADJYWm74AOum/0DV/iHpF97pBfnZTv7e/UNNd9/ZnCXeaQKAAAAAAAAAAAAAAAAACRLqnYA7DPJM67wOqWwcLEo5fm0HypQD4r/AAAAAAAAAAAAAAAAACCZUlUA+Mn8WadK2jEN1+rp7hfLZXbw4wM2eJMUAQAAAAAAAAAAAAAAAIBkSs1Oej+9dtZ6NaY3Ja1XlcH10p3ZzPpNP7XbzaQHAAAAAAAAAAAAAAAAACRXanYArDG7XCkq/ksrk42l+A8AAAAAAAAAAAAAAAAAki8VBYAHXD9zR8l/WdUtldemfgU/gPiJNTuvP4y0AAAAAAAAAAAAAAAAAIDkS8cOgK4rJWXSFlxP1+X+u0193ZGT+1qOtAAAAAAAAAAAAAAAAACA5LOkX+B+18/sYW6PEWDlWVGY15k/yZh9b9qp3f5FSgAAAAAAAAAAAAAAAABAOiR6B8A+kzwjt1E0U6zc3U6g+A8AAAAAAAAAAAAAAAAA0iXRBYCLF37wK5N2oJm+kNemft7CQ/rlTwzs9luCCwAAAAAAAAAAAAAAAADpktgCwL2um7+mubI0Uax+t2bnDS4kDAAAAAAAAAAAAAAAAACQPoktAGyj5UMlrZ/2AHtyL22mhcGRk/tajjQAAAAAAAAAAAAAAAAAgPSxJF5Ur5tmd6xrCN+V1J4gr8QjOXODzPZ+/NRuz5MCAAAAAAAAAAAAAAAAAJBOidwBsC4XnqcKKf6LXF7VhN7Iv7WLKP4DAAAAAAAAAAAAAAAAgHRLXAFgzxtmbuCu/jRNXOzZDp3XH0UcAAAAAAAAAAAAAAAAACDdElcAWB/qEpPaVlKQPTmXMt9r646Z3NdydH0AAAAAAAAAAAAAAAAASDdL0sUccP0HW7v7PyTVEOgmeEFn9lDa/8nTNniKbg8AAAAAAAAAAAAAAAAA6ZesHQDdL1UFFv9FLq9qwhXVgmY+geI/AAAAAAAAAAAAAAAAAKgciSkA7HHDBzu7dDhNEot/rrnchxMGAAAAAAAAAAAAAAAAAKgciSkADMPwIiXskcRR8vKdul4WHD/5jI2W0t0BAAAAAAAAAAAAAAAAoHIkogBw3+tmfVuy3jRH9Ex+weOnrv9XIgEAAAAAAAAAAAAAAAAAlSVIyEVcoAre/S8WLYvWC2t23nAMwQIAAAAAAAAAAAAAAACAylP2orsDrp+5o7u9qiooAIz8Azb9XOGlCmznxwds8CbdHAAAAEiu3qMWtG8wX6OVfI36IFg7CLVmYFb75X8PPbeWyf73x1tuMvNv3g2EZssysqVf/u9cqCXy3HJ3fdKqxj+tybVaPvmcdRcTbQAA8uRu/S6es15dK3X0hvo1MoHaymvaSFKDhe0DWU0QysLgm3NzYP6pwqDe5WHoucUZq/k0yPlnn7fOfXbvORt/LDMnuAD69PHMFlv8vUPYxtcIVNNGuWAtD30NM7VaMZiEa+nr9wIuM/tqvHHZ5xZq+f8OaPaRJAWZMBc0ZBY3NNR9fMUVO3wsMeYAAIB0e+TsW9trediuoS6zRk1NZi25t3ML28qVMVmHr7/WPDQ396/uz2xxThZKUsZzDRboky9eudwtt6TBWi059KoTPibKANKs/AWAN8ya7K6fyQl43pqImbmdNX3gBuz+BwAAAJRQ71EL2rsHGyvQBh6EnQJ5R4VBRzfvJFcXmTpK6ihpLUlrSOoQ533Banz+xT+LJP9Qbh+a+SJ3+9DNF5kHH5qFCySfHeTCD5av8emc6YO6L6dlAQCV6Kjs7I41NQ2bmgebmtmm8nBTyTYyeUdJ67m0nknrqZmv9Jr/vs+/8X++eP2nkuZLWiDZQjdfaKEWynyWPJhpGc3MWG7mxHM3mUuxIJAuw4fP6BTWLO8mCzZ0tw1M4QYu6yjXembWacX44ut+Mb60a3xsyS/1mxmLPpG0WPLFblpsriUmfeyy+eY+291nWyaY7fWa07p1q1nZbPcltCQAAIjbE0PvWmPp8mATV8OGLtvQLNzYXV1NQSd372imjnKtpxX3aBlr7F5rtWsib/kay//3/3wsaYlJi01a4tJiyZbIw3kKfLa7zTGFs3OB5tQ0hHN63jDgI1oRQFKUtQBwvxv+u7158JqkgALAAnij//7F9l02+MHkvpajiwMAAADR6XPd/DWXfWZbubx7IN9EgW3sbhtL2kTSRpLWKcuFxXs/Nc+kOS7NkjRb8v+Y2btu9k5NXat3Hzq3wyJ6BgAgyY7Nzt7YasMdzH0Hd9tJ0rckbS5pzdVNqoV8f2ctmai9pa//hjqTZkqaIbc3LfA3PfS3wkzNW7efv8FMWhcovWz2vTaf6PPNM8psaTnf0mVbmHxLl28uaUNJbfIfJxp7vef5+vxuHqzxU3wu0yy5zzXpHVcww9zfCoLwrUym/YxsdrNl9AQAANASDw2+fe2cZ7YOQttS8q0k7y7ZlpJvqa99l9ro2uer4rxG1jveyJqo8WIKa+Icqz9PY4WGvlTSHH35nanbDMnfUqAZdTWt32ZXQQClVNYCwP2vn3W/pCPyvI8l4E3PNctCD3Z+cmC3f9O9AQAAgML0GLVowyDTsF3gtrVk28i1lcy30ooivyTdVikB91Mfr/hR0N51C98OFPxTQfjGkk8++9dz/DAIACix47NzNvWahj1d2t1cO7lsB0lr51sYU1ihTjMTdWEFgI283iVpsVyvuenVwO3VnIevfarP/jE5u10dPQEoXp8+ntlou39vUSPbUaFv79L2knbUigLizKrFc17EONHYeyLdBXCV67Q87yW+OH4oaabc3pJ8hpn9O2cNr+aWt3519OhtPqHnAABQnbLZbLD9wq22UpDb0Vw7SdpB8h214g+nV1qnFLQ7X8wFgE2dp9ECwCbXXCZfIGmGZG+ZbEYY5v5Ra/7K/tefyh9zAYhc2X6p2v+6mVvK7N+SMi24Nybgzd+rf/k/z3vitA1H0rUBAACA5mWzHvyl/cItg5zvbKadpf/90ykFt1WN3hckRE7SuzL/u0J7Q4H/IxfYq4+d0XEGjzIEAESh300v1dYt6Ppdd33fpT204p9uxc/WHnEB4BeTdfQFgKtTJ+lvgfuLkv5oNfrTxPM2nUNvAZp3TvatzRtyDbuZ2W4u39Vk31ETj+iVJMujALCw3E9kAWBjxwxlesvcXg7lLwfS3+rrl78yatQui+ldAABUnkdOv7dLg3Lf85zvJrPdA2lXlzo0ue5oZt3U6NqnySLAfAsAV3Mez/968y40/OY5Fkp6RdIrgekVhf7Kn7vMn5HNZkN6FoBCle2Xqv2um3Wjmfq3YJwn6C27V5dkb7Rf+PF3+CtfAAAAYPV6jZnd0ax2Dw99D5P28BXFfmum9LYqrfdSiyX9TeZ/9VAv1YS5lx4evv779E4AQEscN+K/W4TKHBC49nfTTyRfI/rZOqYCwK/9n2geM9zi3cbec+n3kj9lmfCZW87bfB49CdUum3225pNct50DhT8OpR+baXdJHQvK/Rh3ASxJAWAe9xOW5w2JSe6ud8z0JzN/NpPJPZfN7szaHwCAFJo05M4NgjCzt9z3krSXZFt8tQzwSHbnK+wxwPkX5zW302B+5ymoAHB15/lU8lfN9H+h+x8alrX548G3/YrdlQFEfD8Ysf1ven995WreldSmBfeIBL1l9+ouC370+KndnqdbAwAAACv0GrNwG3m4p6Q9tWJXoK0r5LaqqXuDNFoo6UV3/cEU/N/6a6/7t4n9rZ4eDADol53dblkm/IkHdoBc+8u15Tdn35ZNgHEXADZ/jtgeA5zv9bjM/+6up83t8aDrgucm9t+FORdVwO2s7L929jDYV9KPJf1A8vbFruzjLwDMb6Gf7+POV/8ZCj2Ht/T1/5H8OffgWSl47rLLvvUf+icAAMnzyNm3tl++rPU+gewASXtL6t5UcV5+BYCrXzsUVgDY1HnyfQxwtAWAqxwnv50GGyS9Yqb/U6jfW12r5w+49cQP6ZkAorrfjMT+139wheTDWnh/SNBbcJ/ubjc/MXCDfnRpAAAAVLNDr5zbuUGZfWS+r1z7Stqggm+tKvl+6jNJL7rp/4JQf2hdu+zFyWdstJQeDgDVoU92/ppta+oPCs1+Zu4H6stHcK62eC6+wphodwFMTAHgyj6W+XSFwSNtffn0a7Ldl9ADUSnOOef1dRpqW+3rgfUw9wMkdW0uh9JeANjyc5S1AHBl77nriUzGHg4CezbLE44AACib3wy5dzvPWQ9Z2EOuH0hq1ey6JMICwBWvKWcBYFPnybcAcDXnKeBRw1+LSSi3v1sQPu5uj36yoNMLfSf3zdFrARR6v1m0fW56Z61MrtV/JevQwvtDgt7c8VzzgiC37bQBm3xElwYAAEA16ZP1VsvXnP9jebCv5Pu6tJPKUo1HAWDMlkn+Bzd7wnLBE1PPWe8Nej8AVJZjsos6ZGqX9wzdf2bSAZLaNjfXJW0XwJQWAH5dncmfdtl9rcK2D1+f7fwpPRNpMyz7xsa5XOaw0HSYSXuYlMlnAR13AWBh56j4AsCvWyJpeuD2SFBbPz2b3fljejUAAPH6zWn37aLAD3e3n8l8y6bXSY0sGrxlxXkFFwD+7+UtK85ryb3iKucpoDgvigLAllxvI+dZJGm6mU/N1Nc+se/E/ovpzUB1K/mvVAdcP2u4SyPzvEck8E3fqx//+Gkb3kl3BgAAQDU4ZPxHa+dyDT0kP1iuHpI6VOGtVbXfS82S7Em38ImwodVT04avzR9DAUAK9ZnkmTZvztrfg8wJcu9pUpt85rp0FQB+7Tq98NVD3EWAX/th6TOXHglc96rrwid5TDCSbEj2rc0zYXi4Sz+TtOvKXb9FxbnF5I3HnZclKADM434i5gLAr7+nXu7PKfCHGxpyky+//DsL6O0AAETj/tPv39VCHWEWHi5p06J3u2vhLoAtKwBs5L/lUQDYkvvF5nYaLPp6V3df2WwBYJ7X+9Xr62X6v8Dt0VwmN/nAawbNopcD1aekv1Ltdft7bVp/Xvu+TF3yvEck8I3H6y+7L9zg+9mshXRnAAAAVKqDxy7aKJfL9TbpYJn2klRbxbdW4n7qG+olf05uD9a00iMPDuk0h4wBgGQ7esTM7iY7wcyOlbRBXrNpEY8BjrsAsPlzJH8XwEZ+vJon9zssyNw88YKN36EHIwmGZN9YN8jVHCnTLyTfvei8LDZvEvQY4IIfd170LoAe8Wf+xjHrZXrMXXfMn183beJEipIBAMjXpNMnbezK/dxcv5C0zcrzd8t2u2tkzo/wMcDJLQDM83obu68s7jHAza/rXKGk35vrniCs/S07AwLVo6S/Uu1//QcnSH5bnvfbBL6paLn2fPy0DV+gKwMAAKDSHDpy1nr1rWr7BG5Hu/QDJabKLhG3V9xPrV4osxcV+sOBhQ8+fHYXihQAICF+ceXcNVTnfTz0X8p8tfN63AWA+c3WXtDsXqEFgF87mT/tFkwMOi94hF0BUWr9+r1Uu2a3NXtYzo6T+UGSWkeWl8XmTYIKAFt+jsQ+Bri5H8EXyPw+ye8YMeLbr5AZAAA0btKQSW09533Nw+Nl+pGkoMn1QIvWSfEWAK54Tb4FgE2dp/DivOILAFdznrgLAL95jmUmTfXAfr1k/sLpfSdn68gKoHKVuABw1muSdszzfpvAN3YMt3unn7bBMXRjAAAAVIo+42a2XZ5rc7CbHy33/SVrxe1VHrifWtnf3HRPzv3+x87uPJcMA4DS+8WI2duGppNNOk7SWs1NWM2O8al+DHDyCwBXvMdbEprZZn5Npja46Ybhm3xET0ecTs++s3EmrO8n6VeSusaSlyoyL/MoACzsHBQANnK21yVNrKnJ3JnNbvcp2QIAwAq/Oe3ebXKZoL9W3IetI8/38bxNrZMaewxwy4rziip2y2MXwJbcK65yngKK86IoAGzJ9Ta30+A3jrH6c3xorvul8Ib9bzz9H2QJUHlK9gvVfjfM+om5nsnjnpPgN+1zy2nr6YM25PntAAAASL1eY+b/QNKJkg6T1D6d9wYUACY40jmZPe2hft1mafjQ5GxnfhwEgBj1u8lrP18491B3P8WkH686dFdrAeDXrtMLXz2UeRfAlU/7qaTba9yuuiG7ybv0fkQlm/Xgk/Df+7qCUyT1lJQpNC+bz4MIigA97rwsQQFgHvcTcRcAFjC+fxSYbm4I7drLLtthJhkEAKhGz2afrZn30bxDTTpF0l7fnE692fm7+ALAptZq+RYANvLfPMLrVSGPAS6sOC+/AsCmzpNvAeDqz2PSc6Hr2tZdFz2ydzbbQPYAlaFkv1AdcP2sKS71yvO+k+A3/u7s46ducDFdGAAAAGm1/7jF69bk6o4NLDxJsm+l/76AAsCURPtzSQ8FplseHtrx9zJzshHV6uDLF402adMoBxrL821BbJ8uLGisWPl6QtMnvxne+Vf0lpb5RXZu57Amd6pk/SR1bbwNiigAXOntSSsAbP4cqX8M8Cqn/eL4OZcmeaARt1yw6b/IBhRqyJCZbbXm0uNkOsPk3RvreGnfBTDuxwAX/LjzoncB9Ig/c97je73JfhuajRsxYvu/klGIyqiz/7qbBRoa/zo2LCpvVntNHt0tb0uvx+U+ZNT3j6DnrN51w36/Ryb0wc3OSS38g5FgpX7T0rlo9e3b+LGCQvpzuLrzeLP92E2PHD/2wF/TW1rmnoH3dKgNak9y84Hm2qSx7tBc8diq/c3zm58jfAxwtAWAjedD/gWAeV5vY/eVcT8G2FsSe5dcsxT4jQpb3bz/jafMJ5sQtef7X3ChmbZv0boibGoe+qovF7YGa/64ha1/wmbWZfnNxe7hY7vdPO6OQuNdU4pG3ffGmd091EF074gW2K7/1tTalUQCAAAAaXTgmPk/CuT9FC4/XKY2iSici4Sr7J/FVFVFgAVqJ+mY0HVM7ysXvqkrF0zM1Le+86FzOywiNKg6pn3d9e3mhpW4R854ChqKuZ6vnS/UQjpK835++cwtPZc5M1R4nGRtkzxh5TtbJ2B2T4uMSUdZqCNOuvj9BygERL5OHf6v9VrX2gDp89MkdSYiaR3r4hjf8zpmrbsfae5HXnj+a3+Ua9Qll+00lR6BYgVBuIEr6PP1fxcqjt05i8shz/OYxeV9kwW/Ib2mif6Us43dvE/+beB5tkRTbe0tf/M3+nzTV1D8XOIrOo8bO0u3wH2D79s08GCQS79yqYO5Nd4rChpeVn1Tqe6PCjtP/h+y8fNEuaYxeYF/XBb78sm0odwuldVf8MQpV08O5Vf2uGHw62QXIuyKP5brJ6ubMwodT7yA/9L0HNVcwhQ2FnghrwhsdjHxLkkBYJDTIFmMf9RddTfvNmxq/26fEwkAAACkRY8JM1oH9WsdY64hkrZv0a0dxWyI39Zyjc1lll/We9SC38p94pRzOv+BsAAxKNOYTrFXvI65ZM6uyvjZntNhimgjnMLbrOxFJxWjyLwJviwE7Jd9//6M7AIeDYymDDnvzQ2sVsMU6peS1iDPmJ8iG7rd9pQ05cLzXn9R7udfMnKnZwgOgEq8cSpVAVNBx1rt2/jCr1i/HvSb7hkLz5X7zz2Peo/Y1xNfNO3qzxNRu5skX3GsaD5P89eVrKLH4uPYyD10a8l+HsiOeWLANQ8HoY/Y98ZBr5BtSMI8t/J7iykcjP59jX+ectzDxV4AuNf499aW2fF05Iga3PTHxwd0e0CnET8AAAAkX48JczrV1NWc4nU+QFIXIoJEMrWR6xiZHdN71MK/m8LxdW0X3zt9UPflBAdYNWHKWWRFAUQy/HzEnL3c/ELJ926u6Wiz8udQbG3Q9GkDmY7OyX/W7+L3r8t55tJbsxt9SPvjS4PP/ef6VhucI6mfu9pYwnKoagv0UlyT0UQb7C6zpy8877VnAwXnZy/b4U9kIFDlY12CBtzqLGBCoe4ffP+2Cu08WXikpEwyFwDVXOAZfxxLsDOiyf3Q0PyQJ0+5+tHAfMQ+1w/+K9kH8jMd1xR7AWDrVjXHSVqTeSESYZALB8uM6AAAACDRDhq/cNsglxvsdfYLlzf5KEC+HEQh4us3voPLbqtduvblvUctuK4+13Dj9HPXX0DEQa4l4/Utx5dLcThq5KzvW5gZ4fKflvVCKqF5v/YZkvnje2RBbiVpSMZyx/e7+P3LWq9Tf+01FNhXtdPPfbdL0Kp+mKST5Wpb6HESmTffSJu07EpaugG1/G1me4fyP1543uvTPAgvGDHi2+xqg+pYi7Msroj1Yun6W1ILmKrb/Wfcv1WYs4vl1re4py5GWSxa/CPLy7jbXZGnjeDRyP87RGIHaZPUK3Tr9eSAqx8ztxH73jDoRbIR8c971VGoF5d4H8vrbjLrT0+NbOV192MDN36JQAAAACCpeo6dt1PPK+f/xnLhP1zWTyr8R720LtoTcT+KKHSRdEltpuY/vUctuOnQUQu3JSQAqtXRl8z+7tGXzp5mYfAnlbv4rwyzddyvrxLrSBqz/KOav/fLvrsf4ag+Q4e+tsbgC9+8KGhV/45cQ1Yu/nPWsBU0NsbRmJEe8yALg79deN6rtw0f/nInWh7F5Y3FkGeJzyGUbXy26PuE0b+S7L7T7ut2/+mTb/Rc8IbJjlQztR3N9hWLuk/GO0Z5ifpjqdY08d8n2jfPYxG1ietAl7/wxMlXP/xk/6u7k5lILivTe5MzR8a6A+B+N36wtyR+JIlGfeg1FxMGAAAAJNFBYxZ8V6YL5N77iz8Xju7+iF/RUV5tJfXLyU/sPWrhbxXkLp1yVpfXCQtQuWM6O1J85aiRs7dRGIyU/JDoy3Ma7xCF73aT7t2x0iyPNususyf6Z9+bZDU1Z9x4/kYfEL3Kls168LHePL7BbYRJ3UinKMY65rNoBvfghNaBHXLh+a+d968335w4eXLfHGEBWCOlNbaNj/nR7ujneZe9Ku+nj9KvpF+f8ut1glathkka6FK7VPXHJl8e/Q6T6Xm8dcs+e5J3RjTTwTL1ePKUq6+tbR2O2PuqIR8zXqPYfMg/t4rL/XjeF933W8WKdQdAc51M543MbU8O7PoeYQAAAECS9By3cLeeY+ZPNflfzf1g8RsT0qr5nhtI3kdh8GrvK+Y/2Pvy+TsTNJAw5Tkmu7HFr0925rpHXzr7agvtdZMfunID0Qbpy6HY2qzAj+Kmvp5r+NfJF783pM8kz9AnKtOQ7Fv7LPYZr5jbrSZ1S1sOVe1Yl+I7unx3vAmldcx1/XZbbf3nCy547XtkLaoR67ryD7ge4bGS0Hbl2+ky/Z7NPltz3+DfnBq0ajVD0jA1W/yX1N3uLN7+Zkk+YPzHKvPOiK0kP6N+uc14YsBVA57NZmvIXHCjk5xriq0AcN9r/ttN0iHVeJMZw0J5eSi7jIQEAABAUvQaN2e7nmPmT1UY/llSz2JX8HyBjFR9U2B2qILgb71GL5zSe9SCXQgJKl16H5fKj0r56neT1x41Yu7A2pqaGZINklSb4NG4EmaUBOZN3EH+xjHbuzRu3X+9/3y/7HvbkIGV47Tsv7sNzs64X66nJO2Y1vmp+C5uaczLVK8piriu7wah/pQ977WJw4f/az2yGBW3FmdZXBHrxdL1t6QWMFW2+wZN/uncjxe8IvdrJa23ujhSLFrseSzCMBX/xyNfHSJtg7RJUkdzXVc/b+1XnxwwYT8yGNF2r8ov1ItLbAWAQSZzopL8JWGqVvc28clTN5hJIAAAAFBuPcct3KDnmPm3eph5TSsK/7DqAp770eqItJmrl2R/6T1q4W97j1qwNX0fQJodc9mcHp8tmPuamU+QtG6lTy7pLWytSLub6ZX+l7w7lN0A0y2bfbZmcHbG4BoP/iX3I/LOGwpUKmhsTGWhYuDSSa2Cun9kz3/9QHoDWp4HFkOepbvYF3GOzzEU5xn9q5zuOm3SZveePvlBD+xpKdg+9r5iUfbJit/tLvK+Hf994krFohZ7Xm9nYfjEkydfdd9jAyd0IqNRflam9yZjjoylAHCvrNfI/CQ6VySWem395YQBAAAA5bTPFR+u1XPs/JHy8C1Jv5RUuh9n+Q4RyWaSDpPsH71GL7rxsMsWrE9IgPSP6dVUvHVMdtaGR1029yF3PebStknpEIUXofCDeVryZqXXt5Hblev96/0/nJR9ZyuimT6nX/DW9z7WBi/JfbykDkSkJHnDfBbP+N5V7o9mz339xqFDX1uDGAGskdIS20QXMBn9amUrHvc7eWimJviHzA6tqP5opWrfKHdGLMW6yiI8T5l2RmzkUkw6srY+fOPJ/uOPYvxGvvngJc7JeN5nkZ+vELEUALbqNLuHXBvSaSPp9tc/0X/TOUQCAAAA5bBX1mt6XTl/UJuahrflGi5XO6KCSr4BK+KWv8bc+zfU2IzeVywc0WPCIn74BgkT4zEpgCheNuvBUSPmDgxrMm/I/RDFHFPaoPw5FFubRfhRXNojsOCV/he/O1DOfnBp0C87u93gi2aMtYz+KNdOSZwzijlm1Y51Kc6+fHe88dX/O3Pz/mu21isXXPDa98h0VDrWdeUfcNPzaNdkFTCl1a8HPfTdOR8t+ovLrjR99V1rZe12Z/GOFZbkA1bDzoir1cnM7n36lPFTnjl53AaM70jmAFDZjxeO6xHAJ1T7TWZEA+enuaBmNAkMAACAcug1bsGP26+54GU3XS2pIxEBWmQNmc6vXepvH3zFgv7ZrAeEBNUoOT8iUj+0OkdcMW+nN2vmvqAVj/vtEG8boKVdNJk/vpelcKudZBP6j3j/6VMvfXcTOklyDc7O2KudPn1d8jPkSsXjm73kacOupMldI7To3N2DUM9fdN7rF2ezz9aQ9Uh13rAsroj1YjpPSuf70l1D71rj3sEPjrUg/LNMO+cXrrQVi0Y5vpVptzvL/wVeNXnSxG5nrl6h7I0nTxl/oos/6kKh3auyC/XiEvkPEfvdMLezmfekV0bSga598pSu84kDAAAASqn3qAXdeo6d92sP/VmXdijVeSk8qLr70UrvN53c7MaX2y36S88rF32fDglyDUlwfPa9NkddOmdUkAtfkmk35rp484C8KTrgP2nI2ev9Ln7vOIKRLGef/e/2p1/01g2S/06uLSLNGyPPyj2gRjfWVcwNSY3kF6ph3T9ksy93o69g9XlgEeVNFd7Uo4B+E0NxXhF/lMI9ZsvcO+TBA2oa1viH5GdITf3hRAly35J6sKTudhfjY7Qtvgb2SM5RcLHoWua6+elTrn7siZOv7MwIjnLd21TbNUVeABh4w88l1dKpih76l3jr8EriAAAAgFL57k1e23PM/NPDjP9LbkeLb5uLWc8TAnzZFb4bhP7Hg0ctvOvA0fO7EhCAkbxcjrhs7vbLa9u+INPZkgrcxSjZO1nl+6Mos3Uq8qyDSXf0v+T9ycdn31ubiJXfwOyM3evaBX8z6eS8K15Qlvmpssa68s1D7vq+6jOvZs9/ZS96IcihuI+JQmNb3uI9o6usxqQhk9b99eDf3uTu013atLTtE29xnhfc3tW8w2SyHqMdWV+xRhdQBwSq+fuTA8btx5iOpjqOF92Ho3qfpfreKvICwNB0PB01gonZddUTJ270IZEAAABAKRw0dt4eXT+Z/6qkq/TFowATei8IJKivtfiW31z6RY0H/+41atHgvbLO48NQjQkT+ZjObmwt02eSZ44aOfecQP43yb9dzmtJd5tV5w/mnudHia3N3H/W2vSXftn3v8PYWx7Z7ButBmVnjAzkz8vVnRxifkrF2GXRtoFLndyDJ7LnvXoyUQZ5hnTNZxZh2yWrgCnJ7hny4HH1nnlLUr+WfvbK2u3O4h0rIt+5MspHI1Pk+DWdLbTHnjp5fHZSn0kZxnyUPy+s5NfkJbqmSAsA973xv7uYR/yIsOp8bNXiXG3dOJIWAAAAcdvvyrlr9Bw7/2pz+z+TfYuIALFay+TjO7T98K8HX7nwe4QDla6wAgh2JYnSL0bM3axmxtzn5H65pFbxtBmi7KLFt0Ecf62emLzsbuZ/6n/xuwPpNKU1MDvjWx+p9kVzHy5X6n+08zz7phfdxVM6t1m52iDx800rl92QPe+1mycMnNGaEQKpGuuMdV1q56cWj8lJLTqqrnuyu4Y+2PnXgx982Fx3SLZe1HFMXrFbKdYFZdrtzvJ/QbIfo122YtGMSRetu96sp588bVQ3Rny0rKtW76N8CxVpAaB5cAI9MZLh+uan+2+xmDgAAAAgTgddOW+fVhb8Xa5BimF38IJWwjRLNd2PVnG/8W97qD/1Hr3w2j5XfLgWHRXkGuJw1Mg5xzUEek3SDyp6nrBk5wF5E7nWJptwcva9X/fLzm5HOOJ3+oVvnhTIX5Jr55LljZFn5R5QoxvrKvqG5MQPO3z+XDb7Mj9ic39dUH/3mPMSlX5PFkNxXuS7qVXnHH7vkId7ZRr0uqSDE32PY0k9WDXsjLjSeSy+OHokh450Z8S9Mg21rz518lX7M6IjRYNcaq4psh/5ekyY0dpcR9GRilZvObuaMAAAACAuh4z/aO2eY+bfamZPStqMiMSFr+fRzP2469TlFv6r9+hFfQgHgKj0GTez7ZGXzb3V3e5wqX30Z0j2Tlb5/ijKbJ2+FZOvaN6jzZb/8cQR77OWjcmwYe+sNfiiNx+Q2US52pI3FZA3FSMZ89AXMd1d9ZnnR5z/Snd6JZwcQkLaq7zFe1a1XWXSgElr/nrwgze7h1MkdSmufcq0210B11X4zpU8IjeaXE5QX7GWncelTqZw2tP9x53OGI8o/tgh+vdZLOcrhcgKAL22zYGS1qGDFu2B6YM2nEUYAAAAEIeeY+cf2JCrf0PSL5W2b0f4PhmJ7GtF3/KvL/dJvUYtmnbYqEUbEnxUeMJEPqZ7wl5fbkePmN8983ntC1/M84mU7jaozh/MPc+P4qVrjW/XhP7SgOy7+zEWR2tI9s3dlrUNX3FZX3KoGse6ypDvjjdFtMFmOQ+ez5772neIOqo2z5C6ezeP8FjF95H0f+F39xkP7lRX2+qvLp0YRRwra7c7i3esiHznykh3u6uq+8Y8rzcj01VPnTLuhmez2RrGZ5Q+L6zk1+QluKboCgDdjkpku6VsoRxIY0lUAAAARK33qAXte46dN1GuRyXxiCIgYUx+YIP8771HLTyOaKCSFFYAwa4khThy5JyfhUH4kkw7lb7NEGUXLb4N4vhr9cTm0Lqh2WOnXPz+qXSiaJyefWtQqOB5eWXvFO559ncvOm1SOrdZudogdfNNZ5k9e/G5r+7NKILEj3XGui7Ji8HCd1OLa/Cu5gKmlvn14IdOsVzwosy3abwNrbR9JcI2SdbjoMu0210Bj4BP9mO0k1Msaq6Tc3PXeuzZwePXZh6o/DmusLdV56N8CxVJAWDvWxe0d6knHbdoTz926oavEgYAAABEqde4BT8OM/6a3E5SCr5t4wvnqrkfpd+sam1Jd/QavXDKgaPnd6XzglxDS+yV9ZqjLpt7ldwmS+qwaptVwWO4LNl5QN7E3nAZl1978sXvXdVnkmeIa2GGDn1tjdMvmvFruV0tV23Z88bIs3LnZXRjXbVs5e4d3Gx69vxXD6MfVfPUZRHlTTR5iUq/J4uhOC/y3dQqdw6fNGzSWvcMfnCyS9fLvE3kbVKK6dOSerCk7owYY9+3+OKY/J0Rfd9wmb/wTL/RWzDCI8GDXCquKZICwOXLlh9qUls6UJFNHYZjiAIAAACi0mfczLYHjZk3zkP/nVTZO3gkF1/Po4B7Q1evjAdv9Bq94CiiAaApR1/+n3W61s573KXTSzxSpeSYzNaVumJq5PWnd/zX+w8NyL6xJhHNz5Ds21vWr9nuBUlHkzdVlzdpXTEn9Zit5TYpe+5rJ9JDyUtyCNXQFwva7a4Cusq9pz+yY93y2pck+1l87VOm3e4KuK7Cd66suMfaJvtYCQi3N/7vt/Gg5sWn+o35ASN4NSr+jx080fleOtE8AtiMHyWKH+z+/vhpGz1JJAAAABCF3lfO23FprvXfTDYksnV/su4FgQT1tVi+YljX3O7tPWrBA4eM/2htGgQVOTiXaUyvlAKII0Yu2CoMW70o6adpu3Yv2evT8uO2VU6bWXnzzKVeobV77uTs250Zm1tm4IVvHRTKX3LXDunt75buvKmw+SnNS5WI2iwj08Tsua8fT+BRDRi7Eny/VbXHitfdgx85Jgz8BUlbxvnZ0/5o15KOFV97TGjyd7tL5hgb2T20FfXZO1oQPPF0/3EHMO5DCc8xL/Ca4s7pon8I7DFhTifJ90nV2iaZ/XKszFgnAwAAoGg9x847NgzsBZm2JRpA6m8W+4Z1udd6XfEhfwGLqrHiyxHL8/UtyqeKidFRl87/gXnuecm2iq8N4ns9ou+inufBvNQXWNpR5Luy4IV+I2bwCKlmDLrwrdMtsEfctVb1zjct7+9eziRP6dhUxfOTyfyW7LmvHclIg0TmjbGuS/KASwFTMj2bfbbm7iEPXyHzeyS1yz8sSX20a3IWE4neGdGS0Peroli0ncwfeerksYczJ1TmHJesexEr03ubEpTx3ZLCmrCvpBo6bFFmr9Vx8X2EAQAAAMU46PKP1+k5dv6DcrtTrnZp/ix84Zyge1n6TRJsbBY+e/Cohef1meQZOjTSlmuM6dE6YuS8/qGFv5PUqeVtUPmP4Ur6ZyBvStlwJkmbB2Hw+1MvmbEdo8aqBg6c0XrgRTPulNlVciV2beFWAXljqc0hxrriZWS6K3v+qz0Zdapt6rIY8sCqJW/Qwq4Q647XFuc4HWUBU+nce+bUjrOWLH5G0rCWfEaPN1wln/fL80d31fF4YF/tIZJaLBplX2lSK5Puf+qUcUcz6KP4nLAK+zxNCyK4tr50uOK4/JrJfberIxIAAAAoVO/R8/a0VstfletQopG8FT8QgRqXLl3+3qKneo5buAHhAKpPNuvBESPnjJX7jZJqy39FlfUYT4pW0rdiav71tkHOM384OfvubkT3K6ef+24XradnTTqWvCHPStdmVfs46Vq5Jl987ms/pfeRZ8lTPY9kpy/G235eyLFS1FXuOfPhb+XC8M9y/aj07VOC3e4smlz3gj+GxdyvC/uQpdntrgzHSkDuNf/UB5OkGnO/+6mTx57EaF4tkvjHDulb1xRVALjfDXM7y31POmNRPq218CbCAAAAgMLumN16Xjl/eBjYc3LbuMruBYEkJWOpTrR3UO+v9h61aF9iDsb0FGRsRPqMm9n2X7VzJ8vtjGodNQt/fdUWnZSvzSxRebauTE+ekn1vdwZcafD5b23rteGL5vp+y9uYHKqksZE1RznawNq4+SOXDH+F39LA3TASMs9Vw7GicfeQRw7wUH+SfPNV+3z8n73CHu0a71hhX10vj9Eu9jwWYeiKOlZg0k3PnDJ2MHMAWtLpvMQ55gXmfZw5XVQBoIX1B0slfERABf7QZ657pw3Y5COSEgAAAPnqMWFRh4PGLXxIppGSaogIUC33oNZR8um9Ry0cLndKYlGRCZPvDyqe/sRu1C+yczsHS2ufleywUp6XIpT0pZLneTBPQK6XyFpu/kT/S97/fjV3rdOzb/0orLE/Sr4pidbSPLCi88YrI4cSddkpnZ/WCAObOuL817Ym65CYvDHWdUkecClgKr+7Bj98qqRHJVsrurAk9dGuyVlMJGZnxIhOm+zHaCe3WPQbB3aN/93JYwcxP1TOHJese5HKerxwcY8AtuAwOmlxwiCYSBQAAACQr96jFmwd1DW8YO4HV+pn5AvnBN3L0m+SKCNpZO/Ri6YcMv6jtengSHquMaYXps/l87esq9Xzkr5XfBtUzmO40voZyJtSNtwqx+wQePjUKZe89+NqHEtOv/Ctw93tCbnWSd18YxWQN1YROcRYV7x1cu7Ts9mXOrLCqYapy8gbxDd2r7LbcrwTTbILmOL4vG53n/FI1syuVcEbIVl0n8eS0R/L80d3VhV57as9RFKLRa3kY4av+Oeq35089pfMHcyblTOWxHNNBRcA7nPTO2tJ/hM6WlH+9uSAbn8jDAAAAMhHz7Hzjwgz/pLJvkU00oKv5xHfkBDW5f7c64pF2xEKoLIceem8PYIw/LOk7sm9ysp6jCc/vqdvxeT5vXYNd59yyiVvf7eaYnr6hW+f6YFNltSGvEF524zHSUvaTPU1k27q91ItPZE8I4eQzL5oBTWjF9IXEthVbup3U+3dQx65010XJad9SrDbnUWT616i9q6s3e7KcKzE5J7l89/MpZue6T+uFyN7Jc9DlsD7xnStawouAAzCVj0ltaLLFtHZTez+BwAAgBbbK+s1Pa+cN1au+yWtWdXB4Ptk4Ou2MvMXD75y4aGEAozpLZfkIpSjLpu3r5s/KWldOkjhbRbvrihGG6QzzzrIg8cHjHh/28pvLLfTsjNGhuZjmt8CtLk2I4fIM9YcxbXBN06895xONdfSGABjfXkHsWrepW31Jg2YtGa7Nbo8KtkvkhTH8he7laLvs9td8s5jEYbOovo8NTJ/4Jn+Y37ELIKocz+e91nJc7rwRwCHweF0oqJ8mmloez9hAAAAQEv0HrWg/ZprLnhIZmcQDaCE8vq+q6w/v67poX7be9SCLI2GlCRMCzPK0pGBETpi5NyeoTRF0hppu3aKViLKIYuyDaw8bZDs34E7eph76rQR729WsV3J3QZd/M54k4YzD0V/TI85L6sqvAmdb0owP/W7+PzXTmfeA+s6NDXgJq+AyUrQp8oz2UwaNmmtZa3bPuGy/fJeD1j0bVK5C4CYj2XJDIeXKI6VVizaiLYym/q7U8ZU1a7u3LNV4zUVpqACwD7jZrY18/2JfVEf5L7pg9ZbQoIDAACgOT1Gz9siDPzPknpW22fnC2TQb/K9Y7aLeo1aeFufrLNjPxKXazy+o3lHXDrvGLk9JKlNHNdZFT/kGnmTziCX+pi2QS4Mnzjxsne7VNrYnM2+0WrgxW/f5/KqLS5KZJ5ZdeUlhUMt+dA+Nnv+awewokz33VeUOVSWwlY2Y03vmspWbtd4G9NL9NnLMR/ce+bUjsvq2vxO8j3i+aO2OLtKNReLRtk+CStytIReVx7niLkNO7jbY0+fNHYr5pFqmzIrrXgw+s9TUAHgkjb2E0nt6GWFC0PdSRQAAADQnINGz/9hJrAXZdqWaKRdAn7W4sv9qmDSCcvbLnry0JFL1iMaQHocMXJefzfdJakmvpnFYpgnKuvRoBStVP4K62uv717boCn9srMr5nvugRNmtP5QrX4r6Ygkr//ybjPWsBU01vE46a/JmPuvs+e8sik9krwhh5C4bxUi6xrJ7l93D/7t+g2hPyfpO9HncMs+e6l2Rmy22C2ipkp2sWiUu91FW5xX8qJHS0peF5wnnS3j054+dSTffVbgGirWua3C10oFFQC66UC6aVH9452nTuv2JwIBAACApvQaO/94C/xpSR2JRqrvu4By+HEuU/dCz9HzuxMKMKY3LinFW0eMnNffXTeowO/qqknhP77zg3n62qwkdssEy+/OZj31uXd89r02+tAeclnPlftmNG1gMbQZOZTSvKmCNUccj8NbbV6ua4FNmjBwRmsaBizuGevjim2iC5jK2FXuHvzb9d1qnpO0XXL6e3mL3WI/hxW21iz0upK3M2IpxowSFIsWFDoreu20Gltarva3k/pkeQpKha4hvMS5H8/74riPblxBX2yY6yA6XhGDptvdMuOeHAAAAI0uGHuOnT/SXbdLxg0sUG55fd+VqFu97oEHzx9y+YLv0ohIaMK0MKMsnRnYQn1Hzj/OXderQn4ppWglohyy0uVlbG2Wlh7tftg8vXdlmnvNkHEz27ZX+IikHuRQaYp9q3asS1Bee8JeX0RMd/2ww2djyF2wrsPqBlwKmOJx7+mPdHGr/Z1kWxUTx8J3U7OU5XxSH0Vr5QmtFRrbyikWTc54bz9eb901b2TO4KaiMq8pf3kXAO53w3+3l7QJsS987gyt4W6SGgAAAKvz3Zu8tueYBXfINZxofLGAJgSg3xSjcxjYswdfuXAfQoEk5FqCviROxFUccdncI+V+qxr9js5os/Q2b4W3mVXWMU1nnHzxe/3T2D/6ZWe3a1iyfIrk+zErJTxvrIJzqFrnm+iifNol577al8ytxDWHJSpvvArWTVW1cF1lN7V4GzPZBUwtd9fQBzvXB8EzLm1TivnUY+8qSS0WtWTErcXnSViRo6V1kLYStuH//njuhKdPHnM280m1TJmVVjwY7efJuwDQ3Nj9rzh/fHrAJu8SBgAAAKysz3Xz1+y2ZMEUmY4lGpUqAT9r8eV+NWrvoab1umIRPyoCSZr3L513qMvulpQpZqYo9JEo0c4TlfV43YrZVYoVVl6vN/mEky95e880fe6BE2a0bq2lD0naJ23rv7zbjDVs6sa6apkzImsP0y3Z4a9uRc8kb8ghJEOUu1Inp3/dMuTxdZWrfVotfOyvl+izJ+bRrhE1lcfVHyM5T4U9RruAz+6RXH7pCya96SNc/vQpYw5h7K6cNVSsc1sFr5WCAj7XgXTPorrFPUQBAAAAK+sxYU6npUv1OzcdQDQq7r4LSIJWZn7fwVcsPJVQgDH9m8rxJWSfy+cfYKb7JdXQ8PG3Wby7orAYibfNSjxXevCb07L/7ZaGmPa76aVafWgPNL7zn8XQBhZDm5FDKc8bFiZ5tUGTedneAp88bsif2hJ7gLG+dONTAgqYSrQUuGvoE2vUqn6aSzvE8dnjPlZy53kr6OVeojjyGO1iz2MRhs6KXjs1ITDpnmcHjP42M0tlrcO9xLkfz/viuI9uJBHyefFB1/9nHbn2oMMVrMFymQcJAwAAAL6xzh4/b/NMQ/BHSbsSDSCh8vq+K7FfywZuurbX6IXn0qBIUMK0MKMs/Rn4hSMvXbCLhT5ZUqtK7QEUrUSUQ1a6vIytzdJX29U1Zw2/HThhRuskX2SfSZ5pNWftuyUdTL6UquNZ6fKmGsNb6vnGktpmtuMnbdteTg6DdR2+PlhVZwFTEOk5b+r3Uq1yy38jaffY1gMWfZuUY9IuVbForMdKZmgT/hhtiymXSzphrRGGwW+eHTx+beYPbioq55ryk9fsmVNmHyXlL5PTGftnpw9afwHJDAAAgC/1GjdnOwv1R7m6y/iatPH7dwCR3U67Lus9akGWSKBcY3RyxvTSf7nUZ8TczUILH5W0Jm1Wcc1bhW1WsTsq7t7wUc345HYGt87/fOcWSUcwA6Uwb6wqcoj7vqKa0AZefO6rexMIlHSsYzPW9C5cLWXX28JjRTkfZLPZoM2ac+5w2QHlmnc89tBXc7FolOdJWJGjpXWQtnKea4twWXiby5nZKnrKpHiwMXkVAIYe/pTbsGJmD59EEAAAAPCl3mPn7+wePCepK9FAFd6Pxn8LRks31QkuOviKhZcRB6B0Dh05az0LbLqkLvmNX3H8AGMxzBPV/f06u+MkuQ0K+WHZTxmQffdnSfycp138zmiTjq/KvOFnvLLfPHjMeclNjiQpkOn2bPbFDvS9yri/9jz7pldXf0fkc2oMBUwWxRq2fH12s0++e4Wko8t3vZao3PcSffTq2e3OYsrleCctj+Tyo/yuIso88UOfPXnsYGYGpGcNFd015VUAaGb70CEKVt8ge4gwAAAAQJIOHLdgl9D9KUkdiUYF3rM1iZ/8kZCeaDq396hFY4gEEL8+42a2rfXaRyRtTTTKM8nn+6Mos3X5V0DlbgM33XzaiPc3S1IMT714xqmShhaUQxZVmxl5U0F5Q5tFPw95nsds5PWbWH2bq4g/d/RpXXehFH2qwgqYYup+d57x6C/ldlYxJ/aKzaEy7nZnCb2uss8PSS0WtQg/lhW9dmrhtY/63cmj92SGSfN8Z0XnVvTvsyLOV5r76BYXAB5ww3ubStqCblnwyPbMM6dtuIg4AAAA4MAx838UePg7mdYjGkCabuui+aogWfzMXlcsGEfjoswJ08K3WWwZGGvGupsta3WnJL58Tkublaq/l/yYZWqD9NYTrJ0Lw/v63fRSbRIuZuDF7xxjbtdUTt6kMYesdHmD+Mc6S3ybnZA9/7XetBhYp3FfVcqYJquAqTh3Dnl0H5du/N91WbRtEu/nqYbd7izefmBRt09SCxPLe6wEj/e1UnDf06eO5PeXFMxxyTpuuv8gouU7AIY1P62a/hDPpf6GBAYAAECvcfP2C8ynS2q/+oUjX5M2hsgAMd2vmg3pNXrh5UQCSR7T45sD4v9yqe/l84a7q0+1tUEi5u1K2MjGomyD9BZZldH3MnPWzZb7Ik69+N193f02sT1Tiuebxrp4SnPIqqzNyjUFuE8cOfzlTmQySpI3zDAVsV4s3eCd7F3a7hr86LZumiypNur8KfSjeFSf3Zr+D6UqdktWUWqZdruz/F/gBTdFHI+Tr5Sb8UYLZjeyXKu7Xc4MV5HzXmU/yrdQLS4A9EA/rZ7bqsiFgeqmEQYAAIDqdtD4efu46xFJ7YgGuB8tDe5cW9gdXOf0HrVwOJEAuRatvpfN29/dLik+pnH8AGMxzBNGHpA3CW2DInZRMZ0zIPvOD8r1mQaMeGtb83CSpFbkjfj5LgE3Dx5zXnKT8w1d6jIBu3VXwP21x1K4wYBYVZ0or34TQ3FeJLuplabP3nr2I+3DQL+RtHZy5hRLV+5HdAovURx5jHZhn90jufzSP0Y7z/j0+N3JY05ljimnIIHXVLnFgy2LtrvJtTeds2AvPnbqZnMJAwAAQPXqNWb+DyzUw5LaEA3wkz8SamTvKxadQRiAaBwxcsFWLt0vKcPIX4zovpjN90dR2qz8K6CEtEHgZrcMGTezbalP3C/7ZscgF0xVUT9gW1HplO9uNeRN+vKGNot+HvI8j9nU683184vPfe2ntAN39Glbd6EUfarCCpgsivO6Zeozt0n6VpQn9grLoViLRSN5ebJ3mIx3fkhWsWhkfaWZHbA93s8y6umTxm7FTJPG+c6Kzq3o32dFnC/+++gWFQAeeO2s7SV1pTsWvNiYShQAAACqV+/x8/b0FY/9XYNoxITvqJHIvpbCn4XMx/QavfB4GhplHZwj+iGgnAUQx2QXdQg994iK3nWiuqS7aKUydrKKrQ3Sv1bbetmSupGlPOGQcTPbtlJmqqQtKjdvKiOHKLhL8XxjKWkz8+smDJzRmpZDmtZpiH4+89S0dfn+2OauM6cPl+lnqz+PJeoR9oXGsbKKRS3efm1Rt081PEbbEtD3I+8I7SwT3japz6QM80m13AcWe9z0foHRogLAhoz2qrr+EKFMpmYKiQsAAFCdDrxy7vfCUI9JWrPla1y+VgVQvrtsc93Sa/SiwwkF4pacgonov1yqa5W7XbJtqr0NErGiqYQ/ErAo2yAtRVYJbDizQSV7FLC71S9Zfruk3ZktkjbWWQxdPKU5ZGlps4qw9UftPzubbEbsecMfV1bEerF0g3eyjnXHGdN/6u6XlKaAyQr6Tx7VZ7em/0Opit2SVZRapt3uLP8XlOox2uVfH1mSzrVnx47/4aknFTfvVe6jfAvVogJAc/9B1d5WFe/t6Sev/0/CAAAAUH0OHD//20Fgj0nqQDSiwR1IRd2P0m+SK2Pu9/a6fOFPCAXItfz97PJ5AyQdVo5B26M+Jj8Cx54H5E35Fz55tEHgslsGToh/F66BF789XNIR5E0jr2dsKnsORTfW0Zh5hP+87PBXeXxdqu+v4yjcIIeqrBPl0W9iKM6LfDe16Nw28LFOUni3pEzS2iS1+WrpimP5d0aMcX1s8TVwWotFCzmeu0Y81W/cDsw1qR9QuKYmBC07j/2ATllwGz1KEAAAAKpPrzELtwlCf0rSukQDq8dP/ki0Vgo0+dBRC7clFEDL9bli7g7mNkbSar+3q47isGTvZJXvj6LM1ulbMcX8GLGtcx9lhsZ5itMufruHy0bElkMWVRsYeUPeMA9FeMwWtEFrCzSB3k2epTOHEF8fSUkBU0uvt6B1iltQ63dJWj/Ofs9ud4Vdlxf8MdI2FqV8d00rQV+xlvRJizMurYMgd/tL/W6qZcZJ03xX+B8hxfc+S+yar9kCwH2u/8/mkrrRDQscx3Lh40QBAACguvQct3ADt9zjkjoSjVIuvgkBktjXPM0fc92c9NiBo+d3pdFR8sE5ojG9lD/M9srObqfQ7pfUlnZPR5ulYzFildNmlvaZ8Yvrd503IPv2lnEce0D27S3d7ddq6R/uV0TeVGcOsVto+rpdQtps/+z5r/2MRgOQ/Hm4dH9sc/sZ086UdECLzxP7I+yrYbe7aD+jx96tk7rbnUXQ39Jz31jeNfr/zvfdJbZkqMC8lsBrimKMavaLhIxnfkC7FTzoLm1fb38gsQAAAKrHQZd/vI4897ikTYgGgAqwaY2CR/tk569JKBCHwn5MT2aBSOtWmask+1aUx6ycNkOUXbT4Nojjr9Wr6i8x2krBdVEfdED2jTUD2UOS1iFvkj7WWTR5YxWQQ5aWNquc+ck8vCKbfaMVWYrY8sYqL28qaTFY+G5q+b2wVAVMxR7r1jOm7mSyy5S06807j6y0fUXl6CulmOfLtDNiAY+AT1bcio9jaYpFI7pu0/nPnDqG324q4abC4uxjVqb3Fqf5vyQM/AeVeZtUgm5q9ofJZ2y0lEgAAABUhz7jZra1VsunSNq++MUk62zuQJJ9f02/qaqk++7ytjapzyTPEAyQa6vXd+S8Q0x2UhIG7fwLIKJ/DFe1z3UUSSa54SyqNtvvlOy7vaO9sjY3eRT3EdUy3xh5Vu4cim6sM9osvzbYwhoaTiEOaU07iyhvoslLVObYHeujXYv4o5SoTcpOahVYcIekVlHEsVS73aXqHseSerDyHqssxXsW32dPa7FoEY91bWc5v5r5phLuTSrxmopT0+wrQv2QR2kVOHi4P0EUAAAAqsNeWa9Z6vPvl/QDooEW+lTyeZLmS7bQzRaYhwvc9Km5fSrTpxb6YkmfmAUNX91n5JbmgmCZma2dCVfcrYWeW8tkgSS5qYOZZdzVTq513HzdwG0dN60j93Vlto6kdSSt26J7QkCSZD2WvbvwSklnEAvgm/pkF6/rWn7D6lNHq3wr7crvK8Z8X5+QMUPRf70f3TGrow0qS6La7IuuaNKYPtk3Hp+c3a6u2EMOuPjt/nIdXbIciuzwjR+IPCNvmIfyP2aL28B1QTb7yp3Z7M4f09PJs/TkEFoS48L6SP7tVaq+uPrzNHO9Lfw4ny1Z83xJ35Y8os/T/InLG7fo8/Sr80SZ86seq8nP0+Sp87uu8o+x8cYx9mM18bLI+kozb19xnqZeFFlcDn725NE9977x7EeZj9Kwhvqq3QvN8+jf13RfLNd41OSPPT0mzOkUWsPWdL/CZDIZCgABAACqRPsO869zV28iUWbJ+o66QdJ7kv1THr4t2X/c7P1MJvd+XU3tf6YPWm9JOS+uzyTPfPreh+vXWsMmbsEmCm0jBeHGcttY8k1ltqlcPPY1kr5WGT+nmtmQ3qMWvjZlWMc76QAoyeAc0Zge9w+zYau6qwKpK+0cnTzaYJ5cb3tgc8x9tsvmyX2OzJYE7ovN7aN6yy1RTauclks1reoXN1gulKQ2y9uss+IQyxRmgox7poN72EEZ6+DyDhbaWhb42u7W2d27mamr5N0kW19Sm9IuRpL/I3yL2+yLj1IhhUbdO6rNaZLGFXOQAdn3vm0eXpXgPCvxaibROfSxpHfNNctNcyTNNfkCKZgfBp6TfIlLdcrZZzUKl1mmdmlQt/yzMPS6ZUFNmzatatp+daPQ0C7MZdqa59aywNaSq73JO7iCtWXe2VwbyNRZ7l0l6yqpHUWS5e92yckbX0/1NlzSMBoPQHLn4ZYdq5Cx8o4zH/2uXMPzudJvnCfG5XXzBUzRxLH8xaKrHGupXO/K/AOT5rk0z2VzAoWLQmlJ4PZJzuyjQFpiGeVWHDxcumx5sEwy1Vpd60zrVu3+d3TPtbYw065BvraF3t4Cb++htw9WrJs6u6zTivszdf7in05Nf+wV15u8YtHi+so3z5O24u1SX+8qf3hx9Z+GjHtmj/Fn8ERP5rWKuaYmCwDDmtxu4o9RCjVr+snr/5OEAgAAqHwHjZt3prv6EYmqNl/S3yS9bK7Xchb+q91nXd6anLW6pF7w5L6WkzTri3/+uMoL3O2gK+ZvlgmC7SXbLpTvaGbbSb6NpFqavGrd1GvUojenDlvvRUKBqBT2Y3oyCkT6XLbgIJf/IspjVm6bFXW69116XbK/Bwpfz5lm1Ne3entytvOnRXyMjwp94/HZ97oqaN3dzbc09y3d1F2yb0m+teLcXfdr3an4Nojjr9Wrb7cgk10wcOSMu685t/uCQt4/MDujQ07hJK2mqJQd9Mo6xv3XpDfc9He5/UOuf7dqCN+9/PJtF5Xrms499+9d6jI1m2cUbuEebBHIt/BA28q1naS2ZU6ExKR+NeWNSYMuPe/l68+/7Dv/IWsRed60aBcolGvArbQCpnxls8/WhEuW3mwFr7tLVOSYdx5Ff12x9BXXTJnekPnfFfo/FdjbDTl796hrj5pdzux4bOCE1p97+80yCjbzwDc3980l21zStyRtISmT/7iYR5s0+9I8d0Ys4/qo0P5Y6E5p5VuY2ubLluaGS7qQ+SU5c1xhb4urjxVz3PLcJDU5MZr7rm7xDRsVvmB+jigAAABUvl5j5h3irtHx3PP4FzcvSNgdSINkf5OHzyvQ84HV/O2RM9ebWXn33ObTpHe14p8pX/7rfjd57QdLPto6UMP35MEPJN9TUnf6TdVobfIHe45buOujZ3T8gHCgmnOtzxUfruVhw01lGKAV9aOpXCaL4DFcEfnc5S9K9qfA7YVluYYXJ2c3+jBJbX9HdrO5kuZK+r+v//vjs++1ydVkts+47Syzb8v1Pcm/rRb82MQcVcrOF80uKl+8fu2GuuBcSUMKuZJQwQ2WknVUIucbW3HLVOT8tFTSizJ7wc3/nKur//PVI3eYl7TPOnLFNc2T9MI35qI+ntls6ze3DILcju62o8t2Mfn3Ja1VihyKruAuyt2NqkabBgsulfQLQpG2qSuOR1oW/2g8VMj6Z5XdlmModivij1Ki+Owbf7JsoEk7xxHH0hQwRXis+O/TFsrsz+7+58DtzzWZpX859KoTPk5i1hx4zaDlkv79xT/fcPvxt7fpsIZ/KxME2yv07RXoO3LtKqlD9H0lxu9X/neZKSkWLUHcInis69m/7z/67h/fdPYM5h7m3ErQ9A6A0q4sEgvsJu6/JwoAAACVrdf4Bd/xMLxHUkA0Kloo6W/mesLMf79U/sKTZ3X9rFqDMbG/1Uv6xxf/3CpJvS+b10U1mT1d/kOZ9pD0XeXxl7VInfWDBj20V/a9Hz2X3WwZ4UDVTg65+tFmtkGzL1zNd4nVsUNRi79EdV8xzz4VKHh64Vqf/HH6oO7L09gn7lgxJr70xT+SpF+OWtA+rFu2p8l+4PIfSdpd7KRbkETlzde6t8lOHnDp2+OuP3/LvP4gZMDF7xwj19ER5FChFx777xwJHetCyf9qsicV+O/WVJsXsylez0yebDlJb37xz2RJymY9qNO/vhXmbA+X72nSTyRtWLnzTZlyKKZj5tMG5jr6kgteH33hiB3/zizB/JSOHEJLYlz+3bpKkSOF9a+bz35sQ2vwi1d3rLQWMBV3nuLzdKVi0Y/N9Ht3/527/e6ICUe8YXn9uUUynXDHCcskvfzFP5KkSX0mZVp1+exbZtrd3b4vhXtKtlWyxs4yHKsUO8A2cynNP/Uh0vmpdS6wKyQdzpxU+nkvvz5V/B87RP++5K2Vmt4B0LQrnbDgvvscQQAAAKhcPUYt2tDDhqmS1iAaib6PLNQiyaa76fFcXcOT089dfwGBbdyU87rMk/TgF//o0JFL1qvPLD/ATL0k7S9pbaJUYfswuHbt0LbDBInHnyMVY3rkGXv4pQt2MfMTKzTDS6FB0nNyezhjDQ/fdf5GFbuj6G3DOn0i6fEv/lG/K95Zq76+9b6hdKDJe0jqWnUz3So706ReG28ILpR0UkvfcHL2vU3Nw+vStjqJ/3F1sR1zmaQnXJqaa6h/NIk7/EUpm7VQX/3BzkRJOjf7z+095/u5bH+tKEZuw1RUWLdLWLFX4GF4nqQjaUAAyZyHo53Ta+r9apm1T/q9ZvMFTNFcbETFou+4+yOBB1M0157vO7lv7sv/cGQFTy9ffM6/f/HPzZL08IDbNlKgfaT//dO5mA5Uqsdol/6+KrljREHncx367Cljd9/7hjNfZPxnXivd/XY819RoAeB+17y/maROtFtBZj1x6kZvk0gAAACVab8r566RsYapkroRjYoyR9JDHoQPfvpJl98/l7UGQlKYh87tsEjSryX9ut9NXjtnyaIfyr2nTL3k2pLvDiqFn9T7ioV/mHJOx3vo9Sh1wuT7g0qkX7y7W3DFgmvcq3sH4IIKINxekPTrMOcP3JfttrAa4zbxnC0WS/qNpN/I3Y69bNauQehHyaxv02vLVR+5VnybNX2wUu0+UyEj3PH9R7wz+qYLtmj20VF9Jnkm+Oe7d+l/j2iNOM+YcL5UL9dTZrq/LggeuSbbfUk1B2Nk9ltfFgSOGzr0tTVq2tX2lHsfSQdKaltJ6+IqzJs+2eGvZ7OX7/hv0h6R5k0pdoFCwQNu8na7i7+A6bahj/1EoQ6Lpq+XqIAp79OUrLDqHTPd66FPOnLCkf8gr1Y45PpfzpR0u6TbXW5TBt76bVNwSOh+mEnbx9F8pXqMdvl3Fk30faK5h1dI2ossSMYcl6x7kXR9x9FoAaDV1Owq90jSufq6pfH4XwAAgErlbq3GLbhV8m+X6PZTctbZMd6BfGRuD0jhPd/5vPMLX+yWgQh98cjg333xzxm9Ry3YJQz8OHM7WtK6Ke03+OoG+MaDxyx6+ZGh6/2TYKCYXEtTbvYZueA4N+2eT6KUY3es/NvAZPF8qTnfXbdmanK33TOcP5j9ZjOa3yX9RdJfslk/81374MeZjB8tV19JHZjTyptDeY5dNZmcLpT0i+be0/lf754t6YckQETzjWnlB9P926VbGuqDu665vDu7eK/GmDE7fSbpAUkPfFUMqJ9rxa6kmbhziMLWyAVBJjyvJeMPkjR15ZdD5E1lyUkt+EuiItYqq+y2HG/xQjwFTN+UzWYDfRKMlcKokzGPzxNtcZ7LS/g4VUnShya7J5Tde9TVP/szmdhcWM11jV6R9Iqki6YOur17GPqhkveRtEvZ7kH+d4joi0WT9XjrYo7Xstis9L4f/+6UKw/6yQ1nTaP3V+P3BnHNk6UvHmy8ANB9V6eXFDjIhBQAAgAAVKhe4+af6dIRRCLVGmR63KU7c60WT50+qPtySZpCXEpiyrBOL0l6qceEGUNrlnXoKQXHSerR1P0pEm0Nz/mk/a6c+70nz+r6GeFApetzxYdredhwRd5vXO1TZlL2Q26+31u6/dECu/7D9p/89su5Fo374o8QnpX07IDs/CHLgrqj3fxkSTsTncKVNs/syFOyb110Q3ardxt7xcnZt7eX66L4Ei/PY5bg94gStUG9mX4r03Vjs1s/T89vua8XA5533psbNAS5E1z+y0DarPTzUyoeJ12SxMk7b1xHZs/528XZK75LoX1VzDeV1d+RthgXtiv16vt8yw+y0eLvnSBr6o+xk7ozYinGlmav94+STVy6+NNJJ9xxwjJyrjC9JpwwQ9JoSaMfHnjbtyQdKw9/brIN4s3rCItFSzIslWoXy+jHTne/PJvNTs9ms2wQUMIOlt94+tV7k/PHDsmaxxv9gSWUduWvQwodHcI/EQQAAIDK03Ps3J+6dAWRSN195Jdmm/xmhcHEKcM6zSZI5fVFMchvJf2292XzuoQ1wbGBaZBLG1bwzaIqdB+G7drkaq6XdBw9GyUc00uTsabWP7t8fp///buw/mDJulRVhucndNkjCuzK+87t8gLhKMz12c6fSpooaeIJl8z8nkynS+qrFu/MlYKZbpWdaVI4k646NtWYMmdJOmV1L89mn62ZL7tdUus0r06K/QE/4sH/Q0kTa4LgutHZ7rMYPYpz2WVbfyDp0mzWR9aFb+zrbkMl7cOaI668iTSHaoJMZrikX9GTgWr+9iC5u93lfyzf5vYzpvf52r8Y4XGsOWK811wR2/jj2Egb1rl0fxCG44685sjXyKhoHXLNL/8p6ZxJfSad17brJz8NQ51k5odoNbU3SXqMdhQdPrKdRb/x9lWPFe993+qv3WQ7/GhOu59LuoteXrkL/UL7Vjzvi34SWv253G3/G2Z9KGntKA5XllVR+Sz+/oIN1uXRYQAAAJXlwDGzNwks85KkjqVf31JOUNAdyFf3Bc+56bpu7Ts98sXjaJFQ/W7y2jkfLzpSgZ8p105l6Tex34NWdD4fP2VYxzvpyelx8BWLXpHr26XNNS92TF/NezyGDPSCMtaaOp4XPyJYnoNP/sf3vMa7rx0/59I9YZAb+cC5G75FdkXvuBH/3SIwO1vux0lq/fUN3IrPTY+4H7UwL/P6DB5R3jT/ufM6vq+Sl8saajObTzxv0zkrv/SUi98Zbq6R+beZR/iZV/PZPaqYesR9qMljzpfbmOVB/Q3XZ7f7lBEiPudm3/i2N2ioTH0l1Tabl56AvGx5P1r96z0BeVlY3tSHOd8qe8XO79Nzo3flOX8+NLTgwbza2ItcdxWUBzHMl17Q+B4OGbV7hp6zetcO+8ORQWj3NT/2eQH3K97IOssL6Ive9H2I5zPmeovWD9bEOZpfZ3qL17rW7H2aF5Bj3vi62POdSzyve0D7Kk8XS7oxE/g1fcf3/YBsK52HB9y2URD4AMlPkmu9vNswn/zxlqwdvKB8X/16yPNcYzXft62Zc7TsvjK/fGzhdz7/WVbbeusDrxnEUwwi8nz/i56R9JP81r0FtrsX3O4t6jP53sO07L5hpViYrt7tpisHFxrv1e4AeMCN72/iqlk7/8Pxt84m/zPFfwAAAJWlz7iZbZd65kGVo/hPkswpAsz/DiQ06UG3YPTUoR3/SqTS4YsCzbvlfk+vKz/cV8oNlWzfEvYbFBfYCb2u/PgPU89a+z2CgUJyrbJzMx2PZCugzUJzTQoUZu+5YIM36fXxufOCjd+R1P/YS2dekgl1tuQnS2pVPXNacnNopTZoU1PfcIaks77+mlMvmbGdhyse/cs6pCjz5bris6D9TRMv7vY54YjfyOx2r0r6+TnZf51vDeGFMh2r/+1GWngOsUaIRa0FdoakQYQiDjWS8vzpr9kUyS+H4s4b8iyJ90pFrFVW2W053m3Vo+8/ee12F3kcS7UzYlSPdnXTJwptQk0mHNd3fN8PybDSO+T6X86UNHzSkEmXtK1bcoxLwyRtGUsf+t8hot9hMlmPty7meC2LzWquY5PW9cuPlXQzvbravjeIa54s7WNNgtV29FxmJzpHwXi8CQAAQIVZ6rXXSvoOkUgDr5N8oofaZspZnftQ/JfWe3XzqWev9+TUszvvl5PvLNlvlfevLSh9u6mDhfV395nk7PQArD5HVp218p3lYn59s1/B2zf+v8+EYfCdey9Y/yiK/0rnrvM3+uD2Czc6PTR9S6YHVO5noaRhdRh73qycJHbSL0f9u/2X/yab9cDDzM0q+NG/cfwEZ/EePvo2+NRMF9cu9S3HX7L1+IlZiv9K7Yrstu9fful2v1Qmt71Jk9Xsni0RTpZVc8zi88ZMx2ezL3agx1bDfFNZ/R2Wzuu1KPq8RRgaizC3rEw5nPd5lprZqPr6zGZHT/jZ+RT/lV/f8X2X9rruxFuWzV9rG3P/uaR/RdEfvUxpXv4xzUo+dpp09qQ+k/hus4QdrNA9kT2hn6ecgtX/W6MAsPBJ+EWiAAAAUDl6jpl3jGS/JBKJVy/plpxyW00d2qX/o2d3nkFIKsNjZ3d+derZHX8WWmYnSQ8o9YWAlV6nYXsuf3/RcHouou9a6cjYKqnEelOy3veev/4+D1zY5TU6Z3ncecHG79x+wcZHuvQ9uZ5P80yX6jxb/di0VutlrY798n/M07v9JP9+Ja1OontIa3PxtZyb3xTW1245Lrt1dvTobT4h+8vr8uyO/x45Yru+rmBXVepmCFbKvIk8h9oH9a35/gKoEIWteSzC85SqiKfMN4cWdxvG8tldpnssqNn6qPGHn3PcdYctImOSpe/kvrle1/f79cudPtg+NOtr8n8mY8ywCM9jEeaeFfh5Ykn8LTut958+9OLKXeh7rDmW7/uinYSCRv79jjR+YW23vK6BAkAAAIAKceDYBVvJdAORSLScue7KhL7t1KGdT3psaLf/EJLKNO2sdf8x9exORwZBsIOkeyXlEvbdAf53Z6wLe12+cFcCgdIljOXRPVFElD836Zz2nbrucN/5XacSkWS448KN/3rbhRv9SG4nSvowjhzyNA0HSckX94FytwHZ97qadHnxU2u8r0/ooPOCy3a7KrvNyVeP3Hwe2Z4sV4zY9m+Xj/jWnib/lWQLkpjXVVzEf1o26wG9FEnMM0S5DqrK3e5iOE+JChMt0rP80Uy7HT3+Z784atwhM0mmZMtms+HB1544eY1Os3dyt5MlzWu8T8bfH8tfWJya+e0cl/ONb3onySq5plU1dhOwU1HpUL2xf/u5IZt9TEICAACk317Z99oEHj4gqX0y7i/4WnU1dx5PhUG485SzOh/38Nld3iEi1eGRoev9c+rZnY4J3XaQNLWI/oP41Fqgu3tlZ7cjFEjvTmDV+whCX/2/fCwMtN29560/amJ/q6dnJ4yZ33bRRrfWh3XbyuzuZMyB1ZVDq4np1gMufmd/Vzhe0tqsQ/JqkkUynTA+233Pq7LdXyYgiW4sHzlih9u8Pre1zG/Kt2uzy25s7bJFpuH1nsQhIXNbmX8rjiTPKH9IX79b6a2lLaqrhgImK0GervYcH0o66cirDv/hUeN/9hK5kS57Z7MNva8/8aZwadBdCi6V9Hk06ZHSR4gn/ly+07OnjDmQnpvG7lXdxYOrFAD2vnVBe0mb0zsKwhcSAAAAFWLN9u3GyPRtIpFI/3a3ntOGdt7vsTO6/p1wVKdpwzr+a+rZnXqb6ycm/Y2IJM7W1rZ2BGEAohd/wcQ3vphcZLKj7jt//YPuH77++0Q/2e7Objn/tgs2OtY87KlGdpYgb+LKm9XlUHCdSUdG8wli/sEgKb+RmD1Qo+BbV2W3uoO/gEqPK67Y8aPLL9nhZJnvL2lmMjtkdVQwfZk07j6InpmWNrOC2pgcqs71SbLa0SI8pKW2r3qJrtelu2tyuW2OvurwW4w1UqodfNuvPul13YkXqMa3lXxqssaMlXYWtXj7tkefJxHmsUnuw+mx1XATGtU1JePzrFIAWFe/fHs1vjMgmm5UCgABAAAqQK+x8w6XdCqRSJxP3G3InPaddpx2VqdphAOSNGVYp2e/83nH3czsF5L+S0QSdY98+sFXLvwecUB0XSodl+l5foYE/3oztaE2s/2953W9n86XLrdetOm0+rBuR8keTcs1p3onsEbHJk/4H9lbDG1ghY6Nc9zs4Kuy3Y8ck91yPlmcTiMv2eGpXN2yHeS6g4VJoWNXcXn5NT/Jnvva9vTK5M9nQHNjSmXtdmeFfR4rVy4mojBxjrv1Ouaqw4/te03fBeRJ5eh1df//9rquf29zO1zSB1H1oVIVikf2GG1r+ro81s/S7Hv3fKb/mB/RW5O4hrIixnsrap6I533RzTerFPqFHm5L9yp4jKAAEAAAIOV6jlu4gUsTiUTSltp6MJfLfGvaWZ2u+huPHsRKslkLp5zV8Z42Ncu2MdfFkpaXo5PG/1VB6mQ81K19st6KXooiEibyY/LIwWZ9JtMv7ztv/d6Tz+48l/6aTit2A9ywt5sGtGxetPLkDRsKMXaZP5KR73h1tvsUWjn9Ro3aZfHIy7Y/wdyPlPRJavPMUp9nZgoH0CORxPkJUa6DLMI2sMS0dVkKmCy+Ri14NzXX/bWW2/7nVx/2KMlSuXpef9KD4dLMtjJdu6K7VMNjtNMjsHAwvTS1k2SVXNNKfXbVTLRtKmK5V47YtwopAAQAAEgzd5PnbpO0bjLvearva1WX3ne3nlOHdj58+rD1ZtFJ0ZTJZ2y0dMqwTllz7STp2RTcuVaD7Za1WXgeYajy6TVhr89j4q3GY75uFu5y37nr307PrQBmfvsFG99ggf1IK+0qUZo5sLpyiOLivMP+mbv3uyq79SFjs1svJGEry2WX7fCA58LdXHojTWuKypoC7KhxQ/7Ult6YhnkoBWtxCvbT2++sHP2NAqYiz/OJmx9zzNWHH9V3fN8P6f+V7+DbfvVJr2v7DVSg/dSi3QBX7tJpG6QtNedyqdezJ47akF6atu5VvcWDwar/wrehVxTk/SdO3IhJGAAAIMV6jlswQNJ+RCIR3OQTMznjcb/I25Rhnd6celbHn5rb8ZL4QbnMzOycg6/4cAciAUQ4Scbyer+xTf3S7913brd/E+HKcuv5G/0lDHO7mPR/5E18r19p9otjRo15wi7p6uAty9n3rr5k65vJ0Mp1+eU7/rt+We57ku7NP88s7Z08CWPd2p+0W+MQemISboiaazMrtI0rax5ifVKi88RQnGdJ619W0sT2KK/X7RWF4Xd/Pv7we8mO6tPzmn5P17QKdpR8UvnGjJV2FrV4c9EjzutoH89qklTjNepH76yIm9ASXFP5P0+wmoUmBYCFDQuvEgMAAID0OnDsgq0kH00kEmGWy3tMHdql/5RhnT4hHCjsftt8yrCOd9Y0tN7G5HcRkLJq5UF4azbrAaFA8bmdjsv0PD9DmXco+lxmx95/3vqn3JHdbBmdrDLdkd1sbqbL/J+a/JZU5o0SlzepHJuau/Bo2sCaeb09nDPtOn5E9zfIzMo3ZsxOn428dLufS5ZVRW7IF8duUsXl5TeP5CfQC5M/nwHNjSnl3+0u2uI8L83HKdmjkaM6lrtdX7fOx3scM+FnM8iF6nXA+BM/7HndyUe4+3GSPiukP5blMdqRpYYVvXaKPsftpEl9sq3onUlbQxVTiG1FzRPxvC+a+eYbX773mDCjtaTN6FoFNJbZP4gCAABAOu2V9ZqMhXdJakc0ys3ursnU7jBtaJcniAWi8NC5HRZNObvzcVL4M8kXxdt9S/FVQVpvmrXry20X8hezKDRhIj8mjxD8n3c8Y3vcf26Xu+mTlW9i/13qb71wk5PkfnEhORRb3rChUHWMXaacuZ971cVbHnZNtvsSWrOq5nwfeel2F8t0vKS61OSZpTDPVvXT7LCXNqYPImnzEzIRroMswjawxLR1WQqYIluTWr5zy1KTH/vzqw899YTsCfxBFiRJva4/+S4zfV+uGXHkdaU9RjtmXTut2+5QemV8c0u6vixI9hcY3ygADINWW0qqqZjlXgljH4TGXywCAACkVPsO88911/fScb9UmV+rmrTY3I55dGinYx8ess7H9EpEberZXX5rbjua2RMJu3OtGi67rNeYJR2JRLW2f7Jen9cMlYpjFmRaECzf9YFzurxGD60ut120SdbMT3YpV5JVXhUdk+LiRi1UqB5XXbL15RV7Q4NmjRyx/V0KdIBki8mzkgmCoOZYel/FruVKmzcU7Ke331k5+lv8O+dVRAGT6b1MEOx5zFWH8wdZWMVB1/b/e+sG7SrZI8136bQN0paqc7n5AHpk2rpXdRYPfvPxO5mAx/8WKMzk2AEQAAAghQ4cN3cHd51HJMrqT/Jw56lndbqXUCBOU4Z1mj1l6Ho9zG2gpKVEpLRMWtdyy68gEkA0fOUMa/nrQ8my29R36X3v8E0+IpLV6dYLNrlJbn2Ugt244sub6F+vPPMyGceMfQXwkizz3asv2eopMg8jL9n+2dB8X0kfNZ9n5FA0H9mPdzmlWwm4GWp6vsmviZz+XtXrk+LPE0NxnpUgUdKW2M17Ilfnux417uBXyAI0Zt+J/RcfdN1Jh5r8gi/T2EvUtz2Srh7lzqJRPgK5pe/78pz2o2dPvnJ7emQix1LuGb7mGwWAHjoFgIWpX2u9T94iDAAAAOnSZ5JnArdbJLUiGmXhkq749NNOP556Vtf3CAdKc/9uPmVYx2tDy+xmLu7jSt8AJ/QatWh34oBqmeQaT4U8Xx+dxYF5r/vP63JxNmshrVTdbrtoo4dkOkJSfSryRmXLmxZOcamdm4v6DE3+UGaattTW+PHV2S3+S8bhS1eM2P6vodlPJS2qkPVtDGOdRTc2mm1x2Xl//yE9rzgNaZ6fmOwqIsbl3+0u2rb32D9OUh+NbJLk5j6y1Qf1Bx133WGL6PNovteYH3TdyZdKdrRky6PLsYgfox1jmnkJPkvznzU8id6YtO8ErOi1V/Tvs7KuEYNv3gcEW9ClChqR3prcd7s64gAAAJAuS2fOP13SbkSiLD52s0MeHdp5+HNZayAcKLVpZ637j/q2wa6SHo729jCarwoqWGDy6/pM8gy9EAV/QWvRHLMKHyE422Q/uvfc9R+j7+FLt16w8cNmdqRaWAQYW95QTxCbso11ptvX0QeHTMx2+5xWwMquGLHdKwr9J5ItSHTeWInzJiY5D/vS65C0+QbFFeCv7liemraOcheviAuYLPa4feLSYcdcfdh5fSf3zZEHyEfP6/rd7659lPcfUcT/SO7YxsdSj8dNv+7IZ7PZGnpiGto07muyxMYpWGnq2Yy+VNCU/QZJCwAAkC4HjZ+3uaRL0rnGTf3Xqq8FgXaddmanKfRElNP0QestmXpWx8Pkdq4kvngtne8sf28hfzWLZiWnQK8SHkFob1rge953XpfX6VlY2S0XbPSgmR8tqSE9/b1yKgYrsRjZTZdfne3+q2x2b/7QB40aOXKH1xXaAZItJm9iXgVIh2WzHtDrqnseiiRvKNivgi6b1EIhS1X+NHK98yzwvX9x1aEP0yFRqF7X93/eFOwh6d1i86T8RcOlzOtIztXZ57Tbj16YkjWXJXXhEu81rbzg37zc02FKvUniAQAApIi7WaiJktYgGCW/vZlsnzbsMeWMzm8TDSSjU5pPGdbxcjM7QNJCAlKywF/cY8KiDsShyqZfQhBzTBv9EvHFoD73g/uHr/8+EUNjbrlgk9+4dFJ1p2o0j9xrYV5WqtDdBk3Idj+3Ev5qCfEbOfJbL7vlDnbZ0nzyMo5cr3Dr19T//Qf0uEROM1+bP+Io3KBir7LulRL0uM7VXZeV/t6vVI9GjuBYb+dqfM9jxh76N3o7inXQdf3earD6H0r2r/iG+pV2FrV488QjzrloH+v6jR1bf04PLMMiiWtqsf8VAPaZ9EYrSRvQuQoaCWYQBAAAgBTdJI9bcIKknxKJ0q6aXX7J1DM7HTGVx4AhgR45q+PTyvn3ZaI4tTQ6t/rchxEGVPzk19R/tDxfX9j5p7VqpX3uy3ajwBnNuu3Cje9waWhF5Zniz7Pm8jodJynuMYS+4n3L5TpywiVbXkM2IR+Xj9jx9+Z+hKQU7xhpheVNHscsaqwzKefhz+htFTTfpKy/I5oYl6rYrVS7dXkh57D8P7uXqN83cZ6XPBPuefyVh75D30ZUDr524GwLan8s1yvFzUMJKiy2gnOslPPTwc//clR7emCS1lxW9Nor+vdZ2daI/ysA/PjDDptIytCdCghiQAEgAABAWhx67az1zH00kSippTIdNW1ol4tk7ASC5JoyvPPb9fUNe5j8haIOlNf3TdWbEm4acvDYRRvR86qdxfA2iy0D05Wxdsf8+i6H3H1W18/oZ2ip2y7ceJzcL4t0vM8zr1ksxjDnxj/WLQul3ldf0n0y0UYhLrts+6kmOy2ReWOx5U2pV1yH8xhgJG2+QXofkeslut6yFDBFGEozPdF6ed3ex445bD79HVE78JpfLqhr1fonJr2QtDEibWNaHudrV1drh9L70tCmcV9TXJ8niObdGffN6UuFqQspAAQAAEiL+uW1l8u0XvrXuKn5WnWhWfiTR8/s/AC9D2kw/dz1F7SqWf5TmT9INGLX1uv9UsKApiSnQC9djyA0+Y0PnNv5l89lrYFehHzdetGm57v5fdHmGY/xTMdYV5A6d//ZNdnuT5I9KMall253k6SbqyRvyqFbTf1rexCG6p6HIskbNgBMdHfySM6R1MJES1X+mHT3Z5/O69X3+r6f0sERl0OvOuFjBXUHmPRyIXlSaTuLlmIMMR4DnJ5J0pK6cInvmv5XAOgebJaM6TB1q+UPnzltw0UkHQAAQPL1HDdnN0m/IhKlWirr/SBnP5h6ZtcXiQbSZPIZGy39zmed+rjbBKIRM9PPe41e8B0CUVVzA2KNqcmk27ap73oqu+6iGDW5VidK9lo1TkxRjF3egmNWSLjqA7Mjrrlkq2lkDaKwZHHrgZK/qGrJoRLLufMY4GROM1+bP+Io3CCHKuteKUGP61zddVnp7/3K/8cpqx7Lza85ZvzBx/Wf2L+eno24HXjNoCX1tZkD5Yr4MdMrPUbbos2TwnPZYhwbmn88uUs/efK0Ud3oeSVeJHFNLfJVAaAqeAfAOBcVpreIAgAAQPJlsx6Y23Uqdg9ttNRrDRnbY8qwTm8SCqRzzLBw6rCOp7vbZUQjVkHgxmPZUb1W812iF3e4e7ap73JSNmshwUUxJma7fW4WHiopFX/4XH07gcW8o6K16OU5ST+/Krvlw2QMonLNNd2X19bUHi5pbqpzKIljnUkmO4RexnyTlv4Oi7BPWex9Pdqcsgg/jkX4eVpawOTX/2Lcwaeb+IMslM7BV580z2psf0nzyjGmJ6fgtyTzUybTYAfT65K05rKi+2L07yvPWulrP37aRnSjQgJo7xAFAACA5Ptb+/knuWwXIlESzy9rqPnxE0M6zSEUSLupwzqeL1M27zfmdY9f3d8Ju/TTQy5fsBe9rZpZSd9WbAYm9Ydfk0/Kde98PMV/iMotF2z6npsdLSksWZ5ZBcyMFVIT0UwbhCYdPyHbfRKZgqhls9vM9tB+maihwCLJmwJeH/mAssmI8/+2Lb0MYOGQjOuNcheviAuYCj/cxJ+PP/g0iv9QDgde0/+d0OxAlz4tdG1S9jHCyjk+Wh6vpACwcua88lxTXLkZfPWxfAP6UgENY/4fEhUAACDZeo2Z3dFd7OJVmoX3M3UeHvD0OesuJhaoFFPO6nSxmZ9PJOITBhpBFNCYwn5MT+fOPkV4uEPHLj+f3Ndy9BhE6bYLNn5S8quKzcsU5FBKx7r4Xt9EM7qbTro62/0eWg1xGTlyu+kun5i2PEvHwjtzAD0MReeBVVnelIpFc4DS7nZXiWvAgq/31nfXeuUUiv9QTr2u6/+yTCfl07fLv7NoGu8Tfa/HBk7oQI9LwdhsCbymGC/sawWAirEAsHLnOZcoAAQAAEj8vUHmEpnWq7zPlax1tknTPv30055PntX1MzodKs0jZ3W+TLJhRCK2EeQHB1+xaH/iUB34NWSl2bP4eE4P6xceMbG/1RNPxCEX+nmS3qjUHGrpMYsrHKqc4keTzr8m2/02MgNxa1UTDJX0TpR5CclNFACWex6yaI+Z7+5o5E0l3CtZ0V3W41yjWJzjdEILmNzueHetV/pls1l2Y0fZ9bzulPvN7aoocy55hcWF5mwxO49+472t29QvZ01Vyeu1lN7LrygAdDeXutHwBQQwF1IACAAAkGAHj5nzLVdjf/WGyG6mzR5p82mnw57LbraMaKBSTTm742i5LiYSMY0jgY+QO9tDofqspte39Etvd72ieus7ObtdHYFEXO7IbrYsDP1YSYkuMq2+nb1iLn5c3eHN77w6230kWYFSyGa3+1TuxyqCx5CXJYeSONaZJNePstmX2tHDmJ/S0N9R3uJnL1Gf8EKOZflfV1wFTCbd0+aDZSdS/Ick6ZyzsyX9X+T5m4Chv/mnPpTqIr03PS3q+cSKmIeK/2OHUhWtxymQpF4T56wnqQ1dL3+haigABAAASPJ6LbDRkmqIRKymt/ukY9/JWaP4ABVvyrBOWUk3Rn+Pzz4Mcu3ae/TCXgSiWiXxUR7RZWxMGf6BlOk1Odv5U/oP4nZ7dtOXJV1akryxCpgZK6QmYqU2+MO6qu9HNqCULrtshz/JdUua8jr6NULkA0qbzPLMXvSu0q0DgWQsHIxj5ZvfLTicu01pPWvZ8X0n983Rj5Eku0zsX59pCI6QNL/0RcMWYSqX+sYqr/Md+FK/m2rpbZVws2wR9f3yrykDSarzcAP6UmFtslZ9jgJAAACAhDpo/Lx93O0gIhHrrf3v2gbLD6f4D9Wk9aYdT5PZb4hEHIJL2AUQkcxOkvL5IqjQv0Yuo89MQe/J53f8gNZGqbRbu26UpBn5500icyjBY1dyXv+1ZpuRq2s4LMtuoyiDMMycK+nDtORZKmJqxiPrUHweWHXlTclYNAdI3uM6y1NcEXNDvGQ1rY6m+A9JdcDE/nNC08kt6dtlf4x2Ou8T11kcLPkhPS0Fk6Ql8JpiurBgxWG9BAWAFbncmz/5jI2WkmgAAADJk816YKHGVP49T/nW2W76Y517b9bEqDaT+1quvvVHP5f0LNGIfGTZqdfoRQcThypo6Zhfn7LJPN83hOZ+zAPndXqZnoRSumZQ9+XufnoF5FDBx6zSsevDnIKe112+7SKyAOVw+eXbLpL5eeV+FGaFrTwoACz3PGTRHtPzPCl5Uwn3SlZ0l41st65mLq9Uj1QscQHT+7maTK9jx+z/GT0WSdbrulMecunXUeRc8gqLCx1TrcD3re69PAa4otdrsX7nEI9AkjynDWjwgvBX1gAAAAn11/YLjpe0E5GIzT9qg9qeT57VlS+6UJWmD+q+vL5NcIjJ/0E0omXSeUQB1djxV9bEl95nP3B+10cIGsrhtos2nS5pSlKvL9kFepa+Y5rq5Paz67JbvEXvRzm99e9/3Sz5y9WblxGOdSsur3t22Esb07OYn9LQ32Gp6ruFXq8XcizL/7oiKmD6OAjCg0648qC59E+kQc3y2kGSZkeWvwkY+pt/6kNpLtJc+9DDop5PrIh5qPg/dihV0XpcghX/r3elyxVkDiEAAABInl43zW5n8hFEIrY72//mcpkeDw9Z52OCgWo2fdB6S0ILe0taGM09PvswfGGXXld82IMwVOUEU9K3FascP+SaNHHSeV3G0ldQ1kw1HyxpWax5YxUwM1ZETYSfNeGSLdnxGGU3eXLfnAfB2WnJ6+jXCDE8HiyT+QE9q3TrQCAZfTDKsaRyj+VNH67O3A//+dhD/kkvRFoccOuJH4bu/Uo7NlmEqVzqGyvL56XfenbAaGqtKuJmuTyPqo96TbmiADC0znSygjrBbGIAAACQPP5J5jRJ3YhELLdBi4NQvaYPW28W0QCkqWd1fc9DP1RSHdGIcqwJLyQKKHo98OXMldfrWzgbluXz+Eth/cKBtCzK7ZYLNn3PpBvzy5vy51Blj3XRv96kR6+5qPs1RBhJMfKS7Z6R9FyS8yZlYwcFgEDC7oKjWyol9XGd5SmuiPCzu2T9jr2q9+/or0ibnjcMmCbZw03lYokfo10p94kW5rQ3PaysYzPX9DUrHgFs1rFktxQVFXtna18AAICE6TFhUQdJZ1fVh7aSrbOXh6F6TTmry+v0NOArU8/p/Ly7DSESkdq956iFPyUMlY0f378xmTf3go/DwI6YnN2OYmMkQyZ3haTPUpRDZTtmOsc6e7++datjZcYmV0iU0Fb/RyJ01PwFsh8ShTLPGRbtMeOeb7xU0y/yaB8rust6iRqzVI9UjLOAyd1GHje+5530TqR2HeXhmSpwJ/doC4tLP2Z4pBOYrfw/f0LvSstSLcJ2T9j3Dl+t8SWZeSdavICBwnkEMAAAQNJk6huGyLQekYjhVsR08rSzO/8fkQBWNXVYx+tduolIRDXgSOY6n0Cg2vr9yvyr/8+Jvx3e5V2ChKS45bzN50m6rhI+S2kL9JJbqPg19UEQHnnD8E0+oqcjaS4fsdP/yfVUwnMoFWOdS9tls2+sS6+q1Pkm1fMQUh9jK+iyPfbPXlQB09PtPvj8Ivoi0qznDQPelWtc+YelpD5CvLC52EQBYPRrG4tkTZScPxIq3TwefPHJKQAsKHoBBYAAAAAJcui1s9aTdAaRiOUmZfTUMzvfQRyAxrX5vOMgSX8t7ijsX/K/UUfaq9eoRbsTCbS0w5RDKX7INfNrJ53f5bc0MpImE9ZeKemTpOVNombSFNZEmPycqy/c6s/0cCRYNvl5HeXj8FZ/TC/+M1hmeQOPAebODVXXB5P6uE6L8G2RL8Bm5RoyR/ed3DdHr0PatbXwckmz47yBiWxnUWv6urywASKOMWnzZ0++fFN6V1Julotv91IXHEa5pgy++L8UABYgo5BHAAMAACRIw/LasyR1IBJR8ym7fNpxOHEAmjY5a3W5XHikpI+/8R/YEKFg5n4mUai6Vo92BsvzmAn8IfflJWt+MpR+gSSamO22UK7rY/vxmfkztrGriR/yp064aMvxRBRJdtllO/xJ0ovJyZvUrClWEZooAAQSNXdbhOugKB/XaQV+nugXeKV//KjVB2ZH/PKaAxfQa1EJ9r7+1E/d/fxyPEY7beuk/D5Phl0AS8q4pkYEcjdJHcu9pEll7BtCJnsAAICEOHD0/K4uDazee57Y1tlv5lrV/CKbtZBeBjRv2vAu77rCE4lEZA7tdeXHmxGGypXeH9NL8vi0JQrsiOmDui+npyC5S9DMtZLqqygvK3asc+mDGrU6XmZsaoU0LCCuSu4aIVWB/CExKPOcYdEesyyFrRTsl/leyYrusl6ixvQS5VykBUzmZ/1iXM8/0RtRSdp1mX+3XO8k436r8XNEPWZ4jJ/HXXvTs9KyVKvs4sHgoBv+u7akWlo7f0tzuUVEAQAAIBkygQ+V1I5IROpTC3KHTx+03hJCAbTc1LO7/NZk1xCJIq347iNjuYbTCQaqrN9Lktw1YPLwzm8TFCTZLdkNZ0k2Oe2fo7QFesksVDTzU8ZnN/qQXo00qK1d+FuT/pukHErjWGfSd7LZN1rRoyp1vknXPIRKi7FFeNnRP2q4hbk1+bixva6m76HS7J3NNrj8sqLnMktWXpd27raV7qX0fXpW1Gsbi2RNFO1ayhLbT78U1AVBR7pZQeqfG7zpYsIAAABQfvuPm7mum/oRiYiZTpx6xvpvEAggf3VtPjpLrleIRCR+dcj4j9YmDGjBvFUW8fyQa1N/c36XX9OoSINAq+7EVZ68Kfz1lTg25XeJfu81F3WfSm9GWmSzezeE0rXJzus4HocXzQ+hXztUK9U1bE+PKt06EEhGH4xyfIq2iMdL83GaP6T5mw01uV/Rw1Cpmt4FsPikimxnUWv6ujzWASKv927+bL8x1F0l5ma5+HYvdcFhVGvKQPK16FgF+ZDHIQAAACRDrWoHSGpPJCJ19aNndn6AMACFmT6o+/JckDlW0opHd+b1vQO3mitZM1yeo8i7qkT7BaDnecwEZOBieXAK/QBpcfOFG//VpT+mYDioaEUUSS6oVchuu0idVjXBrZKWlSlvKmZVH0jfoTcBSZq7LcJ1UHFFDPkuyjzCYxV/nqLOUZ/L6ehfjT74E3opKtWKXQB1WXTrF4spl1PD3MLd6FklDTnXtLq1vXnQISlLmlTF3p3H/wIAACRAr5tmt5PbQCIhKaq/TzG9nGu1eBgBBYoz7ax1/2GyLJGIxMC9sl5DGCpTen9Mj+fxaS4fOvn8jh/QM5CyTL4+KTlUrWNjEREbNDa79UL6MNImm93uQ5OmJHONkKaxJqQAsMrnoUjW4hTsl7mvWGq6rJcojkUVMJku/+VVvV6mj6LSdcll7pGUwO8eLJXncnMKAFcrSGD3qtziwSBgB8ACE9gWEAUAAIDyCz+p+ZWkzkQiMp+ZB8dMH9R9OaEAirfz5+uNlul5IlGgr7772LB96w8PJiCoAs/+5twutxIGpM2SNTMPSfo4zZ8h30fbFVcwkYziR5M/OiG75f30YKQ4c+8sZw5VxlhnO9OPEnPP00ibWZFtXKr+ThVgadcncZ0nhsJES1H/Mr3arv3nl9HzUA12mdi/3kw3FpKLHklqln5n0Wgfz/rNcwYSBYBVsbawRH+eQCEFgIU1jX9EFAAAAMprr6zXmPkQIhHhOtd02tShHf9NJIBoZLMWKtSJkpYSjWLHJz+ZKKD5jpKOy2zkS+fPQvMTZcYGRkidyWdstNRNk8uQN5G9vgrHpo9D5frTe5Fmb7757ydcPruSFiae5zG9yMszaads9ll22q7W+QkVcbNT/sd1WllzKv9LaPTRyHVmueP6ZvvW0ddQLYKcTZS0PI68jqyw2Jq+Lo92gCji89puLqcaPsa1kBfYcTzR1xntGrFGgXVgtVnAOOO2mCgA6dYn+0arzzuvuQaRAFASeawcPlseLn0uu9kygta89h3m9XW3zYhEZDdekx49s/MdnsplTwAAgABJREFURAKI1pRhnd7sPWrBRTKNbvn9t4sdFFbx00NHLtjqoXM7vUUoqoEp+p9HW37MfDMwiox12fm/Hd75XdoeaRWY3+FuJ0WeN3EMB5CZzrnmom1mEwmk2eTJfXPnXfD6PXKdXcL75q+eHOZ5vD652qpu3W0k/YMeBZTe6seIrw0wRa+DVhwgmrGo+Ysp/jwt+8AtO09+wTOzi48bc/Dr9EpUk/1vPGX+9FOun+SmXxSfy/kPWMlfJ+X1mdb7Xb8rN9dEvUPPirffxP9lQRKvqWVqXL5W1f6oUETs3fwTkhFIt0/WW/dga/BJFXe3GOugGdWrqiluaZsYyxOzqliJtGl53NZsbVdKpfvyOuXjHrv/rZJQrgL/0Gxuq7q6AQQQiEfXtTteNW/xgmNdtj3RKHyEawh0sqQzCEUlTunxFtzF96VyZF/svbR9XccJv6ErIMVuPm+TF04c8Z+3JNuqDDkU8zErbWz01+Zuu+Ut9FpURJ7k/G4L7OzkrRHSI5C+IwoAq3oeiiRvKNgvc18p4lglbrsV/Sf+z55nv/7Lxu3bjqZPojqHIr9Gsl9U71wa4blMu0kUACZ+bWT64jc0T2CcilzXm1uH8i0nU3xT6UYBIIBkzp8AUs8VbkEUmnfQ2Hl7uGwXIhFRvzPr/9C5Gy4iEkA8Jva3ekkDxE8iRa1xTXZ8n3Ez2xIUVNzyL9CQbNZCQoF0j9fmMrs33cnYgsmoRa9vyfHj+BKnpce0Myb3tRydFpVg5Mid/iGzt0qbQ2lfeKz8v/3b9KTk3POsvs2sqDYuXX/nB4rSrk/iOo9F3ycs0f1rWRD68Xtn926gt6Ea9bj+1L9K9nK+ueiRpGbzb/aIx4hoH89qK/0v25keVQ1rC0vs5wnctBadppB28SUEAQBQtV8l8F1O3AsNCgBb1A1tEFGILP3vmnZmpykEAojXI2d3/j9zu5NIFGWduvp2RxIGVMJa1b+63N9MPqfz8zQcKkHgwYMJuWst6PXVMDaZ9Mi12S1/R29FRU39rocqaWHieR6z2KeDmmlbelEVz0+oiJsdj/BYhfVdK2tO5X8JXxUwmXTFsVf1/Bd9C9U9soT3xJHXkRUWW9PX5dEOEMUsSrejN8W7FvICO44n+jq/UuxfBgcWqh3dq4DctYAdAAGgsu+ZgXKiALAZPUYt2tDkhxGJSMytqak9nTAApVEX1p/t0ofxflVQ2dz9RKLAQr0UxyzRD7nLAsudTVujUky8cKO/S3o78rzhvj2ypYhl7CzCgIpbMZiVtAAw3x1vEr+qd21NLwLKmYLNLH6KXgdZScei4s8T5S5ezR7r3bb+GY/+RdULpfskRbBDeBx/+FD2lWY+L96e3lSafhP/lwXJ3eWvKYGb2tKXChkF2QEQANK5UAP9JhXrjjX3u3JuZ3pGE6GsqR8QSrVEorEA5bWj5+CHh6zzMUEDSmP6uesvMPNLiERR9ug1cuE2hIE1YXJ2WrFiPvO4+4ev/z6tjwq77XmwVDlU2mNWxNg4YcIFW8ygl6LSjBjxrb9Impm8NUJqbJLNvsRmIVU+D0WSNxTsl7mvWAneaqn67N7su3xI3/F9l9IPUe0Ouv7UuZKeSdb6yNJ4ro0eGzihAz0qBYsEq8yFS+CuNulZTiapP/inJCmA6po/+SoMKKXawLYkCqvXZ9zMtiY7iUhEYvqjZ3Z+gDAApdX68043SHqHSBS+xg0C/YKgoALMrcvYFYQBlcaD8KFUX39LJ6NmX9+S45eu+NGkhTXKXEYPRYUuFl1uj8SZQxU3Vq+8vF4adKcfJeueZ9U2s2LauKr7ewXmbAnOE0NxnkXxeaK7LndNP35czyn0LuB/q6m7881FjyQ1m3+zR3isYsYgb/6c1rZh6bfoTSVeJHFNXy3qrdp3ACw0uQOrIwoAgKr+KoHvh2Jea/AY4MYsVesjJXUkEkXfn3xuHp5KIIDSm5y1OrnOJxJFzJOmX2SzHhAJpHsq1vlThnX6hEig0txy3qZ/ljQnhXe5JUn88sXBL7oqu9nH9FBU7Lxq/kSiZ/3Ixy6LbqwzyWsCdtgu8XxTuX9uz5fG5Yqxl6i9Ev0o4ZZ/nOVWE55OXwK+0sb8YUmfRz2mR1ZYbC09T5nnpzDYjt4U73ziBXYcT8x1xtcXAxcFgAXlrQf1RAEAKv6eGSibIAwpAGx00ez9iUIUC1pdOvWsru8RCKA8pgzr+IBMfy3mq4Iqnww2eqX1op8QCBbqca/v4/oh16TXtqvrdDvti8pMW3NJT0WeZ8bMWIT/1K2/+GbCgEpWV1f7e0kl+90m3x1vkj52BW4UAAKVci+UgOv1En32gne6dI094cpeM+hjwFf2vv7UT2V6mvGxuPO5OQWAFTPnWeo+T2AUABYU+0AhBYAAUNRNF1Cl/aalXwybUQC4Gr2vnLejXN9jvCm6G76Ta714HJEAypmI5nINIxBFrR2OJwoorECvdI/cbPzlfnE2ayEtiIrNTc/3hyP+Ki/6se4b8b1iYv9d+D4bFW306G0+Mekv0eVNtQ004db0ojKvDytlfmJKL6iveOzdyZof66wcfbssx5qZyWRG0u+A1d7IPVr8+ijKnUVLOalE9pekFACmZc1llbdwCVT2AkBPaRdiB0AAlTfPVeqYDaQUBYCrEQbqRxRaOhc0PmaHZmdMH9R9OUECymvKsE7Puuk5IlHwmvfQHtlFHQhEZamSO47XJ5/T+WFaGxWdy27PlD+lS1fsW1yhUew/OMyydUN2HEW1eJoQFDhuB+wAmJB7nEjntnx3R+Pb/0q4V0rQ4zpXd11W+nu/lc/jZsOOHbP/Z/QoYFVBQ82jLU9PizCXLe9cLnYcjPaxrvb1/y8FgLHMUZW2Q2BMOSx2ACzwZihXRxQAANX8VUJi11uVswymAHAlvW6a3c6lY4hE0Z3ryf9n777j7SqrhI+vtc+9KZCElpseigoWLCDgax1RkfSAMwadsY8OkQTSqPYzVlIIJCQglrGPSlQgPcESR1RAigoIiICQ5Ca5NwmQntx79nr/INSUe/Y+uzzP3r/v5+M78zrn7rP32utZz3rOebLPkgtbFhIIwJFZ1/TLRCF233FIU087i8DAw1T+0t6fSAUK63+qR7eqyP0ernJjvb7B+SzVN1GR6Vfzj39QEjUNf+XuQE3/mA3WupeQQe7PN/40kHxonFeM839aVxZjSuNfjslfH+9920/JH2D/hn9j/DoRuSNWjdB6xnKD84M2WpsymZ8G/eaj1R5kU7rzicVMHHPmPNPJxUBMu5FWcQLHEwABoCRrZiCvprfl9OqjLBKeJ9zeNE5EDicSDem0IJhCGAB3LL60769E7Na4HxWUvn0L5RyiQKOedn+f7Bezet+Je1p+wT1FSdY0v0x8nCkzY0StW6XyLcKAsti0oeNWEdnhaqvi+Gavwy6/9I7DyCKgIGshB87XMrr2KE9GVNXPVavVkLwCDjpeFlEfG3o/tZ49jyGPijLn+TUPB6JWIZGi37ea1NgACAANL7qAkuZNfX2HHnrYIYPIiucniJ1LvWk09+w7S6b2vZ9AAI6VN9WvEIXYc+qZZ1/5xOEEgh4y+utzerKPyZerVeULJ5Sk9bRVaSyUqHX1v95EZ363etwuooey+MY3Tu1Q0Tuz7SmKY0+3bkeTRTn0h0Wcn5jS06lBmkw+WiLvoY6Ok4M+guy2j84ewa+iAF3VokCXNd7vJPlk0SwnlWTeS0M9jkzypOfSNHMs+4YoEBEHNgD6t0xqqgX8BDCAkn62wFYbILNGraZsANxr1JWtrxSRNxOJqHOBPX9e2CFa+W+CArhn0cV9l4jIn4lELN1qu2pnE4ZiKfCK4wE9vu8C7jDKosPsjw40xJkds7GNQ6l8iLOhW59u15GJKGEncWsJeop0IlersQHQBdrwC2LMT0k+tQ1p9iyW4LHqe58UNudp9mu/p/9hRPBZ8gzo2vYNR94tIk9FGdfJjGWtaywnXRuS+7vnzj8UO5ZMSmOO4gmBXXFkA6B/Oq2JJwACAAosQtvLv+hMTS2osQHw2YwMPkSuNRzEuYun9V1LIAAXPydQM7U5BCJe36Fq/Aww/JiKzb6y4BytEQmUxXerx60Xkcc8XOXGen2j81kK73HFldOG7iQTUUK3ujtQ0z9mI7UuCAI2AHow37BBD13VlPyf1pXFmNKol/Ob/7xy+C/JGaBr5yw4p2Yit8SqEVrPWG6wH9J6aobmuhhT5QmAWcwnFjNxzJnzTD4Xg73/QUQV62QDIAAASHeRYDwBUESkWrVATT9AJBpaQm1uqjRPJw6Au7bu2P4TEdkY56MC6BnjZj91JHHA/tMjp5l33//qkeD4fj/mhqCEY/DWBsbNQcc1M+NBbWu2yjcJA8qoqan51lzeuM6ew+XNXmbGBkAAji3CkjoWT/8Doo08W1W+epPk+/EEQH/uqa/ndIDZzngCYKz7tidsZgMgAHTV3tBXoCx5k1KuqbIBUETkT73Xv11E+BC6oXGlV9w49YgniQTgrlXV43ap2LeJRCzNuzo630MYaJ6i95wa8fXxz1NF5/P0P5S0Eb01z7Fe3vWyfueq6nH0/yilavUVrSryePrjLN7r3W63lM9ekMm4QdRYaoKtkqs/16mp5aCaLPnP2cP+QHYBkUb3bxuv80k+WVQ9ix9PAMwtczP8MwcOvo9AndkA6Fd72KPbrj0MIABFnedY0gOOdEdmbAB8uph9kKrUUCZtqtT0auIAeFDtwtrXRYQNQvEmzbMIQsFuabFWKNs79jT9D3cVpRSEt+Z/Etn9jKcjtSs0CeeSfCizUOx2Pi+I01LzBEBn5iFN9pj8zHCxcsXSyrsX/WliP9eZeb696HzVvkxuAdFsbW+5S0S2RBlz+f4seJLHa6QWPxuLY8mirNfoeZ6TO9cTCE8AjGW79eQJgACAgovQRvOQhrT6zdJvABw3e3VPUX0vydBAGqldufDSlq1EAnDfjZ8a+E8RWUIkovcdKnLGmGrrIQQHbnbV+v0bqzyJF+XUs0/n3SLS6eEqN9brE5/g4l3l4muqL/sH2YdSt4sm97g1LtM+ZjK1TnkCYMnnJz7gLcwC2eHcffZ8NYn30Xre6taPzR55K3kCRHPOgnNqIi9+mrtGGub51zTNs3a2LDq3yueUqcwn2sA8pDmt9bObx4O9/0FEPWtPsQEQAACk3PbxE8A7pPksEemT3bqscDZ3Njfz9D/AI2Z6kKeE8RyGgy3TtWfzGYQBB2iq8hnPe/9HIME8bgLK6upJx+9Wkb9HHDd1j2uvZ8aUapOpXEXmAXqPy+M6+c1eCRUUs37kTqJ9IOBZDma18SbLYxl9ERB35KncmV5tarBG6MFrRLrzcH3n3rPSfQBZ5NhiOYFzsoZzP10BfWi8XNrZu4mvnwHAoQmt8H0FStl3mPATwCbBf5AoDS3S5yybdNQWIgH4o8euo5aJ2CYiEWvSGEsQSt48xVqraMTXRztPFf3Vgk8f9TfuHUpdnjXqk7hYlDfgL9d84WW/IQxgLSx/bbxHSO/1Li9Hpl/yQG8yCFmMG0SNpSbYKiX5c52aYG5osnEze/zxPj1/TkYBcQeV3dF4ndfGx7Kn68SKBPzDinxWApn+mQMHf4FARGq0h9F129iTn04GwDIUILvS1vuMyzcfVtaLP+PyzYep2JnkTWzbm7p1zCcMgF8WVHWPivyUSMSho6pV41cOStwTOtoL8CReIK8ncb3wHJw9ZpK1znjKDSAiIk1Nr35URLbxeUF0e7p18GW1K/OQJnvMEm9sLWSuWFp596I/TexpXZnnm4oFOq9afUcnOQXEE6rdGWXMZTl3WOrHa6QW741FGPQni7Jeo+d5Tm5cj2MbAP3R48gKXyoAYP5ECRi5lrPuTbteVtZr79a9Y6yIdCcLYo/f79xw/hCeIgZ4KJTKD4hCrL5jwJ09N7+B4MAhj5y4p+9iwoDSd6Wh/dXr80/59cktrHVT5Uj7MRkHiFSrGprYfWk2nu4dM5napRa2kEFlmG/yy00U775Z3PPVJN7ngAfZ3qOp9i1yA4hv1PzzHxORjbHqTUNlKaufEE+5dgbGBsDU5hNtYB7SlHupfHOeDYAxbdmyjScAAgCA9Ns+DUq7AVBF3pvHuqwgahrKbMIA+GnRJUfeJiIP7f//ynMYDiYwG0MU4Er/YGLXVasaEnyUXbOF90QbO9HGtddPNEq0NtlPrp50/G4yDtg7vCynp4/WOa6Tr13JFJSaCBsAM7tngFs5m3xzkt+xVOS7H7h89BNkAdBwIbkz+UMmVCP04DUi3Xm4jnM3ZQOgO4vlRM/JGs799LABMGYuVZqb2QAIAA5NaKXoK1DKvsNESrkBcMTcTX3EZBgJEjuxfrbo4gGPEgfA1yGsJiI/IRCx+s4ziULJm6dYaxWN+Pq6zrNWCSs/4n4BIl//wrGPyfN+ipNFeUpzYCDfIwrA88aE2j8a7xHSe72znZYZGwCR2bhB1Fhqgq1Skj/XqQnmhiYRt1CCYA5ZBCTST93deJ3XuGPZ63WiivQjg3KMfoZ/5sDBnxWIiGP/EtmP9rBbyE8AAwBLepBdWXRrWsoNgFrrPEti/PwvefNMHGwuUQB8r//hzwhCLK8fM2tLX8JQ3p7QlV5AxX694LN913IHARFRNRV92IWR6eoxE6h1f7vm8y/9E8kGPK+dlsrDfF4Qq6qxAdCleUiTPSZPMSxwrqRxrH2etpzu5oXk8s1WfWzmmQ+RR0AiFeR+V8/Nsrj6xs6QJwDmskYv4jlFWQPxBMB4t72yiycAAmD+BMi1DIQvK2kqvZd7Hzt29yy5sP8fiATgt4UX9/+riDxIJCL3HYF0dryT4CD3Dk6CHxAF4PljorEnceUt2w0TGuMvjKf/AS+uO6EkWHfK8YGXiUgYsAGwPPNNufO9ePni233TBE/7hQcxU/oiILmRen/UsWiJlKXsN0In+7OuKsYGwJR7Ic2gJ8oyb5PJeTYAxs687t0JAgCAdgvph18Hl+2Sz5y5/lCxLn7Ckc8iDxabrxMEoCgzsPIUwFh1MHw3QUDO/cP2yp7wBgIOvGBS+0e6h/d4ldt4baqJdPshSQa8UGdn5WG3zzDJn8Pb/zHj1LrAlKdpF3W+ATmbS31KdhNPHdeztTnQn3PngYRqSKX24L5DvPFxndiTRfXg5xW1d0qyVpoo/6jCgz7cYv5tshtGkxOYSAc3OLowsB5EAQBKM/8DeRooZqXKxu5N+m4RodeKZ2tnUxNf/gEFUdED/QwwXyMdTBAqGwBp1COxiMe0rk/vhgXVftu4T8ALxs3D0ccl6/Y6g3DzvOrRrcQBeKEZM16xVUQ2NN4jxHi9pnP8bOq19SF7AGf6p4M3Pw33QY1tYojalGVU83724VnDtpM9QDJGXj1pi4i0Nj6W0/iHD46v0kToqTKYW/z6sCD9cwpUZJcvLY1LsbdONgACQJSazdfU8LQjcKHv6DHq8scPL9N9D0MbQ97ETqUfLpt01BaqB1AMN17S788i+k8iEXEeUDlm9Iy244lEeXvCvHuBMAy+z10DXigILMaTuNL4cNzdY8avdSE/cwcc2MN8XhBZL0KQJs3kT8rci5c6V9I4lmZ7X63B8zXR75I7QOL16IHi1sdU36s3ueNBo7Pf0/H3XxoGIrKTpIoRuCbpSRQAMH8C5FomfUf3boPKcq3VqgWiOpK7HnP4hfz8L1DAgb2EIETvO9QCngKIvFKyten4I39NJIAXrWlqtX/4fg3ZboCoe2G9vVuf7jeRYcCBRlKS/5imHB94GV9We3jPNOo9Jt+LNWYzvm8pbEzUpI5lj3z8ijN/R1YACY96tQeijuuoT0WOW28swWM1soY7wBNbe1Wr1YAMSnPtXbSn/DV+PWwAjJt0NZ4ACACg3UI2Qg0GluVa7zx8/SkiMsDb3j7fUfr7hRf3/yuRAApnMSGITs3eThSQR/9gIj9ZcI7WCDTwQk+86iVrRaSW8vjzd5UbvzatvHLaUD7fBw40ztUc/3nsNH4OTxutdTwBkPkJJc/B5OtTspsGD/g+FnxfRRlCQMLCUB5JY1xbUsfSg59X1N4pwVoZnPF4z0PJoKTngaTmO21gntSGerY0J6pAlA2AsQpdhScAAgA9CZANE2spTY9VC8Zwx2Pj6X9AAW3ZsX2ViGzb3+yAgzZxbyUGNOppHvNAI9AC40lcwH4sOEdrJrIh2jqIdXvX107NAQ4q1LWNHiL25i1N5/gZYAOgf/cMpcs3TbAP0gTzWvMcPxYG8n0yBkhhyaH2eDJjOY1/+OC2HYfwZOUs5ha/PixI95wCMVc3AJrTsQ9C4QmAABCxZvPhCDztCPLv+ULtU57FpIwmb2J5ImzesoCKARTPqupxu0TlV0QiskFnz9jwUsJQ3p4wnyet2KbKS1p+z90CDjjQYjyJK9/NvlkfM2ItqklzB08KBg42poJ9nwDI55NdYgNg6jSTP/GpF0cWN14b/lPLNN806jne+V+zhj1KzgDJC8Lg8WLXx/Teq6nGBkAvGp39no6f/9KQnwCO3XwoiyAAzJ8AMhq7YSk2AI6d3j7IRE7ihsdKkp8vm3T8buIAFHUa0JuJQvQet1arvI3gIONkXMrP/wIHrddrfb+EbDdAdPUhjt0y/9Ov3ERiAQfro4OEfwK4FB+u8kW1l/OTRnw9+e5bT5HVsbKvhZrIIc2EpyIDaQmD1XHGddSnIsetN5bgsRqpqfv7u1ArfUqfPl7NSf6fU2Ciu6hacSKnfQgCAKBcIrS9fD6UbKto5fjwNWwKz4icPeTa3tFZ+1+iABS4PoY8ATDW/KnCBkBkPB/bQqIAHGyQWGv64zDd16c7cUWe6PiiG+hCrbnW6v5ZpvFzeNpIret+3bl3NJM9zE/wdiWcYE4lWZ801TEVhnYD9x5Ix7BvnLteRHanMa4tqWPpwc8rau+UYDfKQ8VixjjJjZj1nFM275f+fBmo2Q6SLU56GhsAAYCeBMgmBVUPK8lYO4O7HUvraVsH/JYwAMW16NN9HxDb31OT+FqoC2wApFGP8Wf1H/NFI3BPzz2VldwT4KDDqzW1DRAlXLdXgpBNx0AXekjv1jya5qhPvHGtq998ZDe+rPbsnqHkayFN5ljmzfjZZ5Pzw+deOfw+cgJIq9qoicmaxGtXYebcA19TUAvYU5RT3qT/YYGL5yQSSCBbSZgYsTeeAAgA+SzuQN6Ur+8wLUHfYaYmyW4AtNKkjV5frWooAIpeKHkKYHTHj5zRNoAw0ENm0zvYqh9Vj9pC1IGDivkkrjQ+HPd+x+C9V3/u+IdJKeDgqtXjdons+x0YT2M7uN09Kt3JnrT5Nw/xuX5+uWJepaxm/qaqxlORgfStdm9eUOffywLrRur43Kr5168FYvIU7WR0IU8ABOD1hMVHAIBXzHoU/RJHzd1woogM5GbHSA+t/ZgoAGXo4YJfE4ToPW7FgjcSnALNeW6P0UXcIaDLxrW92LUomZ/cszqOqSJLSCig7tqzOZPGs1A6m0gcf9Y8z80fafy0Hj+N48v6Jqv7aankhu5zyCixCVRuJJuA1K2PM66jPhU5bu2yBI/VSH22fd5Nm0mdLOYoF/uVfM4pEDX+dXI8bAAEANCm+dZveUrFir9I6Gzg6X/lzrV/LJ428HZGCVACYfh7ghAnbnIqQUAmXXKtwgZAoOu+fXMm4zHl16ccozrP2VaRUEC948o2e3CSKdQ6jV/rdoVsAGR+gudNV3I5lWR90uTHlEr7of/c8gfuOZB6P7UxrXGd2MZirfd9sqlRIiISGj1VAzFOaiNmveeUzful2+sFYvoUiRanxrEBEADoSYBsmJbgXwmpvJs7HSs5fkIQgHJY+Kl+/xCRDdl8VFAcgcppRIFGPfqf1X/MvSPw4V989ojHuBdAF8Nu7yac1DZAlGfd3rmrZyf/MACoXy4bAKM+8catrp4NgP7dM5R+LaTJHMu8GT97L9h08TkLzqmRC0Dag7aS4NPcs1i4Zb041AP91/RU3t7TtM8pnesJVNgAGCf2GshRBAYA8lrcgbwpWd9hxd4AeMp11iyi/0LeRFcRfv4XKNnS9I9EIZpQ5FQx459y0EOm2juY6P8RaaAOQdjAJpw0Srmf04OK3PU/l75iKwkF1G1TXj2CvwuPZr6szqqiF7y3RnK5Yl6lrGb2pipyM/kBZDD8VTbmOS9k9WTRpGsbPwHsec+l/vVrgWjo+E8Au9lOmrEBEED55jk+AgDy6oaK/RPAA7evP1lEenGnI7vvposG/o0wAOURmvC0n+ht75Fnz2x7CZEoUl/k4kmFbAAE6hD03bxZCvLBQdQvoBrbaPTCY4aivyWbgCjjKUjhCYAF//clys/VubzAOXi+p/HTevx7Kl/WN1ndT0slN3SfQ9ZzPVYR+iIgk2IVtscd11Gfihy3dlmCx2qkPhs9VU5zVNGeEBhPoBbwBMB4WggBAIA2zcN+y0/FXiRY8FYP+2gXlg6LGRpA2ca93U4Uos8FYRjwM8BIN/UCYwMgUIdvjD+1Q0QyeXKd10/26mpto8YX3UAEQU4/AZz84I9TuzRWrQsqxtNqmJ9Q0AWyJXiseLmb6Ie4D358xpmt3GsgAxVtlxTHdWIbi7Xe98mkRomEARsAG4xxIhsxI5xTNu+XXq8XdFgnGwDjOWLc9VYhDABATwKkzQqefabyVu5ynJoULCMIQLl0l6a/7P9zAb4W6gIbAGnU0+zvV//8U/0f4R4AdYu1EceyHdcuq9W6yy2kERChfpjl/ytYddYmd7p6nlaT+PwEuLYWKsSVB/yjCCCrRUinbPSv3mju7xdKyD+qKPyc59Y5Bd3EniBRYt23YNv69UcSGACIhw9HQN7U33cEIrXi3lRTkXQ3ABY0b57cuqUvPwUKlMyCy458SkQeJRKRJ9aTiUH9fQc95DOvrzswPP0PiFZytsbv0flXeSLy529c9lL+QT8QpXKobM+3p/BQJxsAmYfg5bpGk8lxy2i8NPpznaHYKrICyEZzED6VbL/j7JNFkz1vFXoq3/s4TTPHkj9usKP92I3ur0PcPL2OivVloAAo2zzna80GfGYiYVGvbcwVm14uIi3c5chFfMWqqnYSB6CEo9/0bqIQeSZ9DTEoXG/kzphUNgACkcav6Xa3zkgzO2ZjG4f0mf+XJ90A0cfkjmR/CrP4wiDg169cnoc02WNaxDdl3OS1vtHMj3WwP03s5zr3d3Ct73qCCn0RkJUO022NjGv3NhYnWZ8P/HeBKD2VE2v08lxPsPeLQ54CGENFhQ2AAICSitD28o9jEwi3FfYJgKadb2NdECtySxkYQEmnhCD8M1GIOhdo37HT2wcRHKTUzLABEIg0ZGxHAVa5sV6fxNomFLmTLAKiCTXcnulAdfyYbN4q/nzDPUZXNSX/p3Ulcm0PfnzGma3cYyAbA2qVbYnUCM2gZmg9tUkz6cdCVb4h3e89TuMfKzTa9zb+jx2y/rv9Cfb+z3bSLc6IDQcSBAAAkDrVAm8A1Ldwg6N3obXmcBlhAEo6JZg8cICKSnAOGreApwAW/y5n+md7bf75p456kNgDkcTeAGgRx3URZ8ZQ+IcAQFSBiRsbj+vsOdjs5R/uAbxdC3l8vjwVGcjWqd8Y3yEiu7OpN+rosYpYj5nzinZOezcAKhsA4903niAAAA3w8sMRejfyJodcM5FagS/zjeRNxJip/GnZpIH070BZ58HA/k4UYsTNwlcThXL3uPG+TO8yMH8WVb7zBSIInrcBMKunzxTIjs2vehmbjoHolSfRDYBs0KNxBpxe12gyOe7ez3W++KlO4R/IBiDzKXB7sv1Okk8W1UwDgZL1cZrmfU/2uIGIiJl58AWig8skNZ4ACKCU85yXNRvwmRVzA+AZl28+zESO5wZHE5osIQpAeXWv7HlIREIiEbnx5QmAhWuPnDiHP3MngIi9rNp2984qu5/xbGzjkP51wTnFfTo8kNp8bbojyXEJODEPabLHtIhvyrhxO1csrbx70Z9aEseq4/T2dz2mlbvJByBz2xoZ0O5tLE5yjqTHdH+NXo7r2fsEQGsjieLcpmAwUQAAlFeE9pV/ENNYz6FWyI0ezd33nPJcP8q6oO4G3sLljAqgvBZMG7pTRB8nEhHnAhU2ACKFdlj/QhCAiCXagu1OD+uUX9/g2VFzgDgjx2op/gSwenLMPGsX8phvuMfFz4lGa0r+T+tq6D12h1sOv5+sATK3LZEa4cB3OF3/6gNfaqY/36XxjxX2PW60eajxf+yQ94bRp79w1YCfEIu3cuQJgAAAIAPaWcSrCsLgNO5t9EX21m0D+BeuQOmnBXvkAItUYnNgrxp3vVUIQ+EHR6Z/JpUam3GA6HY18scWcVx7PTO+uDZpwDoAiFM3LOh0dlw3Wuvqfj1fYqeeZ4QAmS1CijLOGzrfe8d/49QOcgjIeNSa7MxuPm2wpmme9ZG+q5wxduOceAJgA/fNVAYREABIqpmjrwAOlGsqtruQl6fGBsDoNfOPq6rF3BAKIILQ1hCEyHrseuypowkDPW70tcoBA7O75Yh+fyNKQNRxZZ2NfyZQzoKlys+OA/EkvwGQp7EByH+dkmar5OrPdT57LP5RBJBP7ek42LjO/8mifLCFdHIu/fRK7uCBiEhgsrYgLU3W+AlgAPCnZoPs8vh6dVdB7+Np5E3E5l3lFioAANNgNVGIobN2PEEod0+YcC/wt2+MV546AUSkZjVHz8zZY+6tXbWOsPs9ZBAQXaXSWatznAF+zRma7DHZ2Fqs/LO0c3mfpy2nu/HmhddjbAAE8mDSwFouyY3F2c9RlkkvAPdjrM5fTyAiEnqzAdA5vd81b81RhAEA8yfK3PGTa5kM051Fu6axV23oLyI8iSmqmrEBEICo8ATAOH2HBnYCgUGCSfZnYgDEKc/Fe5p1RhsmHv1GddAOMgiIMUat0nnQJjGNxtPJYyZSi1D8+Sb33OQec9+e97M4+/+/aoUNgEA+Q7Mz6WGef01T5jyP5juLeV8tZk742C8HIiKVUNkAGFMlCI4lCgAAIE2hFe8JgDWRk1JciBZ0fS0d0ie8lREBwFQOsgGQr/IOWEdN2ACIxPoHtfAvBA2IIWj8CYDm2Oszqk2PkjxAPM3NHW49ebTOniP52sWX2Kmv03yeb+DHIiTnnI17zgn/XGetWWp/JXeA7IVSzwbAxutaYk8W1YOfV7rzMH1X+nFy9wmB6W9wPLBARGTn5sHrRaRGgkXPJa3VjiUgAJDHQrPUa3OUrO9QDQu3AdBCeS03N3Iu3LVoPE/9ACBiGmwiCnHiZvwEcCl63GQvwg50TJWHSBggzpja9wmAqX35XKh1uz1C9gDx7NnTnMp3X2z2ApBvT9VF89NwH5Tkz3VqzOvZ77Ee/vCsYdvJACB7gUmXT1X2dGMxUqWcU4bnFIiIrKpqp4hs8Lmlya/S6bEMWgDwpGaD7PL2WrVwPwGsks8GQJ/zJjT5HSMfgIhIc0fIBsBYk4CyAZCeMMFeIGAzDhBv0Dr8j9Bd/hlPag4Qu+zYrrp+ro5PMeHlnKHJHpONrcXKP0s7l/XF75Puhgp7+i3+wf0HcuqpVBv8CeAkNxZnP0dZJr0AnI6xNnpO6V9P8Lz/nZ8BjjfUjyUGAJg/UfK5kFxLe4ia7CrgZb2aOxuxcVe7hSgAeFp3NgDG6zuOHVe1bgQGSTTAQY+djxEGIM7qsdEvjbxfFcd6PU8ABBrRM+yqSUyj8XTzmGC+ITeLdo+Le990v6etpo+SJUBuFaozjWGef01jXvNpvrOY9zXPn+XNUtPz/ve1InIaqRa5IBxHDAAAQLqNcLGeAHh61ZpE2l6ZbosmhftnyGGou0bNaj+FEQH4oznJg3U8b14I9lT2Vjk90MzBh1f7VenstvFYEfk7oUCD/cO6BdOG7iRgQIxhpmJJ9OlRZ7q0X592bVLjCYBASXuOhGvjC9+YVUMe94CVGzIqCKnmYPRzPvD7RDuWiT1MzgC5VauwvprReF177n0aPNYL/nzfY0XtnaK/OdKdB9OaQxs/p7g9XtjgmTc9L7vXkIOxvIQQAAA9CZCmIJBtRbqe3n3WvzyUoDt3NmLJUVneePvf1cqaBUGs5boV6mqyUZL5M9ERW3l+3GhAYt8T1aOFDYAl6HGTvYinP7R73jFN2IgDpNAapPLlc0HW7c08ARAoRO1icxiA9GvQ85qfhvugxjYxRG3K6nkfU9ZigDv2P65921iM/HKFc0r+nJ77CeDA/ulXS+NA7J8+lZc+/RQbAEAjNZtWDJ52BJkI1Z4q0vXUVF9L3ri6DiM65A3Im6LfEz2aKDDWGh6bARtxgAI3xC4ec/NV1eOe5N4A9O9gzmDcIJ1cUW9SViXkCYAACt4LwOkYq9v3PXjuPJUPL+Pd4G7dW9YcSyAAMH8C5Fp6wi1FuprAgldxT4E8OfQPqoDMcy1kAyASaM30UYIAoNEOq/7XU3MAPxYkLHLgZjpbxNw08t27niKrY9X3PilsTHzukNZNhL4IKMCkZYmUjK7/2BI8VpY1lfmuyP15uuf07AbAGh9exr9FJicQBQAAbRrSC2/TlmJlS5hN78RnkSjGmg1AknOQ8gRANF7TjX9EC5Ri1erOKtfWc/cAGpPkapc6WuuYn/ybn5DnWE/yfSyjc7bGj7X+w7OGbSdfAB/mLU3wfRo8lh78vCyDa0GyMbZUc3ffc7KY15NHz/bsBsCm2k4+vIwpVH05UQAAehIgvTSzLQW7Iv7xBACk3nfwtdABQngMUShLj5vek30qgT1OkgDJS20DhHofmE1kB1DAWqcRX4/CzmdA8vmmCfZBSW5iaPBpXSbsZQCc4+rGYpQ9B8vxYcG+nt0AuGzS8VtEfPowwZ2frVLhCYAAkETNplGDpx1B+g1brVacDYBmKiIvI29cXi8RHfIG5E2h8QRAxlrDr1cL2og44EzzWvhjqko79xkoTk8B5qF8jsm6l/xL8ViZPcDQ1nHPAbg3l/KkmPTjpA5eipv3PXjR//9hEi/WDX4FQQBAPwSQa2npse2JwmwAHHH15sEi0ou7CuTNnX9QBWSca0P3bkYHYtttnTyNC0AiHVY9rzeVzUQW8GVBQpsJN9PZUvlpPfLdpZ4iq2PV9z4pbExUEVOeigwUadKK+lTkuHORJXisLGsq812R+/P0zulFGwD1UVIsVlaeSBAAAKDtTakP3LWgeuKewlxPreOEjOMHkGsAnq/7e7629UjCgAZqum3p6McXT0BJVq1urHJ1I3cOoDFJtnapg7WO+cm/+QlFqin5/1xn18cKTHkqMuDVvKUJvk+Dx9KDn5dlcC1INsaWau7ue04W83qy7tmCF15s+AiJFUvLyPmPDiAMAEBPAqSwkirUF8wV0xO4qQCQVd/B10L7E0pHf6LAgGngmE+tqmonsQXSWv6k9HqP1+0ahmwABIpa6zTi61HY+QxopFmxro6nyZybZXSddsC1vNETAR7Vr/w3FoM5tOAfFuzHi54AGDxICx0vHzqk+2sZWADQeM2mUYOnHUGaNhbsXp1A3viwXiI65A1Q4HFcCdkAWNdcUPwaHfP1fOkElKJgqUNXxxMAgaL1FGAeKmIzzjgoQv6p4ykb0BMBhZvvinK+PCkm/Tipg5fi3n1vesH/r2IPSI20i9VySPgaEVlJJAB/9N60+aYd/Xrx819AxmxP94ki8iVR4ZOh+nrIov3E3DHcVcCZipz/IrUkc4EDkcbzc82EDYBoJJf40glAzHl//41PV31Cp1SoO0DG45JFDrxf8+x3HKhohNysbx1LvvvyWUJWn0s89z5J5sbTx6oEIT8BDBRs0nq2ZjRUMrr+4/prYH0nwme97s53/vQr6ZzTCzYA7tnR+WD37k1kWJzbY/IaogD4ZUH1xD0isodIANkaeeWG3jxdLFLjW6wve1SOybzP5rNIAMALBGwARPy2wtgACJRwTZbrlzsVCTdzF4DSdyAS9YONrmvXC4/JF9n+zTfcMyRdU+LlVJL16eDH4h9FAD7OW41/OZPYxuIuN8pH652Qf88btxeK9nfPnVM279eYF/wE8Kqpxz0pIutJrBg3TdkACABAnY0OX7pHane1vWAJwBMAUez1KeBcrvHB1L4hMXoRBkzsPzMRnjoBuLfGjDSufZsZu4ns4i4DBa5dGvH1cH++4Z4h67VLJsfT3Mdbc62TtRhQmvrF+aII9zT7cwr289/dT3LEum+vOuW6O5oJBgAAXUybKv2y+lCgCKxAT3sYc13rISLS16344sCDlegAKOwang2A9ceq8CJ/kauyhcQA0i0ulsIxfS6CO6Q7v14B+NAjEDLmNppxxkGO+WcZpZMl8h7xTmbnrm5PcK8Bv+a7rNZ25sRcyqZCf+PUyD8edut69rMBUB+gnYylR79w4KsZsAAAdDlz86V7lHipFuanDcIdPP0PhaljKPqan7wp+s3oRxAYaw0ULTbiAEi88TlY7RokD1J3gFR7BL6sRXnW15bKxg3GkC/rm6zup6WSGypNnb13kxFA8SatqE9Fjlu7LMFjJV2fkey98adfSf6c9tkAqGoPkDjxhLXwFKIAAEBX7czzfnaPz4fqaDBkY3FufuXoAvXRQEHwUQVK1YQ88z+PJBiI35sZG3EAOqYsO6xatfqOTu4A4Gvjme8xLeIxWR2Wer4BdaqBnNLUc11EwvHfOLWD+wb4OG85tLFYG70evmhKP5eyeMpk1L/TjN8vvn02ANZCNgDGTkrVU4kCAAAHmyxNRaSFQERoK83WFaiD5wmAKMGgJQRwMdf4WuhFDicEDJi4f6aB8tQJwMmlRrRx7dHMyKZjoAy1SyO+Hu7PN9wzZL12yeR4mun1Gz0RUPL6xfmiCPc023PaZwNg0BTeQ2LEu28qwgZAAAAOYtiVa44QkW5pHb+IH6rVKmFrYS4mlCEunhYfxh6sxyU6AArpCEIQZS4o/iVapNfyBEAgi+KS1dNnPCiCbDoGPOkR4tcu0DiXvBlHYrliGaWTJfIekU+GnggoST8Vt2CZE3Mp87a/cWrkHw+7cz37bABcMf7YdSLSVoaykcJpvGbE3Ie6M2ABADhA49HUNIAoRNO7uXltgXp67j8Kgy92SrDmJ2+K7HBCwFiLXa6MJwACSKfxOUDtYtMxkEmPwJe1KNP6Oo2f1mv8p/GQzfrGu5/rfA7rMMCZ+SX5J4tasieYQD2t7xqZ85xsdFKd39y6nn0F+38P+yuJE+vedOvU7q8hEAAA7F+lJv286LfcsXXBxH7binIxJprvBkByDTjg6ARKtG4XEenJP95D/BziCYAAHVN2HZaxARDwvvHM+5gW8ZisDos/33CP81dzvE7l/7Su/aInAryet+qsEVrP+zTYY2myvRPSyKU0/rFCo3+nGb9fPMEB/uu/kF4x60VF30QUAADYv5pqf6IQpZ3U1mJdj3H/UZbBCziYa3zN84LQ7TqMnwFmwMT8M+WLJ8BRFnFc+zAzqkgHdxagVaGrL8n8BDS6dsnseDlcv7IBEIAP9Rbc03zP6QAbAIUNgDHvm5q+hUAAAHDAqTL1DWDF+lDN1hbqakQHMgoAAC6odAaHE4VoTRyeaWiMn54CMiouWT19xvllFIBCD1oGedHuMY0zHK9BDadoTj/XafwEMODzGi//J4syP/v2eYBX5+TQpex3A6CaebgB0JllEhsAAQA4cA/EE+CidTfrinMxpirWj07Sx4FLdMibEq/5yZvCCkQOIwqMtVivN6sRXYAmJa1j0icAefYIjEsUaB7SZI8Z9ecdGTdu54qllXcv+tPEfq7z6UN0cn8Bl8qMJn7QzDcWp9ZbstnQzzV6nueU3PXsdwNg775bHuBRurENGTmv9RjCAADAfnuYY7zp1RxgooV5AuCwK9ccISLduauAuxUHKFE/IlaxQwgEACDtjokOC6Dx9OOYYH5Cee+ZehUHACXoixxodazLE6EfS39eSOMfK+x7XIuZw9bw9aVjvxsAF5xz4h4RuZ/0iqcW1HgKIAAA+2tsTF5KFCK1kv8syrU0aaW/K0EFyDWUN9f4aP15oWADIAOGmg4UsrxHG9fMjAB8bFWS3zhEs+PM/MTKDY6MS8v9nKlLQJHnucbfp8EaodQb5tBinlNwwMFjcgeJEe++mSkbAAEA2L9MNgAW5UOyUMJ/FuXGB7Wmo0h/AIAzS3cNehKFqEEjBACSWONEKy75f/kMANGx2avs95h5CC7mpyaYon7/XCeAtGmuaztjfvY+V7w8J0cu5YAbAAPVPxV/WZVaSvwLgxUAgBcaMXdTHxFpIRIRVOSxolxKTcPD6SR9XocRHfKmxGt+8qagN4GfAGasMTYB5N2kJPnFGAB6BDAPRf2TNH5aj80VvuRK6vdzn6ctkxtA8cpM8k/99HVjsTEfFmSNnuc5JXM9wYEPr7eTl7Gd+K6rNvQnDAAAPK+3qNVe4l2vlrPabi3MBsBA9EjuKOA6vtZCqfKdJwACADLpmOiwAJ9oiY8J5ieU9575+HPDAArdaznQ6liXJ0I/ltbNtIbuWfRzspjX4+L8dcANgG3BuntNZCcJGS+LK82dpxMGAACePzvaSwlCpBaybeXFA7YX6P4f4fF6AyDXUCB8tC4iIkHAEwBBTQfKPtMpMyMAf3uO5DcO0ey4thJjfoKfG/O0MNcPwM15K7Eniyr1ptjzoLtPCExzrBxwA+Cd40/tUJE/k1Rx75u9g0AAAPC8plzDTDcA+v4hmYn8s2AJcASjAADSXIMi2rzETwCXN9cYMIADa51I49IY6wAKUeuSfT1cv8fMQ3AxPzXBFPX75zoBpE1zXdsZ87P3ueLlOTlwKUEX//fbi7+sSi0l3slgBQDgeXOj6UuIQqSIPVakq7FAD6OT9H4QEwPyBuRNceJv0oMoMNYYmwAiNsSeHBMAPQKYh+r9E2UclDhXLK28e9GfJva0LgAOlhl/n/ppqR+PmufnGt3vcwq6SNI/kZexHT9yXusxhAEAgGdbnpd52avlxMT+UbDrOZK7CvgxWlm3oySNSYUgAABc7bDYYAEUbUHCIgdlmm/Idz97BO4bgIMLs66LDZUlfo7crXkuyac4JvV3mvH7ZZNrB98AqD4+AdChIqghPwMMAMBzTRBPAIzSpJk9VLDVYR+nzoc1G8g1oOyDs4kYgJoOFHr96dTrASD5niONL1Jpdnyfn8AiJO+cTb4+UZeA4s1zmuD7NHgsPfh50Tv5Pg+qs+eUVo930A2AN48f8g8RaSOpYhee4UQBAACRU66zZhEZSiTqV9Pg7wXr0Q/hrgJAqnU22mq19EKeAJhJrnERAOqdiTSfmYtyACDTWpfv65H/PQbyz09NsA9KchMDTRlQPJrg3JndE+QAn+el4ODXpCYmt9Byx86HM0+vGk8VAACUXt/t7ceISOZzotcNfiUs1AZA9WgDIAvDg91IokPegLwpSvCVDYCMNcYmUPzmtcTHBECPAOahev9EGQfkX3rH0hfnDX0PULwyo76eeAZzWkCepD5nqYOXkt85dZlxpnoLc3FsR/RoWfdGwgAAKLtAwlf62qvl1CE+sWzSwPZCXZLxBEDApwHr9ZofqC/H2AAIAHC6w2KDBVC0BQmLHJRpviHffblnxn0D4NQa5UVPFtXGj5XlvMYa7mBxye4pjhbzvrpx/4J0/zoIw1tIyQaSWcMRRAEAUHaq8mqiEKmD+HsBr8m9DYB8pgVyDSgzntaPeNg6ChR3FZby6wEg+XVkGl+ksoBlvoGnBcGZnE2+PlGXgOLNc5rg+zR4LD34edE7+T4PaurnZDH/No0er8sNgLvah94tIttIqtiVZyRBAADQm4VsAIzU+hVxA6DyBEAASH8CibRYLXmw2MaVWa5xEQCSGZepbZigHABIkTn2euR/j4H881MT7IOS3MRAUwaUZY2X/8ZioJjzUpcbAFdVtVPEbqXljp0Prxt97erBDA4AQMmbpNw2APrY4IeqBdwA6NdPALMwPNhwJjrkDcibIsQ95JsFxhpjEyjFHKglPiYAegTkz5E5Q5M9JuOgjPmnDf+ppTouAORbZtTXE2dOK8ScpQ5eSj7nFNR3fvp75uL4t7czDM4iDACAsjrlOmsWkVcQiQgNWqj3FfCyeAIgAK/X7ShaeukuogAAyBobjYCyL0hY5KAY8xOKdc+4/wDcqhkverKoNn6sLPs4aurB4qLO5ltR1LUB0EL9LSnZSDLb2UQBAFBWfbevP0FEukVq08r+eWhF7y3gVXV38qz47B3kWm5LayDnQbmTGAAAGu2A6JgA+LjYpHYxP8H/e5x1Tcn/5zr5EBfwqe+wBI9V3/togpelMa6HGuVaz2sN51S0c8rm/bpW1wbA3Yd0/NFE+HA8vtNHXfPYEYQBAFBGTYGdTBQi2dlzYMsjBbyuCrcWADIQ6bOQ8n4tZBbyGQeED2gB/8ZlahsgKAcAXOpVI9YmNns5dM9YicHBtYt1dTxN5tzIawDpL7b4hw/IOgfVg3HxnLo2AK762HG7VOz3JEbs+9Zck2AUwQAAlFEowSl5n4NnDf59C87RWpFyYNz15uXmPxaGB+txiQ55A/gt4AmACcwFxa/R1HSgKL0TP+MJgJ4CRWucmYeQR65oBn9KbgP+lplsntDGXMqc5cX91HzOKah/AOqv+NmqBs7E9D0MWABAKds1tVOIQqSIFe/nf//2N57+B6AQ6/bir1zLwwI2AAIAXJv3+QIKKMe4ZKx7qQifbGlX48C3jRswR49V3/tQCwHqT9eTVtSnIsftvSzBYzFHdhUXdTbfiqD+DYBqvyQlGzJszHWthxAGAECZVKsWiMnrYrVp5f0M4L7CXVGfPm5/TMrnTSDXcltaA7kJwx0EAQCQRAdExwTAx8UmtYv5Cf7f46xriiV4LHIXKH7fYQkeq7730QQvS2NcD180udbzWsM5Fe2csnm/g6t7A+DhRw69W0Q2k1SxHbqnIxxNGAAAZXLnUetOEJE+RCJCo2fFewLg7o4eTdxZAMhQpM9CyvnRuom2kSiIMWAAOFHDU3o95QCAi7VOI74exZufgNSaFU3w0EpeA8iofrGxGFnnoHowLp5W9wbABedoTUxWkRjx75upvp9gAADKpBYGr3flXHxp8Jua9a9Fy4OgW5O3P5TCwvBgPS7RIW8Aj+emiqwnCknMBdR0AGmMM19+cpMdgwC1i54CzEPwI//Mq2FAbgP+TnO+/Zw89aYcPVOel5Lt9QSRzi+wXxV/GZZqezXijOsePoxBCwAoCwvtjUQhknULL2hpLVy73ry9wq0FwJrfl5VrOXRohQ2AZe1PCQEAp2sRX0AB5RiXjHXWpm5eg3m3cQOW+bEc+rlOAIWpPwerN1Gfihy3dlmCx2KO7CouaT3F0cWn/GUr0gZAq+lK5uKG9Gjq7P4ewgAAKAtVeXNDbW/J+g41ubOI17Vjj7m/1qHHBRpaWgO+JbZ128gGQABAYh0QHROA/PFzeMxP3OMy3uOsa4oleCxyFyh+3+HdxmI9+HlZBteCZGNsDedUtHPK5v0OLNIGwBUTh/5DTP5OUjVQfPgZYABASZw5c/2hIvI6IlG/UPWOIl5Xbc+hNe4uwGcAcDnXSvfR+uZlk47fTZKA4gyUR90zHeUAgMetChtmPJpvuGfQzP+Q5geAr4UPKHAOJntOQYwTWExiNHDfzN515rXr+xEQAEDRdWuy00SkyaVzcv1DtcDsriLmQlDZ0+nz+fNhLAAUDk//S1IJPr+lFwDyGGeawrjkCycAfvUU9CA0zsxtyLQGaTL5aIm8B7kNUJuSrRFGvSl5z5TTOWm21xN5A6AGsrQsZSMlTRJ2foBBCwAouprqm4lC5DahkBsA92zfyRMAC7sO4+sIL1YgrPnJG7w4oTYRA2o0ALjbpPAFFOBej5DkT2GCsu/6NWTz03rIen1T0J/rBOBO/dE0xnUdG4sTnMSTntNCUsSzZs3/OSnyBsDeRz71O1HZQuI0lDYfJQoAgKILxN6SSBtdls8AVNYvntZ3bREvbevAY2ue3AMAjdZswAvhDmIAAMi7Y6LDAsqODcRwc75hfvLvHmddp/J/WheA4vUy2vDLEttYrPXUJqUfa3iea2ReyOYfK1jMxMnm/fYv8gbABeecuEdEbiYtG/LaYfNaX08YAABFdXrVmkzkrUQiUmd3Z1Evbcw64QmAAJ8BwPlcK9FH66Y7SQ5QnIEyLrmilQO+dAbgY6vCZi+P5hvuATTzP2QtBCDnedG3ekN9ZPL165yCeIPUlpIYjd03U/sIAQEAFNUhh284RUT6uL/YcMofi5oP1aqG4vnnmXwYCwDFYYGwATBpJfg8lF4AyGOcaQrjki9wAHoVv3oKehCSEci0BmkyOW6JvAfjBaA2JVsjjHpDz5THOWl21xNrA2BTWFsq3v1ktTmWGvaBcdff142BCwAoZltmpxOFaMICbwDcq5O7XNQBz9cRfqxAWPOTN3iubBkbAMFYA+B4k8IXUIB7PUKSP4UJ5DxnaLLHZBz4sr7RzI9V3/vQ9wCFqT+axriuY2NxgnMmc1rZ1+h+z0mxNgAunXjcelG5jcRpyFFPtR82ljAAAIooFHlHxGVBkfutetR6dQtuL/g17in8ugAoND76QJHwE8AAADc6JjosoPR9qSfHhGshNsdej/zvcdYJn//TugAUb1LUhl9mGZ2Kdfki+rH66nsj80I2/1jBYiZOXvNXEDvnTW4gLRuuG+OJAgCgaE65zppV5K1EIpJ7Fkzst63g17iD2wzwGQBcz7VyfLRuKttIDFCcgXKqe6bTMs2MAIrWqrDZy6P5hnsAzfwPWQsByHlezKLeqKPHKqPAwXPSwp5T/A2AFfsFydrwfXvXyHlrTiAoAIAi6b9z3ZtE5FAiEWn588cSXCQbAAEAbizLzR4jCmkElhAASGBlFLG4ZPX0GQD0KunWumRfj+TVaJxR6H4r6RTN9uc6AZSkNiVUI4x6QwOfxzlldCmxNwAuG3/0wyLylzKUjTSzI1T5JAMXAFAwI+gIovZ9we9LsHzz/ucW+cD9YElMdMibEq/5yRsPS1bwKFFAnLHG2ASQbZPCF1AAPQKQ4pyhyR6TcVCsXLG08u5Ff2pJHAuAW72TpjGuk9xYzJzGfFfccwoa/GueAtho8TD5yLjZq3sSCQBAcQTDU2mjC/wZQK0itxa/19btjA3A+9ULIUAxOpUwZAMgAIAOC2CcxeDLZl820qROiz8OmJ+4Z64kPLkIMCkm+5ZZ/Tww/Vh99T3Jpzgm9XfawPtprvNXQxsAzfgZ4ARqwpFbu+v7CAQAoAiGXdk+UMReRyQiWbdsUv+HS3Cd/jwBkHUZyDWUWuE/Wg939XqSnwAGAGa6uns1NkwA8HEdSe0q/kqMewY/N+bxYRjgr8aeLZb6k0X3eZ8Gj6UHPy/mYd/nwWI+IbCpkT9eed7R9w67ZvXfReQEkivifXvhc1Anish3CQwAwHeVoHO4GKv4SG2Bym9KcaGhbCczImXGn8zsW+VZbBVbQNiSxacrGQzPAgfZdPeyScfvJilSzDXjIgA0PtVrhHFpsVoqxjpAr+JarUv29XD9njEPId902H9+Pu9EGj6npw+QTO1ivABlKXxZre0O/D7UG/cmOhfvScxzyuBSmho9gIn9XEU/VdwWPYszslOHzV/zjhUTh/yGwQ8A8JrJCDqCyFaVpL/fUYwUzyZvVGzT4ov6f4OiAgCAW3N7jZABOEgXn/yn+Wz3AXzpEdigBy/noS7/JNoxGQfFypX67mcD/c/eP33ufdh4AxSvzCQ5rpPcWMycxnxXzHMKGj1AU0V/TOIk4mJCAADw2Yi5D3UXkeHx2ugIfVHh+s9gVUlSZDujJNK46EsMAAAAgJJ0/4QA8GicpfHhlC/HhO8h5meGuWfUFABp1QjL/i0dqWnUx8bnOY35d2nOq9rA+2luvVTDGwCXjh96j4jcS2o2bMS75685iTAAAHwV1HqdISK9iUQkrYsn93uoHF28PeHZejVXoSgbAAEAAIC0licR1wVsmADglDo/s6B2FXh+4p4hakFwJGfjnjO5DhSj5lgG7/HC99EEL1epTYXLyeJt3gwSCipPAUwglwKVaQQGAOArC+xsohB5FfLr8vQ+nm0AzL9VZAMgAMDbSYyLAND4UinauDTGOgAPhz6bvYowP3HP4G9tsq5ORJO5KMYBUM45MG7hy39jMetE9yY6Lc71pHwpiWwArITBj/yav83V03r/yHmtxzD4AQC+qVYtENPRLFgivr/Kb8uzOtTCbADMKG96jZu9uifVBQCA4veEAIqEL4uAMvcI9BTIf87QFP5EGQclzr/Un9a1z9OW6aWA4pWZ5H9uN6u5hjmNfsu3c0pkA+DS8wc9JiJ/JHka1hxqOJkwAAB8c9thrW8SkQGl7dViX4ryBEAc0LaOQ44iCgAAAEA58OUS4NM4c2TjFvKnjBu4dw+MhAdQljlDc/tj6mPieZPdz8Nbge9rkOBN+QmpmUgcz33XvDV82QsA8IqKjvNsWeCCfyyZ2v+R8jQ5Hj4BMOfevrmp1kJ1AQAAABxZ0rDKBeCd7L5IBfMT/BrreeagC+cMIL9alPqTRfd5H03wspR5tcTzoMU8pyxzJLENgLXmjutFpJPkatihTSLjCQMAwBfVqgWmjW4ALGM7qivKdL1WCZ9kKRQ1aNaXIAAAPG10uAgAmY/L1DZAUA4AepU0l/5xX6/pHB9dJ45ldY9BbcqtBmmC56TkNVAgcZ/UFrXwZbWxmNpU4iY8kXNy73oS2wD4q/96yQYR8eiLbHM3l1Qmj5u9uicFAADgg9sO23C6igzye8GSw/uqrSxVW6/B5uItdNN+DzYAAgBQ9J4QQN7jkp/xBMoh/rhk8xZKMQ8xdZF/eR5LqZ9A8cuM+nriKMQ9UQcvJZ1zChI9T5P/IfES0W9rd/0wYQAA+CBQeT+9d2Qdld2V35QpTyq7KpsZLdGEErABEAAAACgRvvgGfBpnbCBGeW6bRbxI5rP8a5fl+N4MKoB6lUWNiPpU5Lj1xhI8FrqKc3ZPcSzqfU10A2Dvli2LRaSd9EwkwS8cd71ViAQAwGXjqvd1M7F/82VZ4NA8/4eFl7ZsLVOurD28b7uIhN6duOb61v2oMgAAAIBTazlWuQA8w5fRzE/MT+6ppHAPshrr+f5cJ4Bi9B2W4LHqex9N8LKUebXEPa/FPKesciTRDYALzjlxj4j9iORKxPFbNrbyFEAAgNO29TlqmIgcSSQitqEmK8t2zXeO1w4R2cRSKEKeqB1LFAAA/k5kXASA7MdlahsgKAcAvYpDoj7xhk9ikk+ctDfccc+oTbnUlAOdiOYzbgCUpVjlu7GY2kQTXqSfFw6SD41+x8Nlkpu5ZPb5cdff140iAABwtk0L7KNFuI6sO4JAw+UlTZn1RbqYtPMmFDmOKgMAKF4nRCQAuDYu+RlPoByyG5ds9gLzEMqZf0rKAqzRDjK+fRvoFKZi3RN18FKSP6fENwAunzD0r6J2F8mXiGOfajvs44QBAOCi98xbc5SIjKL3jmztoikD7y5pb76ekRMpxdkACAAAAJQMG4EA98aZHWzlnsanAfCPFv8ajNwsUO1ytz+xQg0qgHqV9qQV9anIcSdxS/BY6CrO6my++SBIKQDfIT0TiqTK58Zc13oIkQAAuGZ3remDItLdt2WBA5P7TaJayu90TGydn/cst3ceeHr10R5UGwAAAMCldQ2rXAC+4cto5ifmJxfHpXl87snlFPUJKGvfYQkeq7730VQvi3nVv57XGs6paOeURY6ksgGwycIfmchOEiwRA/d0hucRBgCAc0w+ShBihC3URWW99sCCDSyFoq0MevfqfSxhAAAg1+mYEADeLVVTej3lAICLtU4jvh7Fm5/AEiS1ZkUTPLSS1wDFysNjsTgsT/yKcU9T2QC4ZMIxT6joT0jcxHLp0rHfbu9NoAAArhgxd+3JInZSka4pow8ftlrTU78pbeJY8X4COP28CfkZYACAvzMan4cCSKDiWCbFhZ/xBEopxWHKZq/iJ445n4zMQ6g/V8ydoQWggGu6uAPdcr8eClOpGvisz0mTv54gtUu08Nqil6cMtezZuXsygxkA4IogrPB02lj9ka1cNun43aVdFKq1kgVRB5uxARAAgCz7FUIAgFoEFFj8n+DK9othvmz2PL0Kew1Gbpa6p/Du5zoBuFN/UhnOL9qQr40fK5l6Su1qPG+0sXxL5d74cV9T2wC4fOLRf1KTO0jRhBJd5aJh31p9JJEAAOTtjMs3H2Zi/5HRsqBQfXSowU0lb2ge9/bcc8q10IQNgAAAAIBrS5uUXw8AyePLaOYn5icXx6W/90wTPD/qE1DWvsO7jcWaxPXApZ7XGs6paOeUdo4EaR48DOxaEiwxh9kuvYgwAADy1q3Hno+IyKFEIrLO7s0dS8scgEpn8E+WQpGXKmwABADAhRkZgFdS+zKdcgDAxVqnEV+P4s1PYAmSWrOiCR5ayWuAYlWgxRaLw+LFz/97muoGwMN26o9FZDPJm0wuqcqkd121oT/BAgDkO2XZuUW9tpQ/fPjNDecP2VTm3Fl4Sd91IrKbvImEDYAAAL9nND4PBZBAxbFMigs/4wmUUorDlM1exU8ccz4ZmYdQf66YO0MLQAHXdHEHelZPFjUKEw18HuekyV5PqhsAF0wbulPEvl/k8pSxQ5ua93yWAQ0AyMvwOevfZSInEolYXdzPCIGaiKwmFyI5vlq1gDAAAJAdvnwHAKDI4v8EV7ZfDPNls+fpVdhrMHKz1Osb736uE4A79SeV4fyiDfna+LGSqafUrsbzJq0Yak5/m43Uv0xUqXxd+Ow0yYh+cti8x9h4AQDIp3Ewm5LDsqAIfXRnWAlvIINEROSf/rZhubxr77v6tL+EtAEAAAD8xpPAAOSPL6OZb5hvXByX/t4zTfD8qE9AWfsO7zYWaxLXg3R7oCyeMhn17zSTHEl9A+DyCYMfFJHlpFtimlQqcwkDACBrw69a+3IRGUkkYlm1bNLAdsIgIiKPsRSKuIgwex1RAAAgb3whBRS+745YDljNAHCqdmnE18P9+YZ7Bs38DzM4HusqgGJVpBpBTSte/Py+p5n8nFhodhXJm1wumco7z7ym9WwCBgDIUkUqF2bVO+QpnQ/VdAEZ9Ewo9DHyJjI2AAIAPJ//CQGANHpuTaFHp2AB9Cqu1Tq4njhW1GQE/VaKKUqtA4rRMGU1lrNa2xnzMw18HuekyV1PJl/i3zxh6M0icp/nLY1jqRPOGjH3oe4MbABAFkbMXddiYh8kErHw878v7GMfIQqRu1Q2AAIAspt1QCQAxlnyqyAAzo7L5J7GluRPYQI5z0OawjFRmFxJ/ec693naMvkGFGbdp2mM6yQ35Gu06wFrdMdk8xQfVRORq0ikRCvlS2uVHlMJBAAgk6ncZIKI9MxxWeBvr2byW37+9zmh1R5kXRAZGwABAACAAuBnHwFEo54cE66F2Bx7PYp8z5Lc/Ex9ApgUEziWM/MwNa2R+SduDONuHreYeWgxcziteTmzn/ELOnf9QEw3kOJJljj9zLuvfnwQkQAApOnMmesPFZPziUTc+dp+RBSe09TR/OALe1s+MqzD0aO+9uQRhAEAgPw7OwDFVvfqRFnNAPC3VaF2eTTfcM8YvM4ck7UQgPRqRPY/JawJXi71sXjzi7/3NLMNgMsmHb/bVL5JAieaS72CIPgaQQMApKm52c4Xkb5luubEFhsqu3bt6f4Lsug5Cy9t2Soi64lEtEwKune8ljAAAPyezQgBgMbrgUU8GE+fAeDj0GdzmH+JY0VNRpSyNlnq55TGuAGQV1GyDN4jy7WdMT8zSeZxTgldSpDppVY6rxGRPe4miJetxofOnLf6/zG4AQBpGHNd6yEmwk/Ox3fjLy878inCsI8Hi3hRqXaSZvwMMACgCDMakQBQ0nHGl0WAy+MyuQ13SX5hDeQ8D2kKx0RhcsXSyrsX/elz7xNwa4CirPs0jXkkyY3FGu164Ol6uJjnlOlsuWL8sevE5IckeLJZoKrzq1Wj8wEAJC7cIeeKSH9HlgXe9Wpasx+QRfu9Vw8ShKgjIWQDIAAAAFCI3h4AolBPjgnfQ8yTJ4t/DyzjhCdHACQ/KWr2b9lQTWcLTyPzgcW8mXF/6tli5qHFzOE05snMM86aKjNFJCTNE3XKrS1rP0wYAABJOv07j/YwDS4iErGXIW3btg5YSST20w/aizcAmnc3N4c3PYXMAQDABRVCADTE/S9A6l6dqJerGQBFV+dnFtQu/7BBj8Gb/zHV0zgA8KGOZTVvWULn+8I/p3aRz27I/BOXleMHPSAiN5IwyeaSicw889r1/QgeACAphzzZfYKIDS7r9VvjB/jJqqp2kkn7aUDNeAJgdK8Z9bUnjyAMAACv8XkogATqgUU8mGV9ggDoVRLAZi//EifZe8Y8hHzTwVI/pyR/rhOAb31L3MKX1drOmJ89mugK9FO+CVxKkNP1Ti9TecpIXw07rqI4AACSMHZ6e29R/RSRiC+UkJ//PVAr2GT3stCN3rdr911vJXsAAN7PaEQCQGnHGV8WAUUal2zQQynyXdMbQ/A/VyytvHvRn1I/gQKuazSNeSTbjcXUpiKsh108pyDHv45pxXlDb1eRX5PkiSfovw+bt/Ys4gAAaFRnj85pItLXjbOJ0Ea706vds3TaoDvIpP1bNHnQ46L6BJGIKNS3EQQAAAAAAJKX3Je4PvyMZ1rHhO8hZmMr94yaAiCtGmHZvyU1rQC9tsW8H5b6eWrG71efIK8bXDObTpqnUcjsmtOvfPRwAgEAiOs989YcJSbTiEQDjazKt4hCFzEy+6vn69U83vPtZA4AAACQwXrFsdcDQCR8Z838xHzj7eDN6mc0Xc1ZihjAPJdFjbCkjqXUrmI3xurgOR1cbhsAb5549EpRu4uES9yg7t2av0YYAABx7e5s+oyI9CESsfu2XbWw44cEossm9C9xlnYl9/px89t6EQYAgOe9EgAKQcP1wCIWl9S+fKamAfQqKWIzsn+Jwz1AkWqTdXUims+4AeCmuE9qi1r4stpYbCwCPZro+HnhZwS5XnKoX3G5PHmcD+OHz1vzLooEACCqEXM3vFTEJhCJ+B2BivxixbShm4lel7H9K3kTWdOu3fZmsgcA4P2MRiQAlHac8WURUKRxyWYv+DdnaAp/wtxW5vxL/WldSv0ECjtHaRrzSLZzErWpCOvhYvUxuW4AXD5hyA2yz9NfkESWmsq142av7kkoAACRhOFsEenu3olFaKNz7tVqJt8mkeq5oyE9YJwhavovRAEAAAAAgOQl9yWuIxu3kD8t/jhg8wP3jDoFoN4akdWcYYmUJWqaK7123KdLWurnqRm/X9eCfMe4mqh8iVRPxfFbuwefJwwAgHqNmrPuHSoylkg01L0++v+e6r+KQHTtUKndJyKdnq9X81giv53sAQAAALJY3rn1egCIRBN7EUo2PyH/wWv5FARncpb6BLgpdKpmaILv0+CxlNpVkMY44/koneMGeYd6xSeH/MJU7iHp0iiOdtGIa9eeTCQAAF0Zd71VLLQriUSD7ZrKN6tVDYlE1xZMG7pTRP4eZ2lXcqfxlGcAgP9NEyEAoA3XA4tYXFL78pmaBtCrpIjNyP4lDvcARapN1tWJaD7jBoCb4j6pLWrhy2pjMbXJp4mOnxcWcWADoKhaYOrgUwCtCPnQFIb27VOuu6OZYgEAOJjtazd8TFRfRyQa6AhUdtUq9i0iFqkPvL30eRNd913S7W0kDwDA+xmNSAAo7ThjxyBQpHHJZi/4N2doCn/C3Fbm/Ev9aV2kF1DcOUrTGOia6bXT2xWhqBdnoglcOInl5w3+GU8BTM3JLZ0Dv0gYAAAHMnZ6e29R82CuiNBG5/OvIX+8bNLAdjIqglBuJwhxck1HEgUAAAAAANJYcyfFkY1byJ8Wfxyw+YF7Rp0CUG+NyGrOsETKEjXNlV477tMlLfXz1Izf7+ACN8a5mop+mXRPaxDZJWdeu+adRAIAsD+dPTo+JSIDiURjKhbOIwoRG9GgdlsB1qs5NHc2iuwBAAAA3MOGCQD+4Ytt5ie4OC6NHKQ+ASWeT1J/sug+79PgsZTaRc/rxjkFrlzamzYM/pmI/JnES0UgoXx/zHWtfQkFAOD5hl+57lgxnUokGl4m3LJo6qC7iEM0rYcMvEdEduSzhPTay0Ze0X4CYQAAAIDfsn86Vmob9PiOB6BEOSTqE2/4JCb5xEl7Qzj3jNqUZVGzro6n+YwbAGVppDTBuTC7J8ihSE24enM9zmwArFY1NNXPObpM8j6/VWTwns7aNykYAIAXNAIqV4hIDyLRWEegqjz9L4Y7x2uHiNxd1rxpRMVqPAUQAOD3jKZEAsC+9cDNDRD8jCdQumLkWE9BD0JuMg+hGPlH3gFlqBEW+xDq/bXD53tSjPsZuHQyK88bslhU/o/ETC3hzx4+f8144gAAEBEZdeW6USLyr/R5DWtd17P/L8ioeEztNqIQJ276HqIAAAAAAEAKa+7EXs/GLRTotmlX44DcLE7tSv+9AVCvspi0oj4VOe4kTg2Mev+1gbxRZ/PNBYFrNzsw+Twpn2oxnX3G/NZXEgkAKLex09t7m8rXWRYkckrz9z7JDvHi5/8GwHx6+7eMnNE2gAQCAAAA/F618mUR4N64LB82bjEOGDcujkvz+NyTyynqE1C8vkoTfB9N8Ho0wcuidhWh57VMxogm2ns5twFw2YShvxWR5SRfag6pSPi/I+Y+1J1QAEB51bp3flVEhhCJhm3rlI6vE4YGFldNtT+ksYQsgUArxlMAAQAA4Lnsn46V2gYIvuMBKFEOifrEGz6JST5x0t5wxz2jNmVZ1Kyr42k+4wZAWRqpfI9FbaIJ9+XnhQMXb6dJ+FnGUar5cJJVen6NwAJAOY2eve4NJnIekWi8wTeRb6+YNnQz0Ylv2aQha0TkkTLlTYIt4r+RQQAAr2c0NssA2E89cHMDBD/jCSDf7oovzArbETMPwa9GjbwDUMe4ttiHyOYJbdQ05qyi3k8nNwCunHDMnSLyM1r6VK9qyrD5q4dTAACgXE65zprDinxLRCpEo2GdodhVhCGRxmQVQYjl7e+Zub4fYQAANPDZAAAAAJ4V/ye4rI5jpnGe8DK9CnsNRm6Wek3I+hKAWzXjRU8W1caPRQ1M8v5rA3mjzuZb3gKH7/inRWQPqZ9mBur3Rsxdw88/AkCJ9N+x4SIxeU1plgVp9lsqP1s+deA/yaokYmn/V4TOKgdNnUHwfhIIAAAA8HbVGuv1ANIfl+XDxi3GAePGxXHp7z3TBM+P+gQUr6/SBN9HE7weTfCyqF1F6HktkzGiiY0tZzcArpg49B8idg0JmKp+YUUWjpu9uiehAIDiGza77WWi9jkikVCLGNqVRCEZNZXfprGELMlC+4NEAQAAAJ6vrnzou4tyKQBKJOoTb/gkxqP5hnsGzfwPMzgejRRAsaJGwOX77X4OBk6fXTf9kog8QXKnmksnb+ku8wgwABScmTYFta+LCJu+Gwnjc/PybxZPG3g7EUnG3icpPlb4vEnn6KeNmbXxFWQRAMDbGY3PbwHspx40vgFCU6ho/IwnUPbalHd3xWYvnzpiTeGeMQ8h32JoGaUTtQ4oRsOU1VjOam1nzKU08B6ck9MbAFd8YuhmFfuyTy29pwPgP8+ct+Y8CgEAFNfIq9ZPMJF3EYmkWgP9KkFIuvUtwM8A5yTUkKcAAgDitzWEAAAA4Hni/wQXXwwjQnoV+BrI9zKvCa00AwFgIku8Zmga75HkhnyNdj2oI15F26iX//UErt907dw9X0UeIf1TT+Or3n312rcQCQAonhFz171KVGYWrS3Mq99SlVuXTO3/SzIr4Tuquoq1b9yctI+Mu94qZBEAAABQilUuAMaZ8DQ4ZDUOeFJl8e9Z1nXKnScxA/Chl0l0Y7HW8z6axWVxnxueFxt5iqPG/Ls05+Nk4uT8BsBlk47fbaqfYmCkPu66BYH9fPS1qwcTDAAojlOus2YN5bvCT/8m11iaC08nLmArYk0r9u2H+ciwzlXEkJ1rNowkEAAAAPB4ReBB2x3tUljNAHCqdmnE18P9+YZ7Ro+kKRyzoH0cgDznq+Sf6AfmQM5p/wIfbuuKTw5eICJ/IL9Tf4f+HaEuGHf9fd0oJgBQDP13rv+KiJxGJJKai+3uJVMGLCUQyVs8re9aEbmXxXDcNwjOJYsAAN7OaHx+C2A/9aDxDRCaQkWjYAFlr015d1ds9vKpI9YU7hlPfkS+xdBST6c0xg2AbKYLza1vyWptZ8ylNPCOn1Pgx71Rk7BygYjUfGjpPfemp9oPm0tBAAD/jZrd+jYRmUYkEmxJLPiyqPL5Q2rtlq0gCLGDN3LkrNZjiAMAINYsQggAIM+VJiEAHB6XyW3QY6yjQKmgZbhI1oTpHoscAbCfmqFp1IgkNxZrtOtBHfEq2ka9fK8n8OXGrzh/0F2i8j8MgUzSefyw+av/i0gAgL9GXfPYERboj0SkUpJlQer9lorcd9pT/W4ku9LsQXR5ERqpvPr6QJo+QRYBAAAApVjlAmCcCU+DQ1bjgCdVFv+eZV2nyBGA/iO3Y2k9tVPduSxy5iD3qpGnOGrMv0tzPm48ToFPaRF0NH1GRJ5ggGQyCK9+99Vr30IcAMDTDwT2dLtWRIYSiUS7yS9XqxoSiPTUmrfeIiLbk2mry9i+2fjTq4/2IBAAAADwtKH1YFkY7VJYzQCgzCLV+Sbm6+HbPdYUxnXSBYECA1DL0qsRRr2hgeWc6uLVBsBlkwa2q0qV/M5E9yCwm0bOW3MCRQUA/DLiqnUfFpH3EYlE3Xvalv7XE4a0e73jd4vIKhbDsbX07tXzg2QSAMBLfH4LYD/1oPENEJpCj07BAuhV8sXmMJ/ugaZwD3jyIxzPf00mH6ldgI/9kObWh2S1tjPmUhp4h88p8O0W7dow5BpTucePZZX3jqqpLBr2rdVHUhwAwA9jrm59hYrMIxJJdwD6OZ7+l1Xra8uJQgO5qjpZzFhpAgBi9DvJvxIAUP9KCEBxxiUb9MAQQdlvvJFEAOL2QppGjUhyY7FGux54Oh/4OUd5twFwVVU7A5FJDILMnCC7gxtGzH2oO6EAALeNnd7eu1bTX4hI75IuC9Lq1e5YNqXfTWRYRi11xRayPmrIq8de0XYGYQAAAAAKv8oFkNE4S25c8uQ2+HvbmJ+KX7uMhAeQy7jO4ViUpUL0GBbzZlrq56kNvF9jW/gCHxNg+XlDV4nKjxkKmQ25f6lVen6Lp8kAgMul2rSze+d3ROSVBCPp2AafE1U+48rIosmDHhfRu1n7xhcG+mkyCQAAADTTKS0RI14Ki0kAlFk4NT/FfD3yvmfF20BMDgJlq2Wa0fskdT0N1kh6Lg8CooW7wYGv6dHZ1DFVRJ5gbGT2lh8cNr/1axQmAHDTyLkbLhWRfyMSifv90mn9+Ena7BuPG/NZ2hVlxW2nj5nV9lYCAQDwsAcAgIbrgUU8mGV9ggDoVZJY+qf8eiSfOMneM+Yh5JsO1tWJaD7jBoCbNccyOoms1nbG/OzRRFeunxf2dgPgr/7rJRtM7TPuL6uKNK7s0jPnr5lKgQEAtwyfs/5dYvZlIpFGo2SfJQo5dFtmNxb22rJ6Hw0/RSYBANKbp/gaBkB2PXF5Kg5fFgFFGpfUOuazUuQ7Uxe1seExQhIB9E/7qRmaRo3IdmMxvV0Rmgr/5qjA5xR484ah14nIbQyGTFP8imHXrP4PIgEAbhgzp/XowOzHIlIpbxQitNHRerUli6cOXEWWZW/ptAH3iMg/iERDXduIMVe2v544AAAAAIVe5QLIaJwlNy6L9zOeKM9tY34qfu0yEh5ALuM6h2OpK+eLRuYfi3k/LPXz1Fx6KK83AFarGlZq8l8i0sGQyLCSm3532PzVwwkFAORrxNyHutdMfyYiLUQjcTUN5DLCkGe37/lTANWBM7DaF0kkAAAAIIXlSsR1ARsmADiF76yZn2K+Hnnfs+JtICYHgbLVMs3ofZK6Hpqm4jehxfp54cD3FFl6wdB7xHQuYyNTzSL6s+HzW99KkQKAHKcCO3S+iJxGJFLp7r+7ZPKAewlEfsIguDGfpV2B0th01JhZbfRrAADPmlxCAEAbrgcWsbhYI+cJgF4lr3V/yq9H8omT7D1jHkK+6WBdnYjmM24AuFlzLKOTyGptZ8zPHk105fl54aAIt3q3dKuKyOPuLqsK6VCTcOmIa9a8kVAAQPZGXLXuQhH9OJFIxfam5srnCUO+/t9T/f5oIquLeG2ZdpJqXyGbgHI564pNQ8dcvulEIoH05yk+GwGQXU9cnorDl0VAkcYltY75rBT5ztRFbWx4jJBEAP3TwQ6R/M8DZzV/hyRCAZoKv+aoQmwAXDWx3zYT+SQDInO9Q5Pl77768VMJBQBkZ9RV68apygwikVKvZnLlwgtaWglUvqpVDdXsp0SiMSbyL2NmtY0gEkCJxn2tNkeC8J4xM9pvPGvmxv9HRAAAAIADrplTff2BFe9nPFGe28ZGVWoddQpAOuNas59j1JVrRyPzj8W8H5b6eWrmPVRQlGRYOWHoMhX7HsMic4cFGqx49/w1JxEKAEjfqLmtbzOV7xdpDs+3LdzHhqaOCpsrHREE9mPWvgmMDrUZp1etiYwCim/MjE1nmuh79lags0KzW8fOaP/12Omb3k10AADwa9XKBgsAqeI7a+Yb5htP75lm9jOaruYsgGLMP+m+jyb4PjRNxW9Ci/PzwoXaPNBZ6ZhsImsZNJmPhyMDkZvPvPbxVxMMAEjPsNltLzPTn4tID/rOlKY0lc8svLRlK5Fww6Kpg+4Skb9lv4QsnFf37tN2LmEAim1c1bqJhHP28396h2i4cuyM9rvPmrHxw+OutwrRgvtNGSEAoCnUg4MfLLUNE9Q0gF4lRWz28i9xuGcoUm2yrk5E8xk3ANysOXGf1Bb1JCyjC6I2lbgJd/R6CrUB8JfjX/qUWHCem8uqwud3Xw2DX434+rpXUXgAIHkj5q5raWqqLRORFqKR1rxqd5/2ZP/vEAi3mOr1hbyurN/P5EvvmbfmKDIKKK7dh2yaIiKvOEi9OcnEvrf7nxsfHDujbfKIuQ91J2pofJ7io04A7vbQ2VQofsYTKIf445LNXsxPpZiHmLqojfQ/ANIY1+prjaCmuRc7LcX9LNzPB66cOHiRmF3PwMhFv7BWu/ndX199PKEAgOScOXP9oRrKUjN5GdFIrc+zUCuTqlUNCY5jzWqg/0sUEnFk5+5unyUMQDGNnd4+yMTqHeMvFdGrmncd/vcxM9ouGFNtPYQIAgDywCYXAD7WouRqFxuI4e9tYw6n1sU/FnUKYCLLe4550ZNF1Z1rR/z7H/fpkpb6eWqm+R0UMimCbheIyEaGRy4GBTX91ZlXrz+OUABA406vWlNTN/upqJxKNFJcFqj8ePnkfrcQQ/csntzvIRG5g7VvEiPEzh87c8NrySqggFRmiEjviH91tIrO1UOaHx0zo+3TZ1/5xOEEEgAAt1atbLAAADDfcM/29yFA8vdMvcpZAHkIMhjL9dUiS/BY9b0PG/2KNOf4c05pjFIPrTxvQJuZnc/Ayc1QDTp/PWz+ap5UBQANdZamhx6x/joRGVWCniRP2y3ovJQwuLwUsO8luYQssaYwkGvFjKoBFMiYy9veaiL/0cAh+qnoV8KOzsfOmtl2+divbOhPVOFIAwCAQpBCPTj4wVLbMEFNA+hVUhS7dlGbckscNuihSLXJujoR9fCiAKQ2PC3xca0Jzp3ZPUEORZoT3Pl54aCot33lxKN/Kio/dmtZVZL8ftqxInrLsHmtr6cIAUCcKcZ05Nz115jIfxKM1OfSy5dNGrKGQLirQzr/V0R2FW6Y5/O2bx5zxYaPk1VAMZx7nTVLRed1tTKss970MdNLpTn451kz2+aPmclT3eH4jAaAiuNMheJnPIFyiD8u2ezF/FSKeYipi9pI/wMgjXGtvtYIapp7sdPC38+gyGmxe1fnBBFZzQDJTX/R8LfDr358GKEAgGhGzlk/XUQ+SSTS7R9V5B87ntw5i2C4bcW0oZtF5EYikQxTnT5i7roWIgH4b/2TGz8jJq9L+LA9zHSCWuUfY2e0Lxozo51/1FXW+YIQAKDWAKAWpVy72EAMbhvKUOtefCwSHiheHdGM3ifZiTeZpyJT01z5nCDu0yUt9fPMLkcKvQFw1dTjngzNPiF8lpSnXqbBwjPnr30foQCA+oyYs26mqFxMJNJvC011wqrqcbuImwdUv+3vuTt3RkdWOoMrSCrAbyNntJ1kKp9O+fOC0Spyx9gZ7TeeNXPj/yPqAABkvWoFAMDN+Yn5LO97oCncA/UqBwHkQTMYy/XVIkvwWPW9Dxv9ijTn5HlOac53QdHT5uaJR68UkWsYQLmOk24q9uNh89dcSDAA4OBGzFn/ZRW5qBB9kvt+vHRK/5sJgx+WTOn3KxF5JP32uCRMPjRm1oazCQTgp9Or1lQR/baINGeyohM5y8xuHTuj/ZazZraPETM6DwBARrKfclLbAMHsCcCpjwWoTb7NbWzQg8PtU9cnooW5KABOFqt8j8WcW9qJLqFzSu56gjLc/m6VyiUi8iD5nftZzjpz/to5fFkEAPs3cs66qop9hkhkYktTpXIRYfCp31Ez1e8X7bJyXRiqXDPqa08eQXIB/undc+PnRSSPn+Z9i5ksHDtz411nzdj44XHXW4W7gVRnND49ALCfetD4BghffnKTIgj4VJvy7q744tm/jticT0bmIdSfK9QggH4oygssvTdzrD8KyI8yNfAOKEXGLRo/aIeF8hER6cy/pS99CzjpzGvWfPP0qjURDQB4zoir1n9aRL5AJLJhYp9ZeEFLK5HwSyWofUdEQiKRWBc7ULrtmUkkAL+MmdH+elG5LOeV60lm9r1dj268Z+z0jR859zpr5s4Udq4AAGoNADxLY9cuq+OYaZwnvEwvrgGF7NOMJAIKXhc0vfdJpTToC99HGz8Wkrz/jTwxOa2nOKrzOVKaLacrzx96m4p+nqHiQv+vH+/ed+3Px81e3ZNoAMDTm/9U7StEIrOPEu7oNWjAtcTJP4smD3rcRJZ42gA5elr2n6NmbRhGdgGe9AxzH+ouYt+TbH76t57S9koR++6GJzc+NGZG2wVjqq2HcJcAAEhg1QqAcQl4MA4YN/mvyv29Z0pOAcwnkWtEvPfRBK+HjX5ZzAU+nZPlNkb2r1TPnHxj2+DpKvJrBpIT42bslu76yzOvXd+PYAAobwdsOuKq9VcmtvmPvrMenRYE5y44R2uEwk8V0Xnptsfl68pU5X/eM2/NUYQCcF/TriM+L6KvdmRN91xLI3KMms7Vns2PjpnR9umzr3zicO4WACCVSSer5Xpar2fdDsAhyTzxBlnObWzQK9G4zK190vRynVoDsD4r8LGYc4v/OUG655TM9ZRqA2C1qmGtZh8SkXby2wlv1lrnn949f81JFCgAZXPKddY8cu7676naFKKR6Xw5c9mkfncTCH8tmtrvZhV9sEjX5MDCcFDH7ubryC7AbaNmtL1NxC5x/DT7qelXwt2dj42Z0fa1sV/Z0J87VyYpzWh8SQRgP/Wg8Q0QvvzkJkUQ8Kk25d1d8cWzfx2xOZ+MzEOoP1eoQQD9UJQXWHpvRn9UlmaZ/mYfQdnS6+YLjm41kY8kO9YpGw2MraMDkT+eOX/1BwgGgLIYMfeh7v13rv+JiHyIaGQ66Ty4o8/OLxIH32+jmqnNJxCJ+7cxV7R9lDAAbnrPzPX9AtEfi0iTFytXlT5qepk0BY+fNb39+6NntB3PXfQXn3gAoNYAwAub3bi1y+o4ZhrnCS/Ti2tAIfs0I4mAgtcFTe99UikN+sL30caPheTmEWvoiclpPcVRnc6RoIwJtnLC0GWiMpeh5oweKvqD4fNXV8WMygig0EZd89gRGvb+laj8K9HItJ0MQ9VPrPrYcbuIjf/CSvP3RGSrdyeuro8amzPqyg0vIcMAt1SrFnRY5UciMtjD0+9mIh8KTP921vSN3x9z+aYTuaMAABxg1QqAcQl4OA4YN3lTj++ZklMA80nkGhHvfTTB62E7SxZzgU/nZLmNkX0FZU2joGPXpSLCTwA6NIpM9AvDr1l7/Zkz1x9KOAAU0dir2wdZR7ffitpbStUnudGqXbN8cr9biEQxLJt01BYR+R4fByWuTxDaT0fMfag7oQDccVfPjZ9XkTNcnWDr1GRiH1K1e8bO2HjjWTM3/j/uLADA9cVual+ms24H4JBknnhTBhX37llKr4d/9zj5niPpgqD0QQDrs5IfC0X5nMD1cyrtBsBlk47fLSbniMhT5LdTTe179ZDOW864rvVoChaAIhk2u+1lnWHnLSLyGqKR+eTyWGV35dMEoliCMJwvBfoM05w5Dz210tF7FhkGuOGsmRvPMJXPFeiSVEzOslBuHTtj46/GTt/0bu4y6swcANinHjS+AYKf3ARQvKHPZi+f7oGmcM+Yh0ANAuBqP6S51YyivQ/NMud0IEGZ02zFxKH/ULEPJzMWGc4JOqnSGd45/OrVpxMKAEUwfE7rWytB7fcichzRyFxoIv+58NKWrYSiWBZdNOgBE1lMJFJZZJw/Zvb6/yAOQL5GzmgbEJr9IOl1uzMrV5N3itjKsdM33X3WjI0fHne9Vbjr7jL/MgxAoWsNAOS+bo5du6yOY1Ib4Wq+p/knKEKf5tbPdQIoxvrN9lsakn/SnyV4LCSZL0XbqJfu9QRlT7TlE45eqGpXMeSc09dUVwybt/oThAKAz0bOaf1kIPprUelHNHJoJ02uXjZ1wK+JRUHvsOp0705avQnuNWNnt72MLAPycXrVmppErxeRASWo5ieZyfd2PbrpnrHTN37k3OusmQwAAABAbt1poa6GL6G5bdmMAzaqcs+STnhyCmAiy+1YynxXhN7cYuaPxcw9y/j6DiQgZUTag7ZLReQPRMK5uaGbqH5z2Pw13ztz5vpDCQgAn5xynTWPnLNuvoheKyLZfpHNZ3vPuP9Q6/gUYSiuZVP7/17Efk8kUllUHRaa3TBuflsvogFkr/chGy83kbd5sm6LVl0OfJhXish3Nzy56aExMzZeMKbaegiZAADwbbFrES+FL5AAUGYJUKrzTczXw7d7rCmkrRZ2/ADIblxbgseq/33UiWtHVvHk54Wfjw2AInLn+FM7gk59n4i0s/5w0of1kM47h81d8zqyFYAPhs1efeSAXeuXicgEopGbziCUjy6YNnQnoSg4kxnFuRTnvHrnLvuBmLGaBTI0dkbbf4rIheUt63KMmszVns2PjZ3eXh31tSePICsgIny2CmC/9aDxDRCaQo9OwQLoVXLvqVN9PZKMqaZwD5iH4Hj+k6JAifshza0PyWptR1/lU/Ev3oTEBsC9lk0asiY0+6CIhFmXDdTl5VaRPw6bv/q/CAUAlw2bve7ESqXpdhN5F9HItWf78uJpA28nEMW3ZFr/RSLyNyKRmrNHz26/jDAA2Rg9feO7TPTrab+PHytX7SuiX6ho5z/HzNj4tbFf2dCfDMmXFSzDAPheawAgUm+Z6jGT23DHT2GiTGMIxezTNPNjASj++s32WxqS/3lgS/BYKHof4uZ9ZgPg89w88eiVKvpZIuHssO4pot8YNn/1/479dntvIgLANSOvWj+6UpE/iMhLiUauE8btO54Y8BUCUZb7raais1irpLq8/vKome2jSDYgXaOmb3ylqv1MRJqJxgtqZh81uUyaKo+eNX3j/DEznzyOoAAAACDSqjbl17veUIPbxrih1rl9z9j8DDCROXYsZb5zYZ5K5u8aeYqjpnSemlpOsQHwRZafN/hyEVlAJJyeMP59967dd464du3JxAKAC6pVC0bOWfcFUbtJRPoQkVxtNQ3+Y1VVOwlFefTc0v4jE11NJFITaBD+eOSVbScRCiAdI766riVQWywih/u5RIvy4tgfafQ0kQkadv79rOkbvz/m8k0nkjkAUEbub2SxiJfCF0gAKLMEKNX5ptGVGDy5x5pC2mphxw+A7Ma1JXgst+Y5alqyYdKC3Yt8zokNgPvcB7U+u+QjonYX6w+nHR+G9sdh81dPJmkB5GnMrNa+tx25fqmIVJ2aV0vad6rYhGWT+j9MZpbLguqJewKxrxbhWhz+MLZ3ENqSs65YO5SMA5J1evXRHpXm5htF5CVEoy5NJvIhVbtn7PSNi0bP3PQmQlKqZg8AGq4HFvFglvUJAqBXSQCbw3y6B5rCPWAeguP5T4oCJe6HNIM+JMknizbyBDm4X/yLNSGxAXA/FkwburNmNk5ENgvD2WXdVfSq4fPXLBh1zWNHEA4AWRs1t/Vttebgz2oyjGg44ftLpgz6IWEop55bNv6PiDxGJFI1qCZNN42b39aLUAAJMdNePXt9R83enPlb+x89FZHRQWh/GDtj46/GTt/0bhLKpbzhsxEA2c1RVBwA9beP6R0zudrFT2EWZX5iDIFcSWJMkXcA8+N+3kfTqBFJbsindpWjD3HvnNgAeAC/nHDMI6HZv4tIjWg47701q9w77Jo1owgFgGy6TNMRc9ZdYqa/FrHBBMSJm/LQjubKROJQXguqJ+4Rla8SidSdvHO3XX/KddZMKIDGjZ7V/hVVeT+RaLQNkHeK2MqxMzbePnb6xn+tVo3POgAAANBgi1kkfAnNbWPccIOTuWdGwgPIZVyr36ePhueRxv5OHTxPTWV+5UPxg7h54tErzewyIuGFQWqyePj8Nd8547qHDyMcANIybPbqI0fOXb9QRaaLSBMRccIeVfn3VRP7bSMU5bb+kH7fEZF/lm7tm/0KbcTAbW3fZYMN0JgxMzZepqafKufVW1qHPU1Efn5Xz43/J2Z8TAcAcH+m01RnRgDpd6BAoccB48a3e6aZ/YwmtRtAlDqRy1MCU6xr5kiNLGMu+XVO2V8PX9p1YeXEo2eJ6ncZG940vh9t6ux+7/CrH+fnOAEkbvTcdW+oVJruEpHRzAUOXabZpUsmD7qTDMWd47VDxL5MJDLxH3f03nAlYQDiGTOzbZKIfa1YE7JD60STG0WV7wkK2/wRAgDacD2wiMXFGjlPAPQqefXFKb+em5z8MblnKFJtsq5OhFYJKG4hiTG+4z6pLepJZLW2Y47Oeg7ya6NeWtgAWIc+Rz01XlT+j+HsjSESBMuGzV/7jRFzN/UhHAAadXrVmkbMWfe50OQWETmGiDjl50umDJxDGPCM9Yf2/76IPOLzNfjTSeqkUVds+BxZB0Qzemb7f4npVdSb1KzeumvbPDLNhbzhsxEA2c1RVBwAda5jnTomtY75qUz5Dupt/DFC3gH0ZAc7RPKbBum5XL33WsxcThAbAOuw4JwT90izvEdEHiIa/lQOFfsvq+z867Br1p5BOADENWLuhpf2PGL9b0TkiyLSTERcYg/t2dX94zzhB89353jtMDE2pWW3tPni6CvaPkUkgPqMnbnxg2rydeHT6/S6A5XPr6oet4tIAAAAoOHeMuXXH3S1ncYKHv7R4o8bbnCZax11Cih+z5Ts5rzM5xjN7Y/psRP/O3XwPDXx+ZUNgHVa8Ymhm1WCMSLyBNHwyjFqtnL4vDXXjf12e2/CAaD+2dl0xJzWc8XCv4jIWwmIc3ZZYO/75WVHPkUo8GJLp/b/sYj83vkTLcz6z7466oq2S8k84OBGz9z4HjP7DuvwZ2tHGke8f+uOo35IbAEAPs50bJgAfOxAAeYnuHbP0tggo17lLIA8qDNjOasni5ojNbKMueTXOWV7PXzxEMHyCYMfFAnOEZEOxoZXja+Kyrl7du3+67B5a88ikwF0ZeS81mOGz13/KxG9TkQO9XqhWdC5QFU+uWzS4LvJVhwgQSxUuVT4fCjDUmNfGz277XwiAezfmBnto9XsJyLSVPBikKvA7NJVVe0k40ox8QCgEDRcDyxicbFGzpOaBtCr5ITNXj7dZOWelUStRLXJujoR+iCguPNfjPEd90ltUU/C0r525BS+ov28cHRsAIxoxYTBvzTROr7cpOV20LGqduPw+WsWj7rmsZcQDgD7M2Lu+v+0mv5VRd5BNFztEfWbSyYP/B6RwMEsm9r/96LyM1/P33wcmmZzx1zRNonsA15ozIz20SKyQES6UW9SLUO/u+mylkVknGt5w2cjALKbo6g4AOpdvrp0TGod81OZ8h3U2/hjhLwD6MkOdojkNw3Sc7l677WYuZwQNgDGsHLCkG+I2FeJhLdG1axy3/D5a79w+nce7UE4AIg8/dS/EXPWLRKzb4tIHyLirNvCYOsFhAF1ukxEdhOG7FY5JjZn9BVtnyIUwNNGT2//gIj8QkRYd6QrNA2nEAYAAAAkLb/NXmzcgr+3jU0T/t1gdza2UqeA4vVMyW7Oy3yOoSw51Ss09nfq4Hkmm2BsAIxpxXlDPyuq3yUS3uohYtUeO5vvHXbNmlGEAyiv06vWNHJO62Sr6T0iMpqIOG29BbX3Lpt0PBu6UJclU/s/IiZXO32ShVw82lfHXLHhcjIQZTd2xsbzVOX7ItJMNFIvpt9adEnLXcQBAOB9J00IAMYZwLhBw/cgjQ0y7IAB4M98ktWTRY0amRKe8hcXGwBj31+1jcH6c8X0ZoLh8WRh8lI1WTxs/uobRs5rPYZIAuUybG7r23oese5uE7lKRHrTJzltd2DBvy6bNGQNmYsomoNuX1GRNiKReW926egr1l9drRrrDZTS2JntnzOxa0q55o7UdyTysd9TlaDjc2RdCfHZKoAcno6V2tNxqGkAJcohHdy93OehtJ/Gxoa+/FmR0jbWtSp9EFCGeVETPFbChc9yPy9SpDxNeHbnxBdyDbhz/Kkd3Xt0/zcRudvZFpoaVGeY9OxQw/uHz19dHTH3oe5EBCi2Udc8dsTIq1rnBCarROTVUWo2H47kw8QuWDy1/x+JBKK6ceoRT4roZX7mvfcd1vl39G77+bjZq3uSiSjPhGU6Zkb7TDP5IvUmo0qj+t83XDyAjd5kGIAy0/gVx7I+QQDuFQ4PxzqbvfzrcI18B/UWQGHmvnQ351nsQ1BvmB/yPCc3rocNgA1a+PGWrVKpjRKRx4iG93qK6Bes0vPeEVevfZ+YMUsAhetOTUfOaf1E2NH8kKlMYh70pgecv2zKoG8SCMS1eGrLd0Xk90QiF2fvtG4rh81efSShQNGdXrWmMTM3/Y+IXEQ0MvNg/8OOnEcYcmqtCQGAGEJqDQD6pAivZ+MWuG3wsXaxvgSoI+lOZOnXjBc9kZd52Il557m/0wbeT53NtySw8SEBK8Yfu65mtREispFoFMLLLLCfDJ/fevvweWveRTiAYhh+1brThs9dd4uJfFNEjiIi3vjNhh4DphIGNNY7q6nJRBHpdPP8Cn8H3tps3W8ZM3P9cSQjimrc7NU9ex+ycYGIfZRoZFrfp3xjvPILZQCAQuELcMC9cca4BBgHKS9uU7gHmsI9U6fiAaCs80mSNVMTvB5qV/HnAs0416NjA2BCfjnx2PtD03eLyJNEoyiLDztVRH45fP6am4fNa309EQb8NGZO69Ej5rRep2q3qsib6ZO88qB22/Nvd/LFPhKw+ML+f1Gxa4hEbp3aK031T6OuWPcOYoGiGTu9fdCuzh6/FZGziUacviP2v/W8fuElRy0n2OQaAApB1sdMbeMQNQ2gRIGb/Lxjpr1RlQ19+bMipW2sa1XqJcC8mOuxLPfzIkXK04Rnc05sAEzQzROH/FlV3iMiu5xqoalBjXYo1+TNAAA/rElEQVSlZ6iEdwyfv+b6YfNXv4yAAH4YNnv1kSOuWnd5p8iDInJufXOe1VkWkMEHApsCrYxZMuGYJ4gGklJrav6ciKzzbCwUaWF3lEqwcvQVbRPJRhTFyBltJ5nKH0XktALMvT6d7JawWaeRgWQYADyv14xdcSzrEwTgXuHwcKyz2cu/DtfId1BvARRm7tMES4A2Pmcq9Yb5wYVzyv962ACYsOXnDV0lob1fXP2JOcQfrSbj1PS+4fPWzh0xd10LIQHcdPp3Hu0xfO66i4NK5R+idqmI9CAq3tltamcvntzvIUKBJC2bdNQWMbmESOSqScTmjb5i/ZzTq9ZEOOCz0TPa3lcR/YOIHE00smUqn1o8re9aIuHAvSAEADKoHdQaAOWudWzcArcN5ejT6PmAotcRzeh9kp14jXm4QUEq99Fi3hCLeTOzyrd0o41YVpx/9E1i+nF6lUIuprqJ2AUW1B4ePn/tF86+8tHDCRTghmrVguFXtX6w55buD6jZDBE5gqh4ujZQ/c/lkwfdQiiQhiUX9v+hmKzwpO8ocqM1qVfvtt+Mnd4+iKyEfzOV6Zjp7V9U0R+LSE8CknmncNspO4/6OoEAABR7ugPg2jhjXAKMg3RpCvdAPb5n7LQBmE+yqpma4PVQu4o/F2jGuR4NGwBTsmLikO+ryhQiUVi9xay6q7npseFXr/3au67a0J+QAPmoVi0YMXfde28/Yt1dqvIDETmGqPi7ZlaR6tLJA/6Xm4VUF5dWGy8i24hE7t4aNoV3jZm5/p2EAr4YU209ZOysTdeLyueET3QS7Dvq/iikM5Ta+GpVQwIMAEh3savJzFxRX093AVCiwE1+3jHT3qjKhr78mXdpqwlfq1IvAebFXI9luZ8XKVKeJjz9c2IDYIqWnzd0roh+hkVmkRtl7SNqlzU3dTw64uq1V58xp5Wf/wIyMu56q4yc0/oftx2x7h4xW2AiryvFwrzQ/Z5+c8mUgV8kEkjb0osGPSaqn6a/cUJ/C3Tl6NnrPzvuequQnXDZmMs3Hy2HNP/OzN5LNHJrFmYvvqz/XwgEK/YX5QUA7FMP3NwAQcECnC4cJeiu+DyzsB1xjvnO3AZyBSjvXKYJlgBNcM6k3jA/lHfOYgNgylZMGPJVEWMzQ/H1NJXzmyryj+Hz1nx/1PzWVxISIB3VqgXDr143btv6dfeZyI9E5FVpta7I1OLtT/afQBiQldOeapkvKvzUtBsqYvqlnavbbhl15YaXEA64aPTM9jES1O4WkdcX+Tqd7oJUHujetLNKNpI3AMpZO6g1APyhKdQ6Nm7RC3PbUI5xQM8HFL0uaHrvk8oc+aIn8jIPOzWPWMwbYqneTM3pb5/GBsAMrJgw9Asi8lUi4fVavc5SYc0i+qGa2b0j5q1dNHz+utMIIpCMU66z5hFz1334tiPXPaBm14vIy4lKYdzW2aHvX1XVTkKBrFSrGtY0+ISI7PKz7yikNwah3DV61oYPkKFwxelVaxo7s72qIjeKyJFEJDe1wOQjC6YN3UkoAAAAkBQ2IwPpjxtEkc5mX39rHR+WAmi8RliCx6rvfahdycbXnXjGvcdZzqtsAMzIiglDPiMis4lEaQQmMlosvG34vNYlw+aveQchAeI547rNhw2/unVqv93rHhax74nI8USlUGvm+2th58iVFw/Yzs1B1pZPaXlQxL5EJNxhIoeJyg9Hz97w/VFfe/IIIoI8jbpyw0t6H7rxDybyBdbOWfQdB/23wbNuvLTv7QQUAFiY+rTYrX+m2/+lsMECAMo+t6U838R8PQp0z9SVfGezDFDGedESPBb1htbJn/ud7jnxJUaGVpw3+CIVvZr1h1uNcvpRt5Fq+uvh89beO2LemvPGfru9N6MB6NrIeWtOGDF33dXNu3etVpPZIjKUelO47m5tRW34imlDNxML5GX7lv4zROQ2+hvnLvhDQbfd942ZteFsshR5GD2r7b1BZ3CXiPBE7/zrwd/29HziCwSCFXtXK28AeHE9aPzLdE2holGwAKcLh4dvwWavInfEmsI94+ekkW+9NdIJKNhcplFKQOQXWObXw/xX2H68JPeXDYCZ5oja8vMGTRaRrxOMUjrRRK/Zs3PPmuHz1s498+rWVxAS4MUdlunIOa3DR8xtXWph8ICInS8ivbOfe/koLAPtFtiZiyYPepxQIE+rqtqpFf2QiPAUSvc+RBhoKjeMntX24zGzWvsSEWTh9OqjPcbMbJuvpgtE5LACrPl974I6A5WPLZt0/G6yk7wBQO2g1gDwh6ZQ6/iSmV6YVEA5xgE9H1D0uqDpvY+m8R4v2pDPPOzUPGIxb0i6c00jSdLYFj42AGbemKutOG/wBDGbRzC8W6snVSr6iMgFgdrfhs9fe/OIq1vPHne9VQg0yuz0+W29hl+9bsKIq9fdbyrLRGQELVSh6+pTFbPhyyYN/BvBgAsWT+73kIpc5F/fUZaaYe83qTwwZtb6T1SrxvoFqRlz+aYT+xza648iOoFouMK+xk//AgAAINWOM+XXO77gJgGQybhB3uNSPa511CkAjdcIS/BY9b0PtSvZ+Koz5xT3Hmc1r/IFWi65rbZiwpBJIjKbYJS8ypmcYWo3bGtrfWT4vNZPjZi7roWwoEyGzV3zuhFzWq/qWetco2bzReTlRKXwa+btFoajFk0ddBc3Ai5ZPLXfdSK2lEg4W7eOMtVv3tGr7ZaRV7adRECQpGrVgtEz26dJJbzDRMivXPuOF3yE8sctO/t+kQACABOEL4vdaDOd95cCAHC4ePOUXf/kds/UlXyn+QHKOC9agsei3tA6+XO/0zunJrIqr3uqtkLkwuHz1+4xtcsyzaUSdPLmWek2kaNF7KsW2BeGz1t7Uyj2g03N61fcOf7UDgYLiuZd89Yc1RwGH1CRj4rIyb73Wb7Vm5ztFgnes2zqwN8TCrjYm9mMto9rk90jIk7+3Cz1RkRU3hSEdsfoK9Zf29y9s3rD+UM2kbxoxNlfW3fsnU0bv6sibycaThW8LWGl6QOrqtpJMFixR5gj+OYSwD71IGrF2ff1By8u8SoaBQtwunB4+BaN1zq42xE/nTjJ3rM0kpG5DfXninX1g42kE+DZXBZh0Hb50n1fkFXfwtquBP14Ce4vTwDM2fKJgz8lYjzVAM/oLiLnBKKLWjoGrhkxf81VZ17Tegphge/GXW+VYXPXjRoxp/Vn3cKgVUXmiMjJic29qbV6SFCnqL5v6ZT+NxMKuGrpJf3Wq8i5RMJ5FRE9v2N380Ojr9gwbVz1vm6EBHF6k7Gz2ibXmpr+KlE2/5XkW7LcuyC1CYsuPvxRMpW8AQBqDQB/aezaZWVfkDA/AYwpQgAwluO+j6bRNym1yZO+u+znxAZAB6yYMPQLZvJZIlGUmpFY6e9nppOD0O4YPm/tfSPmrb10xNw1Q7gZ8MmoK1tfOWLOuunb1q9bHYgtFpV/ExE2apRPp6h8YOnkATcRCrhu8bT+N4jINUTCC0eIyBU7e/e9b8wVG/5NzPgmBHUZM6P99bse23irmV4lIr2JiHNLrx8svLTlR0QCAMqBL1AA+FiLilW7WEpz21CWG2yOvZ6EB6hz3h6LspRKfOPOI439nTbwfprJeUbBTwA7YuXEIV8ZNn/1NlG9kpKB/XiViVwugX51+Py1v1axH+yUbr9YNbHfNkID14y6svWVYZO+V0zeG4q9lo/zS6+mqh9aMnnA9YQCvti+ZceFvfoc8iZL6kmlcdZAlM4oXmYiPxt9RfufddaG/150Yb+bRJUIYh/jLt982K6g9gVRuYC1sLN17eE9PfV8AgYATBBFbqbr/mkp1gUAABfnp5ivR973wIe+i+YHKOOar/5a1liNyP6nhKlpyd7WosUznevhSw+HrJg4dM6w+WueEJVvp3pvSlJrCrr4CMTkDBM9o4d0XDN8futSC+XGWredS345/qVPMYqQl1Fz1r/apPZeU31vKHKiWLkaGi/rTTZzQU1MP7RkyoCfMErgk1XV43aNntP2PqnZncLTwXxykoneMPqK9rt15vr/XnRR/4VsBISIyOlVa+rVa+MndlntiyLSQkSctctUzlk26agthAKO97gACl4P9l3jH/xg8T4ToGAB1KZ8sXnLp5v89DGT3RzGPIR806HLfCZFAS/E2uwWY3wn37fs/yRY2xV1QmrkuH7dX34C2DErJg75vpn+q4nsJBrowqFiNk7VftTU0WPT8Hlrbxl2devk0deuHkxokIVh89adOHLO2uqIq1v/Fmp4j6l+QUROzK0fSK11RUw1UfvY0qkDfkwo4KPFk/s9ZKKfcHFBjQPNBc9G52TT4MYxV7T/ZdQVbeP4aeByO2vmxjN6H7rxTjW5VpLa/FeSjLLs33DSokta7iJry5I3zGgAspujqDgA8mv0NYXapdQ65qcSjSGUud5S14Cy1vp472H7PUTyPw9MbaIPcfmceAKgg1ZOHLxo2Pw1o0TlJuGpM26Nz7oreub/fq4iIm9Rtbd01oLZw69ee7uJ3FBRu3Hp+UP+zs1DEkZd89gRtc7md6jIGSJypoT2UlOl08H+1FTso0smD/ohoYDPlk7rd/2o2RveJSLnEg3/mMhr1OT60Ve03ykz2/978UV9F/NEwPIYM6vtrWL6pVDsdKLhw4C17y+8rN83CQQAlLZvY8sAAO9qUbFqF0+u4bahLDc47VqXXm3kmUZA8XqsJOtcDsdiHk4lvnHnkcb+LvrNjPtTz2mvIdgA6KgVE4f8Zvj8x99lGiwVkb5EBJG6YJU3qsgbQ9Hpw+et/ZuK3SimS3duGnTbqqp2EiLUY1z1vm7bjjzyTaL2bhE5I+yUU/XpzabAwXSI6UeWTB3Ik/9QCIfInik7pNsbROQkh9ZAiOYUUVs46oq2v+msDVfvMfvByosHbCcsxTTmik1vlLD232J6JtFwzAHrmt5juzrOI0AAwARRpma67g/92RkJAHBxfor5euR9D8rZdwFwf81Xfy1rrOZkNW8xP/r0+UGxrocNgA5bPvHoP50xv/VfKhouFZFjGRsU15heZaKvEpVP9+jbunXEvLW/DU1/aU3Br1aeN+BewoNnjLveKtvXrn1N2BS8Q0XO2GbydhE7lLVbgetN8nPBbhU9Z8nUAQvJCBTFgmlDd46Zuf5fw4r+SUSOIiI+L6X0VSJybTfVr46a2f7t5qbO+TdOHfhPIlMMY2dterdZ7SIJwzNZAXjVQG2phPbeG6qDdhAMONzjAihhPdh3jZ/GUwooWAC1Ke92nNWTPzf56WMmuzmMeQj5psP+8/N5J0KKAl6I9SS0GOM7+b5l/yfB2i7vOSitWDZyXH/uLxsAHffLiYPuH3bdP98staYlInIyEUGDepvIaFUbrbWaDJ+3dr2I/ErUfqk1+eWySUPWEKLyOH1+W68enXv+nwSVt6rZm7etX/dGqQR9vP1xxNTmXj4Kq9N2keA9S6b0v5lQoGgWXTzg0VFXbni/mCwXB56ESlU62FxgItZldI5QtYs6a5Wpo69oWyihzl18ccsqguefc6+z5nVbN71fzC40C1+X6cjgH1Qlcnit6EdvuKzv38nmsuYNMxqA7OYoKg6A/Br9+Mek1jE/MYZQ9npLXQOoEbHn4WcPkfzPA1Ob6ENcPSc2AHpgxfhj1439dvvb9+ze9TMTfsqquEu9XAwQkQ+I6QcsEBk+b+2DIvJLNfmdqt669PxBj3Efi2PE3DVDRPUtIsFbxOwtUut8rWjQJMaCHA33Lk+FYqOXT+5/C8FAUS2Z2v+Xo67ccJmYzCQahVERk/eI2ntGz2r7q4nOb640XX/j1COeJDRuGz1742Cp2SfWbdn4XyIymIh42j6oVG+6uO8NRAIAIMKXuwDKUbuSq3X8jCe4bdzgMtQ6AEWpTQeuC8lvzmMe9j+H4s4jjf1dknmd3zzJBkBPLPx4y9ZTrrtjdEttwDdN5CNEhMVUSl4uIi83lYkm9swTAm830dtUwts07PmnZZOO2kIiuO/Mq9cfF1h4cvD0k0NPNpHXi8jAp/OXTgSJLv43BWLDlk8edCfRQNEtmdLvilFXtp8iYu+n7yic16rYdZ21jjmjZ7UtVgt/2GN7/2ULqrqH0LihWrXgrkPazzTR8VILR4soa1m/F1YLbrr4qC/JJUQCAFDexpcvxwHGJVCEccC48e2eqZhYJj+jCQBR6kRW80l979N4XWN+LNPnB+78vDBfmnjkzvGndojZx4Z9fe0aMfkMEaG4ZmCAiIxVsbEiKhbsCofPW3u/itwuoreGYXjb7s2D71tV1U5ClY/Tq9Z06GHrjrcmOdnEThaT14voyWLhEcKSC+n3FY8HZsOXTBl0P4FEOcaLWsfM9Z9orugrReR1BKSQeojIe02D9+7s1b5p1Ky2n4raj5ZM6/dHUWVazcHYmRteG2rwgTut/d9FZCjdTSH6jrtt556PMqbgcI8LoEiFoIF6sO9nimk8pYCCBdCr5IvvT3y6yfF+dpB77J/c7lkOtWn/1/q8E6FVAopbt2KM77hPaot6EqztijoHubNRLy1sAPQu8dVWiHx22DWr/ymi14hIcxEWmfBGICInmsiJIvYxDVR69G3dPWze2vvV5H5TvVdVHggsvHfHxsGPsDEwOWOnt/fuPKTj5aHIK9TklWLyclF5hci640ORbk+PZZbxebeuJfsw5V4LaiOWThqyhvxAmay8eMD24VeuO7tiwa0i0t+rBXVp+mUTsUSic5SKTBDTCWOuaH/YZm74YSDyi4UX9/8rQU7X6Bltxwcq7zWR/zCRV6uxaHG/C6rbBrPK2YuqLTuILHnDjAYg6zmKigOgzkWluPTzutQ65qcy5Tuot9Q1gD4q0WM9ewjPf2qYPPL8/mR3TmwA9NSKCUO/dea1ax5Rk5+JyBFEBDnqriInicpJKiZiIqE8vTFw+Ly1D4jI/Wp2r1lwf6jytz29dv9z1ceO20XY9jVi7roWVTsmNDlaAznaQntZIPpyE3lFh3QMeeYfrj87T4CeK78w3yLd9oxdOuGYJ4gGymj51IH/HHnV+rM01N+ISE8iUnwm8lJR/UIo8oXRV2x4XCxYqipLZGvHrxdVB7GRqeEAm46esek0CcKzVewsEXmVFx//0ndEtUvD8F8XXtbyOKEAADg6uwNA6rUruVrHxi1w21CGWgegKJPPgetCspvzkv+Z8y6uh3n4oMKY9z3uPNLY3yWZ1/nMk2wA9NjK84b8euS8NW+sBbJYRI4nIi7OZ6VucbvL0z+P+DrTp4MWiEiPbd1k+NVr20TkcRFZrWKPiwb/DE1Wa6CPB1JZvXRiv/VFCkS1asFdh7e17G4K+6pJS6A21EyOFpGjReSYvf/zWBHraSKiz/xKjarwwBs4uNBfeGjY+f4FE47ZSTRQZkunDLht9JVtHzazn8rTT8h1ZR2N1AuhHi1inzSTT0qvpl2jZ7X9RlSWaBguXXTxgEcJUH3+9cr2gR218Aw1PcNmtb9bAhn4XNKjgEIV++hNl/X/A6EAAND4vmCNTfcDMC4B78cB4yb/HinaPUhjgwwfYgJovE5kNZ/U9z6N17WQm16izw/ceGohGwA9t/T8IX8f9q3Vb5Q9+jMReQcRYfHhiX57/3OqiYrY3oVGaBJKKMOvXrtLRB4XkzZR2SwqmyXUzarh0/+76eaaymYV3aQdulkr3TYvm3TUlrRP+uwrHz18d6W5V02DXk0ivWpmhweqvUykl6r2FpEWMen79LVZfxFpEZGW22RdXxEJgr11m0198LZPUvvWzicGnreMn/cGRERk8dR+Pxt1RdunRe1yolFaPURkhJiMMA1k9My2+1Xtd6HoHyo1vXXhpS0PEqKnnXXFpqG1Wu3NqvJmUX1XR6ed+PQHzijJguyymy7t91MCASd7XADFLwQN1IN9P1NM5ykFAOhV8m3XqV3+3OSnj8kGvTIso3O6ZznUpv1f6/NOhLUdwFS5T81I/yd949VhCpb7c1Cx7xEbAAtgxSeGbj7lujuG9a0NvEbEPkF+owAFu4eInCAqJzw3w+7990h7j/H0ZjoTaTIx2SXDr14rIrJLRJ55Ktl2Eduz9823qkqniIiF8uSLvmvuriqHPDuZm/QQsZ7PnbYeIiK9RKTX7r3/XWXvAjvQp89BhXHEktuBhXnaF6/66aWTB7LJCXiRJRf2mz5qdtvxIvZxN6tSWfsOE7EcoqPyShN9pYqcG1ZMRs9q2ygifxSTP4Yqv69s67yjDD8ZfPaVTxze2dl5koqcJGpvVJO3hGFtiOpzDReK2AUdYFioXXPTJf1mEkXyhhkNgAtzlJsVhw9oASnFuIx/TDZ7MT/5me8AfRBQzrkv/c158Q5BvSnP/JDWvXbxnF6IDYAFcef4UztE5L+GXbPmPhGZyb1FSfXY+x8RkSOev8h89nvm/aw79/0OmsUp60U8zy5R+cjSyQOuJxTA/q0/tOW8/tvbhqrImUQDL9JXRMaIyphARKRXU8foWW33itr9Kvo3EXsgsKb7u2078h8LqrrHt4sbO729d60iJ1RMjjcLXykavE7UXlfr7Dj22W7K0pyWHfhai76jqzu0qPsxLZOIBADAo9kdAFKvXcnVOjZuZaUmIoHLJ8jaFIWudfyMJlCUyefAdSHZTYPJ/8z5/s/32ethHk7lvsedRxr7uyTzOrt58hlsEiuYFROGXDVs/pq/iMr18vQXjsh9PuOjS7Bwh7faAgvOXjyl/x8JBXBgd47XjnHz2/5tx277lYi8gbkAB+kKm0XkZDE92fbe3JrUZGev9s7Rs9oeEZX7xORBNfmHBLohNFmnga5fd+hRbXeO146sz3fU1548ItCdg6SpcrSIDpYwHCqBHi0ix4jJCSY2OHhmg5/uTVRyFc/l++27tfbvi87RGtEAAND4Asi5N+UJegDjpvA9UrR7kMYGGXo5oMhCSWIzfNd1Iqv5pL73oa7x+UFW55TM9bABsIBWTBzym5HzWk+tBeENInIyEQFcXA4DzvckD6gFoxZP7f8IwQG6tmBiv21jZrWOCoPgdyL6CiKCGOuyE8TkBJG9v15sez+EDU0Gbm230bPa2lSkzURaxWSDBPKkiuyU0PaEottFtVNEtgYiYaj21P7eJAilT6haCcS6i8khonK4qBwiJoeIyRGicpSY9BV55j97mkQqe+cHe3qTH593oD5/k6Bj1MqLBm0nFAAA1xa7aR+TDRMAci1RKM08xHxTfLndsxxq0/6v9XknQvICSLVYuXosbitNeDRsACyopecPemzc7NVv2do9+KapfYAaxOKmPAWbvEH+GeF73pjIiu626/03Tj3uSe45UL9FFw3aOGZO67BarekWFRvKPJV332F7d9IVpovqbyL9ReQ18vyH7anuzQF7LicO0G+ZPvPvu/c+sE+e15uRSEjOo2GTnrl42qCNhAK5z2h85gpgP/XAzQ0TFCzA6cJRgu6KzxfKfg+Yh0C9BZDk3BdhXHf50n1fEHnOfPYQ0eoN/RHzQ7LnlP71BCRNcS2YNnTn8omDP6giF4pIJxEBUKp+AHFjN7vXoAGj2PwHxLNo8qDHVTuHicgmogHQdxSJ1feidYGE7148re9aEgN15w0ANFg7qDUAfFw8JFfr0liQNHOrfJxv+EwcjBsAHkw+WfU0ltG1G/NwqvfdYr+fNnCe6mC+1YcNgCWwfMKQ2YHYGSKyjmjkNZ/R4gJw3i5V+ejSyQMvXHCO1ggHEN+SqYPut8BGici2HNfRQElyjT7boTuxuRZUzrzxkv4PEw0AAI0vAN9XDmxGBlihF79HUmodACdrQOPvowm+D2vUcs2N2Z5T0mOKDYAlsWzC0N9WrOP1IrKKaACetT30FUjfOjE9fcnkgd8jFEAylk4ZcJsFOkpEthMNACWwtWI6YsnFR95LKAAA7tHMj8mX6QByLVEozTzExtbiy+2eafb5bhRJgHmRY3HPMwufFnJssAGwRJZOPG59n76DzzCRr+3TR/GzVfB5rUvegLxpxG1BrfO0pVMG3MZdAxLuvab0+79QbayI7KTe5NV3EB3yBhn099sstJE3Xtr3doIBJysTn7kC2E89cHMDBAULcLpwlKC7Yp1Y9nvAPATyD0CSc58mWAK08TlT49Ub+iPmh2TPKd3rYQNgySw4R2srJwz5tIiMEZHNRAQA/UD81tX/Jly/cegTm/9l8bSha0kYIB3Lpg74tYVylojsIhoAfYf/vcM+dgQiYxZd1u8WkgDF754BuFw7qDUAfFw8JFfr2DhDb0sqgHEDwJ/JJ6uexjK6dmMeTvV+xP87beD91MF86xobAEtqxYQhSyph8HoR4YlPmc1ntLgAnLFdRD+wbPKA8QuqJ+4hHEC6ll7U/+ZQ9V9FZHfG62igJLlGn51TnmxTseE3XtyyimAAAACgiCsHNiMDrNBdW4incUxqHYD6ZLu1qPFaowm+D1/OuDu/+f+EQPN2lMIpS88f9NjGyvq37f1J4JCIAA4vb+krkJwHazX5f0snD/hfQgFkZ9nUfstUbJyIsOkWQBFsF7VRN13S73eEAgCQPPXkmAfHl+kAABfnNuYn/+R2z9SVfOcLMsDnmpT+uC7DsUrYC6mD5+QBNgCW3J3jT+1YOWHIp03l3aZSip+AZLEC8galzRuVBU27mk5bMW3gfdwdIHuLpw1YFKqeLSI7macAeGy7iYxaeFG//yMU8KaD5jNXAPupB41/mV6MjYoAHBiXKb4Fm72K3xGbb/kOHCT/qEFA0eYyjVICIr/AMr8eFLYfL0jPxAZAiIjIyvOG/Lp7JThJTBYSDZS0HoJcK3Krt0tEpyydNPCchZe2bCUxgPwsm9pvmYgOE5EtRCOruYDleWFmM3pcFzwpEg5bdEnLb7nhoN4AcK12UGsA+Lh4SK7W8aE78xOpANaEAPLvbVyrC7bf00z+SX/UuXTve/y/K9fmQTYA4lmLxg/auOL8IWeJyEdEZAcRSWN8UvoBZO6BQIM3Lp08YA6hANywZFq/30kYvFNENjm0LgBK+tEBImirib1j4SX9f08oAAAAwEqDlQnAOMiDOnHPuMcANciP98jhWHyHk8O9Sj7oFvO4FvOckppX2QCIfayYOOT7QaVymojcSTSAkvVUKJofdO7RUxdP6v8XQgG4ZclFLXcGEr5dRNYRDdB3wAOP1yrytqWX9PszoQAA+NuMuN/g8GU6wDgDc5uL44BxU/R7pimkLR8sAdSkxuuEJXis+t+H+lWu1qlY95sNgNivZZ8c+LeNTevfJCJfEZFOJiUgSt6QYcg9G7aI6AeWTh744ZUXD9jOXQDctGjawPuCsPJOE11NfwPAVWrydwkrb1t6YcvfiQb8TmZCAGDfetD4l+maQo9OwQLoVVB2UTc8GMlY4HtMbAD4PpYjzCsa/QW5/JRw3diOlVyPUa6f8o2LjMMB3Tn+1I4VE4d8NlB5m4jwZQ+KXg9BrhVjGWr6ew2Dk5dOHvC/3HzAfYsu6vuANVXeLCL3EI005wI+OvRsNqPvcOdy/iyd4b8suuzIx7m5yK7eUJkAxK8IVBAA/jT6mkKtU2oj81Mh16Yo07gheYEy9Uu5bN7TNOqNZno9ZeujGs+X8mweZAMgurRswpBb++y2k8R0uoiERKTR8UnpB5CKThH570MH9X/7kqn9HyEcgEe91qSj1lQ6greYyEpv1yqA1x8d4AB+1T2snL7wM/03EAoAAACw0mBlAsAV6Xw4SK0DUMw6l8Ox+A4nh3ulic9XFvOcLOb1JDGvsgEQdVkwbejOFecPvsxMh4vIP4kIUKh1HXxPC5X7TMM3LJ08sLrgHK0REcA/Cy9t2WpNW8aa6k+JBug7kP+tt+8PPKzviAWXHfkU0QAAFKsZcb/B4ct0gHEG5jYXxwHjpuj3TFNIWz5YAoo5jSX5tLuu64QleKz634f6Va7WqTj3mw2AiGTl+YNv7tYUnLj3aYBebzJhsYJ084YMQybZYCb6jaC7vWHZpMF3E2nAb8smHb976ZSWf1eT/6a/AZBf46JzF17c8tFvjNcOgoHC4fNbAPupB41/ma4p9OgULIBeBaVfmkVMHCMZC3yPiQ0A38dyhHlFo78gl58SRg49Rnl+yjcuNgAiskXjB+1Ycf7gy1SC00XkQSIC1pAob67l2uo9HITyzmWTB4xfNH7QDm4yUJR6pbb4wv5VM50snv9jC/diy/LcydmMvsMlNVH55KJL+04WZcAg73pDCgKIXxGoIAD8afQ1hVqn1EbmJ8DzccOXh0CZ+qVcNu9pGvVGM72esvVRjedLOTYPsgEQsS2fOOiW3Yd0nKSil4tIJxFhqQcgE6GIzan0sNcunjpwFeEAimnphf3mSiCjRORJogHQZ2dgq4icvejilusIBQCA2RoAqHUoAPZQcYMzqF3UOgB+1LkcjsU87PX89sK/y25ja9jgdbIBEA1Z9bHjdi2fOPhTpsEbReQuahFAriFVD1oQ/svSyYOm8NQ/oPiWTOm/IggrbxKRh5gLQN+BFD0aauXNiy5pWUwoAAA0I27gy3TAvXHGuAQYB8WvXek+6RRAkZZoST7trus6YQkei3mu8MlZ6nNiAyASsXLCoDv7tAx+g5pNFrEtLFbAAosMQ6LZUBOTmYfWOk9edsHg3xNNoDwWXdT3gU7Z80YR+RXRAJBCg/J/EnS8YcnFR95LMFAafP8E4JlC0EA9sIjFxRo5TwD0KuAm13nMZDeHkYzZLMupTd7HBkCdYzlCIdFG3ifdwkdtymFS0SwmJM3pb5PFBkAkZsE5Wlt+/tC5YWivFJEFRASe1UPA1WXonyqhvWHplIGXLJg2dCfxBspnxbShm7dv6TdcVK51oip53XcQHfKGHvd5vtVjZ993L7po0EZuGNysN1QmANn1NlQcAPk1+vGPSa0r/nzDPQP1FgBSqhGaRr1J8smI9FHlmFuSPacm0gpJu/mCo1tF5Jxh81cPF9V5YvJSonKgkkYDC2Q6f/rVcT1lJp/tNWjAtQvO0Ro3ECi3VVXtFJEJo2e3/cnE5otIT6IC0GfH1KliFy28pN8cQgEA8GW2ZnYHQK2Lwr8PQpESUoEb7GDtoq8DqE3114Uk65yKiWVbf3gcWyo5FHceaezvksxrUg4eWjFx6PI+u+w1IvIlEdlVmloEkGto3PVNQdOrlk0ZOI/NfwCeb/G0ft8x1TeLyCPMBaDvQAxtanImm/8AADQj7mO/BuDeOGNcAoyD4tcut550CsDlJVqST7vruk5Ygsdq/H2oa44nZ2nPiQ2ASNWCaUN3rpg45PMWNr3KRG9gsYLyLbDIMETKhodFbMTSyQPft/CCllYiBmB/lk7t9+dm7XaKiS4iGgAidCJ/7LTglIWXtvyGWKD0+JwWwDOFoIF6YBGLizVyngDoVcBNrvOYyW4OIxkzWa1Tm/yPDYA6x3KEQqKNvE+6hY/alMOkog6ek4M9ExsAkYmVFwx4dOXEwf8qIu80kXuICFhDgiX6C+wQkf/e0WfXq5dOHrSceALoyo1Tj3hy6dSWs9Rsioh0sgCN0ncQndRmM7jc436jx46W05ddetQabgz8qjdUJgDZ9TZUHAD5Nfrxj0mtK/58wz0D9RYAUqoRmka9SfLJiPRRyd/7Yj8hkA2AyNSKiUN+s6d98OtFbIqIPElEKP1AydeLZiI/Ma29fOnkgdVVHztuFzcJQP01TW3xRQPmiIRnishaAgLQZ+/HDlX90KJLWsYvqOoewgEA8Hm2ZnYHQK2Lgo0zIBW4wfR1APypTZZJnVPqT0FyKO59bOzvNLP3i4sNgMjcqqp2rpg4dE5Qq5wgKtfKfp5aQ68NkGsl8FcxO33Z5IH/vmzSEJ7GAyC2JRcO/E237h2vE5GbiAboO/A89wdh7Y0LL+77Q0IBAKAZAYD9Y9MKkP64gW/3TDP7GU0AxVinWYLHcmH+sYTOF/nmZRnPiQ2AyM2ySQPbV0wYMsHC4DUilusX1ixWQIYhQxtE7LxDBw54/dIpg/6PcABIwg3nD9m05ML+Z4vKRBHZSUSA0ref396ttdNuumzAPQQDOAA+pwXwTCHQFI55wCk6mpCbBNCrgJsc45hsbPVxGe/JPVP3YwOgQPUgxntY4ien1CZXbrAWJbHTwwZA5G7lBYMeWDFx6NmByptU5fdEhPpe1AUZSr9E3yEm0027nbB08qCvLzhHa8QMQNKWTOt/jQS1U0TkL8xTB+s7iA79TWFtMZMPLrq05RMrLx6wnXCAygQA6VYcKhRQ2kWlU8ekdjHf+JfvAPkHlHfuS39zXrxDUG/KMz9oYc+JDYBwxrIJQ25dft7gt5no+0XsUSICoCDrxVBEvlOpdZ6wbMrAy5ZNOmoLNwFAmpZMHXT/IbrnTSo2V3hoCErNga+1su07bg9r4cmLL235EfcejFAARa0FbHIBQK1zd0HCPXYYqYBC1zoARZl8LKOJzBy89jLnQdz7bhnff0s8r5PHBkA4Nv7VVk4c/NM+LVteIaIXiMi64s9ntLigfyjwgne5WXDysskD/3PxtKFriQiArCyYNnTn4gsHTFYN3ikijxAR0HcUWmgiMwYe1vetSz7Vn/EOAKAZAYCI2LQC5iGUITct4jGNMQQgwtjOqj+yhM43mfehrtG3uXVObACEkxacc+KeFRMHz+vWFLxMxKaIyAb3JwuADMOzbpVA37V88sARy6f0/yvhAJCXRdNafqu9aq9RkenC0wCBInrMVN61+JKWS78xXjsIBxARn9MCeKYQaArHPAA+IQJAr4J0b3K8jRhshM2fN/dA3Y8NgIwGv7r8Hun/1DC1KYdJRR08J4ewARBOWzR+0I4VE4fO2S3dXiZql4nIk0SF+u7zggyFX6LfaybnLJs88E3LLhjwa+IBwJV+atGF/S9T07eLyD+IyDN9B7M4/Y33vfMP1OQ1iy9uWUUwQGUCgPwqDhUK8KN5LvoxqV3MN/6NIYD8A8o796W7Oc9iH4J6U575QQt5TmwAhBdWTey3bcWEodM7TV4mYjNEZBtRAeDKnK4iD6jo+5ZNGvja5VMGLiDAAFy06KJ+t9Sam04Rk68LTwNEaTjwtVbynyWsF5Exiy5u+fDCS1u2co/BCAVQtlrAJhcA1Lp8FyTwdL4hFVDoWgegKJOPZTSRmYPXXuY8iHvfLeP7b4nndbLYAAiv/Or8IZtWTBx6abem4DhR+aqIbSnGfEaLC/oHT90vKh88dODAVy+dPPB6UR4nBcBtyyYdtWXxRf3PM5G3ici9RAT0HZ6FX/VnEnS8ZtElLYuJBgCAZgQAksOmFTAPoQy5aRGPaYwhABHGdlb9kSV0vsm8D3WNvs2dc2IDILy0aPygjSsmDPlMUDtk6N6fBn7CjckCIMNK4l4x/UivgQNfs2zSoB8tOEdrhASAT5Zc2P8P27b2O1nMpghPVgZ8aCPXmdm4hRf3HbfookEbCQiQID6nBZDDz3jyCREAehVkMQ/xlF0fl/+e3ANqE8CclVo9UK+OxVyYw31SB8/JEU0kE3y2bNJRW0Rk+hnXPfz1po7uF5jKFBE5ish4Xt89mymNtU6Z8vMuqcmXlk0ZeBNP+wPgu1VV7RSROSNmbFhcqcg1InJm+eq6iRizOJwWqti1HT0rn9679gFKjJUXgNTX/M9+JhW14lChAM8GudPHpLuCq/fM73xHEWo4gGLNZRHmlS5fuu8L4s+ZzHf0+P6eExsAUQi/HP/Sp0Tky6fPb7uqu+z+uIhOFZFjiAyAROZelVWiOmPZ+QOWi6rJVMIHoDiWXdL/YREZNmr2+verBTNEbChRAV8EObHmvy8Iw3Nvuqz/HwggqDcA0FjtoNYA8HHxkFyt44ts5idSAawJAeQ1XqNPPln1NC94H+bI3JuQuPNB/L/TWD92//T7JZnXL45TfPwEMApl1cR+21ZMHDpnd/vgl5nYB0Xkz7nXsUhDHoBDQhH5mZm+YdmkQe9YdsHAZTz1D0CRLZk24Cfaq/MVZvJFEdlJRFAc3k3fO1Xl8z129H09m/8AAMzWAFCc2kWt8xw7lOB8QqVzTGodABcnSsvofM3Baye3fG/g0jsnngCIQtr7k3Y/EpEfDZ/f+lbT8FIxGUX1Rf5S+rdM/KuEJO0xkZ+GgXx15QWDHiAcAMpk0fhBO0TkCyOmb/pmpbnzq2LyQfon0HdkanGl1nnBjZ8a+E9CAQBAls1I9g0OT7sB3MO4RJnmoaTGAePGv3uQ2D2LnbZ8sAQUeWpMpsYkWSdcPRYaim0mt8K/+80GQBTe8omDbhGRW4bNa329SjjJVN4vIt1ZrCDPBRmctN5Ev97Ngq8vnNJ/A+EAUGbLLj1qjYh8ePTMdf8jQXCViLyuuOtKEzFmceTeTN4dqk1eckm/3xEMIIeVF5/fAthPPWj8y3SKC+D0IPepkUjxLfhcu8gd8dOJk+w9Zm4jlADQeAF7bm6KcKwuX7rvC+LPgdGukX6KSdWVc+IngFEaK84fdNfy84d81IKmo0XtMhFZTVQcrtFAVrmmcpeIjO9Vq71k+eSB/83mPwB4zuKLB646dWu/15voOSryMBEpFz6HzqLHtU0qNqXHcX1PY/MfqDcAkG7toNYA8HHxkFyt40N35idSAawJAeQ1XjXB99H0roc5MvcmxDLNSxGLedMt8bxOBk8AROmsPG9Am4hMH3f9fVc+1d5nnIpOFpHTUq1jFmXIM7MAGeg0sV+oytxlFwz+PeEAgAOrVjUUkQXjqvfdtLPXUeeJ6mdEpIXI/P/27j24ruq64/hvnXMl+SUZbEm2hR2iALEnDmagwaQuST1MApbBTsPETmca0vaPhDYOCjiAIdOZinQ6GXscd+LEJDhQCg0ZWoWJQTHC1EyUAIGKAdxgHh3LdbH8tiWwJctGuues/oEajJ+674e+nxn9I13pnrv23muvfc7WOSgtRVdnD8j8h2OixPda75p0mPYBAICzYgBGR+4i15U47tqGou9QufmbnuIWCXIdQF4rp+MdWU6jSCjevjV67hDIBkCMWq1LZw9KekTSI0337vp07LpZ0lJJ44gOcovHVhVwLt1tsd/v5vc/1Tx9FwEBgBRqp5bZg5J+sHjlwX+OE/FySd+WVE1kWG8jJYNuvj52/eOTd9TvIxwAABRTMZL/AoeL40DxYVxiNM1D2RoHjJvSa4OstVna3ZYTS0A5T43ZyTHnzhMjf59s5hzyV9HUV3lpitJqbzYAApLavzH9RUkvfu6+7beG0ZivuPxr5rqMyCCXCzLkTezS04H7TwZ6GzZ2tFiSkABA+p5YUdcn6Z6mtXvvDYaCO036G0kTSntd6ZIziyOnIpn9a5gcumfD3dP+l3AARbjy4vwtgNPkg8wvppNcgGIb1yW7cSuHb8F57XKuiN/vONltY+Y2QgkAmSewD+amFP7WOV966gvSnwNT+4zUU0yqxXBMbAAETrD55osOS1onad11P+6ea7G+LtmXVeoXtcnRGJ32uenBWMFPn75l6g7CAQDZ1d487aCkOxat3rMytsStJr9FUg2RKS+cuMhYLLPH4kh/v3FF7ZuEAyDfAChs7iDXACgdH5wgz16u46Q78xPAmhBA4WubYssLH3ofyqWC94P8zwfl0+hsAATOYNPfzuiU1Nm0tme5h8eXSPFfSnZ1WvkmpZxBiQtkYFCuNpk/dKy3oZ27/QFA7rXd3nBI0t9d/713v2+V7zVLapY0icig+OS1zh6S2SNxpFVs/AMAoEhnawAoUO4i15W4crhGzOaGMm+M3DQwuQ5A8YzvYn2kLxNsIds93X6Z2e9lsrE1+/2FDYDAObQ3Tz4i6QFJD1z7w32NYRjd5O43SbqY6ICFe9F4We4PDYb+82e+Ob2HjgAA+bfx7vPekXTP4pUH10QJ/4bJmyU1EBnqjlFmQLL7FQXfb7tr0k7CAQBAqRUjFDhAOWLTCpiHGDfkukxff5a+mXa3pe4CynNqzObj57N5t7jMcg7zXKmXY5m0f+nMV2wABFIw/BjR78r9H5p+tGeem3/VTUtNOo/oILXJnzIhC3aa/N/Mw4c3fmvqVsIBAMXhiRV1fZJWLml5/Z8GqmuXmnSbpCuIDMrcO+a2big5tLb9O9MOEg6gRHH9CUAW8sGpZ3xyc5cCAJmM6xKd9KlVkNb8kc2NGHTGfI5ragQA5V6YpHUntHO+9NQXZD+fnv4gyNuF7lfFWJ/k95jYAAikNU7N26XnJT3ftHZbs8Jx17r5Erl/QbIaAsQaEjnT69JGlz+86ZaGZ2RGDwGAItXaMntQ0s8k/WzR6gNXy7zZpRslhcVZd/jwfyfiZJy4OKv/NvMfV43VA63L6voJB5CvfENmApC/2oaMA2CEi0rl8m5w2ctdXLBmvgEAoHTqpXzNjx96nz8cJpsVclMPZfPOjsVcy+cfGwCBDLU3X/KepDZJbUvWdI89UuELLbAvS7pe0rj0cgZLPeAE75p8Q2z26PGeac90tFhSktRMYACgVLTdXv+cpOduWHXgEiW0TO5flXQ+kUGxnHJIUdJkG2L5ul/dUddBTAEAKOxszVk0AOQu5L2Ny+EaMXsayrwxctPAuc515EagfGuf4s6dxfq3kGp80+2Xmf1eJhtbs9tf2AAIZFHr8hnHJD0m6bH56w5MGONDN8j8RkkLJFUTIbBwH7F9Jj0em35Z3fPOr4fvIgUAKHG/urN+m6Rbl6zpvntAVUvN/euS5hEZ6o6S4Npvsp8Oud3XvmLyLhofAIByLUa4YAOUZznPJhSwKGbckOsyez11F4CRDutsPn4+m3eLyyznMM+VejlWbo8XPhUbAIEc6VhW3y/pUUmPNq3dVhUnxn3GXIsk/5KkBiLEAosy4RRvm/R4JG97r7eh4w93+gMAlJ3hf5p4SNJDi1YfmiWL/sqlr0maRHRQZCKXfh24r586sW7D+pttiJAAZY7rTwCykA9OPeOTm7sUAMhkXJfopE+twgSU1vyRzY0YdMZ8NnnJ1Ah0B4AElqa07oSWxttmP5+e/iBY2xW6XxXjhJS/Y2IDIJAHw48J3ixpc0uL3/a7uj2fDjz+M8kWS5pJhFg0jFKRpBfctFFR9ORTt874PSEBgNGn7fbatyTdtei+Pd/1vvCLZvqKS5+XFOa/7vDh/07EyUbbiQuTtsj8X4YGo5+3f2faQXoAynh0PyazzmLLN8V8EIHFXfQbIJPhZa+5+foRzMWpzt3ZrwZOyAfp1EKeYoY7/d/3Q/QaIDNDQ4PHrbJy/emHoqc4jguRu05zgnyEB3bm3GVn/bwVFdpHzzkpNu47ZLY+nbkgyGQeykGR6ym+jaU4SkySe8BVHZ1tTRFsj6X1J3WyHCxnPCe9zQozCHfTc4DCMvP/iD04eGo+8LNmo+zkDEsx45mkOOX89aF520byW36u779CDaWNLu9Kpx46cx01kpbMVoU/0nk39WOy0/zMZC/kYqQAyJPr7337Y5EnFph7k0vXSBrHEM15Hs59EVToNFy8MTtkrqdi+UaP4qc3LZ/RSwcHAJxs4aoDUy2M/9xkN0m6Ir91B/VXylWLl8enMWmXu1oj+cNP3lm/hRYHAAAAAAAAAAClgKtbQBGZ/+COMWMHqj7rcbxApibJZhEVsQGwtOP2nqQXXdpsCjZPmDrlpdalFtGpAQAj9YXVez8RB+FfuPuXJH0893UHS6S0qhYv2U/TLdcvgjD+xePL61+QGXcpAAAAAAAAAAAAJYWrW0ARW7juwNQ4HvyMTJ+T7FpJHx2VgSjRy7Cj9i6Apv+RtNllm80rN7U3Tz7CaAYAZMOiNXtnxx7eIPkik+blZBJlA2B6FUtp1WvdUvBLWdza9u2659n0BwAAAAAAAAAAShlXt4AS8vkfdF8SJuwauV0jab6k+lHz4bkLYLHGLCnpVXM954F+O2jxs898c3oPoxUAkGuL1xy4OI79Rpm+KGmupCB7cyjLpJSrluKu1SJJL5q0Melq5/G+AAAAAAAAAACgnHBlCyhhC+7dPdMjzZPp6uG74JTvI4PZAFgsMRuQ9JJcv7XQnx2wihc6ltX3MxoBAIW0aPWeWgXBtS5bINd1yvSfJNgAmHrVUny12iHJnpLpycGgctOm5RN7aT0AAAAAAAAAAFCOuLIFlJGmtXvr4iCeZ9KfSPpjSZdLGl8WH44NgIWIWyTpLbl1uvl/mrzzWG/Dax0tlmS0AQCKVUuLB501h64IFC2Q23UmXeVSRWrzJ8uktKqWwtZrRyQ96/LfmIUdf9Q/+eWWFotpMQAAAAAAAAAAUO64sgWUsSX/7uHR/bs+ESn4lMyuNPmVkuZIqiy5D+Ol2QYldBfAWNI2ybbI4ldcQWflQOLlJ1bU9TGSAAClbNF9e8bFA+G8INZnXZqv9x8XXHX2+ZNlUloVS37rtcMyPavYf2MedFQ11r7autQiWggAAAAAAAAAAIw2XNkCRpklLa9X9tVNuszcL3f5HJculTTHpPOK/uC5C2C2YnZM0uuSXnWzLWEcbzmaqPg9j/IFAIyKWmhN99hjUeIqBcGfynSVYs2VafKpcyhLpZSrltzVakmTtrp7p8w6gzDurJw+5Q02/AEAAAAAAAAAALABEMCwhT/ac2FS8aWmYI7JL5M0c/hrTNEcJBsAU33zPsV6y+Svu+lNud6UEm9c1Vu/g0fiAQDwgaZV+y9KBD43DuxKueaadLncxhGZFKuW7NRqSUnbXPovM+uU/CX1J19pa2kYIPIAAAAAAAAAAACnYgMggDNqafHgd5P3X2hBPDNwzXJplqSPyzVL5tPyfkBsADydY5K2S+qSvMvduhTEXRVRsK3tWw076cUAAKRufosnqmv2zXQPP2muOS7/pGSXSvooa6hsPgbYd0q2VdJrJt+adNs6fqDujdYWG6QXAgAAAAAAAAAAjAwbAAGkZcma7rH9iURjFEQfC90aXdbogTeaq1FSo6SarL9pWW8APOOrj0p62107zdTtrp0m2ynpbSna3n7LBbtl5vRIAAByb/HKg9WeiGYrDma76WLpQ18TWESepl5z7ZepS1KXm7oCty432x6G4bYNt53/Lr0KAAAAAAAAAAAgM2wABJAT89cdmDBeyRlxHE9ToOnuwQWST5P0EbmmyDRFUp1SvVheLpsATX1y7TVpf+zaGwTaJ9m+WLbHXAc8TO7249q1afmMXnoTAADFb+GqA1NNuiQIdZHLLpTiC8ytQdJHXH6BZJPKcCHZJ9cuN9sduO9xqdtde4PQupOR70y4bX9iRV0fvQMAAAAAAAAAACB32AAIoKDmP7hjzNi+ilrJ6uLQplisWjPVuvlEudXIfKJkNZKfL7caafj78jGSTZC8ogCHPaj378zXL6lPsn7Jj5j8sCvol3u/zI+4q0dmvaGpNzbrsch6LQx79yd29rx886eGaH0AAEaPJWu6xx71MTPkPtXktVJQK3mtuU82s8mSal2aLOk8ycZKXmPSBJdyWuuYNORSv8z75Hb8/dpGfXL1uPxQYNbjZj3u3mNuvR7EPWEy6Kma4Ltbl9X307IAAAAAAAAAAACFxQZAACVv8cqD1VH1QMLjihoLwjBOJidGbsH//zwRRokoDqrPmgwDPxpHweCJ3wst+W6QqPI4GfcFicHk0bHxsY6/bjxOxAEAQL7Mb/HE+KrD1YnKaIJbVBXFNvHEn7t8vLlXnvx7gcI4Nj984vcSCo4lw+TxeDAxGMTh0XEXTTzSutQiogwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArt/wBQqoPCJ89/4AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNC0wMi0yMlQwNzo0Nzo1NSswMDowMEK7CccAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjQtMDItMjJUMDc6NDc6NTUrMDA6MDAz5rF7AAAAAElFTkSuQmCC\n }\n }\n}\n\ntest TestBase64URLEscape{\n functions [TestImageInput]\n args{\n img{\n url \"data:image/png;base64,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\"\n }\n }\n}\n", "test-files/functions/input/named-args/syntax.baml": "function TestFnNamedArgsSyntax {\n input (myVar: string, var_with_underscores: string)\n output string\n}\n// TODO: we don't support numbers in named args yet!\n// TODO: we also allow dashes but python fails.", "test-files/functions/output/boolean.baml": "function FnOutputBool(input: string) -> bool {\n client GPT35\n prompt #\"\n Return a true: {{ ctx.output_format}}\n \"#\n}\n\ntest FnOutputBool {\n functions [FnOutputBool]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/class-dynamic.baml": "class Person {\n name string?\n hair_color Color?\n\n @@dynamic\n}\n\nenum Color {\n RED\n BLUE\n GREEN\n YELLOW\n BLACK\n WHITE\n\n @@dynamic\n}\n\nfunction ExtractPeople(text: string) -> Person[] {\n client GPT4\n prompt #\"\n {{ _.role('system') }}\n\t\t You are an expert extraction algorithm. Only extract relevant information from the text. If you do not know the value of an attribute asked to extract, return null for the attribute's value.\n\t\t \n\t\t {# This is a special macro that prints out the output schema of the function #}\n\t\t {{ ctx.output_format }} \n\t\t \n\t\t {{ _.role('user') }}\n\t\t {{text}}\n \"#\n}\n\nenum Hobby {\n SPORTS\n MUSIC\n READING\n\n @@dynamic\n}\n", @@ -54,10 +58,10 @@ const fileMap = { "test-files/functions/output/optional.baml": "class OptionalTest_Prop1 {\n omega_a string\n omega_b int\n}\n\nenum OptionalTest_CategoryType {\n Aleph\n Beta\n Gamma\n}\n \nclass OptionalTest_ReturnType {\n omega_1 OptionalTest_Prop1?\n omega_2 string?\n omega_3 (OptionalTest_CategoryType?)[]\n} \n \nfunction OptionalTest_Function(input: string) -> (OptionalTest_ReturnType?)[]\n{\n client GPT35\n prompt #\"\n Return a JSON blob with this schema: \n {{ctx.output_format}}\n\n JSON:\n \"#\n}\n\ntest OptionalTest_Function {\n functions [OptionalTest_Function]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/string-list.baml": "function FnOutputStringList(input: string) -> string[] {\n client GPT35\n prompt #\"\n Return a list of strings in json format like [\"string1\", \"string2\", \"string3\"].\n\n JSON:\n \"#\n}\n\ntest FnOutputStringList {\n functions [FnOutputStringList]\n args {\n input \"example input\"\n }\n}\n", "test-files/functions/output/unions.baml": "class UnionTest_ReturnType {\n prop1 string | bool\n prop2 (float | bool)[]\n prop3 (bool[] | int[])\n}\n\nfunction UnionTest_Function(input: string | bool) -> UnionTest_ReturnType {\n client GPT35\n prompt #\"\n Return a JSON blob with this schema: \n {{ctx.output_format}}\n\n JSON:\n \"#\n}\n\ntest UnionTest_Function {\n functions [UnionTest_Function]\n args {\n input \"example input\"\n }\n}\n", - "test-files/functions/prompts/no-chat-messages.baml": "\n\nfunction PromptTestClaude(input: string) -> string {\n client Claude\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}", - "test-files/functions/prompts/with-chat-messages.baml": "\nfunction PromptTestOpenAIChat(input: string) -> string {\n client GPT35\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAIChatNoSystem(input: string) -> string {\n client GPT35\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChat(input: string) -> string {\n client Claude\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChatNoSystem(input: string) -> string {\n client Claude\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\ntest PromptTestOpenAIChat {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"cats\"\n }\n}\n\ntest TestClaude {\n functions [PromptTestClaudeChatNoSystem]\n args {\n input \"lion\"\n }\n}", + "test-files/functions/prompts/no-chat-messages.baml": "\n\nfunction PromptTestClaude(input: string) -> string {\n client Claude\n prompt #\"\n Tell me a haiku about {{ input }}\n \"#\n}\n\n\nfunction PromptTestStreaming(input: string) -> string {\n client GPT35\n prompt #\"\n Tell me a short story about {{ input }}\n \"#\n}\n\ntest TestName {\n functions [PromptTestStreaming]\n args {\n input #\"\n hello world\n \"#\n }\n}\n", + "test-files/functions/prompts/with-chat-messages.baml": "\nfunction PromptTestOpenAIChat(input: string) -> string {\n client GPT35\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestOpenAIChatNoSystem(input: string) -> string {\n client GPT35\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChat(input: string) -> string {\n client Claude\n prompt #\"\n {{ _.role(\"system\") }}\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\nfunction PromptTestClaudeChatNoSystem(input: string) -> string {\n client Claude\n prompt #\"\n You are an assistant that always responds in a very excited way with emojis and also outputs this word 4 times after giving a response: {{ input }}\n \n {{ _.role(\"user\") }}\n Tell me a haiku about {{ input }}\n \"#\n}\n\ntest TestSystemAndNonSystemChat1 {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"cats\"\n }\n}\n\ntest TestSystemAndNonSystemChat2 {\n functions [PromptTestClaude, PromptTestOpenAI, PromptTestOpenAIChat, PromptTestOpenAIChatNoSystem, PromptTestClaudeChat, PromptTestClaudeChatNoSystem]\n args {\n input \"lion\"\n }\n}", "test-files/functions/v2/basic.baml": "\n\nfunction ExtractResume2(resume: string) -> Resume {\n client GPT4\n prompt #\"\n {{ _.role('system') }}\n\n Extract the following information from the resume:\n\n Resume:\n <<<<\n {{ resume }}\n <<<<\n\n Output JSON schema:\n {{ ctx.output_format }}\n\n JSON:\n \"#\n}\n\n\nclass WithReasoning {\n value string\n reasoning string @description(#\"\n Why the value is a good fit.\n \"#)\n}\n\n\nclass SearchParams {\n dateRange int? @description(#\"\n In ISO duration format, e.g. P1Y2M10D.\n \"#)\n location string[]\n jobTitle WithReasoning? @description(#\"\n An exact job title, not a general category.\n \"#)\n company WithReasoning? @description(#\"\n The exact name of the company, not a product or service.\n \"#)\n description WithReasoning[] @description(#\"\n Any specific projects or features the user is looking for.\n \"#)\n tags (Tag | string)[]\n}\n\nenum Tag {\n Security\n AI\n Blockchain\n}\n\nfunction GetQuery(query: string) -> SearchParams {\n client GPT4\n prompt #\"\n Extract the following information from the query:\n\n Query:\n <<<<\n {{ query }}\n <<<<\n\n OUTPUT_JSON_SCHEMA:\n {{ ctx.output_format }}\n\n Before OUTPUT_JSON_SCHEMA, list 5 intentions the user may have.\n --- EXAMPLES ---\n 1. \n 2. \n 3. \n 4. \n 5. \n\n {\n ... // OUTPUT_JSON_SCHEMA\n }\n \"#\n}\n\nclass RaysData {\n dataType DataType\n value Resume | Event\n}\n\nenum DataType {\n Resume\n Event\n}\n\nclass Event {\n title string\n date string\n location string\n description string\n}\n\nfunction GetDataType(text: string) -> RaysData {\n client GPT4\n prompt #\"\n Extract the relevant info.\n\n Text:\n <<<<\n {{ text }}\n <<<<\n\n Output JSON schema:\n {{ ctx.output_format }}\n\n JSON:\n \"#\n}", - "test-files/providers/providers.baml": "function TestAnthropic(input: string) -> string {\n client Claude\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestAzure(input: string) -> string {\n client GPT35Azure\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOllama(input: string) -> string {\n client Ollama\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestGemini(input: string) -> string {\n client Gemini\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\n\ntest TestProvider {\n functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini]\n args {\n input \"Donkey kong and peanut butter\"\n }\n}\n\n\n", + "test-files/providers/providers.baml": "function TestAnthropic(input: string) -> string {\n client Claude\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAI(input: string) -> string {\n client GPT35\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOpenAILegacyProvider(input: string) -> string {\n client GPT35LegacyProvider\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestAzure(input: string) -> string {\n client GPT35Azure\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestOllama(input: string) -> string {\n client Ollama\n prompt #\"\n Write a nice haiku about {{ input }}\n \"#\n}\n\nfunction TestGemini(input: string) -> string {\n client Gemini\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\nfunction TestAws(input: string) -> string {\n client AwsBedrock\n prompt #\"\n Write a nice short story about {{ input }}\n \"#\n}\n\n\ntest TestProvider {\n functions [TestAnthropic, TestOpenAI, TestAzure, TestOllama, TestGemini, TestAws]\n args {\n input \"Donkey kong and peanut butter\"\n }\n}\n\n\n", "test-files/strategies/fallback.baml": "\nclient FaultyClient {\n provider openai\n options {\n model unknown-model\n api_key env.OPENAI_API_KEY\n }\n}\n\n\nclient FallbackClient {\n provider fallback\n options {\n // first 2 clients are expected to fail.\n strategy [\n FaultyClient,\n RetryClientConstant,\n GPT35\n ]\n }\n}\n\nfunction TestFallbackClient() -> string {\n client FallbackClient\n // TODO make it return the client name instead\n prompt #\"\n Say a haiku about mexico.\n \"#\n}", "test-files/strategies/retry.baml": "\nretry_policy Exponential {\n max_retries 3\n strategy {\n type exponential_backoff\n }\n}\n\nretry_policy Constant {\n max_retries 3\n strategy {\n type constant_delay\n delay_ms 100\n }\n}\n\nclient RetryClientConstant {\n provider openai\n retry_policy Constant\n options {\n model \"gpt-3.5-turbo\"\n api_key \"blah\"\n }\n}\n\nclient RetryClientExponential {\n provider openai\n retry_policy Exponential\n options {\n model \"gpt-3.5-turbo\"\n api_key \"blahh\"\n }\n}\n\nfunction TestRetryConstant() -> string {\n client RetryClientConstant\n prompt #\"\n Say a haiku\n \"#\n}\n\nfunction TestRetryExponential() -> string {\n client RetryClientExponential\n prompt #\"\n Say a haiku\n \"#\n}\n", "test-files/strategies/roundrobin.baml": "", diff --git a/integ-tests/typescript/baml_client/tracing.ts b/integ-tests/typescript/baml_client/tracing.ts index 6b6b708bd..db3cc2deb 100644 --- a/integ-tests/typescript/baml_client/tracing.ts +++ b/integ-tests/typescript/baml_client/tracing.ts @@ -15,11 +15,19 @@ $ pnpm add @boundaryml/baml // @ts-nocheck // biome-ignore format: autogenerated code /* eslint-disable */ +import { BamlLogEvent } from '@boundaryml/baml'; import { DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX } from './globals'; -const traceAsync = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnAync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) -const traceSync = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnSync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) -const setTags = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.upsertTags.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) -const flush = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const traceAsync = +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnAsync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const traceSync = +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.traceFnSync.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const setTags = +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.upsertTags.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX) +const flush = () => { + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.flush.bind(DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX)() +} +const onLogEvent = (callback: (event: BamlLogEvent) => void) => +DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_CTX.onLogEvent(callback) -export { traceAsync, traceSync, setTags, flush } \ No newline at end of file +export { traceAsync, traceSync, setTags, flush, onLogEvent } \ No newline at end of file diff --git a/integ-tests/typescript/baml_client/type_builder.ts b/integ-tests/typescript/baml_client/type_builder.ts index ff4473cf8..66d694ee4 100644 --- a/integ-tests/typescript/baml_client/type_builder.ts +++ b/integ-tests/typescript/baml_client/type_builder.ts @@ -21,6 +21,8 @@ import { TypeBuilder as _TypeBuilder, EnumBuilder, ClassBuilder } from '@boundar export default class TypeBuilder { private tb: _TypeBuilder; + DynInputOutput: ClassBuilder<'DynInputOutput', "testKey">; + DynamicClassOne: ClassBuilder<'DynamicClassOne'>; DynamicClassTwo: ClassBuilder<'DynamicClassTwo', "hi" | "some_class" | "status">; @@ -44,13 +46,17 @@ export default class TypeBuilder { constructor() { this.tb = new _TypeBuilder({ classes: new Set([ - "Blah","ClassOptionalOutput","ClassOptionalOutput2","ClassWithImage","DynamicClassOne","DynamicClassTwo","DynamicOutput","Education","Email","Event","FakeImage","InnerClass","InnerClass2","NamedArgsSingleClass","OptionalTest_Prop1","OptionalTest_ReturnType","OrderInfo","Person","RaysData","Resume","SearchParams","SomeClassNestedDynamic","TestClassAlias","TestClassNested","TestClassWithEnum","TestOutputClass","UnionTest_ReturnType","WithReasoning", + "Blah","ClassOptionalOutput","ClassOptionalOutput2","ClassWithImage","DynInputOutput","DynamicClassOne","DynamicClassTwo","DynamicOutput","Education","Email","Event","FakeImage","InnerClass","InnerClass2","NamedArgsSingleClass","OptionalTest_Prop1","OptionalTest_ReturnType","OrderInfo","Person","RaysData","ReceiptInfo","ReceiptItem","Resume","SearchParams","SomeClassNestedDynamic","TestClassAlias","TestClassNested","TestClassWithEnum","TestOutputClass","UnionTest_ReturnType","WithReasoning", ]), enums: new Set([ "Category","Category2","Category3","Color","DataType","DynEnumOne","DynEnumTwo","EnumInClass","EnumOutput","Hobby","NamedArgsSingleEnum","NamedArgsSingleEnumList","OptionalTest_CategoryType","OrderStatus","Tag","TestEnum", ]) }); + this.DynInputOutput = this.tb.classBuilder("DynInputOutput", [ + "testKey", + ]); + this.DynamicClassOne = this.tb.classBuilder("DynamicClassOne", [ ]); @@ -115,10 +121,10 @@ export default class TypeBuilder { } addClass(name: Name): ClassBuilder { - this.tb.addClass(name); + return this.tb.addClass(name); } addEnum(name: Name): EnumBuilder { - this.tb.addEnum(name); + return this.tb.addEnum(name); } } \ No newline at end of file diff --git a/integ-tests/typescript/baml_client/types.ts b/integ-tests/typescript/baml_client/types.ts index fa7f03d01..be0822229 100644 --- a/integ-tests/typescript/baml_client/types.ts +++ b/integ-tests/typescript/baml_client/types.ts @@ -141,6 +141,12 @@ export interface ClassWithImage { } +export interface DynInputOutput { + testKey: string + + [key: string]: any; +} + export interface DynamicClassOne { [key: string]: any; @@ -241,6 +247,20 @@ export interface RaysData { } +export interface ReceiptInfo { + items: ReceiptItem[] + total_cost?: number | null + +} + +export interface ReceiptItem { + name: string + description?: string | null + quantity: number + price: number + +} + export interface Resume { name: string email: string diff --git a/integ-tests/typescript/package.json b/integ-tests/typescript/package.json index 5ec992be3..87efc49e4 100644 --- a/integ-tests/typescript/package.json +++ b/integ-tests/typescript/package.json @@ -5,8 +5,10 @@ "main": "index.js", "scripts": { "test": "jest", - "build": "cd ../../clients/ts && npm run build && cd - && pnpm i", - "integ-tests": "BAML_LOG=baml_events infisical run --env=test -- pnpm test -- --silent false --testTimeout 30000", + "build:debug": "cd ../../engine/language_client_typescript && pnpm run build:debug && cd - && pnpm i", + "build": "cd ../../engine/language_client_typescript && npm run build && cd - && pnpm i", + "integ-tests": "BAML_LOG=info infisical run --env=test -- pnpm test -- --silent false --testTimeout 30000", + "integ-tests:dotenv": "BAML_LOG=info dotenv -e ../.env -- pnpm test -- --silent false --testTimeout 30000", "generate": "baml-cli generate --from ../baml_src" }, "keywords": [], @@ -17,6 +19,7 @@ "@swc/jest": "^0.2.36", "@types/jest": "^29.5.12", "@types/node": "^20.11.27", + "dotenv-cli": "^7.4.2", "jest": "^29.7.0", "ts-jest": "^29.1.2", "ts-node": "^10.9.2", @@ -24,6 +27,7 @@ "typescript": "^5.4.2" }, "dependencies": { - "@boundaryml/baml": "link:../../engine/language_client_typescript" + "@boundaryml/baml": "link:../../engine/language_client_typescript", + "dotenv": "^16.4.5" } } diff --git a/integ-tests/typescript/pnpm-lock.yaml b/integ-tests/typescript/pnpm-lock.yaml index 84341ef97..55daee16e 100644 --- a/integ-tests/typescript/pnpm-lock.yaml +++ b/integ-tests/typescript/pnpm-lock.yaml @@ -8,6 +8,9 @@ dependencies: '@boundaryml/baml': specifier: link:../../engine/language_client_typescript version: link:../../engine/language_client_typescript + dotenv: + specifier: ^16.4.5 + version: 16.4.5 devDependencies: '@swc/core': @@ -22,6 +25,9 @@ devDependencies: '@types/node': specifier: ^20.11.27 version: 20.11.30 + dotenv-cli: + specifier: ^7.4.2 + version: 7.4.2 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.11.30)(ts-node@10.9.2) @@ -1282,6 +1288,25 @@ packages: engines: {node: '>=0.3.1'} dev: true + /dotenv-cli@7.4.2: + resolution: {integrity: sha512-SbUj8l61zIbzyhIbg0FwPJq6+wjbzdn9oEtozQpZ6kW2ihCcapKVZj49oCT3oPM+mgQm+itgvUQcG5szxVrZTA==} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dotenv: 16.4.5 + dotenv-expand: 10.0.0 + minimist: 1.2.8 + dev: true + + /dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + dev: true + + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + /dynamic-dedupe@0.3.0: resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} dependencies: diff --git a/integ-tests/typescript/tests/base64_test_data.ts b/integ-tests/typescript/tests/base64_test_data.ts new file mode 100644 index 000000000..810e3a075 --- /dev/null +++ b/integ-tests/typescript/tests/base64_test_data.ts @@ -0,0 +1,3 @@ +export var image_b64 = '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'; + +export var audio_b64 = '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'; diff --git a/integ-tests/typescript/tests/integ-tests.test.ts b/integ-tests/typescript/tests/integ-tests.test.ts index 35fcb3cb1..cec839f98 100644 --- a/integ-tests/typescript/tests/integ-tests.test.ts +++ b/integ-tests/typescript/tests/integ-tests.test.ts @@ -1,8 +1,29 @@ import assert from 'assert' import { Image, ClientBuilder } from '@boundaryml/baml' import { b, NamedArgsSingleEnumList, flush, traceAsync, traceSync, setTags, TestClassNested } from '../baml_client' -import TypeBuilder from "../baml_client/type_builder"; -import { RecursivePartialNull } from '../baml_client/client'; +import TypeBuilder from '../baml_client/type_builder' +import { RecursivePartialNull } from '../baml_client/client' +import { scheduler } from 'node:timers/promises' +import { image_b64, audio_b64 } from './base64_test_data' +import { Image } from '@boundaryml/baml' +import { Audio } from '@boundaryml/baml' +import { + b, + NamedArgsSingleEnumList, + flush, + traceAsync, + traceSync, + setTags, + TestClassNested, + onLogEvent, +} from '../baml_client' +import TypeBuilder from '../baml_client/type_builder' +import { RecursivePartialNull } from '../baml_client/client' +import { config } from 'dotenv' +import { BamlLogEvent, BamlRuntime } from '@boundaryml/baml/native' +import { AsyncLocalStorage } from 'async_hooks' +import { DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME } from '../baml_client/globals' +config() describe('Integ tests', () => { it('should work for all inputs', async () => { @@ -98,23 +119,53 @@ describe('Integ tests', () => { expect(res.length).toBeGreaterThan(0) }) - it('should work with image', async () => { + it('should work with image from url', async () => { let res = await b.TestImageInput( Image.fromUrl('https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png'), ) - expect(res.toLowerCase()).toContain('green') + expect(res.toLowerCase()).toMatch(/(green|yellow|ogre|shrek)/) + }) + + it('should work with image from base 64', async () => { + let res = await b.TestImageInput(Image.fromBase64('image/png', image_b64)) + expect(res.toLowerCase()).toMatch(/(green|yellow|ogre|shrek)/) + }) + + it('should work with audio base 64', async () => { + let res = await b.AudioInput(Audio.fromBase64('audio/mp3', audio_b64)) + expect(res.toLowerCase()).toContain('yes') + }) + + it('should work with audio from url', async () => { + let res = await b.AudioInput( + Audio.fromUrl('https://actions.google.com/sounds/v1/emergency/beeper_emergency_call.ogg'), + ) + + expect(res.toLowerCase()).toContain('no') }) it('should support streaming in OpenAI', async () => { - const stream = b.stream.PromptTestOpenAI('Mt Rainier is tall') + const stream = b.stream.PromptTestStreaming('Mt Rainier is tall') const msgs: string[] = [] + const startTime = performance.now() + + let firstMsgTime: number | null = null + let lastMsgTime = startTime for await (const msg of stream) { msgs.push(msg ?? '') + if (firstMsgTime === null) { + firstMsgTime = performance.now() + } + lastMsgTime = performance.now() } const final = await stream.getFinalResponse() expect(final.length).toBeGreaterThan(0) expect(msgs.length).toBeGreaterThan(0) + expect(firstMsgTime).not.toBeNull() + expect(firstMsgTime! - startTime).toBeLessThanOrEqual(1500) // 1.5 seconds + expect(lastMsgTime - startTime).toBeGreaterThan(1000) // 1.0 seconds + for (let i = 0; i < msgs.length - 2; i++) { expect(msgs[i + 1].startsWith(msgs[i])).toBeTruthy() } @@ -129,6 +180,27 @@ describe('Integ tests', () => { } const final = await stream.getFinalResponse() + expect(final.length).toBeGreaterThan(0) + expect(msgs.length).toBeGreaterThan(0) + for (let i = 0; i < msgs.length - 2; i++) { + expect(msgs[i + 1].startsWith(msgs[i])).toBeTruthy() + } + expect(msgs.at(-1)).toEqual(final) + }, 20_000) + + it('should support AWS', async () => { + const res = await b.TestAws('Dr. Pepper') + expect(res.length).toBeGreaterThan(0) + }) + + it('should support streaming in AWS', async () => { + const stream = b.stream.TestAws('Dr. Pepper') + const msgs: string[] = [] + for await (const msg of stream) { + msgs.push(msg ?? '') + } + const final = await stream.getFinalResponse() + expect(final.length).toBeGreaterThan(0) expect(msgs.length).toBeGreaterThan(0) for (let i = 0; i < msgs.length - 2; i++) { @@ -138,7 +210,7 @@ describe('Integ tests', () => { }) it('should support streaming without iterating', async () => { - const final = await b.stream.PromptTestOpenAI('Mt Rainier is tall').getFinalResponse() + const final = await b.stream.PromptTestStreaming('Mt Rainier is tall').getFinalResponse() expect(final.length).toBeGreaterThan(0) }) @@ -158,11 +230,11 @@ describe('Integ tests', () => { expect(msgs.at(-1)).toEqual(final) }) - - it('supports tracing sync', async () => { const blah = 'blah' + const dummyFunc = (_myArg: string): string => 'hello world' + const res = traceSync('myFuncParent', (firstArg: string, secondArg: number) => { setTags({ myKey: 'myVal' }) @@ -185,17 +257,47 @@ describe('Integ tests', () => { // Look at the dashboard to verify results. it('supports tracing async', async () => { + const nestedDummyFn = async (myArg: string): Promise => { + await scheduler.wait(100) // load-bearing: this ensures that we actually test concurrent execution + console.log('samDummyNested', myArg) + return myArg + } + + const dummyFn = async (myArg: string): Promise => { + await scheduler.wait(100) // load-bearing: this ensures that we actually test concurrent execution + const nested = await Promise.all([ + traceAsync('trace:nestedDummyFn1', nestedDummyFn)('nested1'), + traceAsync('trace:nestedDummyFn2', nestedDummyFn)('nested2'), + traceAsync('trace:nestedDummyFn3', nestedDummyFn)('nested3'), + ]) + console.log('dummy', myArg) + return myArg + } + + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.flush() + const _ = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.drainStats() + + await Promise.all([ + traceAsync('trace:dummyFn1', dummyFn)('hi1'), + traceAsync('trace:dummyFn2', dummyFn)('hi2'), + traceAsync('trace:dummyFn3', dummyFn)('hi3'), + ]) + const res = await traceAsync('parentAsync', async (firstArg: string, secondArg: number) => { console.log('hello world') setTags({ myKey: 'myVal' }) - const res1 = traceSync('dummyFunc', dummyFunc)('firstDummyFuncArg') + const res1 = traceSync('dummyFunc', dummyFn)('firstDummyFuncArg') - const res2 = await traceAsync('asyncDummyFunc', asyncDummyFunc)('secondDummyFuncArg') + const res2 = await traceAsync('asyncDummyFunc', dummyFn)('secondDummyFuncArg') - const llm_res = await b.TestFnNamedArgsSingleStringList(['a', 'b', 'c']) + const llm_res = await Promise.all([ + b.TestFnNamedArgsSingleStringList(['a1', 'b', 'c']), + b.TestFnNamedArgsSingleStringList(['a2', 'b', 'c']), + b.TestFnNamedArgsSingleStringList(['a3', 'b', 'c']), + ]) - const res3 = await traceAsync('asyncDummyFunc', asyncDummyFunc)('thirdDummyFuncArg') + const res3 = await traceAsync('asyncDummyFunc', dummyFn)('thirdDummyFuncArg') return 'hello world' })('hi', 10) @@ -203,31 +305,97 @@ describe('Integ tests', () => { const res2 = await traceAsync('parentAsync2', async (firstArg: string, secondArg: number) => { console.log('hello world') - const res1 = traceSync('dummyFunc', dummyFunc)('firstDummyFuncArg') + const syncDummyFn = (_myArg: string): string => 'hello world' + const res1 = traceSync('dummyFunc', syncDummyFn)('firstDummyFuncArg') return 'hello world' })('hi', 10) + + DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.flush() + const stats = DO_NOT_USE_DIRECTLY_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_RUNTIME.drainStats() + console.log('stats', stats.toJson()) + expect(stats.started).toBe(30) + expect(stats.finalized).toEqual(stats.started) + expect(stats.submitted).toEqual(stats.started) + expect(stats.sent).toEqual(stats.started) + expect(stats.done).toEqual(stats.started) + expect(stats.failed).toEqual(0) }) - it('should work with dynamics', async () => { - let tb = new TypeBuilder(); - tb.Person.addProperty("last_name", tb.string().optional()); - tb.Person.addProperty("height", tb.float().optional()).description("Height in meters"); - tb.Hobby.addValue("CHESS") + it('should work with dynamic types single', async () => { + let tb = new TypeBuilder() + tb.Person.addProperty('last_name', tb.string().optional()) + tb.Person.addProperty('height', tb.float().optional()).description('Height in meters') + tb.Hobby.addValue('CHESS') tb.Hobby.listValues().map(([name, v]) => v.alias(name.toLowerCase())) - tb.Person.addProperty("hobbies", tb.Hobby.type().list().optional()).description("Some suggested hobbies they might be good at"); + tb.Person.addProperty('hobbies', tb.Hobby.type().list().optional()).description( + 'Some suggested hobbies they might be good at', + ) - const res = await b.ExtractPeople("My name is Harrison. My hair is black and I'm 6 feet tall. I'm pretty good around the hoop.", { tb }) + const res = await b.ExtractPeople( + "My name is Harrison. My hair is black and I'm 6 feet tall. I'm pretty good around the hoop.", + { tb }, + ) expect(res.length).toBeGreaterThan(0) console.log(res) }) + it('should work with dynamic types enum', async () => { + let tb = new TypeBuilder() + const fieldEnum = tb.addEnum('Animal') + const animals = ['giraffe', 'elephant', 'lion'] + for (const animal of animals) { + fieldEnum.addValue(animal.toUpperCase()) + } + tb.Person.addProperty('animalLiked', fieldEnum.type()) + const res = await b.ExtractPeople( + "My name is Harrison. My hair is black and I'm 6 feet tall. I'm pretty good around the hoop. I like giraffes.", + { tb }, + ) + expect(res.length).toBeGreaterThan(0) + expect(res[0]['animalLiked']).toEqual('GIRAFFE') + }) + + it('should work with dynamic types class', async () => { + let tb = new TypeBuilder() + const animalClass = tb.addClass('Animal') + animalClass.addProperty('animal', tb.string()).description('The animal mentioned, in singular form.') + tb.Person.addProperty('animalLiked', animalClass.type()) + const res = await b.ExtractPeople( + "My name is Harrison. My hair is black and I'm 6 feet tall. I'm pretty good around the hoop. I like giraffes.", + { tb }, + ) + expect(res.length).toBeGreaterThan(0) + const animalLiked = res[0]['animalLiked'] + expect(animalLiked['animal']).toContain('giraffe') + }) + + it('should work with dynamic inputs class', async () => { + let tb = new TypeBuilder() + tb.DynInputOutput.addProperty('new-key', tb.string().optional()) + + const res = await b.DynamicInputOutput({ 'new-key': 'hi', testKey: 'myTest' }, { tb }) + expect(res['new-key']).toEqual('hi') + expect(res['testKey']).toEqual('myTest') + }) + + it('should work with dynamic inputs list', async () => { + let tb = new TypeBuilder() + tb.DynInputOutput.addProperty('new-key', tb.string().optional()) + + const res = await b.DynamicListInputOutput([{ 'new-key': 'hi', testKey: 'myTest' }], { tb }) + expect(res[0]['new-key']).toEqual('hi') + expect(res[0]['testKey']).toEqual('myTest') + }) + + // test with extra list, boolean in the input as well. + it('should work with nested classes', async () => { - let stream = b.stream.FnOutputClassNested('hi!'); - let msgs: RecursivePartialNull = []; + let stream = b.stream.FnOutputClassNested('hi!') + let msgs: RecursivePartialNull = [] for await (const msg of stream) { console.log('msg', msg) - msgs.push(msg); + msgs.push(msg) } const final = await stream.getFinalResponse() @@ -239,25 +407,24 @@ describe('Integ tests', () => { const clientBuilder = new ClientBuilder() clientBuilder.addClient('myClient', 'openai', { model: 'gpt-3.5-turbo', - }); - clientBuilder.setPrimary('myClient'); + }) + clientBuilder.setPrimary('myClient') - await b.TestOllama("hi", { + await b.TestOllama('hi', { cb: clientBuilder, - }); - }); -}) + }) + }) -function asyncDummyFunc(myArg: string): Promise { - console.log('asyncDummyFuncArgs', arguments) - return new Promise((resolve) => { - resolve({ - key: 'key', - key_two: true, - key_three: 52, + it("should work with 'onLogEvent'", async () => { + onLogEvent((param2) => { + console.log('onLogEvent', param2) }) + const res = await b.TestFnNamedArgsSingleStringList(['a', 'b', 'c']) + expect(res).toContain('a') + const res2 = await b.TestFnNamedArgsSingleStringList(['d', 'e', 'f']) + expect(res2).toContain('d') }) -} +}) interface MyInterface { key: string @@ -265,10 +432,6 @@ interface MyInterface { key_three: number } -function dummyFunc(myArg: string): string { - return 'hello world' -} - afterAll(async () => { flush() }) diff --git a/root.code-workspace b/root.code-workspace index f5486343f..1c3ac40a5 100644 --- a/root.code-workspace +++ b/root.code-workspace @@ -42,6 +42,11 @@ "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "files.associations": { + "*.baml.j2": "jinja", + "*.js.j2": "jinja-js", + "*.ts.j2": "jinja-js" + }, "editor.colorDecoratorsLimit": 2000, "editor.formatOnSaveMode": "file", "editor.formatOnSave": true, @@ -75,6 +80,7 @@ "titleBar.activeForeground": "#FFFBFB" }, "biome.lspBin": "typescript/node_modules/@biomejs/biome/bin/biome" + }, "extensions": { "recommendations": [ diff --git a/tools/build b/tools/build index b66d41103..ed7ca982a 100755 --- a/tools/build +++ b/tools/build @@ -107,16 +107,18 @@ case "$_path" in fi ;; - /engine/baml-core-ffi | /engine/baml-core-ffi/* ) + /engine/baml-schema-wasm | /engine/baml-schema-wasm/* ) + command="cargo build --target=wasm32-unknown-unknown" + if [ "$_watch_mode" -eq 1 ]; then npx nodemon \ - --verbose \ - --ext js,ts \ - --ignore index.js \ - --ignore index.d.ts \ - --exec 'yarn build; date' + --ext rs,toml \ + --watch "${_repo_root}/engine" \ + --ignore 'target' \ + --ignore 'tmp' \ + --exec "${command}" else - yarn build + eval "${command}" date fi ;; @@ -163,83 +165,21 @@ case "$_path" in fi ;; - /clients/python | /clients/python/* ) - command="env -u CONDA_PREFIX poetry run maturin develop --manifest-path ${_repo_root}/clients/python-ffi/Cargo.toml" - #command="${command} && poetry run mypy ." - #command="${command} && poetry run ruff check" - command="${command} && poetry run ruff format" - command="${command} && poetry run -- python -m baml_core.jinja.render_prompt" - if [ "$_test_mode" -eq 1 ]; then - command="${command} && poetry run -- pytest baml_core" - fi - command="${command}; date" - if [ "$_watch_mode" -eq 1 ]; then - npx nodemon \ - --ext py,pyi,rs \ - --watch "${_repo_root}/engine/baml-lib/jinja" \ - --watch "${_repo_root}/clients/python-ffi" \ - --watch . \ - --exec "${command}" - else - eval "${command}" - date - fi - ;; - - /clients/ts | /clients/ts/* ) - pnpm link "${_repo_root}/engine/baml-core-ffi" - if [ "$_watch_mode" -eq 1 ]; then - npx nodemon \ - --verbose \ - --ext js,ts \ - --ignore '**/dist' \ - --ignore '**/node_modules' \ - --exec 'pnpm build; date' - else - pnpm build - date - fi - ;; - - /integ-tests2/python | /integ-tests2/python/* ) - command="env -u CONDA_PREFIX poetry run maturin develop --manifest-path ${_repo_root}/engine/language_client_python/Cargo.toml" - #command="${command} && poetry run mypy ." - #command="${command} && poetry run ruff check" - #command="${command} && poetry run ruff format" - command="${command} && poetry run baml-cli generate --from ${_repo_root}/integ-tests2/baml_src --to ${_repo_root}/integ-tests2/python" - #command="${command} && poetry run baml-cli generate --from /home/sam/repos/baml-examples/nextjs-starter-v1/baml_src --to /home/sam/baml/integ-tests/python_v3" - #command="${command} && BAML_LOG=debug,baml_runtime=off infisical run poetry run python main.py" - # command="${command} && BAML_LOG=debug infisical run poetry run python main.py" - if [ "$_test_mode" -eq 1 ]; then - command="${command} && poetry run -- pytest baml_core" - fi - command="${command}; date" - if [ "$_watch_mode" -eq 1 ]; then - npx nodemon \ - --ext py,pyi,rs,j2,toml \ - --watch "${_repo_root}/engine" \ - --watch "${_repo_root}/clients/python-ffi" \ - --watch . \ - --ignore baml_client \ - --exec "${command}" - else - eval "${command}" - date - fi - ;; - /integ-tests/python | /integ-tests/python/* ) + command="true" command="env -u CONDA_PREFIX poetry run maturin develop --manifest-path ${_repo_root}/engine/language_client_python/Cargo.toml" - command="${command} && poetry run baml-cli generate --from ${_repo_root}/integ-tests/baml_src" + #command="${command} && poetry run baml-cli generate --from ${_repo_root}/integ-tests/baml_src" if [ "$_test_mode" -eq 1 ]; then - command="${command} && BAML_LOG=debug infisical run --env=test -- poetry run pytest app/test_functions.py::test_streaming_claude" + command="${command} && BAML_LOG=trace infisical run --env=test -- poetry run python baml_example_tracing.py" fi if [ "$_watch_mode" -eq 1 ]; then npx nodemon \ --ext py,pyi,rs,j2,toml \ --watch "${_repo_root}/engine" \ --watch . \ - --ignore baml_client \ + --ignore baml_client/** \ + --ignore target/** \ + --ignore .pytest_cache \ --exec "${command}" else eval "${command}" @@ -248,17 +188,26 @@ case "$_path" in ;; /integ-tests/typescript | /integ-tests/typescript/* ) - command="env -C ${_repo_root}/engine/language_client_typescript -- pnpm build:debug" + #BAML_LOG="baml_runtime::tracing=trace,baml_runtime::types::context_manager=debug,baml_runtime=debug" + BAML_LOG="baml_runtime=debug" + command="(cd ${_repo_root}/engine/language_client_typescript && pnpm build:debug)" command="${command} && pnpm baml-cli generate --from ${_repo_root}/integ-tests/baml_src" if [ "$_test_mode" -eq 1 ]; then - command="${command} && BAML_LOG=debug infisical run --env=test -- poetry run pytest app/test_functions.py::test_streaming_claude" + #command="${command} && pnpm integ-tests" + command="${command} && BAML_LOG=${BAML_LOG} infisical run -- pnpm test tests/integ-tests.test.ts" fi if [ "$_watch_mode" -eq 1 ]; then + #--verbose \ npx nodemon \ - --ext py,pyi,rs,j2,toml \ + --delay 1.5 \ + --ext py,pyi,rs,j2,toml,test.ts \ --watch "${_repo_root}/engine" \ --watch . \ - --ignore baml_client \ + --ignore baml_client/** \ + --ignore dist/** \ + --ignore target/** \ + --ignore node_modules/** \ + --ignore *.d.ts \ --exec "${command}" else eval "${command}" diff --git a/tools/bump-version b/tools/bump-version index 3377c261d..30d73943b 100755 --- a/tools/bump-version +++ b/tools/bump-version @@ -21,6 +21,20 @@ Options: EOF } +ensure_preconditions() { + # Ensure bump2version is installed + if ! command -v bump2version > /dev/null; then + echo "Error: bump2version is not installed." + exit 1 + fi + + # Ensure git cliff is available + if ! git cliff -h > /dev/null 2>&1; then + echo "Error: git-cliff is not installed or not working. Please install it using 'cargo install git-cliff'." + exit 1 + fi +} + _help_mode=0 _ts_mode=0 _python_mode=0 @@ -69,6 +83,8 @@ if [ "$_help_mode" -eq 1 ]; then exit 0 fi +ensure_preconditions + # Ensure only one mode is enabled if [ "$((_ts_mode + _python_mode + _ruby_mode + _vscode_mode + _all_mode))" -gt 1 ]; then echo "Error: Only one mode can be enabled." @@ -98,3 +114,13 @@ elif [ "$_ruby_mode" -eq 1 ]; then elif [ "$_vscode_mode" -eq 1 ]; then bump2version --config-file ./versions/vscode.cfg patch fi + +cd "${_repo_root}" +git add . + + +VERSION=$(grep "current_version =" tools/versions/engine.cfg | awk '{print $3}') +# Generate the change log +git cliff --tag $VERSION -u --prepend CHANGELOG.md + +echo "Version bumped to $VERSION successfully! Please update CHANGELOG.md." diff --git a/tools/versions/engine.cfg b/tools/versions/engine.cfg index b9ecf9252..3e3b65a74 100644 --- a/tools/versions/engine.cfg +++ b/tools/versions/engine.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.40.0 +current_version = 0.45.0 commit = False tag = False parse = ^(?P\d+)\.(?P\d+).(?P\d+)$ diff --git a/tools/versions/python.cfg b/tools/versions/python.cfg index 57772a88b..df9453a01 100644 --- a/tools/versions/python.cfg +++ b/tools/versions/python.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.40.0 +current_version = 0.45.0 commit = False tag = False parse = ^(?P\d+)\.(?P\d+).(?P\d+)$ diff --git a/tools/versions/ruby.cfg b/tools/versions/ruby.cfg index c25e97f0a..403ff979b 100644 --- a/tools/versions/ruby.cfg +++ b/tools/versions/ruby.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.40.0 +current_version = 0.45.0 commit = False tag = False parse = ^(?P\d+)\.(?P\d+).(?P\d+)$ diff --git a/tools/versions/typescript.cfg b/tools/versions/typescript.cfg index f24c14ff1..5764f1c42 100644 --- a/tools/versions/typescript.cfg +++ b/tools/versions/typescript.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.40.0 +current_version = 0.45.0 commit = False tag = False parse = ^(?P\d+)\.(?P\d+).(?P\d+)$ diff --git a/tools/versions/vscode.cfg b/tools/versions/vscode.cfg index ebdc8ad75..831d89751 100644 --- a/tools/versions/vscode.cfg +++ b/tools/versions/vscode.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.40.0 +current_version = 0.45.0 commit = False tag = False parse = ^(?P\d+)\.(?P\d+).(?P\d+)$ diff --git a/typescript/.vscode/launch.json b/typescript/.vscode/launch.json index 8b23c31b4..f1c9e7854 100644 --- a/typescript/.vscode/launch.json +++ b/typescript/.vscode/launch.json @@ -7,7 +7,10 @@ "request": "launch", "runtimeExecutable": "${execPath}", "sourceMaps": true, - "args": ["--extensionDevelopmentPath=${workspaceFolder}/vscode-ext/packages"], + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}/vscode-ext/packages", + "--disable-extensions", + ], "outFiles": [ "${workspaceFolder}/vscode-ext/packages/vscode/out/**", "${workspaceFolder}/vscode-ext/packages/language-server/out/**" diff --git a/typescript/biome.json b/typescript/biome.json index 1bf8f4362..00831f5b7 100644 --- a/typescript/biome.json +++ b/typescript/biome.json @@ -15,8 +15,7 @@ "formatter": { "quoteStyle": "single", "jsxQuoteStyle": "single", - "semicolons": "asNeeded", - "trailingComma": "all" + "semicolons": "asNeeded" } }, "json": { diff --git a/typescript/fiddle-frontend/app/[project_id]/_atoms/atoms.ts b/typescript/fiddle-frontend/app/[project_id]/_atoms/atoms.ts index 243828c43..0ca5e5765 100644 --- a/typescript/fiddle-frontend/app/[project_id]/_atoms/atoms.ts +++ b/typescript/fiddle-frontend/app/[project_id]/_atoms/atoms.ts @@ -1,6 +1,7 @@ import type { EditorFile } from '@/app/actions' // import { ParserDBFunctionTestModel } from "@/lib/exampleProjects" import { TestState } from '@baml/common' +import { availableFunctionsAtom, selectedFunctionAtom } from '@baml/playground-common/baml_wasm_web/EventListener' import { sessionStore } from '@baml/playground-common/baml_wasm_web/JotaiProvider' import { projectFilesAtom } from '@baml/playground-common/baml_wasm_web/baseAtoms' import { Diagnostic } from '@codemirror/lint' @@ -24,7 +25,8 @@ const activeFileNameAtomRaw = atomWithStorage('active_file', null export const activeFileNameAtom = atom( (get) => { const files = get(currentEditorFilesAtom) - const activeFileName = get(activeFileNameAtomRaw) ?? 'baml_src/main.baml' + // hack to get default file selection for now.. + const activeFileName = get(activeFileNameAtomRaw) ?? 'baml_src/01-extract-receipt.baml' const selectedFile = files.find((f) => f.path === activeFileName) ?? files[0] if (selectedFile) { @@ -49,6 +51,7 @@ export const activeFileContentAtom = atom((get) => { export const emptyDirsAtom = atom([]) export const exploreProjectsOpenAtom = atom(false) +export const libraryOpenAtom = atom(false) export const productTourDoneAtom = atomWithStorage('initial_tutorial_v1', false) export const productTourTestDoneAtom = atomWithStorage('test_tour_v1', false) diff --git a/typescript/fiddle-frontend/app/[project_id]/_components/CodeMirrorEditor.tsx b/typescript/fiddle-frontend/app/[project_id]/_components/CodeMirrorEditor.tsx index ee6a8237f..6d755e100 100644 --- a/typescript/fiddle-frontend/app/[project_id]/_components/CodeMirrorEditor.tsx +++ b/typescript/fiddle-frontend/app/[project_id]/_components/CodeMirrorEditor.tsx @@ -4,7 +4,13 @@ import { BAML_DIR } from '@/lib/constants' import type { BAMLProject } from '@/lib/exampleProjects' import { BAML, theme } from '@baml/codemirror-lang' import type { ParserDatabase } from '@baml/common' -import { diagnositicsAtom, numErrorsAtom, updateFileAtom } from '@baml/playground-common/baml_wasm_web/EventListener' +import { + availableFunctionsAtom, + diagnositicsAtom, + numErrorsAtom, + selectedFunctionAtom, + updateFileAtom, +} from '@baml/playground-common/baml_wasm_web/EventListener' import { atomStore } from '@baml/playground-common/baml_wasm_web/JotaiProvider' import { projectFamilyAtom, runtimeFamilyAtom } from '@baml/playground-common/baml_wasm_web/baseAtoms' import { Button } from '@baml/playground-common/components/ui/button' @@ -13,6 +19,7 @@ import { type Diagnostic, forceLinting, linter, openLintPanel } from '@codemirro import { langs } from '@uiw/codemirror-extensions-langs' import CodeMirror, { Compartment, EditorView, type Extension, type ReactCodeMirrorRef } from '@uiw/react-codemirror' import { useAtom, useAtomValue, useSetAtom } from 'jotai' +import { hyperLink, hyperLinkExtension, hyperLinkStyle } from '@uiw/codemirror-extensions-hyper-link' import Link from 'next/link' import { useEffect, useRef } from 'react' import { @@ -123,7 +130,7 @@ function makeLinter() { } const comparment = new Compartment() -const extensions: Extension[] = [BAML(), EditorView.lineWrapping, comparment.of(makeLinter())] +const extensions: Extension[] = [BAML(), EditorView.lineWrapping, comparment.of(makeLinter()), hyperLink] const extensionMap = { ts: [langs.tsx(), EditorView.lineWrapping], @@ -141,6 +148,9 @@ export const CodeMirrorEditor = ({ project }: { project: BAMLProject }) => { const activeFileContent = useAtomValue(activeFileContentAtom) const updateFile = useSetAtom(updateFileAtom) + const availableFunctions = useAtomValue(availableFunctionsAtom) + const setSelectedFunction = useSetAtom(selectedFunctionAtom) + const ref = useRef({}) // force linting on file changes so playground updates @@ -153,6 +163,14 @@ export const CodeMirrorEditor = ({ project }: { project: BAMLProject }) => { } }, [JSON.stringify(editorFiles)]) + useEffect(() => { + const func = availableFunctions.find((f) => f.span.file_path === activeFile) + if (func) { + console.log('setting selected function', func.name) + setSelectedFunction(func.name) + } + }, [JSON.stringify(editorFiles.map((f) => f.path)), activeFile, availableFunctions]) + const setUnsavedChanges = useSetAtom(unsavedChangesAtom) const langExtensions = getLanguage(activeFile) @@ -227,7 +245,7 @@ export const CodeMirrorEditor = ({ project }: { project: BAMLProject }) => {
{!activeFile?.endsWith('.baml') && ( -
+
This is an example read-only file on how to use this in your code
)} diff --git a/typescript/fiddle-frontend/app/[project_id]/_components/ExploreProjects.tsx b/typescript/fiddle-frontend/app/[project_id]/_components/ExploreProjects.tsx index a71562fd9..5bcc8dfff 100644 --- a/typescript/fiddle-frontend/app/[project_id]/_components/ExploreProjects.tsx +++ b/typescript/fiddle-frontend/app/[project_id]/_components/ExploreProjects.tsx @@ -6,39 +6,7 @@ import { type BamlProjectsGroupings, loadExampleProjects } from '@/lib/loadProje import { useEffect, useState } from 'react' export const ExploreProjects = () => { - const [projectGroups, setProjectGroups] = useState(null) - - useEffect(() => { - const fetchProjects = async () => { - const projects = await loadExampleProjects() - setProjectGroups(projects) - } - fetchProjects() - }, []) - - return ( -
- - Prompt Fiddle Examples - - Prompt Fiddle uses BAML -- a configuration language for LLM functions. Here are some example projects to get - you started. - - - -
- {projectGroups ? ( -
- - {/* */} - -
- ) : ( -
Loading...
- )} -
-
- ) + return null } const ExampleCarousel = ({ title, projects }: { title: string; projects: BAMLProject[] }) => { diff --git a/typescript/fiddle-frontend/app/[project_id]/_components/ProjectView.tsx b/typescript/fiddle-frontend/app/[project_id]/_components/ProjectView.tsx index 5ca314d58..6aec18ccd 100644 --- a/typescript/fiddle-frontend/app/[project_id]/_components/ProjectView.tsx +++ b/typescript/fiddle-frontend/app/[project_id]/_components/ProjectView.tsx @@ -2,7 +2,7 @@ import { ExampleProjectCard } from '@/app/_components/ExampleProjectCard' import { Badge } from '@/components/ui/badge' -import { Button } from '@/components/ui/button' +import { Button, buttonVariants } from '@/components/ui/button' import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable' import { ScrollArea } from '@/components/ui/scroll-area' import { useKeybindingOverrides } from '@/hooks/command-s' @@ -12,7 +12,6 @@ import { CustomErrorBoundary, EventListener, FunctionPanel, - FunctionSelector, //useSelections, } from '@baml/playground-common' import { updateFileAtom } from '@baml/playground-common/baml_wasm_web/EventListener' @@ -20,7 +19,7 @@ import { Separator } from '@baml/playground-common/components/ui/separator' import clsx from 'clsx' import { useAtom, useAtomValue, useSetAtom } from 'jotai' import { useHydrateAtoms } from 'jotai/utils' -import { AlertTriangleIcon, Compass, FlaskConical, GitForkIcon, LinkIcon, ShareIcon } from 'lucide-react' +import { AlertTriangleIcon, Compass, File, FlaskConical, GitForkIcon, LinkIcon, ShareIcon } from 'lucide-react' import Image from 'next/image' import Link from 'next/link' import { usePathname } from 'next/navigation' @@ -39,13 +38,14 @@ import { unsavedChangesAtom, } from '../_atoms/atoms' import { CodeMirrorEditor } from './CodeMirrorEditor' -import { ExploreProjects } from './ExploreProjects' + import { GithubStars } from './GithubStars' import { InitialTour, PostTestRunTour } from './Tour' -import SettingsDialog, { ShowSettingsButton, showSettingsAtom } from '@baml/playground-common/shared/SettingsDialog' -import { SettingsIcon } from 'lucide-react' +import SettingsDialog, { ShowSettingsButton } from '@baml/playground-common/shared/SettingsDialog' + import FileViewer from './Tree/FileViewer' -import { Toaster } from '@/components/ui/toaster' +import { AppStateProvider } from '@baml/playground-common/shared/AppStateContext' // Import the AppStateProvider +import { ViewSelector } from '@baml/playground-common/shared/Selectors' const ProjectViewImpl = ({ project }: { project: BAMLProject }) => { const setEditorFiles = useSetAtom(updateFileAtom) @@ -89,10 +89,14 @@ const ProjectViewImpl = ({ project }: { project: BAMLProject }) => { {!isMobile && ( -
Prompt Fiddle
+ - +
project files
@@ -100,10 +104,9 @@ const ProjectViewImpl = ({ project }: { project: BAMLProject }) => {
- {/* */} - - + {/* + */} )} @@ -145,17 +148,27 @@ const ProjectViewImpl = ({ project }: { project: BAMLProject }) => {
-
- + + New project +
{unsavedChanges ? (
@@ -168,14 +181,6 @@ const ProjectViewImpl = ({ project }: { project: BAMLProject }) => { <> )} - {/*
- -
*/} -
{ >
VSCode extension - {/*
*/}
@@ -216,10 +220,7 @@ const ProjectViewImpl = ({ project }: { project: BAMLProject }) => { }} className='flex flex-row h-full overflow-clip' > - +
{ >