From 739feb920ad1477cbec45f3c88b91d972eba4900 Mon Sep 17 00:00:00 2001 From: leorossi Date: Thu, 21 Nov 2024 17:19:57 +0000 Subject: [PATCH] [automated commit] Bump docs to versions 2.16.0, 1.53.4 --- docs/client/overview.md | 12 + docs/getting-started/quick-start-guide.md | 29 +- .../add-custom-functionality/overview.md | 1 - ...d-code-to-consume-platformatic-rest-api.md | 536 +++++++----------- docs/guides/images/frontend-screenshot-1.jpg | Bin 22552 -> 0 bytes docs/guides/images/frontend-screenshot-2.jpg | Bin 29107 -> 0 bytes docs/guides/images/frontend-screenshot-3.jpg | Bin 31498 -> 0 bytes docs/guides/images/frontend-screenshot-4.jpg | Bin 25137 -> 0 bytes docs/guides/images/movie-app.png | Bin 0 -> 65320 bytes ...d-code-to-consume-platformatic-rest-api.md | 426 -------------- .../guides/images/frontend-screenshot-1.jpg | Bin 22552 -> 0 bytes .../guides/images/frontend-screenshot-2.jpg | Bin 29107 -> 0 bytes .../guides/images/frontend-screenshot-3.jpg | Bin 31498 -> 0 bytes .../guides/images/frontend-screenshot-4.jpg | Bin 25137 -> 0 bytes .../FAQs.md | 0 .../Overview.md | 0 .../{version-2.15.0 => version-2.16.0}/cli.md | 0 .../client/frontend.md | 0 .../client/overview.md | 12 + .../client/programmatic.md | 0 .../composer/api-modification.md | 0 .../composer/configuration.md | 0 .../composer/overview.md | 0 .../composer/plugin.md | 0 .../composer/programmatic.md | 0 .../contributing/contributing.md | 0 .../contributing/documentation-style-guide.md | 0 .../db/authorization/images/http.png | Bin .../db/authorization/images/jwt.png | Bin .../images/sources/http.excalidraw | 0 .../images/sources/jwt.excalidraw | 0 .../images/sources/webhook.excalidraw | 0 .../db/authorization/images/webhook.png | Bin .../db/authorization/overview.md | 0 .../db/authorization/rules.md | 0 .../db/authorization/strategies.md | 0 .../db/authorization/user-roles-metadata.md | 0 .../db/configuration.md | 0 .../db/logging.md | 0 .../db/migrations.md | 0 .../db/overview.md | 0 .../db/plugin.md | 0 .../db/programmatic.md | 0 .../db/schema-support.md | 0 .../file-formats.md | 0 .../getting-started/images/inspector.png | Bin .../images/movie_quote_app.png | Bin .../getting-started/images/vs-code-debug.png | Bin .../getting-started/issues.md | 0 .../new-api-project-instructions.md | 0 .../platformatic-architecture.png | Bin .../platformatic-composer-architecture.png | Bin .../platformatic-db-architecture.png | Bin .../platformatic-runtime-architecture.png | Bin .../platformatic-stackables-architecture.png | Bin ...tformatid-composer-architecture.excalidraw | 0 .../platformatid-db-architecture.excalidraw | 0 ...atformatid-runtime-architecture.excalidraw | 0 ...ormatid-stackables-architecture.excalidraw | 0 .../getting-started/quick-start-guide.md | 29 +- .../getting-started/quick-start-watt.md | 0 .../getting-started/setup-watt.md | 0 .../extend-graphql.md | 0 .../add-custom-functionality/extend-rest.md | 0 .../add-custom-functionality/overview.md | 1 - .../add-custom-functionality/prerequisites.md | 0 .../add-custom-functionality/raw-sql.md | 0 .../architecture-diagram.excalidraw | 0 .../architecture-diagram.png | Bin .../create-a-static-app-workspace-01.png | Bin .../create-a-static-app-workspace-02.png | Bin .../create-an-app-on-platformati-cloud-01.png | Bin ...omposed-media-service-api-read-only-01.png | Bin .../start-the-runtime-app-01.png | Bin .../test-the-books-service-api-01.png | Bin ...test-the-composed-media-service-api-01.png | Bin .../test-the-movies-service-api-01.png | Bin .../test-the-people-service-01.png | Bin .../guides/build-modular-monolith.md | 0 .../compiling-typescript-for-deployment.md | 0 .../guides/debug-platformatic-db.md | 0 .../deployment/advanced-fly-io-deployment.md | 0 .../deploy-to-fly-io-with-sqlite.md | 0 .../guides/deployment/deploying-on-lambda.md | 0 .../guides/deployment/dockerize-a-watt-app.md | 0 .../guides/deployment/overview.md | 0 .../guides/environment-variables.md | 0 ...d-code-to-consume-platformatic-rest-api.md | 316 +++++++++++ .../guides/images/kibana-1.png | Bin .../guides/images/kibana-2.png | Bin .../guides/images/kibana-3.png | Bin .../guides/images/kibana-4.png | Bin .../guides/images/movie-app.png | Bin 0 -> 65320 bytes .../guides/jwt-auth0.md | 0 .../guides/jwt-keycloak.md | 0 .../assign_service_account_roles.png | Bin .../keycloak-images/client_credentials.png | Bin .../guides/keycloak-images/create_client.png | Bin .../keycloak-images/create_client_2.png | Bin .../keycloak-images/create_client_3.png | Bin .../keycloak-images/create_client_4.png | Bin .../keycloak-images/create_platformatic.png | Bin .../guides/keycloak-images/create_realm.png | Bin .../guides/keycloak-images/create_realm_2.png | Bin .../keycloak-images/create_realm_role.png | Bin .../guides/keycloak-images/plt_auth.png | Bin .../guides/keycloak-images/plt_start.png | Bin .../guides/keycloak-images/plt_unauth.png | Bin .../guides/logging-to-elasticsearch.md | 0 ...ing-express-app-to-platformatic-service.md | 0 ...ing-fastify-app-to-platformatic-service.md | 0 .../guides/monitoring.md | 0 .../guides/movie-quotes-app-tutorial.md | 0 .../guides/prisma.md | 0 .../guides/runtime-cli-managing.md | 0 .../guides/securing-platformatic-db.md | 0 .../guides/seed-a-database.md | 0 .../telemetry-images/compose-openapi.png | Bin .../guides/telemetry-images/jaeger-1.png | Bin .../guides/telemetry-images/jaeger-2.png | Bin .../guides/telemetry-images/jaeger-3.png | Bin .../guides/telemetry.md | 0 .../guides/use-env-with-platformatic.md | 0 .../images/ENV_Var_Platforamtic.png | Bin ...formatic_Composer_Diagram_(Light_Mode).png | Bin .../Platformatic_DB_Diagram_(Light_Mode).png | Bin ...tformatic_Runtime_Diagram_(Light_Mode).png | Bin ...tformatic_Service_Diagram_(Light_Mode).png | Bin ...rmatic_Stackables_Diagram_(Light_Mode).png | Bin ...tformatic_Composer_Diagram_(Dark_Mode).png | Bin .../Platformatic_DB_Diagram_(Dark_Mode).png | Bin ...atformatic_Runtime_Diagram_(Dark_Mode).png | Bin ...atformatic_Service_Diagram_(Dark_Mode).png | Bin ...ormatic_Stackables_Diagram_(Dark_Mode).png | Bin .../learn/beginner/crud-application.md | 0 .../learn/glossary.md | 0 .../learn/images/plt-endpoints.png | Bin .../learn/images/plt-localhost.png | Bin .../learn/images/test-endpoint.png | Bin .../learn/overview.md | 0 .../packages/astro/configuration.md | 0 .../packages/astro/overview.md | 0 .../packages/errors.md | 0 .../packages/next/configuration.md | 0 .../packages/next/overview.md | 0 .../packages/node/configuration.md | 0 .../packages/node/overview.md | 0 .../packages/remix/configuration.md | 0 .../packages/remix/overview.md | 0 .../packages/sql-events/fastify-plugin.md | 0 .../packages/sql-events/overview.md | 0 .../sql-graphql/examples/deleteEntity.js | 0 .../sql-graphql/examples/insertEntity.js | 0 .../packages/sql-graphql/examples/query.js | 0 .../sql-graphql/examples/saveEntity.js | 0 .../packages/sql-graphql/ignore.md | 0 .../packages/sql-graphql/many-to-many.md | 0 .../packages/sql-graphql/mutations.md | 0 .../packages/sql-graphql/overview.md | 0 .../packages/sql-graphql/queries.md | 0 .../packages/sql-graphql/subscriptions.md | 0 .../packages/sql-mapper/entities/api.md | 0 .../packages/sql-mapper/entities/example.md | 0 .../packages/sql-mapper/entities/fields.md | 0 .../packages/sql-mapper/entities/hooks.md | 0 .../packages/sql-mapper/entities/overview.md | 0 .../packages/sql-mapper/entities/relations.md | 0 .../sql-mapper/entities/timestamps.md | 0 .../sql-mapper/entities/transactions.md | 0 .../packages/sql-mapper/examples/count.js | 0 .../packages/sql-mapper/examples/delete.js | 0 .../sql-mapper/examples/fastify-plugin.js | 0 .../packages/sql-mapper/examples/fields.js | 0 .../packages/sql-mapper/examples/find.js | 0 .../packages/sql-mapper/examples/hooks.js | 0 .../packages/sql-mapper/examples/insert.js | 0 .../packages/sql-mapper/examples/relations.js | 0 .../packages/sql-mapper/examples/save.js | 0 .../packages/sql-mapper/fastify-plugin.md | 0 .../sql-mapper/images/plt-db-hooks.svg | 0 .../packages/sql-mapper/overview.md | 0 .../packages/sql-openapi/api.md | 0 .../packages/sql-openapi/explicit-include.md | 0 .../packages/sql-openapi/ignore.md | 0 .../packages/sql-openapi/overview.md | 0 .../packages/vite/configuration.md | 0 .../packages/vite/overview.md | 0 .../runtime/_shared-configuration.md | 0 .../runtime/configuration.md | 0 .../runtime/overview.md | 0 .../runtime/programmatic.md | 0 .../service/configuration.md | 0 .../service/overview.md | 0 .../service/plugin.md | 0 .../service/programmatic.md | 0 .../watt/configuration.md | 0 .../watt/overview.md | 0 .../watt/reference.md | 0 ...bars.json => version-2.16.0-sidebars.json} | 0 versions.json | 2 +- 200 files changed, 610 insertions(+), 754 deletions(-) delete mode 100644 docs/guides/images/frontend-screenshot-1.jpg delete mode 100644 docs/guides/images/frontend-screenshot-2.jpg delete mode 100644 docs/guides/images/frontend-screenshot-3.jpg delete mode 100644 docs/guides/images/frontend-screenshot-4.jpg create mode 100644 docs/guides/images/movie-app.png delete mode 100644 versioned_docs/version-2.15.0/guides/generate-frontend-code-to-consume-platformatic-rest-api.md delete mode 100644 versioned_docs/version-2.15.0/guides/images/frontend-screenshot-1.jpg delete mode 100644 versioned_docs/version-2.15.0/guides/images/frontend-screenshot-2.jpg delete mode 100644 versioned_docs/version-2.15.0/guides/images/frontend-screenshot-3.jpg delete mode 100644 versioned_docs/version-2.15.0/guides/images/frontend-screenshot-4.jpg rename versioned_docs/{version-2.15.0 => version-2.16.0}/FAQs.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/Overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/cli.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/client/frontend.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/client/overview.md (90%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/client/programmatic.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/composer/api-modification.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/composer/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/composer/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/composer/plugin.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/composer/programmatic.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/contributing/contributing.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/contributing/documentation-style-guide.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/images/http.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/images/jwt.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/images/sources/http.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/images/sources/jwt.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/images/sources/webhook.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/images/webhook.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/rules.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/strategies.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/authorization/user-roles-metadata.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/logging.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/migrations.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/plugin.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/programmatic.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/db/schema-support.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/file-formats.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/images/inspector.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/images/movie_quote_app.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/images/vs-code-debug.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/issues.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/new-api-project-instructions.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatic-architecture.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatic-composer-architecture.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatic-db-architecture.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatic-runtime-architecture.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatic-stackables-architecture.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatid-composer-architecture.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatid-db-architecture.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatid-runtime-architecture.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/platformatid-stackables-architecture.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/quick-start-guide.md (95%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/quick-start-watt.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/getting-started/setup-watt.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/add-custom-functionality/extend-graphql.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/add-custom-functionality/extend-rest.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/add-custom-functionality/overview.md (99%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/add-custom-functionality/prerequisites.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/add-custom-functionality/raw-sql.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/architecture-diagram.excalidraw (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/architecture-diagram.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/create-a-static-app-workspace-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/create-a-static-app-workspace-02.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/create-an-app-on-platformati-cloud-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/make-the-composed-media-service-api-read-only-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/start-the-runtime-app-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/test-the-books-service-api-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/test-the-composed-media-service-api-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/test-the-movies-service-api-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith-images/test-the-people-service-01.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/build-modular-monolith.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/compiling-typescript-for-deployment.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/debug-platformatic-db.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/deployment/advanced-fly-io-deployment.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/deployment/deploy-to-fly-io-with-sqlite.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/deployment/deploying-on-lambda.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/deployment/dockerize-a-watt-app.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/deployment/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/environment-variables.md (100%) create mode 100644 versioned_docs/version-2.16.0/guides/generate-frontend-code-to-consume-platformatic-rest-api.md rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/images/kibana-1.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/images/kibana-2.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/images/kibana-3.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/images/kibana-4.png (100%) create mode 100644 versioned_docs/version-2.16.0/guides/images/movie-app.png rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/jwt-auth0.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/jwt-keycloak.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/assign_service_account_roles.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/client_credentials.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_client.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_client_2.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_client_3.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_client_4.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_platformatic.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_realm.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_realm_2.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/create_realm_role.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/plt_auth.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/plt_start.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/keycloak-images/plt_unauth.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/logging-to-elasticsearch.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/migrating-express-app-to-platformatic-service.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/migrating-fastify-app-to-platformatic-service.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/monitoring.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/movie-quotes-app-tutorial.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/prisma.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/runtime-cli-managing.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/securing-platformatic-db.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/seed-a-database.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/telemetry-images/compose-openapi.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/telemetry-images/jaeger-1.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/telemetry-images/jaeger-2.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/telemetry-images/jaeger-3.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/telemetry.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/guides/use-env-with-platformatic.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/ENV_Var_Platforamtic.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/Platformatic_Composer_Diagram_(Light_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/Platformatic_DB_Diagram_(Light_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/Platformatic_Runtime_Diagram_(Light_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/Platformatic_Service_Diagram_(Light_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/Platformatic_Stackables_Diagram_(Light_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/img-dark/Platformatic_Composer_Diagram_(Dark_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/img-dark/Platformatic_DB_Diagram_(Dark_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/img-dark/Platformatic_Runtime_Diagram_(Dark_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/img-dark/Platformatic_Service_Diagram_(Dark_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/images/img-dark/Platformatic_Stackables_Diagram_(Dark_Mode).png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/learn/beginner/crud-application.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/learn/glossary.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/learn/images/plt-endpoints.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/learn/images/plt-localhost.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/learn/images/test-endpoint.png (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/learn/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/astro/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/astro/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/errors.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/next/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/next/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/node/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/node/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/remix/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/remix/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-events/fastify-plugin.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-events/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/examples/deleteEntity.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/examples/insertEntity.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/examples/query.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/examples/saveEntity.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/ignore.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/many-to-many.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/mutations.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/queries.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-graphql/subscriptions.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/api.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/example.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/fields.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/hooks.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/relations.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/timestamps.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/entities/transactions.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/count.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/delete.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/fastify-plugin.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/fields.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/find.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/hooks.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/insert.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/relations.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/examples/save.js (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/fastify-plugin.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/images/plt-db-hooks.svg (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-mapper/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-openapi/api.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-openapi/explicit-include.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-openapi/ignore.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/sql-openapi/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/vite/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/packages/vite/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/runtime/_shared-configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/runtime/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/runtime/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/runtime/programmatic.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/service/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/service/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/service/plugin.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/service/programmatic.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/watt/configuration.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/watt/overview.md (100%) rename versioned_docs/{version-2.15.0 => version-2.16.0}/watt/reference.md (100%) rename versioned_sidebars/{version-2.15.0-sidebars.json => version-2.16.0-sidebars.json} (100%) diff --git a/docs/client/overview.md b/docs/client/overview.md index b6eda46652..151a214367 100644 --- a/docs/client/overview.md +++ b/docs/client/overview.md @@ -351,3 +351,15 @@ fastify.post('/', async (request, reply) => { return res }) ``` + +## Errors in Platformatic Client + +Platformatic Client throws the following errors when an unexpected situation occurs: +* `PLT_CLIENT_OPTIONS_URL_REQUIRED` => in your client options, you should provide a valid `url` +* `PLT_CLIENT_FORM_DATA_REQUIRED` => you should pass a `FormData` object (from `undici` request) since you're doing a `multipart/form-data` request +* `PLT_CLIENT_MISSING_PARAMS_REQUIRED` => a url path params is missing (and should be added) when doing the client request +* `PLT_CLIENT_WRONG_OPTS_TYPE` => a wrong client option type has been passed (and should be properly updated) +* `PLT_CLIENT_INVALID_RESPONSE_SCHEMA` => response can't be properly validated due to missing status code +* `PLT_CLIENT_INVALID_CONTENT_TYPE` => response contains an invalid content type +* `PLT_CLIENT_INVALID_RESPONSE_FORMAT` => body response doesn't match with the provided schema +* `PLT_CLIENT_UNEXPECTED_CALL_FAILURE` => there has been an unexpected failure when doing the client request diff --git a/docs/getting-started/quick-start-guide.md b/docs/getting-started/quick-start-guide.md index f97ddd21d8..471f865132 100644 --- a/docs/getting-started/quick-start-guide.md +++ b/docs/getting-started/quick-start-guide.md @@ -234,7 +234,7 @@ Done. Now run: ### Setting Up the Platformatic Frontend Client -To kickstart the project, you'll first need to create a [Platformatic frontend client](https://docs.platformatic.dev/docs/client/frontend) for your remote server. Run the following command: +To kickstart the project, in your `web/frontend/src` directory, run the command to create a [Platformatic frontend client](https://docs.platformatic.dev/docs/client/frontend) for your remote server: ```sh npx platformatic client --frontend http://0.0.0.0:3042 --name next-client web/frontend/src @@ -442,6 +442,33 @@ function App() { export default App; ``` +#### Add frontend to Composer + +In your `web/composer` directory, add the frontend `id` to your composer `platformatic.json` file, update it as shown below: + +```json +{ + "$schema": "https://schemas.platformatic.dev/@platformatic/composer/2.5.5.json", + "composer": { + "services": [ + { + "id": "db", + "openapi": { + "url": "/documentation/json" + } + }, + { + "id": "frontend" + } + ], + "refreshTimeout": 1000 + }, + + + "watch": true +} +``` + ### Start Your API Server In your project directory, use the Platformatic CLI to start your API server: diff --git a/docs/guides/add-custom-functionality/overview.md b/docs/guides/add-custom-functionality/overview.md index 8829dd293a..fe11224f28 100644 --- a/docs/guides/add-custom-functionality/overview.md +++ b/docs/guides/add-custom-functionality/overview.md @@ -4,7 +4,6 @@ label: Welcome to Platformatic --- - # Add Custom Functionality If you want to extend Platformatic DB features, it is possible to register a plugin, which will be in the form of a standard [Fastify](https://fastify.io) plugin. diff --git a/docs/guides/generate-frontend-code-to-consume-platformatic-rest-api.md b/docs/guides/generate-frontend-code-to-consume-platformatic-rest-api.md index f9c7cd73bc..e60da18ef7 100644 --- a/docs/guides/generate-frontend-code-to-consume-platformatic-rest-api.md +++ b/docs/guides/generate-frontend-code-to-consume-platformatic-rest-api.md @@ -1,83 +1,56 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import NewApiProjectInstructions from '../getting-started/new-api-project-instructions.md'; +import SetupWatt from '../getting-started/setup-watt.md'; -# Generate Front-end Code to Consume Platformatic REST API +# Build Front-end for Platformatic REST API -By default, a Platformatic app exposes REST API that provide CRUD (Create, Read, +Platformatic apps expose REST APIs that provide provide CRUD (Create, Read, Update, Delete) functionality for each entity (see the [Introduction to the REST API](https://docs.platformatic.dev/docs/reference/sql-openapi/introduction) -documentation for more information on the REST API). +documentation for more information on the REST API) by default. -Platformatic CLI allows to auto-generate the front-end code to import in your -front-end application to consume the Platformatic REST API. +In this guide, you will learn how to create a new Platformatic guide with Watt, Frontend Client, add a frontend to consume your Platformatic REST API. -This guide -* Explains how to create a new Platformatic app. -* Explains how to configure the new Platformatic app. -* Explains how to create a new React or Vue.js front-end application. -* Explains how to generate the front-end TypeScript code to consume the Platformatic app REST API. -* Provide some React and Vue.js components (either of them written in TypeScript) that read, create, and update an entity. -* Explains how to import the new component in your front-end application. +## Create a Watt Application + -## Create a new Platformatic app +### Add a Platformatic DB service - + -## Configure the new Platformatic app -Every Platformatic app uses the "Movie" demo entity and includes -the corresponding table, migrations, and REST API to create, read, update, and delete movies. +### Add a new Platformatic service -Once the new Platformatic app is ready: +Every Platformatic service uses the "Movie" demo entity and includes the corresponding table, migrations, and REST API to create, read, update, and delete movies. -* Define a `PLT_SERVER_CORS_ORIGIN` env variable as a valid regexp (f.e. `"^http://localhost.*"` or `"^https://your.awesome.service/*"`) -* Pass it to `platformatic.db.json` +Launch your application with the command below: -```diff -{ - "$schema": "https://schemas.platformatic.dev/@platformatic/db/1.52.0.json", - "server": { - "hostname": "{PLT_SERVER_HOSTNAME}", - "port": "{PORT}", - "logger": { - "level": "{PLT_SERVER_LOGGER_LEVEL}" - }, -+ "cors": { -+ "origin": { -+ "regexp": "{PLT_SERVER_CORS_ORIGIN}" -+ } -+ } - }, - ... -} +```sh +npm run dev ``` - You can find more details about the cors configuration [here](https://docs.platformatic.dev/docs/guides/generate-frontend-code-to-consume-platformatic-rest-api). - -* launch Platformatic through `npm start`. -Then, the Platformatic app should be available at the `http://127.0.0.1:3042/` URL. +Your Platformatic app should be at the `http://127.0.0.1:3042/` URL. -## Create a new Front-end Application +## Create a Front-end Application -Refer to the [Scaffolding Your First Vite Project](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) -documentation to create a new front-end application, and call it "rest-api-frontend". +Refer to the [Scaffolding Your First Vite Project](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) documentation to create a new front-end application, and call it "rest-api-frontend". :::info -Please note Vite is suggested only for practical reasons, but the bundler of choice does not make any difference. +Please note Vite is suggested only for practical reasons, Platformatic Watt supports Astro, Remix, Next.js and Vite frameworks. ::: -If you are using npm 7+ you should run +In the `web` directory of your application, run the command: ```bash -npm create vite@latest rest-api-frontend -- --template react-ts +npm create vite@latest rest-api-frontend -- --template react ``` @@ -102,325 +75,242 @@ Done. Now run: npm run dev ``` -Once done, the front-end application is available at `http://localhost:5174/`. +Once done, run the command below to add `watt.json` file to your frontend application: -## Generate the front-end code to consume the Platformatic app REST API - -Now that either the Platformatic app and the front-end app are running, go to the front-end codebase and run the Platformatic CLI - -```bash -cd rest-api-frontend/src -npx platformatic client http://127.0.0.1:3042 --frontend --language ts +```sh +npx wattpm import web/frontend ``` -Refer to the [Platformatic CLI frontend command](https://docs.platformatic.dev/docs/reference/cli#frontend) -documentation to know about the available options. - -The Platformatic CLI generates +Add your frontend `id` and DB service to your `platformatic.json` file in your `web/composer` application: - * `api.d.ts`: A TypeScript module that includes all the OpenAPI-related types. -Here is part of the generated code - -```ts -interface GetMoviesRequest { - 'limit'?: number; - 'offset'?: number; - // ... etc. -} - -interface GetMoviesResponseOK { - 'id'?: number; - 'title': string; -} - - -// ... etc. - -export interface Api { - setBaseUrl(baseUrl: string): void; - setDefaultHeaders(headers: Object): void; - getMovies(req: GetMoviesRequest): Promise>; - createMovie(req: CreateMovieRequest): Promise; - // ... etc. +```json +{ + "$schema": "https://schemas.platformatic.dev/@platformatic/composer/2.15.0.json", + "composer": { + "services": [ + { + "id": "db", + "openapi": { + "url": "/documentation/json", + "prefix": "/db" + } + }, + { + "id":"frontend" // Frontend ID for Vite applications + } + ], + "refreshTimeout": 1000 + }, + "watch": true } ``` - * `api.ts`: A TypeScript module that includes a typed function for every single OpenAPI endpoint. -Here is part of the generated code - -```ts -import type { Api } from './api-types' - -let baseUrl = '' -let defaultHeaders = {} -export const setBaseUrl = (newUrl: string) { baseUrl = newUrl }; +### Add a Frontend Client for REST API -export const setDefaultHeaders = (headers: Object): void => { defaultHeaders = headers } - -export const createMovie: Api['createMovie'] = async (request) => { - const response = await fetch(`${baseUrl}/movies/`, { - method:'post', - body: JSON.stringify(request), - headers: { - 'Content-Type': 'application/json' - } - }) - - if (!response.ok) { - throw new Error(await response.text()) - } - - return await response.json() -} - -// etc. - -``` - -You can add a `--name` option to the command line to provide a custom name for the generated files. +To consume REST APIs in your Platformatic application. run the command to use Platformatic [frontend client](https://docs.platformatic.dev/docs/client/frontend) for exposing a client for your remote OpenAPI server, the client uses fetch and runs on the browser. ```bash cd rest-api-frontend/src -npx platformatic client http://127.0.0.1:3042 --frontend --name foobar --language ts +npx platformatic client http://127.0.0.1:3042 --frontend --name frontend-client ``` -This will generate `foobar.ts` and `foobar-types.d.ts` +Refer to the [Platformatic CLI frontend command](https://docs.platformatic.dev/docs/reference/cli#frontend) documentation to know about the available options. +The Platformatic CLI will generate `frontend-client.mjs`, `frontend-client-types.d.ts`, `frontend-client.openapi.json`. Refer to the [frontend client documentation](https://docs.platformatic.dev/docs/client/frontend) to learn more about the [Client](https://docs.platformatic.dev/docs/client/frontend) and [CLI](https://docs.platformatic.dev/docs/cli). -## React and Vue.js components that read, create, and update an entity -You can copy/paste the following React or Vue.js components that import the code -the Platformatic CLI generated. +### React component for CRUD operations - - +In this section, you’ll build a React component for CRUD operations using the autogenerated client code provided by Platformatic. The code showcases a `MovieManager.jsx` file that manages movies in a database. You will implement features to create, read, update, and delete movies. -Create a new file `src/PlatformaticPlayground.tsx` and copy/paste the following code. -```tsx -import { useEffect, useState } from 'react' +```js +import { useState, useEffect } from 'react'; +import { setBaseUrl, dbGetMovies, dbCreateMovie, dbUpdateMovie, dbDeleteMovies } from './frontend-client/frontend-client.mjs'; -// getMovies, createMovie, and updateMovie are all functions automatically generated by Platformatic -// in the `api.ts` module. -import { - getMovies, - createMovie, - updateMovie, - setBaseUrl, - type GetMoviesResponseOK, - type CreateMovieResponseOK -} from './api' +// Set the base URL for the API client +setBaseUrl(window.location.origin); // Or your specific API base URL -setBaseUrl('http://127.0.0.1:3042') // configure this according to your needs - -export function PlatformaticPlayground() { - const [movies, setMovies] = useState([]) - const [newMovie, setNewMovie] = useState() - - async function onCreateMovie() { - const newMovie = await createMovie({ title: 'Harry Potter' }) - setNewMovie(newMovie) - } - - async function onUpdateMovie() { - if (!newMovie || !newMovie.id) return - - const updatedMovie = await updateMovie({ id: newMovie.id, title: 'The Lord of the Rings' }) - setNewMovie(updatedMovie) - } +export default function MovieManager() { + const [movies, setMovies] = useState([]); + const [newMovie, setNewMovie] = useState({ title: '' }); + const [editMovie, setEditMovie] = useState(null); + const [showEditModal, setShowEditModal] = useState(false); useEffect(() => { - async function fetchMovies() { - const movies = await getMovies({}) - setMovies(movies) + fetchMovies(); + }, []); + + const fetchMovies = async () => { + try { + const response = await dbGetMovies({}); + setMovies(response); + } catch (error) { + console.error('Error fetching movies:', error); } - - fetchMovies() - }, []) + }; + + const handleCreateMovie = async (e) => { + e.preventDefault(); + try { + await dbCreateMovie(newMovie); + setNewMovie({ title: '' }); + fetchMovies(); + } catch (error) { + console.error('Error creating movie:', error); + } + }; + + const handleEditMovie = async (e) => { + e.preventDefault(); + try { + await dbUpdateMovie(editMovie); + setShowEditModal(false); + setEditMovie(null); + fetchMovies(); + } catch (error) { + console.error('Error updating movie:', error); + } + }; + + const handleDeleteMovie = async (id) => { + try { + await dbDeleteMovies({ id }); + fetchMovies(); + } catch (error) { + console.error('Error deleting movie:', error); + } + }; return ( - <> -

Movies

- - {movies.length === 0 ? ( -
No movies yet
- ) : ( -
    - {movies.map((movie) => ( -
  • {movie.title}
  • - ))} -
- )} - - - - - {newMovie &&
Title: {newMovie.title}
} - - ) -} -``` - -
- - -Create a new file `src/PlatformaticPlayground.vue` and copy/paste the following code. - -```vue - - - ``` - -
- -## Import the new component in your front-end application - -You need to import and render the new component in the front-end application. +This component handles all the CRUD operations for managing movies by interacting with the autogenerated client functions (`dbGetMovies`, `dbCreateMovie`, etc.) from your Platformatic API. - - +#### Rendering in App.jsx -Change the App.tsx as follows +To include this component in your app, import it into your `App.jsx` file: -```diff -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' +```js +import MovieManager from './MovieManager'; import './App.css' -+import { PlatformaticPlayground } from './PlatformaticPlayground' - function App() { - const [count, setCount] = useState(0) - return ( - <> -+ - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

Click on the Vite and React logos to learn more

- - ) +
+ +
+ ); } -export default App +export default App; ``` -
- +The styling for the `MovieManager.jsx` file uses Tailwind CSS. See the [tailwind documentation](https://tailwindcss.com/docs/installation) on how to install and set it up. -Change the App.vue as follows - -```diff - - - - - -``` - - -
- -## Have fun +### Start your Server -Art the top of the front-end application the new component requests the movies to the Platformatic app and list them. +In the root of your project directory, run the command: -![Platformatic frontend guide: listing the movies](./images/frontend-screenshot-1.jpg) - -Click on "Create movie" to create a new movie called "Harry Potter". - -![Platformatic frontend guide: creating a movie](./images/frontend-screenshot-2.jpg) - -Click on "Update movie" to rename "Harry Potter" into "Lord of the Rings". - -![Platformatic frontend guide: editing a movie](./images/frontend-screenshot-3.jpg) +```sh +npm run dev +``` -Reload the front-end application to see the new "Lord of the Rings" movie listed. +Your application is now up and running on `http://127.0.0.1:3042/frontend` -![Platformatic frontend guide: listing the movies](./images/frontend-screenshot-4.jpg) -. +![Platformatic CRUD movie application](./images/movie-app.png) \ No newline at end of file diff --git a/docs/guides/images/frontend-screenshot-1.jpg b/docs/guides/images/frontend-screenshot-1.jpg deleted file mode 100644 index 345b7be85c554f2e3d70ae5ac3441ee2340d9bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22552 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 diff --git a/docs/guides/images/frontend-screenshot-2.jpg b/docs/guides/images/frontend-screenshot-2.jpg deleted file mode 100644 index be7ec8c6d0c1238117327eaa30cd35ba148f4c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29107 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 diff --git a/docs/guides/images/movie-app.png b/docs/guides/images/movie-app.png new file mode 100644 index 0000000000000000000000000000000000000000..5c461fd011bc23be8b5cabfc1e2c88b34437ae43 GIT binary patch literal 65320 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 miUaA#O5dK=5 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 hzw)X7n}FdngH`Na#G - - -## Configure the new Platformatic app - -Every Platformatic app uses the "Movie" demo entity and includes -the corresponding table, migrations, and REST API to create, read, update, and delete movies. - -Once the new Platformatic app is ready: - -* Define a `PLT_SERVER_CORS_ORIGIN` env variable as a valid regexp (f.e. `"^http://localhost.*"` or `"^https://your.awesome.service/*"`) -* Pass it to `platformatic.db.json` - -```diff -{ - "$schema": "https://schemas.platformatic.dev/@platformatic/db/1.52.0.json", - "server": { - "hostname": "{PLT_SERVER_HOSTNAME}", - "port": "{PORT}", - "logger": { - "level": "{PLT_SERVER_LOGGER_LEVEL}" - }, -+ "cors": { -+ "origin": { -+ "regexp": "{PLT_SERVER_CORS_ORIGIN}" -+ } -+ } - }, - ... -} -``` - - You can find more details about the cors configuration [here](https://docs.platformatic.dev/docs/guides/generate-frontend-code-to-consume-platformatic-rest-api). - -* launch Platformatic through `npm start`. -Then, the Platformatic app should be available at the `http://127.0.0.1:3042/` URL. - -## Create a new Front-end Application - -Refer to the [Scaffolding Your First Vite Project](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) -documentation to create a new front-end application, and call it "rest-api-frontend". - -:::info -Please note Vite is suggested only for practical reasons, but the bundler of choice does not make any difference. -::: - -If you are using npm 7+ you should run - - - - - -```bash -npm create vite@latest rest-api-frontend -- --template react-ts -``` - - - - -```bash -npm create vite@latest rest-api-frontend -- --template vue-ts -``` - - - - -and then follow the Vite's instructions - -```bash -Scaffolding project in /Users/noriste/Sites/temp/platformatic/rest-api-frontend... - -Done. Now run: - - cd rest-api-frontend - npm install - npm run dev -``` - -Once done, the front-end application is available at `http://localhost:5174/`. - -## Generate the front-end code to consume the Platformatic app REST API - -Now that either the Platformatic app and the front-end app are running, go to the front-end codebase and run the Platformatic CLI - -```bash -cd rest-api-frontend/src -npx platformatic client http://127.0.0.1:3042 --frontend --language ts -``` - -Refer to the [Platformatic CLI frontend command](https://docs.platformatic.dev/docs/reference/cli#frontend) -documentation to know about the available options. - -The Platformatic CLI generates - - * `api.d.ts`: A TypeScript module that includes all the OpenAPI-related types. -Here is part of the generated code - -```ts -interface GetMoviesRequest { - 'limit'?: number; - 'offset'?: number; - // ... etc. -} - -interface GetMoviesResponseOK { - 'id'?: number; - 'title': string; -} - - -// ... etc. - -export interface Api { - setBaseUrl(baseUrl: string): void; - setDefaultHeaders(headers: Object): void; - getMovies(req: GetMoviesRequest): Promise>; - createMovie(req: CreateMovieRequest): Promise; - // ... etc. -} -``` - - * `api.ts`: A TypeScript module that includes a typed function for every single OpenAPI endpoint. -Here is part of the generated code - -```ts -import type { Api } from './api-types' - -let baseUrl = '' -let defaultHeaders = {} - -export const setBaseUrl = (newUrl: string) { baseUrl = newUrl }; - -export const setDefaultHeaders = (headers: Object): void => { defaultHeaders = headers } - -export const createMovie: Api['createMovie'] = async (request) => { - const response = await fetch(`${baseUrl}/movies/`, { - method:'post', - body: JSON.stringify(request), - headers: { - 'Content-Type': 'application/json' - } - }) - - if (!response.ok) { - throw new Error(await response.text()) - } - - return await response.json() -} - -// etc. - -``` - -You can add a `--name` option to the command line to provide a custom name for the generated files. - -```bash -cd rest-api-frontend/src -npx platformatic client http://127.0.0.1:3042 --frontend --name foobar --language ts -``` - -This will generate `foobar.ts` and `foobar-types.d.ts` - - -## React and Vue.js components that read, create, and update an entity - -You can copy/paste the following React or Vue.js components that import the code -the Platformatic CLI generated. - - - - -Create a new file `src/PlatformaticPlayground.tsx` and copy/paste the following code. - -```tsx -import { useEffect, useState } from 'react' - -// getMovies, createMovie, and updateMovie are all functions automatically generated by Platformatic -// in the `api.ts` module. -import { - getMovies, - createMovie, - updateMovie, - setBaseUrl, - type GetMoviesResponseOK, - type CreateMovieResponseOK -} from './api' - -setBaseUrl('http://127.0.0.1:3042') // configure this according to your needs - -export function PlatformaticPlayground() { - const [movies, setMovies] = useState([]) - const [newMovie, setNewMovie] = useState() - - async function onCreateMovie() { - const newMovie = await createMovie({ title: 'Harry Potter' }) - setNewMovie(newMovie) - } - - async function onUpdateMovie() { - if (!newMovie || !newMovie.id) return - - const updatedMovie = await updateMovie({ id: newMovie.id, title: 'The Lord of the Rings' }) - setNewMovie(updatedMovie) - } - - useEffect(() => { - async function fetchMovies() { - const movies = await getMovies({}) - setMovies(movies) - } - - fetchMovies() - }, []) - - return ( - <> -

Movies

- - {movies.length === 0 ? ( -
No movies yet
- ) : ( -
    - {movies.map((movie) => ( -
  • {movie.title}
  • - ))} -
- )} - - - - - {newMovie &&
Title: {newMovie.title}
} - - ) -} -``` - -
- - -Create a new file `src/PlatformaticPlayground.vue` and copy/paste the following code. - -```vue - - - -``` - - -
- -## Import the new component in your front-end application - -You need to import and render the new component in the front-end application. - - - - -Change the App.tsx as follows - -```diff -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - -+import { PlatformaticPlayground } from './PlatformaticPlayground' - -function App() { - const [count, setCount] = useState(0) - - return ( - <> -+ -
-

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

Click on the Vite and React logos to learn more

- - ) -} - -export default App -``` - - - - -Change the App.vue as follows - -```diff - - - - - -``` - - -
- -## Have fun - -Art the top of the front-end application the new component requests the movies to the Platformatic app and list them. - -![Platformatic frontend guide: listing the movies](./images/frontend-screenshot-1.jpg) - -Click on "Create movie" to create a new movie called "Harry Potter". - -![Platformatic frontend guide: creating a movie](./images/frontend-screenshot-2.jpg) - -Click on "Update movie" to rename "Harry Potter" into "Lord of the Rings". - -![Platformatic frontend guide: editing a movie](./images/frontend-screenshot-3.jpg) - -Reload the front-end application to see the new "Lord of the Rings" movie listed. - -![Platformatic frontend guide: listing the movies](./images/frontend-screenshot-4.jpg) -. diff --git a/versioned_docs/version-2.15.0/guides/images/frontend-screenshot-1.jpg b/versioned_docs/version-2.15.0/guides/images/frontend-screenshot-1.jpg deleted file mode 100644 index 345b7be85c554f2e3d70ae5ac3441ee2340d9bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22552 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 diff --git a/versioned_docs/version-2.15.0/guides/images/frontend-screenshot-2.jpg b/versioned_docs/version-2.15.0/guides/images/frontend-screenshot-2.jpg deleted file mode 100644 index be7ec8c6d0c1238117327eaa30cd35ba148f4c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29107 zcmeEsWpv)mlICk>J7#7(W@cuNnK@==wqvH4nVFfHnPX;-neEsy<2oPQxp(G%cV}m3 ze(X8hsv~uks-CW{E=eu5-j?3B02m^!X2t-3gajo367X;3?G%70>||i!1^@zpzKi7m zfVV9WMpH*eTTVJUYX@3ALmPb~S_2y^I#)egItE&LIsiAHtF4}ag^?qHzLANUH4o86 zTNe?5nIR96DvLC|w5^blshPODy^*53jFN%7g#m{l5g#uBw=1Wsm93SLqaJ~)m8G=< zrz;Q9Z{VEo^<01N^V=gW(v@T4v zHuffT3>+LBzc3gXY2Gzx9NerO^;~JJ9fcqc{ zZ8?SPjr1IC?3HY6EdPw8oT-hYjf1I;Ede7lEi(bRw4Q;P^)Cs`bh}f~@Q;tReyoOl-`|f7%M$7&uuO zSv&q|Yxr-rB7bT7DV`cKh&0{yD~EqmXYzvaJ?^?TCWzi0Q`IpE`OISVlCe!q%Yp`f6l zp`c*@u>gU9fPjI5L4kuq!NEYmz#+iD7X*agl>Rut{?7fQ-QT#kUH~E_Pyh%l2oNFw z7!e2r5$LTS2;%(~@a_o^(7)XsARs}(fkD8afZhuLIpam5E8N+F&Y8?XGByM)(`Xyj7%u#Y|%uv)r8Dqi0{z>c{hfJfrSKxc*g{K zw*er6ArUel3&<0Jf6%k@jbWV0Lt!Dvsp%0^s3mr+N2TYN`#i00?@-rA60qeLo7>AI z#Qej+-^n)mQZbGcO$iC`-aZiM?>_wI2!kBZCE^D{V4~=1B;@yw{R-N<$G>+E2!KfV zgF!%EZ(7dI_d`q#!RMSFdj9CGOWW$V6~KE~-lGD7`0iTq_kRn<|F8YGN5ClA=U-!@ z12#q>5wZ=(nEijL z`~Oe=?<0UsSdsbg{g)n4Q>xFe<6jn_Yta1u4T1b_0dOb^Y>Mu1xbj9}nuRP_k+&-U;3JiYSV_7tqK zsLV5CxW;z7X+S#(^?wNh!z^IbMZ|BBPpi%}Kt$xi3i6}eXoEaQZ_@ViYjxZtyN`ri z!q?NK2|K12c$a)gH@`bz3 z=kL(q*(Vb6oYA_xi$K2qofrUk;rfFGO<5lzay$%o<8=Ld1)LGCs#LE1O;p=k{lAw3 z09@aueis-drp}e7p%wqbX-z7HQbUcd?0*mf9pd`@CIBZivG`WTNbx)OhYna_6=V5u z;UC-|2iTu~1h=31%q_uKgdPw(0$X_?4gg6x#QXe92^k2%2k@sYUduVwbQ2Z^AZGYG z$O3otFNKf5`0r_x>Fo210bm4X{NBuRn3u|q9h<^O(iuD+ePN>9<@m#N$yQgeV#aT| zt#MG9=AZ;JK>}ZG_T)JE|HMb4p!(pZKRFwtJf1Nc2x1&LA?qL(FM_fdI=IoRYn>BT59`f9Z@nsJfKz(EQqZZ@ndXzB1x5SxfkB$ zcbrMn{DCd1qdKIXcx9sQ%$9q@%m+-I&|Cnx+sbdP0`$?Ge**xiZx5CLAT2|nkwi#v z-$K`GDA2Lmw<9jw0I5UW$4>M{Wr6t=z${3ehlVFMP157fqe{1(&k1vpUXzB0n z{kH#Gh!iH5Qk3&%|Lzn30HdgHq!RV%A7lW`1JmCGK;3nTMhg#0+%z8lpm67GQHyFa zuQt#A4`KkHtoY0C5(twjRKPVbhiSLQ6aFo1Qq&$rTse}#l*Sl++;slbX&(U7}OjF>pT zDbV{Pu`HWD8yhiw!bsGeolq?AnSBPr|Yr z)ek2>Bj3`Ye+l{4bZXLKS6d|V`UEoZ7ZiM{N2#t$FL%JTwCyrm|~RqhVVDZ_O4R0XJGXltD@#h9+Dn_!r!R4^G4 zrw=}3$TBfFQFMe3Y!Z#)%NaoV9j}soGaCx?a)^JG|5SH>GQZlRfyof!SDxeESj6hx zt(xCS2NP%b2Czb+@RnNlDk;)d?=ZcM(Dd5cO^1`@`F2voRKxUR!CAs!bX11=_WoY9 zbL3-biFxTsRn;2eYW`Sd>q*t}(_(7eb9oga$$az-&1=mYz=If!0wuVXMmd5<-Q;oLq$tBWun5{Ga(npc#1IeYTciRq*6;{Ci8OJnr!=5| zK(}v}(!S|^Dj$?NB(^2wcbA#X=ld4HhN?WT7$%9dL$H1(A2xq&LS}>~(kh@Svv-ZC!RWi0GkiYrJnptj5zF-Xxi z+GoUTEzT5B`u1Vy3Z}k>**?SkCxk+$4(Yr@wdQBr$g)>;+6``;#v0gks=K-enrGSY)9rtJdFAL5H9(+2!{_( zOA*RS{nz!23dc?;in>D5PP2-oxvi1Ptey$Q;$B=hopo`5GD?N0Zj1Mkn|T8OrpuN= zj^yjjxdmtbr-`L_g&BUOBZ_b5*5i80hI~W5J{6yif}dy_E4jJmL`C@u$%Bp~JIJ1=FAOhUbhCq*ao|!C zJQ;qT+V1nMk!wp-u`ES80ah9cDr9F|5F?FG3n)WZs9nuudpD?EvZRmn(}Rf#!>mRp zD?)4KhzN`*70!0I$xX`GGAgM}sjsZTpEZ>^UeqNUFxNx6F59(YS=fzbKh_G9aECUy zr$-blUe;sRNeprae_Ex~vLVCK6vVob2;@qwSWkwHYkU$IKzpsO7_33SvjMIU9( zOG{Q^o0U_*L8#=mRX1s3)qGhOo``vYH9Jz`Egs`j=70W4|NJmW!vR^yXnGTCg;RcU zKg!{6`W2n!SlhaZ(8RltqcX!qxj?^M!B%c;#wmy^W!$cw3el{1SUCx`RHEG0@-p0_ zR?MKckQOBv)rvB{={CYUB4-x{LF;8bb`0G8bd1tma*pT(n!8}(L;=lZb8w2XgbDT$ zTxj~wurNEt2`gjX5jjn$%LeW+iava>i*2R9Gh~)yhu_h?kah4Bf}%m z>S%aeUmripXnR%WPV(HD+jO+sB^=CYB4c0T6=tTGv$)Wv5n&eJIWojurbNxTV7zP2 zLWMo%Mj=0aDf7Leeze|GA%o7?HM4O{!zrx}OC*sbCgM<;)tUyLAYBS3KHi~}mOM5x zl3QRny;3p8@YP9m{#zIV?)LpwUN9A>{lX5YDHsZ8sjlHprgBap0gZB^6PB{KI+zCa z-PC)EJI$MK^^H1<7-0g57t)z$DU30hQzJKvv#&(JvNW^^u5v-hHCHaE6pv;_n&fIU zh!&|B-3YH~uBoEMUrRiAirCDK zcw%FDF7Ri4O$xc$_R^KtyuSLFe#S}5HS1d>{+?OLW^Iy>XJ@D*kc%^NYShO3qd9HAl`ggqOu`hi#!@-|Fv+V$NVZhyY+YEyIUkl%neaE+X zLZM5yW*(0&u!@S8^s4*xg8JZsuwhv-Eb0GCY-$9|`5VA*o0w8Y%|fOGjnkO5bUyAj zVfTAV54R`AG%gNjy$~@7&Eaa<_(>I5XlDQwev5CUjE?radF)7k1qZW1=cX_BJ+UGD zQGdH)vg$?;-HZN5qGYzB?qLC}Vi$&qgIY}3f)Zy`^H7;w0+VgZZx$Cxih`zg(OY{Y zhF^608G%hCX;B;G^A*7xG+he^8=`B(siXrIpy7eWCG{0rcQos{Fb+^nlXrxnRp-&( z03|gKN)mwzt?CEfXxaA5Wk;%;&yrnRwhHtbYIKuZlCLcwIIg#qv+hRv z64NuvliIqE{j#1QnvXwL&an%Nx>7Y$`d{d5kW!%zM#&rf)aH`S;NtrBCY&e(-GP~I4&obcx zv^7-FD4bX*B575?ozZj0cqfefVMwqKlgq3$facxp@})zr_Uvys_Kk|dElXEqR!Mp3 zxT$8y`@c-?7cL9xcjC*)m1h9NFj8y4PePQZFM5>yE}9c8j7Gi@5)xg7b=t+O)MWyBHlrTW}aiTL^72DAQEfxs?~e zf*Z5^e@qe``VDU-z zdF0{$F-0IQ$`@u{Tm}E0Qo!JRz>gzbkb)lq2>-*5YvN7}j|XFrA>82K?eJx|BS#&+ zT9Z*?9sGORsyyH$bCns|cUdh=HT&muee)pvn*$)fIk44o6>u=>}Km=D(9= z0f`@OZIZbbtySPsRa1TjPB_HGgys6-`luy)Cn!yca$C>N+E~*-B|9iltd1g+3|iEeQq>GeQ ztGpEjy8KeiN-+oezNFQ%_*^|fp7@IBSpM9p1B_yXh@2!^n>m{}mzA|UT_B__lBH3( zuKd2Bvrc(SoKjaL%F=B;mc2E@PhKwmk_8m%V+9UpOI5uRH+66r+9E}}Xxg*LGu5Tk z>J)amonxD|t?A^k&Wxyz`0r?%F6-qE&TjzZk1sslb=G+Tb}9xG5msG~C3Z7WUz9A{ z%pQg*w}$zy($~MMw#gddNM{U}j(e4KWUf@HV?>mm>VHQQJAwI1i|^5)_68{QI#Z^j z%=ddPa-}Itskix&WuLcQQ&mbiw~3_`V5uEKNC6S&M2s90-x5A1*?~JGQ;=hZ)o#$( z5ACcIbA&Mup{Yw7>sapba-0^b(JHq%_}R-K?HL+xoqvSH(WqX-_SHemq`t~L`Y|wl zxV0$iFw)O+Y-Wd0)da(*`-KnFJFY{`dmcZrbXZg@ibzU2uQfkkP9Gc0)UW6Jkm$`J zc3WwIB#q$`$vSLZ1zb@*604%*xTw|_e{-6)3Qnh0`?J-8>U>{_ndL8e(X3mNb6kGA zioHy}O^GYb@EO_Uks(!|REtLJ8gxTfL!$%XR|L4Ygq7OAgkxbLG#2Uzt|<@ZSgnX{ z8*Ua=-C8a1+$!fR5Z3NU?JH>8h6>K{1&Ia4NXPg2lk$Ne5mrNkL``CZPy$P1~>!u*(@3VCEfl`Bx79tn};xEL!Njz38$ zh}Q{J)TMa21nTcpvMFIgRT2%eM7^)Imbjs73L1M^Mk0S&S7*NZpHYT(O$`VyaokHR zZx!WpI&nVE?SvjEM2zdb0hGKnN=9G^2tzK{)VW8d%%#4u4Z0O3Hmctr18?y>-f-zY z7mZX>@o3UEc-VbV$=_^66xEClSDg!JI_%xO_UN9`ND6oU0@U~flb;UYrV zV#x<2wcM|qxO5)Vv{Hl-KjXS0nDh(ZNq5CJ1Q)LkWD!iWOO&UON zfCaMLE=#2^=BPhY&}qNF0TLHB6RZdEZ^ZUWYu_JFvcu90k)z_DECU<^NEhMb+rfM4 zpDC4^2;4V-@-xaW$asrS_Y)GYiud z&F@E8?=tnVf%gCJ&r8%U#+QGuDg^fOAgO|#b?716Y4_kj+Q?= zKbs5x5;J4^yqX>+aH+)AKzy{hBMs?#>slG(ggYYXHs?kmJv3&pJ8tQ?McP-kc4xL! zo2rO}$*FCo*>fs7B23eoqQHX-Yc&VIT723NSaK9YCOndydu1>vuMpU@YP@1(PbNIX zN6MMk0OTOH>cHMGGB0AP@VKMf# zLWIDE^*Mo|II2E)n`HpD#iN;zwfmN#MIC_|Ierz7ybD>ns`#{tEvOoPx0W{z&(QiK zPlhBniJ3r6*AcYlsqK!CjsAY8WA1aG=h4We;oz9C@!sBmPOcAIEFUQg8kMA%(1DaR znHw{P2SbFud%HO4Y*kBZhCfFoY*16AAO|FOUQPH|QfdtHM_$V&kL;C4WxFnKzr3B? zXxtbN8Xa;dbduE;8NKBCBdfM<9GK{Wh}(`Pg%7Wa_;?1HBrMHN9+`U>Oe^2{YS&6A zxZ)95BnLc802Lzwld>=mF%3LOWj4#Qy^L51-2`^aoY7@I&UkNtZ92u_B|)*_3Njn@ zYSZOO!m6V?j|LJ%eKITj8)WtHbj4i9WgwsXjretnyLoAe$St#56tr1?SEAOgB*>{- z1+=0TZn*@6q$O1_quS@((K%LJN}cJ=hGIfWLiizD_DmrQM0K(?+mcy|i7Y$O4d~-< zf!CStU~9U3p`MRDH|`u;y-}#NB_Q_m+kRgl`sDLS#ip;YQezhh4`bstm@i-tgVqMB zzwg2}TfMAqc8DR(I5xyaC#e(1G`UOi&98p15->2-;?idl$8NAu-Mvtie*>Jo0owGd zUB9}CyDrJ+70A{;rNWdg&n&T?wVclwwqy>rK=o6!#7x~qLLQzHt-?t-IX`iJvZMn)8UVc(e1|7zI>Mxt~iC5qnMrNu}Rk)8*@@~zWE}Ou7yvU zRjn1)oJHfKQFLKybP^eOUMk3$kv~t%=@g)qo3g%#X1xJy@hQ6ct&3iL9#HWKQLdMH zNbG6I1|`ntQtrEv@d=*n(PD>6u56-R~<<$1K!7?qnj>P!L&ZVx@PuU(h+ z$9F%$e}UI#yF2=N|FaA~%)%G?CwZw?mU@D0h!|uB zlGdACM*J`mcG7SvijQ)1rO^I-LVQNApQGcC2s77EA-J(s;*hbl+oW?i?{<;XJCl%@_wrFEh^SBKjUUC3Y+#C&YNgH;v0U|V zP!i4MPLc8%f>x?OSGZ_);rfs+Uxy@{C;o!YiU3@0j-ZmAMtG2sM&M~1A7B| zRd}Aafvu(Jj;h@NyW5=2($*zv-y2}Ha}vV%qXS)f7;X>_EghCPZCQ{rFr8=Peu*1g ziJ8eKLp;&h8os1zxg?c%+(XdS8oTPy7B(_BK7ZC}QC{R($jdOZC9a~_s#~!vL+{8A z`Ge)FlX*PPEZYBfs>g2tL$_Pm`$J+vs6)g1g8oyUzA;TM>=RF$ikr@+g~v_J|7`W; zxW$2X<0D0F3w!B)7aNaf*8EZgxY}U|=$FkKBpR=yvTz^S{UD9IX`R}i)DNg9bc~ZR z{|{9iqM@H>#&oWzPG4(;P2cAS!owi@Z-B};4;K+4Ev}Z3c*{&3q?W4jaTR>uQy0(u z(jk3==hfI5Y)_#iSKJ!3BRxZ_5qTloU7vg1m?@a*RI9LKfu+@Ebn7Rsphr~6sa_HQARcgdy^C$IJ>8oAffRMe1=ilBgg=q&(F%Z{c-b~h`()6C<~{LvgW1<<{o zgTiftHf-HC=1+KC@X+thG=ghnz7=_}+O9zyfk{1IJ-RHXWrepl`?bi#vXICaM_i43hS`xMwBQP4YZGss+C3iOJdZ7pU-MdIN^jLTDrk~~^FJM8wAd#J{Lge^hp zlcAcmjL6;8hdGtGDRokf#xvG}UH7_F8P~d<>LrQA$sBR{6^>$ol!fBc14-+Bh6)%( zAp|)!bUCB=(YPfqf11q)LVHQ{6EaCsFEwV&=n#HA6t$W#gu*d1lOfWi3NW4F2;Vco_0{ z2^FW!h&LP&j3tF4j*DON?U5aw73=vdSvjtGL}(hpmsK*+Xpb@tCymx4xI09`Cd~M2 zjtJK%=HfOKs;TTFenF>^*e=9+hb&js<%*l>K%Fd0q`&QSa+oN5yb2@TZsWeHh+Dyvm*`CAZ(3K?HY)u{hLarmc}@jt-2h&2K#)U4ow8Q21!*72l>Y~7nC`*a|*1DDN7X=a!0pP=6p#^ zSj)Pc7D7%*Rf{9JmJK$=Ny53FAyL*Co*p~TTk&NFbEk3$%{)W0TH4|lV1!!~@gG>S zs*IC#s01ZesAe#AA?P5kmo1b!6xMeBSW>d9GW8T};PZ49iuTZ>%-4^=_o0I<|e8KeXi+)Wj-~)cv~R;kh9ohL2row>B1$8DV@| zY;OjylR3DHJ@uq1fUQuUF)FbKv5e53pr*Ue=X7c-!_F@emwS-WEyq)*fUCwyT0It? zIVBV2#1o_(C_rP&c{aC+uj%TOE za-kFhhTuJ<*E5wEe%EiXIPH%@%lSdYz>l?ERVz@ed2^u9=G zaaZD%;pW937c#~?{+KPu&TsA!7uQgtF=*;iH)CIne&&D?ifG>ql}wY+y{kHP&>efd zTXypLb%XT4r&ctK!h#XuThZ22h_N>r0(j3$8w8UN6`8!KQkB`sK5OY)31#j3epSa`0T~m| z{;FGvg+(;5U)a6!Y4C<*Io(hE)?0GB1{C&XXu-iBqC4_>H;Ll?`?)YgdW6-ol(7wt zmX%7GH^ijzCsgVrL)@bJ$0G5f(~j?Rjr{f%lsU){njSM9mZ=!u~k>^D^`B~|9w1S<2d&>GMl z0ZN}#z$k`|u$l_?rW#O|Y}Opfi+@_9B9t*+oqa#piBGeW6jV_xlR&4Kw{;HNxXzL| zp*DM_fHka-b zS-elKb1|WWLadmS(Fx(aOifvE_^?(DRZMNg_e|;B?>}cuWKY5+)Eei@#h|T7yLqAH zY@dXBWHKxJu0NTB2UzJ&klSb{N>`099fyn0?uaL0B6<=rS?9C@P;14h-CfS6BnNGgk{(Wwb|*k+v9?03 z%BhbSVf8xs!B0>%0%AEeoKONuHP1YvoE>YDOt{ixBe7{}to*&wNF`_J+T+%W_S(z3 z2nV>|r|&#s^1N6ECXw@(=J_4-M2_=;(?k+?UGiD7pX*3IuPwYf!TZW1ffPAc4= z0?cHGguJ5rXmcz?l0ov3tXb#0%A7(?2gZkvFdj|_J`OKM#x`2wBEi4P%*OqEF$_yK zBj?7TS<-oKmD`RljX#Cl2!^soMq|y*4X_86;2mOl?z-@dLrPW&&SOtf*JX^hh7(p1 zbhk|@9+{n0kQ2G{tJNmxDw$*Wfa%saYo(owD!X6c6cXM)f%%D4WLl3Z4q6B z7m4sFbr=u7?F=pBg|9)ZpLmRXbm$^-YuOt8e%o3#a*Bco8>um!Hey_@;tb%R*{ikA zCs@kpKs5jMopFW-2-7ioZrjn<5rrJ}8E>8;armZ^SLEvi>2Nd#)WWfEtBnb2?bFN3 zAV*XNo;@N;fkouD7T|;nN`eKwOdY4sHKbaJx(Hg)lTuzlrWUxB%z7nS;eL2Wu3#Yg zi3E?BZK-}K#?$BGOtHmMS2MRKj7DT}yGnqZa;41tx5TH`Rh3I=0jD`iajXy_f!py) zK*enXpBU22mB_;4E+J1iyi9k3vKyDLkD&Ote_*7SFX4u`WOma0vlLQLG_E}(fmfJ= zMk=zNso+)x&EGf{L4pnStIviYQ(T&+mbioy*xa(zM%YHyv5mS8qMGsxxOpRq)-f*e zc6^y>=Y*sUTil73mcQ*J8jhh^i`u2KVTF;(ZgmMJE?6TqR?tjSP)zGfoyX!b$8t>` z&ZmBH-y@lVj@0Im+48U>HI~@)1dFKtEn)8TkB=0@ZJl-1xWl664rShfaMszJWdRz) zANOl{bSF;x_IlddECWk8QA^iCaoXcQaxIEi>I*jfaAHQwf7T&zSd%t8{>CTfH|kh% zQaMqz1E{s+iT>klLD#qL*AwPkTPrFuHAPlX0!a=yDANz37bNZC@-DUvh6P)_&F>9R zA&J5(``vPG{?zy^?6rhS{z2DIY(v;#HbWQB1ZzJ@k!HSYDf$?vf=z!wJS z)Nc2lz1Duf5jZ>IQrxHz%atW9h_Y{basHpC2KX49#6-^(2KRx%i-_fJ9px#}CBdm&@=Aj6+UL`!YNGMd`iYRZiQ(_sM$ z1ZVr+G_G&C^tPd1H#V#}e5Y>TLL70*uZ-Y47uzvcOHu~GQRT|o5ahmfg?(9zI_E-@TPL{2!63P42$cWHwE#2R55YM z32|iY^fM{rQ)C$(PW!Q{1<8@+Y17fmC>qBi%B+2&LJ@Miqr~31VhyQN!mS~F1#P3| zn#XX#KD`^WvEAt#pm~P6afo7he5`HBv!kR+aQlbj+9iwix{X(I_PO{bM#YOyjfv>kQr)U|zLBa}m0j69 zcO0iA9>ykTVS(YOXwp2+FpbX~>#P%5$?=Z#JYw5v&lAw7?hu=ZXiD6k;Ig4C zB4Eac<9r4dpJTh|B1FxY*xP|($j%d1nNy0^-uxkcAbxR6|9?Ne4*WD0+darMz}HtMx9X+c5EInS z+g@W;!68GqJS~9>zdxF=fLBc;-anucl$WQUrOWp0F&A#KbiTDn@MCL2Dhu*_j#hMI z{g@Za-ZkXYf~GE0M1|l`XPj)ovwkf?CsN~QQn8>ucm7p}`eHwGp>nn!y&;uC_4^Vs zeUHuH98c!gY0t>g*9P64%Er5np7+(L{D!Lm1Eq@xy+e(zdP+@onMw{;?KH}yK?T7< zUkjKk>k?h#8@r{__-V5}h|o%eBi$u_6MT;03XTsnrqYcWlISZ`iwNE>SE`B|P8#d( zL<`%Kl<`3lEFcUEeB!CMauy*`pO3Iy&e$OA4)Tx@=I0E`d*^n0x9r9VBGSb8tP|D~ zE*4~uY`)Yf@@DcXa3R#}d^(S5bKGDhADE$zCV(tEGgfjVw~Z1mrS91Gf!+6`qW9J=nb%j za?Hbd?1$QlyMP0l&w!XC&O}?PF$z62e4d5@X>8a?* z9tcJd0=>cZg|goeGqSiZ3bl46Vti)*C4ui6^Ci|BVd(gW)x{@sF;p3KZYp#6&C=)g z^>A9$!i`Vm_M@2^ey+xk?TYWh`Dp*x(30f#T;>rgJo;*4ksS3Fd7mo`n=HXqCj?Qb(HGk-4C&sX~Y(+meGbkwn1icrLdWQeO|j zraTvOiPlSGl}PyNumdtq13@bi5T_9=N49CdGP_>D`Ga6*`HC z9ofu2on)5!Jq4h&hwsvy!wjyqdADQA61Xe9qY(+BNs%P`LkL3iHgMCjB$*Z8{MG74 z@@^)hR;{bMbzGP714kRY2;8OqxA1Lag8Lkb6{w5Ti@660l|qG1SeyB#YR$H;8W3Va zDoq9zrESd`)lku~m`TMeSW;7C#nx4+MCc~#{#zc>e7j^v(Gfj!AiMl%jbjOE%wW~V{3 zooT_Yh6l6qwf>cvRL{Xw?AVo{{>^$y8Bt0ct6+aU3P(U?D6kvU{7w`j3Dp`rL5)IyJn;AK8pd$LH`mW;Cys6I1$Qqj`5Nf zW$up~_y)*ojw4q(poqKloOL`{9~3bMq6eB=zNepk#I)|Niv5a5H(84!@CG0t94J4_ z*ekjI=x+0Y$*r_}qaRF@CG%_M7L%cphv5U_SNg`~kn?%$!NQGW&(bP4Kc9~aV;82c zz7fNOTng`N;P{InDH$0YPS) ztTi5b&!%RONBO;!t;Z>HQM;f$F`Npp-%z%0T`eG&=F1+;KMT5%9G%A{d)~Qt4O_28 zzMvAJriXjS0h_MaxUP{jfykJjTya&Z@_IF1wn*fgg$A^ap-j)O?sUd*x(yX(RcwiD zP}|n0U{G9K1>(fv9i!Yt)%GOS{AzO{A-)*zP4-N+I%+DbR~(`aJ^BKMh$Wr81U~j^ z-nD1JU5Ya8j8@L^NU|VSI7E7W{RUvX*$D0tLDwsKw78Aby^3yEUv}Z*9PeI&ej>&< zo*=tKGGN2aU2n#}HwN9sNwr3ATN2Z!H`VByoTa_IvdjdQ+?Zx2_Dvb))H@XLKhTUO zUEMnt(s}=biv&z}HhCEl-6RJsz0IZBTY9Zsau@D&;heNQM)ZsfFrAq%EKk8k25Jjs z?U&HAg|{gT&H$4=aHgpQHLE8R8j}Kj{1Y+P zEyk{beIBtMyH^$pJ;&7dfjwcfATq_)8s7F2{z2_qFmGh1z~HjPcr54{y7oAqnbadHN9Fg#DQ7g6$wYG`i6$ zG6NiX2H5zJg|br!d?_Sut;C(&i81)nv%Y995{H>(%Y2AXfaBK;q$cI8y#Xg*cGL-l z3l9dcC>NxbIkqEDBU)_N-br%;GObu#+If2YibO1wCxfF;{a@4co9lUnYVbO%l%1&* zp47jcHyB{0fx+21F$%&6Yy@a8E(r@6r?M``ks>3^+CS|UZ$U)xf!99JrJ#gy7*T?^ zZiM0c&a5@i8@Hk(LG|q`dYnArfApQ@hkTLXG__9Yf$dr+ zsXuTg*aHe!`%mD+4<2NzIp=>~zdE~5ip?HeIuPpiA@;gRv5wZkO%(CA!qWJlchrAy z&GC$zK68SLvr|1~x1t=OTL*p6&0i%Pa|N4s+ki&J>f`zxHBpffSW!xwg#qXPSq=`r>9)s7)E1f`s8LqE>Ag6_Lh9yMRWZZ(hwtOt7m;q?MpT@5y3m0 zs2GMHO7IxNsO<^Z7YO~O+g9CewLvu=gRl_kIr6T2h8Nv0_!g=s>}z`pUnYKjrfYi? zpdz4;&hZu8{CTZ%Lz8&$%v*9NK2YgdY;M&t>WJXMgCMfL?v;j{D7A+52pzBn)vt8A ztMRDss|?F>@q=Cv#y_RcN{5G0H5fBk5SLw$1gHkJp16A-ea3-O zL72f!VW%*&nfQ(WD=bXYW0{4w=uZ3(aMhmlbTMJup}in?u7NG>V%g?LWa`?ne@eu? zX;WQ#=|jTy@9Lb`V;0^jCoxx|s(tAl(_@F{T|c~w^f*;F5u4L|F}tizADJB3fSJ5j zmx6kxt^=)JlXko$`VJQn@;751-T+dUU1TSgYc&e&#@b<81KLZ2=~J0KIx&M0gUbBE zuHI^N1Zd#^?6onKG%z_q-G^d}o$)?WEEBM2zI_|_XN4fsM%>XjH=sJ|!tH|_A%`Bz zZZvBqhP9?gm*wpRH>ZQ}*HC-6ga%EkMTCcPHYfSj>bjDoM!IMGKU+UG{u1EwJi~y) z{yfD*idtL8we&)4{V5*Wc7z&PB0V%W5OD=ukTw};ph8Ln#ug)V$!l6b)3*tc#~nYx z!;y6Uhq(Sv+gh}cx*#8RxOnZHB6|pTGgXmrN2Pse;DpdE2viS< zVh0FID(?}PuoOf){US@Sct6K5yxV6>uZVa-8M$rHfeXJK$KyWpV$QlR9X2rBb5Tav zSJ_X-s$Z7wELtWeg~e?qHZ%jB65Op|Era{53q-AH6Q^OBTM)v1O4IEH=vfU*#N-p? zNquB(&A!o|>x#wWvhIw3CcyCtV+ZMu?yR2=d`Z5wGN}H{tq%PNQp2ogn&nA`)G zuAxLb(5%*!$5n8gjOET2jD@k^G@g+XksMBpH3nY`gxj@c^zeenc@Y#E13XAFS}ed198|{hOCyPZO0`?TqS~ ztuZs$4RwL%C7-jC3{+KkRgd&=iVWunI#DT@>k&6_m^EpETBeoVEXz7Vj0b^Aw$XRxPVN##H zMb@Jep(yb{6AJZf!O=n{5u8f!Y!rwl8{`#Znl?g4+Z!Mv8WnYQ9+(;+F;{gZR_$b8 zJ)8ouF1D>SLJJ}*r)g2LqDIM+;JeI}|8wK^uI7TmmE;FN3?wUI0(|^q&go?Gfx<+# zh*_QSZ8VvUF!VfUVkbe6sKY$OKxew&32}GnlWdB9-F1oEN+Sf2Vz^`SU~L(8BX7ij zUw*C!iG|cobMWvWb&%~LLc+t>1WgKv+hj=rX68niW$UFCBGZv9J@hZR$rQLJtKYK_ zogF@LW%RFaZB;}L(~aKo#zroGs;!A*3;NLnHtN?VuuD2Li>SE-(BSn}-SzUGdA1pO zOj!Yq&+uPP8k{l*lFpu<9EDbcy9cTgLSXODVakeeq%CIXhHzEM5Kw5(gZ;@yXs^K` zmrdth{7uz>RdBCUWn7=VXsy(tJ{=isty7O#33Lb)gf{UQpPjU+;WN%t_LAMPX+50n zsL5+5a#459_70dwk|^eQfjN!+MQVik}};?;2b2^NOJS=OctKXIAmw6gWaDT;)o30(IAj_;Is2 zJ^^E_dx);L65jGGpccs~Rgw2`j~zk5q9e1^Qb;!AiWjI2BvzFAjt-iyt#YI`bh@0q zvQ|KgVP3}S9G?h=72k0vHZ(%KsL1`y7%_F2#_0iaZYZKGYn>bP&6}vC6P-G@R`Y5B z`QlXF3bL*@p&bt+t4c;Neyu}DK<20!fp?Y_u4m$_F43C%BPZaJ&Or~vYG9MapoB+8 zGuO<#bWQ4%cXN(lj(6kp962+DnXDa+&8*+@7}w2_r1LvzWwuR>g(>RuG8ILojU!UsqU_`GZi*{>C;zP*=@=9 zJdv+c_7rH*a^YG_91Y`K`iV*sus@!`(Q+hLmpIyHZbzNcRi3@oYul7{begJn7R7+~ zcwCUK$Qz~u$s-k~bLJk__-DxQjToy9n-eB6b<)c{t!g)4=mO-k=VJ3%iBIKD?S-#} z9)T=@s_f}@sID&+vFw-Bwsl^x#$MC}ZTxHw$r=d~;L|QlE?BI=UUn79BJAg@+$1*$ zuR9;8{-p8JLH4~oY<`&A8#`jx`a_ZWi_5+@$o92wXnD0+aJ1#&)(q;$c7;;jCK|Y* zDf8*RE;&`m&W+5BT*6-*6@RkM01vDU6uv7<6Nt=fAw55=?_|j3%~#25B*+Fsyx9vi z8f+gq1Mo!ldtVtHFh}vEJ`pnu(ZBH6M~Le9ib>5&on+2eFFDP6-oNr>D1CnQyc|>zyYavaNfUAVr5&r zGLXNJ-@=_IlRWOnL&&(qz4Ws_QG5$7_K1CXLYvdvHJnc$7PY8Waz49$;%%%NMl9~2 z@VV*!gRE5w&AGa1Yh`vg#ocfZl43#yWD zXJDK0o{$m`PDO}ycJVy&CQUw5T7zsT4zIhA*)u(-J_$E!?Ys-R$kV<196I7(I`V~w zyrH5Dd!Hz4qWzFrFzC|ivV{~ww@_YO^Cnv@uB$LG%H|zYrX#^ zTedyNyhOZZ?D7WH)zIpNdq>uJOZQG$KUXGhy?tk;=ZnNQ z`pJ*sl^kFOssjB8-m6P}&?zJ4h4RN@ zB!_gOd8wWTgIOdW?s!znAKNr^RU8WqC%S+3^Qcxhe);1#5Ftj|cZbb3_sk{3k_S4P zd6^RYu9wHl%Kiy5|LSW$F9EZ;Z~s~|cQ&31n6-ZGG`u;sI`FzT+45xL<48xv(bt#j zCr{W8J39UW#>|QvsR63N=9=e~F1li23*b z@L$sa-S?iq2WtJ_00yUnabtfIuJQNc5Ud731A+jk-&g&GgH;5G)FD^^{ukEoOX@%x zDL@C}#{RzQR~#Y~0FeHQ{{P~CP6Hr#iaNmtASnO={~mn5^+crHbRbCD-xC1VY;LSN!2sdEsOqm})d4IF0w@B2 z1~h(KyteYHU z9@n-zR_aw~C>9K#yJil*-1l zRTYIn2s5J=Bcp1ej2B~pm+{E8BH3rd zqSfxq%+bQTM5yIu&@{NK>nK1mpD`4eF@$+)L7SrX#gJ-ergHCG)-z1NL#GE*j_E}g39Eci z5@pSLx5qO1yO^HBPwi{(0^*p?XUo=8>>9+EE=Cr>D%g&k83vhar@e)*L2`CLIX zzMrzK`xq40$*KG$v$pPre@Kp}yXX^iRYJQ9_F{sjsA;s!9mD=nP};ixY>El7%zPf8 zFT;dm6Xbl#Au|c8fypLqDTUH2)hTl4G;5Jic2UtT=C(#ZMoh6D=WE%o5_PQeo_Pe} zpD=};5lFCk3KC{?6$>;L4N7|pE@ujXQjUv?UsxC4{Vd8llLcPQq?)UZb&@0Xz4(kB zf5BlpW50Yq7sF^?myN9-Wil0B8E&c?>Td-5cj`^6nM(O^_;AcB=rMn0UADPEw~*O} zDvjVXJtZpwrPts@XMW8b~wq9ICcsxMM?`9YpeJ%i$$pzPc zCT(n*iW3aPX*=~4k}X!kLp`8H}D1Rbat$- zUaVYogRTdM_iWLe};w%;8@oR!R=nXY=ny`p5UBY&SvN7j$!wan+Hx;<6^bLK}okMi1rfqC=w?DOU6uXxP0M*6y=`@5SkBUfK){hZJm^cW79N~cgf3EK<@(mSKgi@*$9r@OoM)hTh%mbGg z(OopCej>^hO);0{QSzb>U{0W0;hSgiu}6}FEj(c7EC4bZC}8F^p$p^0L@A)N)54UF zVA9l1sW5-tLII+45awOUK$&8L`LxOFY9iyT6bjK1Gy;M`=6mmT64l_{tF_5*bV(nW zIZUSl(U;Jy#7ghjW%@pRsH+_i6{%Igv@z&tva3vSxmun!G`4=aqpC>rsDObzW*x0< z$n4DC+7p#qX6(~1{LwF+E22BrwbFVnu*mA=FpKn^MHXTlduaC==}pjrCb$1VR#C9o zZY7WpNG3l(%w5(s-gr*sxk8@Be76jfP`LT!@Du)G&J{<2T64x4WJ$IGK;oi|ctvAX zsAe)N!$ID5?;Tvr0lw)6x8k2Dyv0RU#I`(eL02ic*jW&^lJ@x&B_%YihsW*FlYMg8 z0eu#9rC^-k@x`Tw#{O>%1G##R@VBRG*l%HP*cJ8CBvSNQ7*6}Y$GZFNE}D;32c)pB z2)%px$;Y*PA%~6mQQr(dGmBM3ipCvfS7ukwYi&91h<>PIE9lgO*UEdQd8prrP{c`r z7Rp@oQ#JUjv!Kc(|3XZ-KygadD)ITH#~jH>cQ(IEqmx2UGwkWv=(b)o`%Ky9U3V{8 z>I%|(Lvey(PH1H9;K3qDP79FD8?Bf#O|WECU!IlZLI6$+S)0S#0y=0>VKFgZF1VXX zg_cq@^)Pg<(WHA4EW>9oiE7if0-i9jUA1St5|#zMwpmOr?sq|3ylZYY)>&hni>|2% z{g7qHjBq-~x!Ib=IMJX-HLR+G5S$R1OiQz`VBU75)Do6<&W^A2(7fY8uW(+tgLWD& z*g=L|zi-$M)x+h`WW!dD$Xh< z1)Xv$=_8#G$m`AjNTRmtS)Baxu-XT|thL`j4UgevSroWiZW<-i>--ENasM;*Z1ylA zjNjizMM^tatzGUM!X?e7Q31Wqo$ER5@gatpD^MCm(QCql&o<0iKHMl~)-pY%9a8eV z?CDYRXZCNrI?N9y-}-l`Uf;~U;go&#V$r+`f2b$s3Fq8g*?!+)2!@zS&VD2}Ha(eT zC#$vf_#SSYT>qRKiDM}yR7B3GrWHkHP-B`KEQFbVs?_(j=&RgQipzQ6n|b=azEnh} zgtH0x@Bo(L$h;om{?dc1MI81T?%jwa%balx4B=t zl&2U@kC_dQ&U!Hzc5TYo>Y~C6eRibfDs1^y_2%^Y#;$xhGK?WbXpr@4Y|afQEppw= z=DMMp6aC9=WENaqOT)>&k#O2Hk)+?IxDR zt$szkQP@iQkgQ`Q$5cR=5dBME(U?m8vFt$jefNS3*k|_61#hA0L0o%QmO7E0rVuZ> z90rysYCcNy-4eU)gsIeW;tOXam%5V+D!ddkpFwl$U^k`>&Z;ojjx@oD2`*|IA^D-R z*H+UlwJN(c4InFw-cMleOa_eOH*pWl&&F0cp5>G#wbPUl5YaF%l*TnpqvA`5xEUdx zdVtmpXXNFxLg!;`!B~$i@qulBsVU`9?>G+0qIY3bQD}Sd(ToDHaVl_!< z9u}AdqS&25#KUo2JZBaQja9hMfuZ(_itzHqcD6fw-Atx7;nMCgOsg?2YjoRJy7rZp z1izuv;9b)Chiq#*{U>SDoo!~W<-C^n-LC|qG_|7~RNaviw93M#aV!~0a;JvTt8#Fd zd0F6MB(;o2!b(d4j*7)&v<$;pUT)Ty%5N-V0)EhcnbhJ&W8|oHw?V7(puRORS^({e zF_7%HhZxhtPtgFl`*}PwI3j`OL19(A5i8A@5&}@rCD>y!j)lvdJ@tLn0k zOdg74!@$^ihUVI4l~{Lvu!(H}nWvhP{9)L-_+|dqSvn;Rx926Ambn?1KgN70MYtKY z*u9<>+=(Ea*h&LWifoFRIPT?Yzad`o?e1fv57H|f6$5mZ4{3qA+h#aJvQ}|R#NzaZ zl|$XoqWPfhg*CyW^lv`8rhI7WF9mA0o0Fq=D&;ww#j604R+?+G0@zW%h88DfkcBvZ zkI*7?O;XZ{Qs*tqllbW^ukQM9cOJ8^12aO74f$1$nAIJDl`R|FC3iyvwn(KH3cjj& zm!lM;2z%of9rMmnWWD(9hxQ#UWppd0>1vXx)*ekO@5LNqm~2Ns5pinNFu!JweE0nSv8O&fX;wtEPrBp@?;-Nkq zfqJM_laV*|AbuIEi-%QirU(l2-&G}bTwG=BSOeFDr3oqqjWTs1$}L6UO7A-@aF`P) zV}GeD#4XOaw8C(U(XppV2>SSA4_6#9c?)-9XPKIKb=V{X=74IA8M0(r5`JA<*X3E8 zRdN0r@&a-`u&66Z|$o23pX4Maw2NR%yNpYv9yl;@^C> z86a7I$-mgz>)yhSGyP@cNxonRjs%U7(B=?X8p?EwB3K^XJXzx6E3>M5OZNfWDkw=Y zM#^?Fbd#a`&UDXdX@hxh;PmSf5N5E>x7MNu%njohQl=oZMOyXu%4D>j@@<_?1EMSZ%&_npB%0xSmck2&r*3rEF>mRb^Z!?Q>P)+)%eJ@rgUOX+(a3wP@dA+&ilb16^h&Ay&?C3!?e~ zP>V_=xwQ~6J9CzR^KczLsUISDmVB@Ias)pek6iDEs=|^)+j(@Hc=?dF9(|m?{58b6 zfigec;F3qUoVBid_Piv)ZDbpVv9ja#D=rckWwX#2t;;|<#k9kLKw zLyWO!b6r_Fo7of_CmEiEXsT@L)hOBU`((UuT!W7jo|lX{ z=uP3Csh6N)=G#7})z-%dqU3Q*T0wE9i^ZT>9qT&zA%bf~S6kw^Yc+U2;PMz;9gRK4 z8zWW*dE#9e+JZy_xCvWQ$tZn-31C}dT`Jd^P&RT z^ze1(*RE?t)XP(p6u8gVXoV$UP8e?PfQO~KvscxUueeAOCEV^40N@=7^)E5$l)twcne+);u*gX$-s zfIPYC5tB#yV#xeJYNjL?N|0RT3eiB|WLh#=Vs@*8KNobdlRS<6FG?&g9*?3sjpoF$4}AN!R!r6V|`U;_N=7a5fmC>6i+n0h~$G~g%>gl zsQ~JyM^{2FC1-Bv_*&>7Pi^*+4LbEVp}3oMWaA6?7=05pF2hzWJ}wisdM>#ZrC7aR zbs}BF)4jcZE7aICO^_tgD3YC%Gb;eYHEa94ZzEA2oSk7a%{oyqxnXBC$=pI;n5zBE z$W_7~I1PB+Zn-TS9u}5CjIp3@{fe~c7@=6g6i8e`dTi}594%aTO?NM)Tt)Eu7#Zt| zQc@P_9Q2|jD_6!By!u2c$e(7OkcZ-Q$y4Bxuy)f55_o|+qd#p^aK>Bx7@`zpMOQAX zy;S}?Y>3j+S#)=W>U)~RECawK`h3T*x#JuI{`A%I1~loO`rb@PtZAf$- z0EX0cHqWQK4?(I%o~D}15UQytGtmXn6VaB*&9@Mb2~Z@Eb=J`aXvw3kaTYX5O$InT z%@`Jr@nwwhV5&4*=&T5eqZkyX9bvKL+!M>kbJP={ExEONZ`6g!1{pB#P^{}b@K%jFEc z`evS5#Hbu^>VkMO>3x44u790Lqj0#dZCQF(UT@t>?EKQBWXs8=@Png!s2S*(H zG0%U1gvFHulEWSQ8%+wKAsv=(`yyMdOIJ=7MN79ouVM$@_O%J@i*2{Qw?BE}#Wkv( zv{xZNdrQk~2l=z_6l5s==3Y+f=a3&uf3WZ0>-z54+~y|g&nsSZPL3^-=Z)FV zz76Js<$6r3X_xry0 z-mP1=>Q%kosXa5l>F(+7?U|k3voDJ;TL4_C_coRQfSepX03Pr+dN~20OM=YoyZ{gY z=vP=30C?GgVz+j8cjjkdadcxgF?TYxU^a7dV0mxi%)-XZ$^sA+dGBmuW@q6}YHDF+ z<0wS_v!jQc)W%$hT$@XYRmoYx!rDgG+totdTUo=*+s=&7oLoehRPa6jdk1F+3wIOJ z_YU@sZv5|s$bVPP|62bIW+5m2oyFZwh+OQqQAu@_R7oYATrEiXm|2<3SXtRfdH9&k zSlL-QP1(&YEE!4JS=l*QSlM3-6B|1}8z(&#r z>B;QL!R+K}#lptN$M>5Kc6O#$4kkA*M|YF=Opb08f6*Xm;b!J)81tF?c);o$sNwf{6;f5)h#^zT_69DWPJ?`qxLffj$W_n#_u)9`Y(U;$dVIe}cw zEMD0ueiL@)mvFT(ad&dnaB{N$OC(jTo!p(=teu=m**TdxNokc#%xoNgL+E}NQBvZU zb98ezaWu1#lN2I5mEdy%Ln1Tfv~W&T;4JW>kqg8W;dbC;%h`%-?KhQ-wG;Mkjj{R|`pw zf%)p$Z&8DS{?k7Q06N(jo0yu(w5m(soA^3Xs;5|k9?^VKl;i>-!b%2MTj0*t3eG^Ylr~UT=EMDd+pREe-t+m8Ir|e!Q zQ#R~b@XQ+XKz3x z7L-g&vS|4h$lQ=sAO4L7!wWj5y8d$W2zzKmTZ{0vWemJnZ` z3IAnze54#7p(o93(h5E)GtByH#$AX2!u!xMSM^`8|56j<(ka__8~sRlt?lXbEi6ov zL(X5Fo30$e`6k1K%d#4?3XGua9SnO|!m8YVsYEv)iRlgl%7Dyu44pHTDTz!7L_y-2@UC{XNdjZ}f+8%tED)2+p z+5dnOl=urz^`zfXr~b*$_G$AU7>F#Io9K%N%Krg`?3>NOHeCqZnfn7a{qhgpL{ybE z?3KgC{{TX&FQwMTvK{>a;?@G7Q)DeX`9%SQzX8^z9+$cxsuFcK__-jbw5zK>;ke$rQm8iTJdSDWpAO!ay}JK#m5hqlm4es1r&ze;~<#gTuf!>634%4MaoO=?!?*y%n1Am_0){?>z_ zVrkebI8^!v@}E+orjETr=0Bu_!Aj!5udBS>nLlI%;r?+cAdJ+uG;m6mfSJnu+b{qC zRL2HWQ< zR?N0wPAD~grL%|+fV7b}k*Lrb0O&$#D_H;(x0MnhK=+~+&#ZGDz7&A6_!-3-4FBic z_&$d#i;rgwhS>uahj%|k!duD4 z)fF*PH&}DKVTcBwnnau_6n82~CwZhnY4cFtU;$P#@8{V8-41ZXf_)-n~Xb}zw3-?`$cCPGi zmoLekpPFfYD|(qO7D<_?NLKp~0{{T>!S-^y?-h!1pLpuAxgpu1J0&TbO^|Ik((4cs zzP6!H_hbi&QEZ!W?CMyXuiFoRD7UHEB`1xQaK{tMHW|*laPwu^hPE&;rZXwUNqG{* z$m9OQ2>+x>gUPDh@MmiMlkWd21ogT{g@4_rL%={jyO-s*FZ*K-ePg|-du#hny0*u{ zBNR`HV5JA%2%?;GiZ_psYb2pp(67u%vQ`j4O}`B8kL5 z$QairG*#&94)#KiH7+uvF%ywVE!Lc_XK^X(2QPgwJ7}}^fp%5nz%F+W3B$w@J5WI7 z2jPDR96Ze_sAm4SWK|&aLFLSl`5rUPX?Xp@U1gu*JX2-QbaBi-&vP_Db`U+hge0yC ztspf|Z#OwBIA14ve{{H$(U3heKJf79)Y~;vt31HS3Op-5GgdX2rF`; zZdRi^qOc%bI*p7+9AH+t?7%*vy!a-M2M@0aR_mSXv74&Yy7_KPA8B-5k((l$sw;q8 zkank|ACit;ft&_^@T(S?Chc>3(#FR+&u{ggTG@iXf*ca}Id=wnbYI;m)_nvW{n)HR z{@njnOSMa1JwxOg`;cXR%hf(-FJFpf`Nqh7wz_h?(MP(f$N54TwupEiG@G`Vc55d< zS+{3F^VY}Lm%^x5uDo2Yy#4t25mLZC4YXhYdJy6N1q|Ry-lj~i$Cv5>i`>?;0^?=< z(QPYjjxpJoO(@l$>LS7dI1d&NpYz77kQb0`fk3vH0}R@F6NxyFs78fF?b>8IzD9HF z3&my8h1Er5N`^@@Q+won{MwIYqbeBkvD704TGhm@%tAiD;$yrpPGlD{hot(YTGQfO zF!tyi*v4bhW&69s-zOV6aLc70P6a^f1r+h9B%gLFan0h1ms&?4c_MKcktK6I_h&J# z;F(#VDiDqyv#`Zo%}ZV&78{3(#2FNY7bG2Pr;Q#y&XUTa&#i47BsP6V%{!XE!M@{7 zJ-<3G3?Uj%Oq-{UdK9(0-{X$WGu=7w<*z=pmH3WikU$gD^3?E%WP5EcS@GEhNqqYB z5SwP4L^3aiYIOexCs<38;ChPCCtc-8`vq`L*ew5m24gsrUvXpQf6a7E!&*U~f3)@- z=5esTrT4ATG!sfky8+*91=FexQ7I`nu2|kb*|^JJ50yEYeTMCRaou=qY1?EgT2D5y z36FPy4Xp>-w!D~TptwC%y)-}l5#O#lJxddN&b6%Jq)J@kd~xq8^D~StFe$*Ky8XCD z@$N8pU9GdgOZp;uk6@H1$%*#=z9}=M0_*!TU9lwJYSZbdNtF;1nt!?NF)VU*K>KEk7a$#mUi zc%mQkaNR7C@pESC^r7K?%R|Y}H=1}WZ@eOz9Msgf(ABr;6wUa}&%=8nMHB;!B5$V- zM*@&w7374nKKdDW&$q{{E;1x=l^8)g=mE88eh9#gG(R&Sn%yC849VYc^{k0_hQ@F< zR*N;T7|syy8Hahr71=e!HV(9xF1t3)cP`v769qbGe7~}wpR@9yegPc6Z=a$z>t}d)h$*7mIqqtw4yQa|9CW zs^f?|%$`@0uOYChq(gzz%I~Oc(Z{dzU6Y)Qe}=kuHR@Bnk=DJ@KwIEITgWt>jf*g& zj@6}}9-VvvfYrtcBt_e5fXARVB!MTk3HRgnDh6!R#E+qdiIr@tlXlU0I+04!;+3sc zKqa#vt0*&r1OZ}fHs?a#3LA~0o<_Up=1*~qLT1YmyFmkAjuDuJ}g@$zl41MWKcrz_`TP&gvqus=4nL zTXd{fvS~}(NvY!lSLu;j7K7u*8er!7;9$wZ(hkNvwn+lMMo#w8W09mdB_Dqi*E*bj z_eD7rKH_@pRC)%k+&S-3+A9Yp3N}Sbs2;h9+-Ig!8W$84 zVbjw+S&vJO@Azg8!EBK&C_lz^xo256)_6ho#q9>ZHi{v2iUM|;CH=CNFM#DJ z!8MBUVek=J&a&Y`Czjb&l9OZ}VSmdW462Xsb9-6%M&|kFgxVi{45;c0m&ca!R)w?g z657bN7Dr>`T#qQtfQxBSx`HB4Ono7ZG3MZLv zqfO#{RhEv@1;Dz_mV{&?60B3i6~zjfdAgZvtMFs{rV`x_wnAM~Io$OSb<6E<+X(%& zZE`aF`P<>N2Rr?Q;iG$eZ&ki)`n?;jJzr;u!RK{tC}DDBmHwb6QC@Vd%(th9ZwfiD zYo%7CeHEvfKjr^hvh=Qj^je)Svf_26MS*mY%O!L5W*1rjI@j;hU*U+0(^ znv%=eOLo!@QmWL-=8t188iNqf# zY|rGtFsy=K0Pa^ouhyNpLO)7&s%+T&K5Z*WX5%@(+f0{^;3*K5iC0)Y#5dmAO}jI1 z85wltw~^srFbzp6alI9k;4F)4FU>#l8#53#)3_o)=Ek*WT{NlfGYRcO3H>iLr-h`` zeLu>#+IHCW`|R@7g%3U&^Xx$M;G*1qaT?CmE-d)Ru^q2+o8FC*s5 zg^R@qw8b&a!LkE($Ja|yA#t4vg_LROhceE`dC?Ges{b&4GgET5U^<(Y=Ju|T(}hKu z;{CzfZ9d|I2J48YRX8o5INX=r2=Lg=p^xbBeS~@W1e(rpr z6tS1+&-WGQLIgEvv7zQD2m+%GwZ6jORO$>8Z@RnyR&CIXDx?c=^jn$=r8yF_;|z1& zBr#$M(8{{aeW!9-KS6(^dVUrqr_@9{b)gDuIfUo_8A7ybim^~~*4`cIIN6#)&LsA-GZj*s?gOJokA7Cm3gNSS~o;1Yt&EmRX(AzBdOF&yGK8)2v&~m2@q-8_t~K< zeFvV#+Gx{hX3kqKJy=MjhJBKxgVW3PtX3;07k!j0?evu#D&-C6b9iTZ=(m)x4YLGi zx=6on*G<_ca)mc?Wm{DVw^>pGQT9sNVTriAfoanTjmvY%>9TfKQ38eO2j zXdB0{R75bL3@;$TS@5QIu3`%`@7^`)RTQeq;a))FLDxQh>|m94tPz?hh#!}3^8WW6?3T0D z?!slAn-8kBt6IY)NIy!Lhg6{ z)uGHRSoIYJUS7S*Zw~NG6%ZIId4t=12TPB0Ph$@L3uT8dP%bav&k#aF!iqrN&OE}4 zzX>M$PbaLONuaAsGu%P8sQ-Av+kNhC@RPXWQN4UOFEQ<=i6%9nA%w&Am!=C2*JHLx zN88jwak|aFDt9-8e_Y7ltvL315WnSb>)v|E=$7)0xWm3+*wr4ciT6aCSN1pYeTWJ8 z;|U+))#MkzWU@uE)`64lD27r;^Rv8s02xG^3b|=qa`m$c3heq1B|{eCuwP~+Q8V#A zSp*tcj|C0TyXOy|4|$|w{Q@{tH>Kj&0k+nO zXmu5QZOR?b!+N1P!A|y9$=E$S0kqthnbd1DOlz zD4JAVS;muA>f_6-#iZjKqf_O|7Wdzl;78;pF?q~6#(6BSUK%03*`!~2vo16)txJJJz1>o176f4zco-U-XS$uAzH4f<1%4)HtL(( zi2NjN#(aM*e69XL*I~n>ZerzGTIu(IMZ*l}Mip~4zW{7giD)153oKStCdIT-#a;m0 zZk~aL{64hX_NP)>c2`O#H=5qV{SMk@IDmQ)op)l+&&pS3&utG)8lB|{NEca~&DECE zJ-xn~B-qh@YFfp&GldkUCvpg~f*EDFnNdaKmU@~;r~Du$B-!~rqGnR{`pa0I!BYO^ zJNLvQvx}Q@M>^X>2_w9~yBMc4TAwB;%J}J&X`8;g38L)nu2G4jw{GM|*&v^>+bAVHL1sceDjUDUni74x(na)O5d5nojZTi39mXQ5VXu)u z1!N1E+gfB}DR*V{%#Z;WsKwd5DBZ@k?f}Nz_~tjDrhSK7ngJ(*ARx$j`ANCNNH5dn z-H}>brN~k2m?j^YIW(KFKqO5XKZ=}J=8lLSw*H3g{tiRkkywcZl*aVL~%G83~-A(kRYY+467?sO4lLg zkic)$C0vOny70cS!+k}Y4DJG$P<6;HGThcx>qvihAsym! z;+kB$lHji8@`st8RXLE)kIANVC!$z2-h)waON-09HJ4>i|1o$L_oOg*a9BoG+`#!z;fp^pS!-2&?By8&kBi^e9w)wn>up97qVJuWbfo`yrne&O0R131u$U~6?q0;rPJD!yD9IUUgQ(Q zGx99*M$Sr^Z{O&XNEGIQNgJ6b(uQj>Gi$KAP^kDEmHPrv$%vxJ+xWOCOMBz#aU?A) zd&ueUFe#OLM^CgIfA#acI9Sj}P+PV=X17T2NHD2*XRq$UvYFpGVQYT-e74SlvzU_I zy?v%7XfZk=OdrHv=-rOHQcBdKwq%E-K1;3~p2#M(I~0{)gyhsb(Kx!R93JB@50d$K ze{v27njKLH;=?Bvor7OaraT3za53v!lsXe!6c6*OHTbn1x^2rwr-p$SQqlDyMAsdj zu-Qsu8$WGx4IsDqw2E+lxn^tAMdQRwS|O(G!Bna#J!#aY~SLOyL_+d(i8BpU?)G0DBg$3 zP!<7)a-~h##i2yn`dXu2#_dP7UKJyARJ}u7!oCs)F+j z*f)icEmUwqzAXFFbC>c}Jr*MH!?xOhz#;P^@oI=gpBKQeVM%;#aBRGu@_K{ubVIg; z(fRp}tt@%J^0J6^`ndUa7H07v+>BZILElhw+?O z9$I?5W2g!b?Wo9@>t!e$FOvc)TD}_Q4-U6_^jpU9*sj+c{M1%^y$inpI!tTdhk41q zUsNk7QmKDPN2*wwS>*oFb~p&`;ME|LrCP{@{ds1w{_z@zBJI)~2=Lq5{$1kXyRGfJ00VE^9k40>q}vLyQ9NV%E8BD48Je>)deqr*%yGvfEl!|5=Txy&nsu~s)k!E%;8;^ZRR>Z zk~O~sGvs#i$gqr$AAFk}>cEH7+`i?6#PTOVy%>QFLkL|GYqG5sWvaWbV8l}M^?qrz zq!)WCL=0A$&1%tx^Qi|JZ-FIcj#m8nyG237x>6y%kM^IkJ?sPTimXJ1NlxcJFJYDt zrI-&T^aPEo*x6ve02YR$nUO+I6u0#YMtq=7HDsM>s@>0GpNH3|8Y_O;3ypzQDxzc^ zGIJ{779IK=z@r@m%=m0zLO7`d_syGOh78%%K8ww;m}rYC}FFo zJBtSw-*}>Od5ws1G!xVX$naq1M%Sj^{Yi7~c)y{4?B`T<)!hRAKdhcOG7ZMQm`+u?uZd)8mvv+bwu_l_Q-mXS@0YvEdQ`Z%Z zrFopQDJ72#Xmj1Q9iKi|_gk|MNy<{}zW_?(?QWFbnL`F}vM=mO`6zsA*w=3CLK3$4 zf3m77trn~pQx&NPn<_{wSMv~CkwQxmPR-#jr_xO(80;DW?fT5e71KX-*FsguegBDh zLitwiQTdt4O2aFRK^*OQ+w)dkmzQ>Ng$3i=zWBWyG1ToY80XpS#wh%}r}-WmY;;W` z9=k*JelayB(PGT~z?#@D>*V~8ILkh%b$K8uf#)OIR&XIU zo%D$8x)K$psSt`Cjy$n=2Bq8Ohi3x3q(rJu8N-K!+#~IXiItunuCbdaCIR~*pj$R$ znHFNRGMg;vK45gn@#*6ywAem{9_}g$`I@nY^nwA~Rb6JP;-4MBi4YD+1w2A3 zTYN|LalRfniuB0dD?wxD5pV^={&YY0+xU0h0JZm60k}guK==FO0~`5$IU$O5Y_#$&L!-3`nV3W} za5E$29j$yzjH~CYt6D-lU2RQH#6yG&Dov8EL22)ls`2dVrEz)q;nScN@w1>cAKvH4slY&T@W)8Xp1r!y7w!E?je&3_1KlPl^SxEkcFEQfdjD1GChXiQEJT8@v&UO-f|(6!kW z>?bx`{JNVlT2#!=$U{T^Z~$-1U~A2oP^IsY0lW~>ouCoay;!uTJpTTzkoE`R9O>)d z86Iv$JZ`w)kg^85Lkfe5vJ>+$y1|p;HI;-$2G}(nx`*e6;y{yK9 z$IGB`8JMRMO;EJacppSUkFB#ATzX@d(M0J3o~`s~3J9Z8N?11u*V^ zeCFMAbuFw@_#{_@e~fZ<@B)xcAAAz^V@Qtjs%%$7RiJuII)sOJWCzII>N{05smLBJ z=;DqK$KFfBMq*BsG4MN$1fY;3+0&^LdVc(TedxmCzu;uy?$!1li3AlM z8YhuBsNQ7gha(LKr1l!!eY{@MSyf*%u@&YD;rTjF#822G0RT z*=uppx_gy#7Ruux+c)I3k@3rG+a0R5t@Ef)k1fRMOyD_2SeDQcRd5!y~B6@$XQfeAHPW6C~n!uZ(U4= zgrM4Gbu2o&%JRC@)dtltdvKTF+k?Is0kAP^RBjLM%;oRaL0lR_Qp%BOx5-Uf;=?l3 zN+OI!i$N7@8kuOJP|f%ckCekbfXSC0;hQ{1Z#ZSlRrj-Vcjrt>6*lZA0JOQx$kJzh(=xR_`t%0Rf!j&BH($1O_g0gaQpfLykH^@D^Z`G` zC-QO`9EuwOFF2yB@zgIJfz{wMrj62B+~Z?wZ-#JC5j4sn&#fk;CB447$gJ~jRe@ib z8ePw)x_Q{R{3O9u(gWgK_yxetai!e+G(t?3VCvoIz%Vn$MM-^=z^KMM9IhZ6A9QjK zly)DftBBs6cz1CLdUtNYgpNa!C1U<$6nfz*YVwp{zUdi2_lh-&9`!d%@WGEaTm12@ zWDEQvOPXb+t0I@cOgv3DYa*(chmULb2{YL5Z|jbtAI*QbJq)fL9R>8;oou(aMP+2- z($ZUmoHIFJw0c*1#Hg2l9+f%nQ%?DqumeLzW~15^v;JgJxML`Bw#$Ud{mWmD-hnD$ zz31;{ZNLklD>j9$UM3kPKj#N?ZJBHv$Ib^4+w>t+wOHk;$n^RrLO=o!p^u zzFaUVN$=HFk6l%HutMkR{I`@;Ajl_RWJO;9yYJkSeJZ$8cgkeu*EU%bf9i`aIT3;K zN;EXW9F%SO1jE^`4$n$wcVPI&&Fq8kPv%;iXCS)czg@&UC1a1Qxnu0J-(#haQ`k7u zZyHcd>J3z{QHj?HvMs%i5;W6 z#jJG=<475xoEg^>ABOU+MCaylr#)x*Xd)I0;jqbLjikiri7)x5eq zk!7s{1C!eeK_#%wmC{4wsMoIS2+Bzz868}g&kV6$&9FpODN_q1OmFBn-}2t!L1jyy ziRNEG@B%3e49;1_KTI}wmnJOUB}DPTGwB^QldBZj{{4I;auc#z75aoGcl&CM>?;bY zq+1lV;GWo*JWvn^)aHg*|hMKWSO&;?Gnz5K<`0D51HY!=iO7*5K z0f*2T(T#(Wxot#pj1vw5WAYo0i=_CT91+LnI>_VN_!`=r3CRq$VTgK&KEWD_S}=6O z7Wgeyd*7O{7M)hzX-j`OVxv{CU;NnozLS*UA}_9`ULl7=H}C8bxqg|Wd(3EaN2gR( zy9p#Px7 z2TYJrus9~0SFWr06gB*=jv>CjYBO6YfAiOjmCA9HoKEw6r3|72)fb^dRp*DGugclg zeOHRMu)z*SleA6-DM~dHi$_tivpce>c<6qn9FBR)6p9WsK(W@kCEcH$G=o8d4ly{D z{Gmw&OBsPupM#1bBwF;9B(Q4wAP`%6T4%|Cm` z1a?UR~<^9w2rZ+BQs)W*nWXUmE!A&sO%T{DTyAlN@%{{kKnM*sJ>^_ukE^X z&l{lAq+3MqQpQ-NW^|B}g5QNs2!Q@$C;PF#7(4IP9kBLzAwiHDc3gHQwJp2*u^vXg|#~8ra2^5XYe1DI6rBZhIgq z`;+KVn5GTB1h`1r!Cl5YWRcsnD*)&3rQEVy3lRMH`!-| z#PHnX=C<7f-LYt~AJ*sDQiiXpg{8tKsfOcl5x_@*?M_zM^$(ArC^r&*!Ci7X`30i> zRtT^MMuIJiRy|+nIi_)`t}<5fy+;1WEOQul<+Uc#qVxE{JcUTIYgs{Qr#hQD@&|~G z<0UK&6Sv(LULP3yRv=1()v{Z-S#~yaecd!(8=JiL9*@PAZvT zCn$*%92w9dI)klfxSLz!5{{6{>QlRLxpRJ7EAFG_?Pc5M_+>`uw5I(slh&PR zz^!etTiJ}f!?Uh+yX7N#qpuryAUi*jy$%;jkrN69=)v-)rroWEFKD+rQpNm zf?1-AGgE6v#YewD65bo;#jA7)l=1YlG8Tx7n)|Nx0zkxH69s9*H^nJUn0xnREqxjb z^7L3j0=hG3wqfyk(JFdY$G__jvD-YdW|F%V6#X8~RZ_wFWQasJ(^B2R-xCZuQu|2g z^rJfjl=}4PTfzBACClT`X;0wMuCM#ts5gde!UrtQ%Qr%2gd0P3f7?C`QP(!8HD$E2 z+|T7n>^{?kHJ-+N((2y-7>i%QT6l_RLv+cVl!LRAp`K-!vLAk?iZLw$BT}Gq>L_wv zB$Ym5(|;;_C6Psw-QoYytHlpG|=@^C6!YdZomgW=xzcq`A{RHz*! zj@XzD=s&Og&lLHGNL+JS@~`~`G9h+{+LgP62L+et>bs;KpPm6_o#T6E+s-3sdHgXQ zktl;v?*eqp<$NhCn+aMZT`%MK4rR6VND#&9Kf(VbX()@{uSb;%TgE<$DX?ttH;iZ# z(3lj)4{c+%HgR;9v3)pFM1Y|>sQ9)eJ-5-+9uFqwe=-5S7eq;C@-fOe`|LxL<6IbH6s=6LNgE5d^(D9oi~Lc{)f0SWO@4_T}HyTpWiBW@c+%OS%nD_tx& zac<&xUUVMfGI#PVif9o|iadeomaN6%+58`Swa-I3cv)&#_J&VDdWIGX8obdbp$jSZ zbJ-CPOD6UE*@FWEEJ*Pv$^Bjo^l&NxPC-3NTPw8*Es^ws;nRD>S7ka45uSW>F~Lg_ zhVc~}5G{#~0#_uJSq2ObO?zj1lFn<2ENepHBx-Jl1SQ@4oql1i_XBudg4JUD%Y#LF zz~un`!J;TaDU${@^nOM0E?IZaDW8P-BQM-X4+&;$_KKJUhY8!Pa4Y=I6iKqd)I_y| zykqolIID?9H!Ql4>n8KoLpyQqsocvCLp(taqKe4gXS%#I`0*sgS}R|ZVanh>FKTID zlZbAZ2$>(#>i>|{%Jg7^lXGkKh<&2d0kc(n+0{xsQYrFI$mfIa`Src5uHm+)v&%?b z5Kte$y8n68d& z-{BY>!FJnLZZ@M>ENd5yOiFI@9sG~d3?SleX5@jk9n?!{53(v_H%TdcIWObHO4Mt3~(yJh{pmA6rWau(8AFr?p(A!#!;q znQ=_PkVQi=6Bs4mc&YqNd3vPzv*J7Nx&$3TnN22Jbs+w#y;E(>m27Wcqh%_eBG>4f zjAt>0{!FAcZ8Kd=>h?o9`liYFjsZ1uW2$pAMJK(jL{M$bN0sds;o|S3QVLJ5&zi4a z?Ub}#MuQ1nU!BK+t&ZXP>1t|T0AXOF)fg^a+0ul@_TIN@MZGQF(%@&yxaRxf0~bU@ zF%0ZZ$D8?^Ahvm2=Y%B(>HWj*wVc3@_ZQFaVum!}_Hz<-en#9(GuNB=1GCfdZ`)3F%K5$*e6-K{XbNPd+)c3+h>R zPwn{MejfAMJcnpuaqQji$ctdpw|9+>KKC6EoPe0X0n5eIiH=fdD;t|!A;`~(3wT1C zxtgb1>Yqk>5k)fbrH)wU2<~NkaE+>3b}D<0F)wY3AKb2A0M=m4<8j|QS>`+94xGNc zw>P$Ke8N?H%*J%g@;h|=r-7z0cjZ1hlhqxV3rmch)!ccFZ&=D7pQ2Pi8+iuiWG%2z z(UNh^Gez88=9Cv%J`eK|W8w)-CRBwk1t=q)@9A5D8l^x}&pFRU|bSL92H>p{LP9H#HG zuoh32T$vMhO7R5W6)6mu4=e&73o{IdJR{HbN)#Oy@EMt^7(Zx&uyTCWCsf*VsD`le z{Flnu_ql&XcVR11vSTRc7v}gDKH`V-<;?Vhmsg4qnL>=>6=267$fN#Qx^UovKUzwzPF=Y4FOAsgqhF!O*1_vzN4N zw)Uu}hcGJ&l`dsnF-nJA9E_QJ(jq-dvs#))C+jkZi)yDJitYZbF!EiDcK{oNyp5%P zg4xkJ7h@?5>eh<5qa7YSwPfHieS|kE`o?3{y%}6k;1O>Mc4aDeYr~eXa9@LE^RH-T z_A~@@%JMxq;XAooP7UWJfzs8>o~J9E=k*YJGUXn?;TEHg%uL8wxNERFD7vWWTH?%3@?qSyQ-;f<0kff zOBF>t;7%e~%y#TOBQg#xyG)(4jDnDu8Fc9%=7I9%HIPoTVX^97Nca>WLab1cx zfLN0qFwyYxeushu*`JAQhC12Nr~B}5vmgDPTOXTfkmjRYcba&fc1H-b@|KrtzK<*h zB_t$Qg$;Pme1kEdp36$5$gamsLsS56=vNi_YbH50FI1)=agJTE{esy!6W1sPd)~>b zFopeC(4iQ1_>P?%{WYq1ChL>@ko*w|Qj0DQHTSQN?@Y&h-z3iTFc;C(%@4{SRwiaAbcgr-!wlbnsDKM|7&cUPG~29h-nB*YbUtOPGCe}>Y4e^ zuf3okM95wM?P@3*{a1N4%V|?&Uyz{pluEjM8tE?| z2=Sz5S!+aB=Mbliw}7Cwz~5}RjGmzPbxkZXMF}P`A5H7f_IaDxO!O0D_%6O>^+|2mzsnyVwS0Ttk-X+NXZ5&e`M{IT~d2Hz2WdGuUzkk z(dWtz%iiKJ*YGjFLl0wZUJ5^*Cm1YVKk_TD@%s3I8a(#X`Z+Lqm`nip0!SfQ2v5_~ zI=s=T4HEApS7pmEbhHH2D7{mqozqxpxa{;g*23fUVApN96S;lw@vAZ{*hn2SeD z&_tk>bqjfSR;g}@77rs1N4(HI=WM(mX%b!Zx3PlAt|PX7I?gNio2;lNBv>depA%yX zW#WC3rPd$D8W$WNy2mckYJ8e^jw@_W{N8gY*v%);?pMLlIDdXO5pm0-V^%=FSs zvxTAKL80~8>8G6RLQ(+DBg4w5wTek;xGv)86AU`O(&t6kv1i+!A9jM}SkoSFEBWpz z!7{}|RHv6O0QRf(PhX{QOiJ$Uu49ZY;yQJgJO%hCzAPd>P>@(o(wt+M@et*&wURvJ z1@ggBXM~(yqc29`zpedsIo9c$LGvM@rBMlf)6y07v-cb0JMb=o$DMcF!iSy_2<^*# zZb_-71E~_`wNsK=PZo?eC?Bqla63x14!JL!R%Pf|@=7CL2_f}!i=5xfv`j-pi65}} zXw5^q&%3u2%6`Xk{ff;AbigE=NNtjb3jX;5Ku_KrgO!*1r4B#&6v~H{SvtI^Oj0s{ zjOxzI=B0-3VL1!bgKyS}1#mJ}YTLdK5gWYhX7svdFTSb_rxm1c918}uQ=H03bZQ5p zt}%f=^_*x_)*%dX*jHz7tlFH5s*sYCUME?K zo$r#?@1KW8a@{A*U;hEbUW#pgNQ{LypW%H7sm-GkWjbxd74sq}0{bf$z576?RL9>3 zL2dGV63NPLn7+Jwd^fCp*6*A(Gf`jJ=T&Z_9-`Yst_kAfjS1U|9YenKjO^`D&2hPu*0o6a=Y@vInh*8orrJ+J0<}^- zr-xI0yC?Q0?|Y6~_s79)M`+8ZmWG3et4|*U&|IIw5U<@xjENg=H`4kZU@7fa>wvtL z29fUu3>F77zh!?lj3101)D)F`AE3iR`ZfwcusWud0i!BzbXRJ(GtozdZw2!xviayV zb>!sz2n@AuCK^rjf@okY-u`|i;r7-3%Ueedw$+w<&!ug!7wCJ`bA+o`a+AKp0@__A z4@hmLwxKMwndKWEUJe=23xG39233R;c|^*-a`IY4b|sMtGLu~add7;pG*8kaFfOtf z;9>`y7GH%WZzgF})!KCES26swXSjv{^2NaITxAT&x8KS|g|fi0wpk5aPuH9+zW$X_ zOE2(6FwbD2qQ)*WKhG`h=|iux=-f}y3Cq}aF*S^@Kasg6OlH_nU7@md2uKPn-XtdR z2D15VwyyElE|;TLZm{V0PH|BzNk5hfFC}kq3oW0zHB4g={Ax+rGO#erkRTvCCn!_P zh%9Q9Kw*~HA*C-Nj8jBOqgR`=(2z6!U+sN&SX0Zoeh3LIfFX23Z_=A|q!T(wFQK;x z2uKqU5JIm?5kgZ5AV`(ods9G>CP)`V5D*X)sfsu5d-mREpS#cb{qDK@{&y$yteNkd zcg?f%t#7SoGV{$F%0&i0NPE`AI-y?67YianR`yqbeNN#j35Rf$e4fP)-6a~8F7!^y z7S4(%Ie@hnAe4yeb(%~_trv~p=BusX5`sr}aiM=QRbQ^7oKPG@&+7Us(Hb{TEW^Up z^gD_LIffrMT8LHDX3ZLcpMgC-+3KtbO|HNr$Pmjy?s;?zoukq8~orCU+0OPb!qr4?q6|jv$B5ngv&*bIvm&qOp1K*5# zYVE^{H0tKznw_3b$vm^r-~(ALpv1) zYEezBIJbFiN%dT`X!^Q}DC7BwBU4Ox{5|!1k2a%=va&B5sdH9Fp#v0NX2eRqVS9N0 zK-X{fo{;hKr>L#<)|ozpBX97nC-G6H1&3=rGoyW1lS|&He(=KmdOzq^EK8-PUYG_7 z0JL6Lf7YnEAjMRVGw7D6P z?L!j-scDlO%raoy9-OBGWYK)%!qJPxjeF`vxe+6x9?O4eY%&(r+~6r*Re5rcI@~(} z5P)76A#%F43lG?gn?1HLd#G&GQAGMh_%Wx5weHMNG2hB9_Dm-lWK%gIKYfLt$AD%U?kLkAi_+y`Zdak{v4LofrewlJs_Tkemmt+<(aq<)|p|m%UzUA#zx~>dYx8EIl zl5ecXeN2^lZUw>0&oHjfDK&ic^(B3acn1RpB3dT)=1!i`1W{+?l?#*5U4tD*5~zjv*d&x-uAHLhBdN zlLXdiFKr?ncQz@Y;s}-;vwXHiw#EX(?XlXsLo?+?xkzAXCPwM7SP>fQ zd91%DMJv4i1E32Qfj@QS9M{6$SLTk?1LYEn!~XkX8oV4(cm>?>WNtekaKrPJ4y2lG zFN{6$HbK@iMYmG*0)}XJihr-T>8d3>Ry_a}$TRmjr4>H-0RSXgpD0n~y*n7_rZ<=; zi)cx}g$v)}WxFiZKtBr<%xfC0+R4%?XA*8GeDVswi(n0X#Zz zL#EXQR7~|D=$)jl53yjt_=oHUNdiJpclS0_G1BB43_Iij4ypJ$ZLe1YJmqk(iSV%{ zV7SPoz=bAzQ=^MKa*^-CnTk$mDcl7hb`(~g{Gd6SCCae)H$KCbPG2SM#2K3Eq%xB@ z%-yJ-G9Q3#c`T^-!G~gGF0|RS{bm z0~Y}SUon#hYVPB_f*p|=$7+cZR4<(_`E)pDwIDgVdQOtG2K~A4T1LFTr%YUve$`iD zVNhrLOzPo!LWY%W+T1O`8FKX5#h@aEF4+J%Px>1?D@%0$q(*@Xi{t4^9;TmxSl~?(>TMwWNS9Ul2En6)p9dRiywjMA%$M}AT>|J0Lh@bT)Rj;|sP0@<)A3=N`#owDx+VMU%*IFtm=+ zpu9yokt9Zxkb82_8(^v~?fz8vr*Wlxe2fv+gFEoNXHDEW?BKY48?__)g5o)c`ETyw834x~n&q06lY z?Hu0(3LulL;=|+u1dr+)Zt4VD zI(>d2N!SpLXCiaP-5cU*l7gxy*J%(-%vp(jIvY#+X3F?}4mmfrkUeH1NfRzZazsWk zVnXoIkm#J?*hFaiX$gqdEHc&dK20&I^6iAf_G(!{;MHEmd4MaBc4y!u<}DP2b+He` z=qD4HCyOkU!_6Dj;Is18Tb+pK5}rC%ag^CIX3k|csh;L08hcc+5dFqhyY~Y_y;dx~ z!^=x}VXoIR#_p{6j8#}58)kby-3V`PE(wZWj;-&aFnz(;af}+P3O6s>8_h>vRBJ5dDKvh!O=*|BbK|U&CBWlshUYL)pFyF4pVUqzr2?rMJuxOW)^8dv`9DZq&YKgC}XF(_S$6R7oz0o8FxPBbwq?oR`NxG&4_ zD+X5*gK$bTF$j%E2Oz=$K#{}%C^07h;QAW~rUXC(a9wf203dq+2&Tjd(8P7i2?gL` ze*^tp<>w_S{VxB0Nx$p<0Qjj6{`v*ES)_y68y#FBnDsbWgssHSAvG*(D|F;C< zyZ~ndoP}`dX9Z`5|B~>28VRV3GZ+YG_*9$^YW-Ko0j1*ov?5HCGnEKuCjbtQGxI;B zNG%XR8Gu#>q~gp;48kFS#Qy;KGZByV&$Ry|-QTDvaYF|vZt2o0DF)twm0tQ@7N6XC zG*htPNA+~iMmCbYs}VSlU!f#KsPYBEbc#rv);YLf>@=sWlT2RK$p(7+?-Z=l;@e-m zeoQl&Zn2!EWGsH@SZ~m)XWQf~+gjV@QhBXHOBp-P?~7zLcE5Fb-@t998h})CQ38>f zbx%i$_AEI-r?M%InCM$ec@ooY)s;o?*ey-lOiim7e0MVp$)NAeVI zmotfyG9QsECDw@2Xdv|E0|=?U^@Q0RQl;HiwklmXauFb1$#@l#@yc<)iXv6xvl02> zLgg_(X4o(JGsF{c{)y;!0tV6=4KGzv;`5fK(gHco(Q%3l@K$rJLzxn%W1;FWUs}XdN+mw?-xl)RQ6}XQU~R< z9h#Vr6;qq}Cp^TqeoB$zsUvgtG4od2ZnsjWlcM6)f=dFlS&`9JTt!CZ46>}Eng*q{ zJ6L3fv)UZHS9PfDtsZO_%zbUoLihYow6S)Ay5K$mX zOasl2GCkyLs(n=G?O}HQ;j!D>-Hex?3@G1qFIczkR@41RkS0Ta&w9Qz1G6j_K0mDj zGfPeqgvCr9Qm4yj#J|NJhvyz$6=GD?=D23?{jrq&J|3sEel|~Hbxdd?X8J3*LCAda zOu->8B9@wT-GB0m|i6K@nWcys8$+|s*9Z`Wx{2s6mCau)t`X4M?5HmM;#dD zl+e{iZFh%3sVHJ#xI6O)0P36^$qrEF%{t~mz2bqyM&EsJ5HG@R?ks}m!WshL%L$l) zd{R@2R!NhBK@ON3HQ!5Qp1Q@09U<`Qr(@j_q{|qulF{b?x?~)i=nB2R6AuL6%8Q8K z3P1t{11wR~`b2Dwv5JVS^hlL+BAH95G@>B=0s$aDi0()-M7GFqC4JUUL-aKRsbX9- zR6tM&dHg}|t_ExWW^KxnK5?<7^L!d0&KSW!pt8Xz`+RGwu69IBv{uovgGx`EQEiUH z-I~eB%y!^VT^ZVprDBZVL+BdOxiYp7#^#in`45SF47|?~-JjrIX}cU!XfrlWFZ1vn zJwYjBL_f34KHjP}XV598FwF9(5|9UwOetnxHqkfx^pgDMIs`-asLV0BVE^;kPLF){ zbr*qJBy|l>NtPji&`p(n25M8FVZJEK0_n)#VAXME-4A57;hQc9s$2bvXd;Dk{01y)B1DYjFM|J7AcZI*8}K1!e{wQ7?1$(6Yia!L`K}YIfIfP(8A$8@E=>lR^PKQABo}tF%R? z^E>c9IYV|AKNHD~a@I{R4Re--7(5?$P#WZLZn9%B>rKFOV-j#DlT4QA=2s^HsTq`h zSB$b;C_Gh2aRI(AV&@))TU%00TX*F(>O4_&t6s^yApYwQc_wXsM`w(xNFH|OBw;zn z(;V^)4+U4wQ+e|9PhEeWw;z6+$Au7lD=mDgy?898_*%F8T(dcgzkM^xQY24Q%v;Qt z$!SSM26iEcKg3QP8 z`!oJF_n{&_Ys~lDjLpp~egNv$3(dtAGgs~kn?xEL0P8GRAyJ7;DiuQ+PJ$YZ@p^ggs&`Ds@oYYZo( z?pf|T6q99o-&C=eKz*fR2DLB{Gqm4w$gx!5FuTK1_HK`o>bAGEk-y}9Tcu}#JR?$) zHV+eAKy?q)LRkr{1Wxq?b!qj(BC8KkG!Rl&w@E6fX;iw9{%7nK+?AYF%wnELs@M6g z=Jz+|ln&lzc#NPDFo8qVh^kp+c&Nr}+B9j@)G6?INDsV&w;ufcNTyZc!!=?$1>TG!HTtG+-PYlHmV@aTQJ^W@vba1 z4fgzSvt4melb?MyO@mmWEtg9dFztLjd5B>?5WxPOE(Yvhlv*tJ`s%CMXu{#bC%G?7 z0QKNC9WOEhEESN8hf$?1!etlWg9X7=_=z$?5@Rf(sgG0 zO{`XhY)?vcM)M)7kmTkA8qFx8b=A$A6;m8%IyVRoT*^yxeA5~q?&9%^(WlWj6qz7M zdjha1Bk6rRWm@b$n$5lVQzF&XE$%Cr?MSS&OS^V)d~A6cYDTThV#}I5i_L(`b7qEC zD}+paw@6Sqh@PsJx-3C$fi0QBLKkhV1T0K<&GNz$)vXEi!tqR8RrQGCaYOikkG<&< z1!=*Ja--RUtPH#UUk;yLb)86}^KPoI49Ek33M82ZX;u{uPb_5Qiw6&d%;4Gm$zV{> zBK=(tU`JnkLX3qb`$yWXo==e4HH^pBeT)i5=vkD;QjuLawlD`7^lsN|pS1a{Z+5iy zs37xXek+}(zw_!SQ%VuNH(Ht;PbUc;t%;e$N(7JqN)G)wK9vfsAyg_ldpS8VFGrk< zhjS46E%$PLxd*LEnC=w5)l_x_=T9#>@({=LGtt%~|d^~TvpBN0qd{Z85eH7BtvlMMjo z9px9^b@*D#lUq5YV2|+%s`hx=(%HFe38_%F4mia@Kl#|_fcJha_#Um8Nw3Dtq$1pq zX7Enb-A2tsU;-r_6l$Yl`%EsTj6-uSOXU|1z+j8P5t^wgDO02#jSpS-vOI zk5Aoi230505#G^us7@70?5w2Dqg!Fjz;u_6J0YywPEKPJ7CT@1DzlGVg`|NOWr#>c zqus}CwEJ&sM)Iu#ft)1o+ljTRaxJH;fA#LNDgc8Se{ zov*kb1`-OTZi^LOF|Ij&ee>M)YV+P4>KE;3~JX`cw9m15N( zEy?S>URTIM-~!y|^zL=X>~Tigsc34mD1lx=?)RE%R-oJ5eZ?iozEJs-ek_ty(!cSP zE<=c97EI$|8kiIrf(C@`e16K`fm$dSiHZ63%7Z@Gi)f?$%{WYYzc63jG8?idZJrPU zlr9Up+vJz0;zc%4G2e|}igG0EF(wbZLFK=$5itM=w9N)52@TH=-lQT;Wet}h z6-%6Jp+cJM8JR)`j3DU37)%t=}ivFP%-lKBsM^GC^W}b()^M2&5rO$AALY6HS@jiqs@t+8d-^ zP$|j@Fhoe(TeP^wl6jDf@epjms04#r=)4^*YKv4}0OeSr`wxVdSB;>hni*fXK}Jd+hNqF42Kl}?A^tNDtTWX^Jz3!N%R?%cU`CNy?nSdrl9+XKIR)2Qux?dIF4 z6Ma>7t)cVQ&26w6T%?j`4KVmB=D?fzeX zfc4xat?`){3%?y5^jeNJJ{GEsPSXdFjSCEzownnn)W@W3_$%E`Q2DWc^}#%SIQ27> zyN1GK+~bMEH#K)jjzO&@#=33xAHg&NTV(TkIvA9?e27Tbdn{9c{g*EiTquVDMlJa;fBlwQD zoNKij#Vn5mL!nB+B-s=KjrY%@!Z1~JD_nys@m6;}^B_OkRmLooeo!$;A8Czn3*$FT zO_aPe<+WOC8v8h=fm9{20MWD7{#dFhpbOd1L&l`kKgOg$svPk5%w@<+Vr@5BP1@%Y(~k%V6~US{c#>vpq&k+z6w(`G)VYdgftPqQK4o`L zB3}kY1ml|&rzb~mjEz7oMO|74xn6{oYptx`tSq6A(rsrgx?cz!BJ~%w-S*$qn2kHT zmO^X5PL`aAkO>?%KC#I`LAm*RRqQm%N;&y5Dvq;|%z`evD{OYYC|X7fGxaJmsMOJY z5#U2z-S18d17+5tGgCpl-k*#~fI;m%hQ%$Cw><0Qb|9DF!^|#H#$7B*k}Mi}I^^A) zirEs4N1^PAJID8z6dnsnS|X%4cs=7>hS$9tGvYSn>)lS~*D3l834ttFAoy;=0w;*fOgNXs^K ztT|GfOqa>pVlK6~Tm-|%T6R%W z!d{R*cJo|F#+`&mw<`7M(iVc=aR@-@dlsgA7pa~n%Q|o}vVRQ{nVT^*s%?M|<>^mQ zep66-DKOFcyPrVFdoNd4XQM9@JWc(MspK3KriTuO&*7T!9EaNcE_t115F*@w&f11} zr~(x|3^6z~AUb5rGi*jxLU z)KSjthnUdBPJ<>kCXXURG*`Ni$mBvy;z;>O|3aXvAyb1??}IzaRXW70q&*O^UY}QV z+<0w3GfJl1@g;`2!M%5QY8`Hb_9n3dnGpX7i*=()VpYV;<9Y{tE7YwGl_4#=)T)@C z;-|IaUrz~^wE0|Ohije1&DtOBzl}63%t(`00czG+b7__kD;xW$jOd+!7RXz(?yrC}m?iK`<9QWX53ozd37<1L>!E)U0pnR4-QFX9`Pj-v|I$*-*h3TxI zj{{&*u%m>1cET{jCw}pjQ3F^>u+pdQ<+q4HtceM>BYnhAore{?23stspr=Ae)|J# zF@k1Y0Pt89${1wlNRCBYjAW`4h^Nzg6;^+1{cQ~!H|e^8S>o6Q<2c_kCPPc^uZ!pN zK0ejEJmRKcto1qf+FzvP5p21&c>bvM)_~%pWt5QN7z^Ps?GM0M^yF3Uv{msG;>SUH z9DQ!gl$!gw8h??Js1Xp*zj|?*MoI`DT8MM|gAP z64K*D^q_t1`VWAk*pn~2n@=}!0Yaf+SGzy6dkJUBH3M;hxaQby5w0q53ccuAWnB6vx z=<3PK3A-zZ&{66y;^zN5Rj8Fl*R?ATLm-tYm#X$PhfmJs8KHp;C*eoz?N7cmSGk6s zDXv^-ohoL{G$`C**$?OZmjB`-l0_lqL@_<=+WOb3OZgh#ScVlZe?FUu8!NiF^gjRo z>75&@A0~bP2tQvN{?^s78~FSn><**y^ra0P#~mi*!VW2BDRVLQa2Vw=bCC#~iGSYk v;q%E4z^t<*$=6~$Cq)JE@244}n>b#{KYsRh9vy$9%e=gV3+1cr{xSC-#mT%+k?he7-U4jOJyF=rRI|L2x8YH-D@WvsyC&4{9!6mppa?U;Xo-;G| zzM1#tec$_I*6y!&E&J8lRjaBuwKw%V|GW;sf9+{)0RYI!F#zBJ|DfkX0EU#CnXMN9 z0s#FYRt5l`*P%G9TwNUnSXu2|SWL_vOo1$B4j@)f6Gv8d7B*IZkf^7liJ2|XmE06) zX>Bh|dD7NJNp5W}OsU1K$foEh3AD17^>zlTc`K=#dE1)tn^TI4kPCSVc!C^3KvxrT zPmrCxi-4yvQK_$;!^p&;JX9gM<0Sg4xB(-qpmD+1`cf4+JToi%JZq8=F z7jvp#&W-|-&Oj4a2WNE$2fII7QrXJE)xpKe!I7MUi-n8)m7 zF0Ll_W$LKyztl2N3yhS1n-u&tqZxr+9z!HUHVtE)|X&dfA#I3`uY#iO9K5W{ylqNn7`*g(EcUqonNy1`4~X^Th0Q^yI)2T1QY-V z8VVK>1ppur1ORx$0D!k|002|g=Ow^<0Oa2Z>ZJq){qhY34Fmm)U|?Z>BUo5CICwZX zSOf$_L<9unzY+u#6ch|J3<4}H0tylW5(*mX3!$O?X7slc^6%VV{r=89_W&^9A>KnF zLqT8wATc1IFd&}$0M{>503;N|3;lh1fP;UD2nrGc;ZL%^DbWEC(2$S-NCapA49qVX z%*#c<0w6HqxOvdUj4`mVad3Ib*_1iD**UrJ90THWsbA`XfP{vGfkl8tf`&tQX(mW0 z3}^s5CJY6ZxC#e0EV_wPU;<@ct%Ng`OT84=WjuY`DVS;+{$Xf4UX$Q zlSy1|FL{nE#0O_sF`jUM>Ry3i{;(2>}iDB7^{7P@J-hqpO&Fd%@2m7gMff zGd^?d{=EKz^1KLmX@-|pfWmmOEM5B@ zLSCmzJ?Rj@T@qIUshC>QG@S=<9u868@5?eR;X+5s>Ssns1&8yNh)F_v+m7n61`A$aM{{;Yq&rn}ucLkiUYmpZ}#|d_G!&a(4 z%iBE+<)}N&HBAn4y86B+N3wr)9UWU@^2O|Am^vsQpt~7sHPQB4FtDMYGO#^cELmhj zpha_~B;L@SU)=tSFko+bMbLVuN4R8^%!va8IN_(W*b9VEFSb!sY6Yo6*~R{a@BgU& z_bu?q+dW50%LgC`#RmX@X#r3_j!>zgnEC)v#=s0oI~%e85CSfbH*wu4LMmiJIaM~` zjOnw^XJ%sd4A5Isdj>J;Bvpk_3d2!-t&IV66VfCE>@=8SzNBJ4wGRUM6f~UrPKBkC zB}4xJZlimpf&K?OK{rWEn`90oG`pyJoyN$|ng(6z9Z%1k^;u~m_XBG3#?buMD2L|c zJmHk450P_eYH2T*wAa^<5I;OI1N+FRDXqKzfC4}-S`U@}!Er`hgdxE1qxEL-=W{bV zVWo#2?vKks;>sS%%R59t+YKE?PdL^|kt?oEWy2PRN3n^$-}lXta&;Xvcc<~Bq2!>f z`2*@tXHmt#P;=7a_9IlLTi%_%o!EfgFD|;SGM{tdq)bR*>34iGsk#ZL>iMbq7BYJ6 zyn^wEm?%0K(r1Vr|Ag{SicnnrBL777|BDzc3H#Z0)xEYOtMy3!+n1mP2-(4U~xaA|YB-IM~ zOvGsnOupEB2?>HSu@)|sDLa-r0Acz_-bx!Pnn_$ULUuZNt3zh5lH)Db)>e!OH7Oj2 zgY0QF`Csaq!R@Y;3Q`EebRGD398;@<5Pck887C{%x>i<{%d;yY0elqw7*a}|PsW({ z5+(quidh^n%Zn>MkOBk26#jzDQp{P}x{@Kn9UlJ2uS=)~!2Li+Gae-P~c zZOm{R0}vb&axIJl*Iyd&#rv;x zq6GgB0YtWUz;7Isw%Aab8;oCtxR9hf+gLqy8mi;1P;l2Abu_j=9FuQH zFIgCO;86ORLHIMZ&1G2SmxZz%P%oTVqO49r8|oVpyQ088H~D7L0zBANsJt|e*}DQ? zwCRz#j_CapNJsFe$pxKzFB3%5 zu@*L;Ap9E1&U1ZU<&0+*-5Rb=eg}((;kJ_kca|T@7c_EE^`)Fr2Rj+4gst17GW2Sp zut*M#v^?=l<=t`0b~YBoo&o2x0hbM7!1=b9de*HqEbA7Xa2Yt21g%<_QD$G6KV_L7 zvPY7`3gAQInwQXy7TxM^Onx^W_1`vq28@{2KdIrQCNYsRA=NEM_969KMILf}mZoyh zn|+LYxtb$1Hn#+aG?InwPGpv$Txr=edcS@x}S{T+rCnSZ2&Gs^oBf9A*lr~^KgnOm{gR<8+%qY0yNbib)Ucym@ z!MtTcCWV%AOD>7o$zm+1#7dodZ0IBEC}l9Y}5?G!jVgOi{n$6KLHHNH@{ z5|ppMS3j3ftnhw!B~=Mc=psz?yrRnI=iY11z1QqRb-GToStkA^D&LnxtI|$}zW1w*eOFM_j$u+ zV^W#e2XKm5L(vB!r<5(S0g-SnAL=UvL~@FofQX3z&1z$6aSf^gfxTqiC^iCE^do6t8IV z5S!|eOA$WJUu)R3>)fc8Hd!T{zT@aq64@WbYOXaOe>Z|s)P$W?;@2Wk5#cLiIy(?! zHnZv9a(Ke_{;ax>nfD-wMnp48ESQ2)MfZ?)`$~#6gpT})eS~c%Li?}@VH>HQ!d;$O z*QM9$EBMv0!fk{A)B&jp>sV| z%j*y1?^(csB_(pz?$|9J%^dDX0*~+IkWd3S%&sA8Fwj43S_};l%}zT{E!O6~u@(+= z6BIBR`RqkqZs5Vfh^2{mX7o|QcFW>!+v0?ywLfElW28$f=4rRSy$5Tc4Q^b+fo{^g zk;}e(&S0bgFl9y9S8o-+9J5u9Vb*c^ax$eZ#Pf6=;y=UbX(t|jksaa@{&>Dz2Y^} zq%V0ykHR8K+*Qop^5QTRXsqhrv~M0wg8xEZ#!0KFZkIIuh%89n+%#$&@?zhsYAw@>1pr(vm@1AItl-gx*^)qHTg!sh$q^oif$Qs#us zf5$P--#+_z+i_oS@4#R2-*lXCeey47^m}{;AZFb+Ro!1d@ZS1J#~mCYihimnV$dzn z*q{FFgzT0TaS)@kSf<#p;WSHX1{#b%uGd|?I`o(yVh6Jr>=cpK^5T(7T3vv^SS9%H zJ}RIw2n8a`@C|+a3>$gGDLaD^1xSN*OwAGl}hC z;CMF)P1WdKRf%J6AU$HbLT*ivJn8||lY8$SO6|F(Ecj}=jwH-5&PX_9c*3fB$|I5 z8dnyCYJ~BPiM8pR*}ps4$ZmrdRn|Fz8qHkL_z{TYm+Wt(1uL@$D@X|@uj`$S&Pexz zL~LWNZO@yo*NHK!F+9$V(orx1YKHnYibO~?ELQH=*~qiL>*-yhlcnM|@JFjTQQKJs z>KIae$QkV5f66t&KazRUom)aT_&BGElvI~E;mhdPJ&*#b!B#0Sh}lL68*7wC@;F3- z&SVO5j`jPB5EI9{m`gXDC0~uj;L*6t$ud6Q1N>5c>6os@6p!4e1-c@SFgtwt`3boM z>mZOG^6}mWZansH>=5Z^m+aG5$q3jydLXJ!t6n|&yy}Xx%Cn!Zw*fe zRtneir)x^*zIz5JA4x2x`L*4YRFw=Hh*uA^cW~S@OmD?a#vL5s9MtYF(z>t2O0srd zl*H)CW)V+S*BmM>)NqW4&YF%L+27bV^>!4QsMnd3GKg1?*H~#w_8purA5D$exZav? zuj^T3K~!i?a)Soqn-lF)b!H<{4sI7OTsmSsm-TI)+%ldBn-T;B+8nvHmsjU%WKC?< zA|Go=!i)i*N#|?d0B!Z6+DNDjgA^K>)beTMCGxKNBe@K&NCJmu?kVJ_^GOQ5&2aUk z?%zaiUu@e5)twjN#VlDaT70%*1^U3~$%dg)XRe25aWizwYcwRcUiwWKHav7L)Cl!f zH{YjJl-X3M(FhBuGg{+wpTWWhr+2Ojo(?B}G_~B5xx9k!NNyQ=YL7eE*Lxz;>Ds`0 zGAwMke+Gm~yqo`Z4wHZPRB=4}Gsxw?<5;Qkez&;lsPx}+IL$pO|8@fj`TGqdOvrB> z)L%GANLW!wT)f{ke=0*jyvUycYkDnhU6|>ntyUi-_Xs5@p7ae3L8kVXR_!Y+cY&{u zF5H~X7Yyv9czs%xY#BP^ahgku1Zu6Fz!6eO`p)0e?wYOXZbc)S5*a;NEYe7yj?2fZ zJ5oPs^1f;s7apd$V-}9L;)d8kF&Y>A-qp1*7%EMe5<>7+rT^;tIb~uEY4cK~FMe%p zk*VdJ%cWd@M~gAw6|5wY|98<|I~kaE5Z7cDdtXpt4qNxTo+n0Fho=!%{;-nBXin|p zgyrTDdNX!k@=of8j=-v8%Ae@%bPd-qKYD(91wHGwWYN2FT&o-0CC@!9&$bO@F zILeen&jY5AAdzQK56K-Ri)8T6Sdy){NK5+~r^4Mouy}Nl>6#Ml@4-s8Sk3G(?E^mD zbGbWnd`x7Uixz$yuyFKO6?OFG?$IvLWUdpYJD|SKTr1}BFBff^U(Soxlq-or_gYX# zX2M|osx4ut+ES}hwlwKDr3YIN{`76J5+X!sJ2~lnOIy>{n1ZAS1nC}?0Mu9UUQkTW zXh*;J400j2u-FvlwUio%^vWXVXE%uBIBDpmIDQQTV#K&5w*(PJ#TkIx3vxkqeoSA%jjgUR;5{_{`1{>3ZL z0JGcErH}?zNG_`o>LQ!Y=-0OGx{dSUFnUAbJIa2E+0eHKAt4T4n4_Ofn^n^GyGIbm=1>1ffB4lBIie`TN($;dVL39ntg;%uv0f2|ft$ccc5sI~b*y z&2xQ1l;tSerZjX3?vHu~w2(Et0X+kJp8+Vf%qc(54_U*7Hj|xEaYW3f!ZnXeWI8|| z2!sLl1%2pFOiisj&B@k2W#LSCrOJrNETdp~+EBVVAIFZw(L|^zrH_nxlRw<3P=nab z{KZ~R%TIJbJSktYb=OH3wtdVHT`y_>J|vVWIzzT(Xa5Y)?y6~yL@3f&F;?W|+2t)6 zHEg|D-woREp^l%anvzrbX~SnGRfg@ZxmGVHOtR9IoWq0q6Q`V}b(twaXHU7k;g%ZM zhstMvgw3I|DwD6Sfp}mT{3g6RQL$%3&)9b5M{dHj(Nm?I&?J2egHKk;i2INAnOR5e zjHJGtv3i`;O*cy-5=CN;cH`_;dVI{)6-AF%29$DHg&<)Ko6EIfYbWN0_tqRz+b9C% z?BlJ?i97OY>5O<>`(?dyKo9PZ(OmUCM+8*m<(W_xrH-y%8AG>PE{nLRSA_?_O#EPAfV z`FLTlGUsuBnpkeg z?2+f-836MP$b88_qZ`(Td2Jv#kv}_w5=ar_i3k-;{EdqPdDBt-9_=(^O`HNODV-zt z6>VblCa6Z@X9|u9VQTKd`U8475+@-;>_?A-@m2*}6)|&fL@kEMxf=+}kTnY&jRg5= zx3ecK4_j+{F83BI-RulAwR!#W=;4ULb1%xy#7Xt~^oD*{^&e(C4p;lFr{>&hyZ8}= zkFNElqLO%Wx6P4L_O0mMvt<-&guLxK19oVdJbE1iDqMRmAj}#KBUc6eWYl*1oG?8X zRh-~VM)Xof%!`i{%OGTxA#37&$vj~V{Mgk++H5aHst6c4zFj|3qL4R~>a2&=r1UEJ ziJUSqA@IUdUc8^WSQo{&_0lT&o%kw!ch#AM;bH}wHf?4nvl;c%+{%biX_u=&x3gd6 zYdRCTZJl!gE!kiDcr&9JkzKl&)wC^UBs{0S#s0JeKIvasCIm5hGiLMZy&IXSDg?De zYQATiZDA`FQE~c1Pk*5$#Ja%)LLBbl4@3^TQ_$COPy~QlR|<*8C9ebFNsqlg8W6m&rOOLOEDw-RjG6fjoEm9PT=5zSSL?PDa zPEC5C*&Q!Dd+GRT7?rB#L{GDJBb~{`240LBH_{B?K~Fxthl`YWU!pfGf3E|QAti1C z&g1*_qv~}Zug$eHzC6;m_y*mJmQ7&Ho`r9T{IY9~1l1eKXz^c*MC%|1rZz@>fDJ8e zNeS-=&Bsp=@70K`T7eG`MN<~<#$SIhf;umK`LW;2ZavW@#|vLPkEkM;-C^2Bw1z6!=X`ZjU8xI}HicC8e6h?LdN2J>+f6pf7$g&O5J*yBgopUS4nC%L=7N2pohibN5mV{WyH!>R-;k`Ss!oH16}Cuk4#~v9vYPWDkl?5FE_4@ z^L?)Pw$!6Wgv}kk2i!?DTkw(7Km@c@d7?5ep&OKV%oqE%lxo3_meff()Z*7dBsQK? zth6gHD@1KA%~BtB=2mamX}^K!o0ggyW%I$|DXOkPa!?f%F}uBb(V_byhZc2SsKpX| zj&x5pIH( zj*4wPiyASP@h6h#FtOQ5Aj3#07EWkvqa-c95X!n)35gduwb%a3bd64GRuaEIX0@t zx7vn@)iIWYi>f?c;zVhd@kYKuP-1FlZm75x&idk+DlRd_EIyG%Jx5A>fAHXeUza*_ zt2XX@TDaMeQJ7ftRy?j;Sy5X`^jfOa1`TLZX&tO%(sT2C~sbGFo%lvRe8LMAE7KR0unl3 zpsDoVAFBsDbu^j5#Mo?Li~Qsk7$#L9y0bY>DlGEu$)_&!)M{d-Oj5f>EQGX zNDCxMA=`bm<_OP46;4GQH{ihUTEt)Vp}6rg_4LOtNlBJ12D(y81=ySd%-%l=%^qDG zp8;3EXFx}2_Ksz9w$kz>yM-{Z+#u~2mlkkXK6U&aX<%r^iz@wIb*Mk>Zi2c#cHg`q zZPr%99i#RDIJCWGV&X5H-(^kZ3~_0ykk?{>RHh{bhP0d=y`!nn^^&dW%KpmxqQ$(o-y}7fpbo6MG3S@zWuL>xp)(%efo)5}e(P+i zdY`iF39NEP)k8D2!EpUhOC<9-H6kvMoRvX~Nox;q>V3wlR*==rAd{U&SZ*|2M~nB^ zX1hU$xjldF9v_ycnbU)eeT%YGf)b_KoFTcHufgmFXY0wgbJKe1>FLQ)wMSQEtHhep_+N5enS4dUnnWPP+0gInPIR`wy5Nrxr zMxSN>r;5bB?d<$tgcg3l7+XSYo-ZeLY3vg1^Wf;?tr>mKnudbV0BR%=+ zgc`U6!fzRbf@FfEV%j)3;?X{h5G17N)%971>`I*39@?rh{-`FD3R&ek8p4hjrW?ZK zV%eopQH#MG_$K}suz^cj8KdOXL{Xg+0!uY4Pqlr@x;^mHvZb<~Z>pd@Bye}=58-|@I4P1DHr zmD{EYpnG8)^h(-zJ)4g@0k2`dFmRixbgW|0m=BrYJ&Os!XyM+~rj$y{g=?t~soELKC4WHSCOV+^V&mdAw!|)TgvIhwv*Mcd z7hahffP34h*^V-O(#+=#$HZ51?v=d;bUXM~tN}@*FlX5N}3I1HdY;$YmcDG`H(=mI?Lj_*t zku|bvbHYAjVpZ4V`qVDVwYMIFt1w#E8PzV1CqWoLB5XFijxwvj)!6}VYA~p#_jj-7 z2A|-&?g2L47azod=sfLBJK`E^ccr7M{W`82qc)9;RiGx=bY@VVSdV&4rmX2=>07z= z_X_aPk}g5~EePE%I_W5IIf_o;`6JEvWe1N@y{Hz=#;GMUdE$G@uFLOsB9wLS4F@qY zCiiiQ;LPi$GdL23`BvK*eI=O(IfUV;m|G|UZbywQs82Vv(!cvOFyB?LZu+aw5%GqC zgqPm6VlXAd#u7J&m5E<%etx;fV7+yUV!q`0)_fD}iD*n?JF0`H8cQq@GLim~4DF@_ z7^+|;2vJE#VG@v7*0@m0;(_@Ae1)T1Dwv!@661ScPu@=9h0j1IFDQaB1q6R!6>77Fy=@YRK&spyGcR@VKh* zXnt$d`>peBM;>5*+B0b;+&vC`US||+A4?8FC2}ANQ)*%S+6hPvUA(}r1DUh{&Mw{e zGpQ2RJ{f8VbAPX37;EYi_YgK0r6+!DL!9{Q8oLQ<3 z>lQxtRMGc*bUgAL;mOoao1hG5a6yAM&{urtxl9t9V(=B$>?>3>NG&|AcSXmm;o62c zLklm#&fCaqFhRr@BEr%yso}5nct6(CUVZyeKN>%II`j&w&8$|4@?myv} zca$h3?|-ZY>z{da2;d(wgR)tC98stey1fD1{S(gs3!AbQ;W6x6xv|kZg(x)qJT+tY zDOTS5MHT#)j&lemirrZ-c=JZ=LRxs5vl)yJ{)Y+Cfc-RnpI7%<;(Z&vJHDEgzrmQWrzIn8jRjpqf~8iyzy7j zx4B`r?$Yj_OI6ilQsa7gic=UrkOj@-xn!=OgE=v=!GBzxE-O~sRIXJynWk-G{PIL) zk(yKOaoxgMIGVk7Rkv@-kFazO{-bQnCh6tNAne?z1-mTaN@v)|D23qI&YfuCxf~E@ zme^7!73fOU#@W)a`wJ!TdMxMU*z%Y(S}@L{NefBOB{Xo@w5Git*!y)(UWQpgHFHz}Aze zs&B9`Ad0qn5k;U8xwSo;>#ps~?HfBIqi2Bmrqf-s$goqL?~T9p83=Wie@@SUziD)_ z64{1+E_Z)m38wvx6duO7>m$Y>k&WqFX?>xa$W>ZoJ7!G!p&#xR-ahbyp&zrf^bD3A zjlgf2trG7>tnFl)`us-^zrkNbwSAp5rWg#J*H02ENP)V*d5tY&+w z0Z%pUXbKLR>`!yb!bu-2(8D-2Rfvkv_1Xccj_p+TT_nYTZQDW@`FLvbSJt&qU5n#< z)M`e@!*_$EBdyYeRPzcLk;D09kE@tYw&H4CDC-)%ClcZ6(qxv4Rgi^@8^Wz47^jrD zMLrVo@oS}0&w%V9C>XPY;ES9T)O493!>U zujtAPHw?=68TD?q0;|S;GP)qLO`YHvqoMH#?kqSB$H#EwZNzrG>ENRj?(89$SE+_< zxk1{nJ=j~^*>}+aI?yiEF8A7{X39qE4HGuUpBHS$NVO1n)q1<%fQnB(;~Jh;Pk+-@ zQ~0!Jy1LJXoI1%=O2m*?T20Z>6$uXv!ho!51{zRA`4&4&4myYT`t5>1_1uQ1@?8Xayr@^D;|ft|(H zYiC%WNd9(W<4)jJv+0mxxTsdHM;}@`d@zRo4&REI`G{wV&c-wO!)6vYCR{!8asSFh ziTj3}Fx^dGy-e)ggb0SXGs0Jalt4HXluFGd`&vmZv4-sYf#8L(L}?B=3Z~98cIw75FK4W`0{hh2nn10Vnub%Fu&16^ZbN4x zyHsnso)OyQWH+$`513?i+oNXBi8^wzKugImt)UqJ@d258cIg%I=VBi(*wQU1X30=( zE6`Du`zEts-)V)dKeybvkwXsdwcvZr(~bt;Lfrikdfl_>@z`z9aBJO68S^oO0Kyk> z)rM-i)x=bfBqe)saQP2sTa67R92UF7Pr$f(=lzk@M4Yn2VoZY(lYG`?-2tw?lzp-h z-^}b`5K8^xagX>*NIT-=ajCBHYrviU;$6Gap9`JMv&!;V@=kehSoR+xusyKeBgY3} zEh`r^XkWN(%=M~D+A)C;)3!DI99rcz+@?w@(0CTukXTQS3JLSQ-Qu?KJ*%qh4ylvC zE`;^Gg*Mbawh^=$(y2Py?RB*koW#R?t)V@FUK?#d4}}nS#L=FLqB$Y`)nyX3m66G@ z@0B|xc-cgeL>9FjEWnhR+X4ed31ZaPN}8($N6@YzT#=6d>oD0tl-6#23`wWrw^4>P zUCZ_;<6|u?KS%(`0WTx6x4voFQYWtlyGc2+VGVAW)M513A6~Hqk1=YIaaY1hMv2?e zwW%Bf+M@(!Ou+wK(NO=t>hXf^KNi;7SXq7=`7)25*xXAu4TV1~D7P9_E)?gXBc z)5{BRe)2$05_`#ruEWo}9Jf|Mnb~|{_t%JO!+L<&d{o1SQXuEUpbBtc9sTq%@TZgZ zk;rlmHvKj^EetF`fCFflcNCDU4=pRmcG5GpeRq0_<4=KWuKaVIBw?McA7*)fi?PEb zZ4ZLJt-S)4g5u031uSlGhP)P+nUc!jz7>(B^&lvgm6v42ZPB8(A2&w7zlzSdhRZM% z)7`}&YKrmkv^{U={FQSS$-|QJ62)6LGn$d|)z_l$=8t*<4Z0f&It5wp?1fN>^dT!G zB0gr|?;7M{5o>BWj}9PouS3+|(BC)|(6G%xlgc4^`i$XN&&F5Fg6DZAAX%RQx|+-( z=sY`T(y#UEzpn-yW&fna-A#K8TYZChyFTz^!;~(Y=rVO{$YJ;l>ubz7AqsrP z)cHwHqEk+b&3TKvqSq75|1_Q#3QfZn%GfYp@n9L^0!mdhit~ZG4Bu2^w8bgczExFLSpZ{rlkI|Z8a_u> zF)Krq6sALl3D zoG}zxX#)*wCMcw$6l@wzrj^H_y$pU&zi=;{v#aH8uuYSIEOirLMv1~#TQ@((_LXs1 zye%jtMkCiyZ>`BAiAyduI3@!avipS?i<2@j#3<#I7dxGVq?LniFDem6b}an9{e1~j zarNXdS|~NRHEZyvpcLmldU>gpi32z>azcUYHubU@sLxpl`17(^y zt7a=Qd~yjqTV_(5rr(?o^PA-K}}KSnS~(@C@j7 zZl(nkwt9jd5c{40ukfY(y)92@bz_WT6kaRXRD)wZ8~fMxfrQurG`MU4q_bqtB$Rg{};g+QH#FRYG5L{It#k}dIohx-{8$|Pn24bbf!oTC{B zO_ZZ*R-m%o)F6=stG2&PdCCfgzxaRSq|#2uuzUJ*(gJM*BGqVjJahNFapVFC}~>f7#Us)p#UYdY99 zbyOF+Cpo|8mf_}EuiT|B?TDOqi743bpcna!gqu9*pE3{_E_eMbH#?xK?wDk-ys{F8Wl8Mn0Q$BOv^-vCB zCq0q@!3Ajr{S_e>ON=%^5%7P&!j1+o1u%y%sQsS;{Hb!N?`-Xc-y1p(jh_g?^`VAW zZ2qVWSk5TH-=Ff)4*mU`0rni<0-)OaT~G(aC2nVIn(KACp^SG6mbN)z2WDFHqQF(B z8$Vv5xxH!g2$|XsngYF1#XZ$(@xOV;CGSaSum%@1p`|ZgGo91@Op~^oZx~WI@Ev zqw9#ic-UQq#(phxhIAz8`Xgqiak8M#4RPjFj4Zcy5te%;j$oQWW>}QptU)5Styh*T zA($SU%ZR)5^-oH_nY8GE2-#bLPJ}vH;0<|8gpWsxFUE#Ii0p&nNHOL zZC^bXyC8a_fi9yf(XM5T>8z4dEbORIK)lfL%^7T+36I4S&H)mSecM$m_-TYVCS7M- z$K7!Gcwa68h78dK2c{=#7J+tb)`1%-M7!5@5g|Y;n?AGXkIF+#hif@XCi9kATt{C}BCD^cJdg5t_5qYmuI5vh zu5ctx!$0)%$rUP&X?RWp!d;g__QqZm$phILP=;XelQrMHGFUMo7?=u}NsJbT)Jf@_ zEfi`(jCf6^K%JtA#(N-Xr{>aVHvvdP#AV6Rbuc9LXwBf8#pdE&?Q&*9W zi_WccsbwK&jWRMWnuP-0i=Ed$hv(Q#i>?ihYiWE}`n^a~4AhcOzclRt5gJhqPJNUmM{$x_Ez}P# zCxrqVUNq!eZ~4&`ijojBUv`^g1hYn~&XA~Kkx3zrCt)8B9fZHO5bR$+ zM4V);c^DO((cro%dZJnNdU(Jl5vpURxek~cJ@29Z*D`2y|g1>@!Wi{8|IB=wa;QnzkCX(p-h@pT}|S`*Ztpg9P=oRU7w$vOZBrOvhI+1i&8Z>Adz zWI${qmbf9rp9fmK<3u-WKdIYL@URIgIJ<!ob=5vTZJT0tETb(tZqvx$Zci3ms#vPbninvlrK2n3Nut7<C zB;2U}74(N-qm_ZZ6U#A$XMnhY4gbsY0P@Lu%SCr$lrRY93@FFzPf09eu4n9Sc_{|# z$L@ZZnIO-E~IYN4#`LEfB#b z7=n}I4XK3=w&G#+Cb(sqn#W}B*Rj&4$SJLrAR^Z2+FU=XhJ55*Pb>uv(jjmUQRg#& zTW7{_5-l(5|4Wcx0R$X91JucWTakF# z^5fTvL|xDC@3;Sn`^UZ*=>M1hr1?MY|Ib@M77zdc{O|gS93280AV-ZU_OHUh6r%>n zl0*J0lV97upu+;Zma?qIn0_T5J|A`hrf7wsxg~R~y zzc$1n|5g6?Bukwr4oC#N?2kkKV)?5F|6xP^_u@st7t=bmGgdPrs`8O#<=K%g_LL^2C?Ie}(>n34jjxtM9*I z|El~q9QmJl$ls&-L-ZeK?;qO#>KW?qi}>ij7V*OuvovUr7VpI*9AEL^a3QRJ(NJOF zI#y0y9!d)L(Ja3|QY)g+gYhXcNgPhvduHh^E&|K#xCQD<3Bz({-bc zn*n9bRT*qb!3NGIEqgX;bAa~qF!(U5uj&K*|ySR*S z&E-TEPxrciMIlUt4BczCUxZJ*_on{h}t`$pz7<87`ae-cEIy7TqQ z^!R-FED_9Sp*wpX9p7+64ZVVd2ng3q z;&eos0O6q8~vv&INy(JnUpJ}s4qj*nQoET z$3CUN0X80b+-*2c^+7?q_lMg1SqBt=Mj(vqH^2`sHT6az{25BqxGMmx;=H_yG@S80 z-CS_z$!D7z{v@sp*ra*EJxJrlf~2|i*_ZR)l4-phX^^rb28k@$5%0g?&kxwC?QMC- zb=&1?m6r-1qqV!dJI|es=`19o%cWqu$mSdM(jrFEs{ew)^i7h1=S}9r({L%SCJTqD z;%7o4gYziVHBT|YSv!ZK;F)Ve;53vf4A?x(5$g=C6E%`YE7(cFG#}L}k&OQdxpDdy zR_^^o|H|%o$Eg?i9(q%?wK9#R|Klj>hqKToo5KuSfmhpoaefQtCbV6GWR{4^QvkFp zmfoz{1b#4C^5v~C0Olj z1XlOp3y((&jp*MJv?E_%9#drIFZv-Hp|Q|obKBO@p6 z^nnmUi;YgOWN=|E`=kV|Uzo#_o^AH3%j#J|dtn9F+YJ?=4DCmzy_t8q{P_6m*2S_o zQ0xor+jYWa+Oy>m*)Ji~JN{HKB==-b`r9#rFml&IM>N-l7d8n*_HlZzQ~tb+fCGom z*Y!h6+O@M6?1KYcy@osaS=sw-DQ&S7>+%p}NBNZ+DFXJ3GT6F9z}nFMH=u^*vUAja zNp7H(&zB1MNDWr`dtnK#UK~5G5$Ns<4qg*iv}lkGGwE^8Xx8PaTkrr_jm(1_#9Og2Xkab> zEI=*|cSx|Fne=cd)R!01p#qCXMl7A;6F_8y-~+N|z%PSqPq-+GVHn`9P0WVW9VMkMD7BC-kdj|W+O`5#f{O#Nte z!`Duu<~HbYCZ{l~EU$2~;c0)(Nd#It!>uegW~4d2xOb6dv55nLE8mK6ZOe5DX}53Rdy8m&Wj`?Wvrx2C@77t5RcrKks$)N zRePSd_E(J+Yg@S1f)y*PRJ->6be;ZBA?f)DP;+cw6OUoPWc=A~@n=@*`{*b<%4m6` z>fkOq{t`^F7HOF$PA>PB}!X^k%j>>{e^bE%@XT#CX0jkE^rY~cBX=c$x<*=eyy2W9aB||f_ZrbS1cw9)N!v4u2AbKZ3yX_yuW4+(0*PHu=&cKer z+)7A<0;(7fY78l=vJo2`s5HtVM!8$gQAYZ|Wze!T*)tHqi>QxhM1s{fwq_D6yQJx? z%>ZKc<@Fh}_3J8d9r>30>ipY9_x&msJX1$$zdq<<DbL(`0j@!FRy{x{WqBvc@W6 z;Kb9oQFo;SdFtth1**Hz-P6i?1u9h1WsctfZc2SF)5MX7VH+EeyFj8#lwA{lCB-ShbqaHw#Y6Y z-rMS&esyj*>DrH^rH&2nZc;!=`c>7t?B}d+1@mesriq5BAv9w81Awk;1_6qJ4z_;& zAhMFVjT)DIdXzTvN_I-bcnU6AD}8v_!^kYwm@OgQ!GW#7RaDer_Qv7rshB*UYceiv}~<{4uH8T>K43T()_#Vj~VanrHeY3vo7Ejh_&O z9wOQ5ieo`>d!ygNI8lFH56zleIUp~&+43&lJuM9z<%l-hk)M|Y5Z!{baU;1t6L~)i z4ZcVP^{ODW8B^!WIG-qoL(7o6Deris(TO|jmtuH02glOwD!tykC=45i^T^oWx*2LY zieKAJUwsczFBK{^=1O6hjNJ=l^F}%OsJq>x6?Z~O>g(OKPn810wHJK!uAmbR>pyoO zwn&|=Af1v(r%1ngm22<;^ZjgimCut|nV#HLGWZ+066($oUE#AW-L4<5)4PORuL{uu zeKRS|s3ktsk!^IqW_3Y0#WU{RFZ8IOo%dW(!BZa_o?JgfuZ0!c2Rc=V8(DrOIQf-a z0rv}ng)`JN(GQESpc@Y2tp{)3{0AV%f(dbLj$nlv5Ex*`j z6ZBGzS1qleLGA4}o>~c#6!(Xc4gCm!y3vp>Z#;2^=pi0QrBuBl@xvKk)5{N+F2jiF zsz;#%b&vBKL+?}|93sXB;^aq9`7tBU4Vi10TVz!Wmw5DE1 zomvq$Me=5*;vLw@&g*cx9g$5s;rP){af0>a)4wQf>P5*G$@;u^u+$)LC7EmOj;>!! zU&{zI2vFiht_U>VEXoGSZB<^mu@T$Lai%a$#F7arC5I}~Q&Zz$LHcQ`@oaj_!fKa$ zM0}Jv{&=d%HNa-yrOY6r0aQ@91`ab3+ebQYGFpT$Szy=`ng_0hcE3kYz&*2|{_w@pTEs<6F_3J~aIaP6igLb~ht zD?Lnb_je|nUHhV`Mt&M!4`ihg_}h2uErv03CV;^vBN|7$-qv*)e3^1LrV;>NfDMZ&l%9H_O zC~SoosnyG+RRGG4eJa<=C*>*ai+5o5&{U&FA_==B6ArhqAi3+t06HC43o}{dC{HH0 z^S&NgR2v*6tYPY>k2&x#N6uBNJM>}+Lz+4i^joWonKxvUZCK%Dk;8l?R;(HU@PfbM(R0SX$o>2M8H@=k83ChIZU7?>sjBb|oo=}r&n zoG?z8&uVMFTwNnyG{!L=1#{G??SR+3oH(0dEst_+Mpzc|u z9Tc;W$vCk!uNA$$7>07WZxCBqNx?Yl*bCTcuIeGfqNB<9-kc!bQJ12xsZ z!7xKlfHudjU*t?Mjdjop5ddd-*!$7aLyo~1`lgy2$3#Uf{IC$ zufjOR7J=b4K|g23`m*^y8~vAcj#m(>>27|giTNOIGA!nk>KbG_{M2MA!MgCJ+B8ux z>1cnP&C+j7T9dQ-gCR$FB&VlaXcnLq4*UL)1ONk;9;o<6w+!8r6EpZXCa`=&6g?I8 z9h;0pEX~ZdWQakpB9pYR`Oy@Xi?F?9Qk7)81dr&|wY^L@AMUZsHUZIL*eG^;^Zv@q zoxKYjRyBYq1DYL0Gxg}3z8Oc}G|pM&7e4fRAVeP*%8a&D-1U~obnSE+ond{{3X6n} zv#U@tUl-$Y5AuVoHeJbQ8w#8kbx&)gw$&IE@0W7>5YvkZYO`@#Ds@_pJf?5>oei*m+nd`y*CKloIEfeeAJ#!ONxiIY#E$O)fCkhEIw&o(D-@s u=4o5V52gRSgy9aKzxuCM2>BuZ#bEvUzkkTjx&I?Se{8J(M}Gb{TK*qFhlGXz diff --git a/versioned_docs/version-2.15.0/FAQs.md b/versioned_docs/version-2.16.0/FAQs.md similarity index 100% rename from versioned_docs/version-2.15.0/FAQs.md rename to versioned_docs/version-2.16.0/FAQs.md diff --git a/versioned_docs/version-2.15.0/Overview.md b/versioned_docs/version-2.16.0/Overview.md similarity index 100% rename from versioned_docs/version-2.15.0/Overview.md rename to versioned_docs/version-2.16.0/Overview.md diff --git a/versioned_docs/version-2.15.0/cli.md b/versioned_docs/version-2.16.0/cli.md similarity index 100% rename from versioned_docs/version-2.15.0/cli.md rename to versioned_docs/version-2.16.0/cli.md diff --git a/versioned_docs/version-2.15.0/client/frontend.md b/versioned_docs/version-2.16.0/client/frontend.md similarity index 100% rename from versioned_docs/version-2.15.0/client/frontend.md rename to versioned_docs/version-2.16.0/client/frontend.md diff --git a/versioned_docs/version-2.15.0/client/overview.md b/versioned_docs/version-2.16.0/client/overview.md similarity index 90% rename from versioned_docs/version-2.15.0/client/overview.md rename to versioned_docs/version-2.16.0/client/overview.md index b6eda46652..151a214367 100644 --- a/versioned_docs/version-2.15.0/client/overview.md +++ b/versioned_docs/version-2.16.0/client/overview.md @@ -351,3 +351,15 @@ fastify.post('/', async (request, reply) => { return res }) ``` + +## Errors in Platformatic Client + +Platformatic Client throws the following errors when an unexpected situation occurs: +* `PLT_CLIENT_OPTIONS_URL_REQUIRED` => in your client options, you should provide a valid `url` +* `PLT_CLIENT_FORM_DATA_REQUIRED` => you should pass a `FormData` object (from `undici` request) since you're doing a `multipart/form-data` request +* `PLT_CLIENT_MISSING_PARAMS_REQUIRED` => a url path params is missing (and should be added) when doing the client request +* `PLT_CLIENT_WRONG_OPTS_TYPE` => a wrong client option type has been passed (and should be properly updated) +* `PLT_CLIENT_INVALID_RESPONSE_SCHEMA` => response can't be properly validated due to missing status code +* `PLT_CLIENT_INVALID_CONTENT_TYPE` => response contains an invalid content type +* `PLT_CLIENT_INVALID_RESPONSE_FORMAT` => body response doesn't match with the provided schema +* `PLT_CLIENT_UNEXPECTED_CALL_FAILURE` => there has been an unexpected failure when doing the client request diff --git a/versioned_docs/version-2.15.0/client/programmatic.md b/versioned_docs/version-2.16.0/client/programmatic.md similarity index 100% rename from versioned_docs/version-2.15.0/client/programmatic.md rename to versioned_docs/version-2.16.0/client/programmatic.md diff --git a/versioned_docs/version-2.15.0/composer/api-modification.md b/versioned_docs/version-2.16.0/composer/api-modification.md similarity index 100% rename from versioned_docs/version-2.15.0/composer/api-modification.md rename to versioned_docs/version-2.16.0/composer/api-modification.md diff --git a/versioned_docs/version-2.15.0/composer/configuration.md b/versioned_docs/version-2.16.0/composer/configuration.md similarity index 100% rename from versioned_docs/version-2.15.0/composer/configuration.md rename to versioned_docs/version-2.16.0/composer/configuration.md diff --git a/versioned_docs/version-2.15.0/composer/overview.md b/versioned_docs/version-2.16.0/composer/overview.md similarity index 100% rename from versioned_docs/version-2.15.0/composer/overview.md rename to versioned_docs/version-2.16.0/composer/overview.md diff --git a/versioned_docs/version-2.15.0/composer/plugin.md b/versioned_docs/version-2.16.0/composer/plugin.md similarity index 100% rename from versioned_docs/version-2.15.0/composer/plugin.md rename to versioned_docs/version-2.16.0/composer/plugin.md diff --git a/versioned_docs/version-2.15.0/composer/programmatic.md b/versioned_docs/version-2.16.0/composer/programmatic.md similarity index 100% rename from versioned_docs/version-2.15.0/composer/programmatic.md rename to versioned_docs/version-2.16.0/composer/programmatic.md diff --git a/versioned_docs/version-2.15.0/contributing/contributing.md b/versioned_docs/version-2.16.0/contributing/contributing.md similarity index 100% rename from versioned_docs/version-2.15.0/contributing/contributing.md rename to versioned_docs/version-2.16.0/contributing/contributing.md diff --git a/versioned_docs/version-2.15.0/contributing/documentation-style-guide.md b/versioned_docs/version-2.16.0/contributing/documentation-style-guide.md similarity index 100% rename from versioned_docs/version-2.15.0/contributing/documentation-style-guide.md rename to versioned_docs/version-2.16.0/contributing/documentation-style-guide.md diff --git a/versioned_docs/version-2.15.0/db/authorization/images/http.png b/versioned_docs/version-2.16.0/db/authorization/images/http.png similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/images/http.png rename to versioned_docs/version-2.16.0/db/authorization/images/http.png diff --git a/versioned_docs/version-2.15.0/db/authorization/images/jwt.png b/versioned_docs/version-2.16.0/db/authorization/images/jwt.png similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/images/jwt.png rename to versioned_docs/version-2.16.0/db/authorization/images/jwt.png diff --git a/versioned_docs/version-2.15.0/db/authorization/images/sources/http.excalidraw b/versioned_docs/version-2.16.0/db/authorization/images/sources/http.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/images/sources/http.excalidraw rename to versioned_docs/version-2.16.0/db/authorization/images/sources/http.excalidraw diff --git a/versioned_docs/version-2.15.0/db/authorization/images/sources/jwt.excalidraw b/versioned_docs/version-2.16.0/db/authorization/images/sources/jwt.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/images/sources/jwt.excalidraw rename to versioned_docs/version-2.16.0/db/authorization/images/sources/jwt.excalidraw diff --git a/versioned_docs/version-2.15.0/db/authorization/images/sources/webhook.excalidraw b/versioned_docs/version-2.16.0/db/authorization/images/sources/webhook.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/images/sources/webhook.excalidraw rename to versioned_docs/version-2.16.0/db/authorization/images/sources/webhook.excalidraw diff --git a/versioned_docs/version-2.15.0/db/authorization/images/webhook.png b/versioned_docs/version-2.16.0/db/authorization/images/webhook.png similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/images/webhook.png rename to versioned_docs/version-2.16.0/db/authorization/images/webhook.png diff --git a/versioned_docs/version-2.15.0/db/authorization/overview.md b/versioned_docs/version-2.16.0/db/authorization/overview.md similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/overview.md rename to versioned_docs/version-2.16.0/db/authorization/overview.md diff --git a/versioned_docs/version-2.15.0/db/authorization/rules.md b/versioned_docs/version-2.16.0/db/authorization/rules.md similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/rules.md rename to versioned_docs/version-2.16.0/db/authorization/rules.md diff --git a/versioned_docs/version-2.15.0/db/authorization/strategies.md b/versioned_docs/version-2.16.0/db/authorization/strategies.md similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/strategies.md rename to versioned_docs/version-2.16.0/db/authorization/strategies.md diff --git a/versioned_docs/version-2.15.0/db/authorization/user-roles-metadata.md b/versioned_docs/version-2.16.0/db/authorization/user-roles-metadata.md similarity index 100% rename from versioned_docs/version-2.15.0/db/authorization/user-roles-metadata.md rename to versioned_docs/version-2.16.0/db/authorization/user-roles-metadata.md diff --git a/versioned_docs/version-2.15.0/db/configuration.md b/versioned_docs/version-2.16.0/db/configuration.md similarity index 100% rename from versioned_docs/version-2.15.0/db/configuration.md rename to versioned_docs/version-2.16.0/db/configuration.md diff --git a/versioned_docs/version-2.15.0/db/logging.md b/versioned_docs/version-2.16.0/db/logging.md similarity index 100% rename from versioned_docs/version-2.15.0/db/logging.md rename to versioned_docs/version-2.16.0/db/logging.md diff --git a/versioned_docs/version-2.15.0/db/migrations.md b/versioned_docs/version-2.16.0/db/migrations.md similarity index 100% rename from versioned_docs/version-2.15.0/db/migrations.md rename to versioned_docs/version-2.16.0/db/migrations.md diff --git a/versioned_docs/version-2.15.0/db/overview.md b/versioned_docs/version-2.16.0/db/overview.md similarity index 100% rename from versioned_docs/version-2.15.0/db/overview.md rename to versioned_docs/version-2.16.0/db/overview.md diff --git a/versioned_docs/version-2.15.0/db/plugin.md b/versioned_docs/version-2.16.0/db/plugin.md similarity index 100% rename from versioned_docs/version-2.15.0/db/plugin.md rename to versioned_docs/version-2.16.0/db/plugin.md diff --git a/versioned_docs/version-2.15.0/db/programmatic.md b/versioned_docs/version-2.16.0/db/programmatic.md similarity index 100% rename from versioned_docs/version-2.15.0/db/programmatic.md rename to versioned_docs/version-2.16.0/db/programmatic.md diff --git a/versioned_docs/version-2.15.0/db/schema-support.md b/versioned_docs/version-2.16.0/db/schema-support.md similarity index 100% rename from versioned_docs/version-2.15.0/db/schema-support.md rename to versioned_docs/version-2.16.0/db/schema-support.md diff --git a/versioned_docs/version-2.15.0/file-formats.md b/versioned_docs/version-2.16.0/file-formats.md similarity index 100% rename from versioned_docs/version-2.15.0/file-formats.md rename to versioned_docs/version-2.16.0/file-formats.md diff --git a/versioned_docs/version-2.15.0/getting-started/images/inspector.png b/versioned_docs/version-2.16.0/getting-started/images/inspector.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/images/inspector.png rename to versioned_docs/version-2.16.0/getting-started/images/inspector.png diff --git a/versioned_docs/version-2.15.0/getting-started/images/movie_quote_app.png b/versioned_docs/version-2.16.0/getting-started/images/movie_quote_app.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/images/movie_quote_app.png rename to versioned_docs/version-2.16.0/getting-started/images/movie_quote_app.png diff --git a/versioned_docs/version-2.15.0/getting-started/images/vs-code-debug.png b/versioned_docs/version-2.16.0/getting-started/images/vs-code-debug.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/images/vs-code-debug.png rename to versioned_docs/version-2.16.0/getting-started/images/vs-code-debug.png diff --git a/versioned_docs/version-2.15.0/getting-started/issues.md b/versioned_docs/version-2.16.0/getting-started/issues.md similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/issues.md rename to versioned_docs/version-2.16.0/getting-started/issues.md diff --git a/versioned_docs/version-2.15.0/getting-started/new-api-project-instructions.md b/versioned_docs/version-2.16.0/getting-started/new-api-project-instructions.md similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/new-api-project-instructions.md rename to versioned_docs/version-2.16.0/getting-started/new-api-project-instructions.md diff --git a/versioned_docs/version-2.15.0/getting-started/platformatic-architecture.png b/versioned_docs/version-2.16.0/getting-started/platformatic-architecture.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatic-architecture.png rename to versioned_docs/version-2.16.0/getting-started/platformatic-architecture.png diff --git a/versioned_docs/version-2.15.0/getting-started/platformatic-composer-architecture.png b/versioned_docs/version-2.16.0/getting-started/platformatic-composer-architecture.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatic-composer-architecture.png rename to versioned_docs/version-2.16.0/getting-started/platformatic-composer-architecture.png diff --git a/versioned_docs/version-2.15.0/getting-started/platformatic-db-architecture.png b/versioned_docs/version-2.16.0/getting-started/platformatic-db-architecture.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatic-db-architecture.png rename to versioned_docs/version-2.16.0/getting-started/platformatic-db-architecture.png diff --git a/versioned_docs/version-2.15.0/getting-started/platformatic-runtime-architecture.png b/versioned_docs/version-2.16.0/getting-started/platformatic-runtime-architecture.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatic-runtime-architecture.png rename to versioned_docs/version-2.16.0/getting-started/platformatic-runtime-architecture.png diff --git a/versioned_docs/version-2.15.0/getting-started/platformatic-stackables-architecture.png b/versioned_docs/version-2.16.0/getting-started/platformatic-stackables-architecture.png similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatic-stackables-architecture.png rename to versioned_docs/version-2.16.0/getting-started/platformatic-stackables-architecture.png diff --git a/versioned_docs/version-2.15.0/getting-started/platformatid-composer-architecture.excalidraw b/versioned_docs/version-2.16.0/getting-started/platformatid-composer-architecture.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatid-composer-architecture.excalidraw rename to versioned_docs/version-2.16.0/getting-started/platformatid-composer-architecture.excalidraw diff --git a/versioned_docs/version-2.15.0/getting-started/platformatid-db-architecture.excalidraw b/versioned_docs/version-2.16.0/getting-started/platformatid-db-architecture.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatid-db-architecture.excalidraw rename to versioned_docs/version-2.16.0/getting-started/platformatid-db-architecture.excalidraw diff --git a/versioned_docs/version-2.15.0/getting-started/platformatid-runtime-architecture.excalidraw b/versioned_docs/version-2.16.0/getting-started/platformatid-runtime-architecture.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatid-runtime-architecture.excalidraw rename to versioned_docs/version-2.16.0/getting-started/platformatid-runtime-architecture.excalidraw diff --git a/versioned_docs/version-2.15.0/getting-started/platformatid-stackables-architecture.excalidraw b/versioned_docs/version-2.16.0/getting-started/platformatid-stackables-architecture.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/platformatid-stackables-architecture.excalidraw rename to versioned_docs/version-2.16.0/getting-started/platformatid-stackables-architecture.excalidraw diff --git a/versioned_docs/version-2.15.0/getting-started/quick-start-guide.md b/versioned_docs/version-2.16.0/getting-started/quick-start-guide.md similarity index 95% rename from versioned_docs/version-2.15.0/getting-started/quick-start-guide.md rename to versioned_docs/version-2.16.0/getting-started/quick-start-guide.md index f97ddd21d8..471f865132 100644 --- a/versioned_docs/version-2.15.0/getting-started/quick-start-guide.md +++ b/versioned_docs/version-2.16.0/getting-started/quick-start-guide.md @@ -234,7 +234,7 @@ Done. Now run: ### Setting Up the Platformatic Frontend Client -To kickstart the project, you'll first need to create a [Platformatic frontend client](https://docs.platformatic.dev/docs/client/frontend) for your remote server. Run the following command: +To kickstart the project, in your `web/frontend/src` directory, run the command to create a [Platformatic frontend client](https://docs.platformatic.dev/docs/client/frontend) for your remote server: ```sh npx platformatic client --frontend http://0.0.0.0:3042 --name next-client web/frontend/src @@ -442,6 +442,33 @@ function App() { export default App; ``` +#### Add frontend to Composer + +In your `web/composer` directory, add the frontend `id` to your composer `platformatic.json` file, update it as shown below: + +```json +{ + "$schema": "https://schemas.platformatic.dev/@platformatic/composer/2.5.5.json", + "composer": { + "services": [ + { + "id": "db", + "openapi": { + "url": "/documentation/json" + } + }, + { + "id": "frontend" + } + ], + "refreshTimeout": 1000 + }, + + + "watch": true +} +``` + ### Start Your API Server In your project directory, use the Platformatic CLI to start your API server: diff --git a/versioned_docs/version-2.15.0/getting-started/quick-start-watt.md b/versioned_docs/version-2.16.0/getting-started/quick-start-watt.md similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/quick-start-watt.md rename to versioned_docs/version-2.16.0/getting-started/quick-start-watt.md diff --git a/versioned_docs/version-2.15.0/getting-started/setup-watt.md b/versioned_docs/version-2.16.0/getting-started/setup-watt.md similarity index 100% rename from versioned_docs/version-2.15.0/getting-started/setup-watt.md rename to versioned_docs/version-2.16.0/getting-started/setup-watt.md diff --git a/versioned_docs/version-2.15.0/guides/add-custom-functionality/extend-graphql.md b/versioned_docs/version-2.16.0/guides/add-custom-functionality/extend-graphql.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/add-custom-functionality/extend-graphql.md rename to versioned_docs/version-2.16.0/guides/add-custom-functionality/extend-graphql.md diff --git a/versioned_docs/version-2.15.0/guides/add-custom-functionality/extend-rest.md b/versioned_docs/version-2.16.0/guides/add-custom-functionality/extend-rest.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/add-custom-functionality/extend-rest.md rename to versioned_docs/version-2.16.0/guides/add-custom-functionality/extend-rest.md diff --git a/versioned_docs/version-2.15.0/guides/add-custom-functionality/overview.md b/versioned_docs/version-2.16.0/guides/add-custom-functionality/overview.md similarity index 99% rename from versioned_docs/version-2.15.0/guides/add-custom-functionality/overview.md rename to versioned_docs/version-2.16.0/guides/add-custom-functionality/overview.md index 8829dd293a..fe11224f28 100644 --- a/versioned_docs/version-2.15.0/guides/add-custom-functionality/overview.md +++ b/versioned_docs/version-2.16.0/guides/add-custom-functionality/overview.md @@ -4,7 +4,6 @@ label: Welcome to Platformatic --- - # Add Custom Functionality If you want to extend Platformatic DB features, it is possible to register a plugin, which will be in the form of a standard [Fastify](https://fastify.io) plugin. diff --git a/versioned_docs/version-2.15.0/guides/add-custom-functionality/prerequisites.md b/versioned_docs/version-2.16.0/guides/add-custom-functionality/prerequisites.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/add-custom-functionality/prerequisites.md rename to versioned_docs/version-2.16.0/guides/add-custom-functionality/prerequisites.md diff --git a/versioned_docs/version-2.15.0/guides/add-custom-functionality/raw-sql.md b/versioned_docs/version-2.16.0/guides/add-custom-functionality/raw-sql.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/add-custom-functionality/raw-sql.md rename to versioned_docs/version-2.16.0/guides/add-custom-functionality/raw-sql.md diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/architecture-diagram.excalidraw b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/architecture-diagram.excalidraw similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/architecture-diagram.excalidraw rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/architecture-diagram.excalidraw diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/architecture-diagram.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/architecture-diagram.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/architecture-diagram.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/architecture-diagram.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/create-a-static-app-workspace-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/create-a-static-app-workspace-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/create-a-static-app-workspace-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/create-a-static-app-workspace-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/create-a-static-app-workspace-02.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/create-a-static-app-workspace-02.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/create-a-static-app-workspace-02.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/create-a-static-app-workspace-02.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/create-an-app-on-platformati-cloud-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/create-an-app-on-platformati-cloud-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/create-an-app-on-platformati-cloud-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/create-an-app-on-platformati-cloud-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/make-the-composed-media-service-api-read-only-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/make-the-composed-media-service-api-read-only-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/make-the-composed-media-service-api-read-only-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/make-the-composed-media-service-api-read-only-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/start-the-runtime-app-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/start-the-runtime-app-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/start-the-runtime-app-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/start-the-runtime-app-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-books-service-api-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-books-service-api-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-books-service-api-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-books-service-api-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-composed-media-service-api-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-composed-media-service-api-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-composed-media-service-api-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-composed-media-service-api-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-movies-service-api-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-movies-service-api-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-movies-service-api-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-movies-service-api-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-people-service-01.png b/versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-people-service-01.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith-images/test-the-people-service-01.png rename to versioned_docs/version-2.16.0/guides/build-modular-monolith-images/test-the-people-service-01.png diff --git a/versioned_docs/version-2.15.0/guides/build-modular-monolith.md b/versioned_docs/version-2.16.0/guides/build-modular-monolith.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/build-modular-monolith.md rename to versioned_docs/version-2.16.0/guides/build-modular-monolith.md diff --git a/versioned_docs/version-2.15.0/guides/compiling-typescript-for-deployment.md b/versioned_docs/version-2.16.0/guides/compiling-typescript-for-deployment.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/compiling-typescript-for-deployment.md rename to versioned_docs/version-2.16.0/guides/compiling-typescript-for-deployment.md diff --git a/versioned_docs/version-2.15.0/guides/debug-platformatic-db.md b/versioned_docs/version-2.16.0/guides/debug-platformatic-db.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/debug-platformatic-db.md rename to versioned_docs/version-2.16.0/guides/debug-platformatic-db.md diff --git a/versioned_docs/version-2.15.0/guides/deployment/advanced-fly-io-deployment.md b/versioned_docs/version-2.16.0/guides/deployment/advanced-fly-io-deployment.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/deployment/advanced-fly-io-deployment.md rename to versioned_docs/version-2.16.0/guides/deployment/advanced-fly-io-deployment.md diff --git a/versioned_docs/version-2.15.0/guides/deployment/deploy-to-fly-io-with-sqlite.md b/versioned_docs/version-2.16.0/guides/deployment/deploy-to-fly-io-with-sqlite.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/deployment/deploy-to-fly-io-with-sqlite.md rename to versioned_docs/version-2.16.0/guides/deployment/deploy-to-fly-io-with-sqlite.md diff --git a/versioned_docs/version-2.15.0/guides/deployment/deploying-on-lambda.md b/versioned_docs/version-2.16.0/guides/deployment/deploying-on-lambda.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/deployment/deploying-on-lambda.md rename to versioned_docs/version-2.16.0/guides/deployment/deploying-on-lambda.md diff --git a/versioned_docs/version-2.15.0/guides/deployment/dockerize-a-watt-app.md b/versioned_docs/version-2.16.0/guides/deployment/dockerize-a-watt-app.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/deployment/dockerize-a-watt-app.md rename to versioned_docs/version-2.16.0/guides/deployment/dockerize-a-watt-app.md diff --git a/versioned_docs/version-2.15.0/guides/deployment/overview.md b/versioned_docs/version-2.16.0/guides/deployment/overview.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/deployment/overview.md rename to versioned_docs/version-2.16.0/guides/deployment/overview.md diff --git a/versioned_docs/version-2.15.0/guides/environment-variables.md b/versioned_docs/version-2.16.0/guides/environment-variables.md similarity index 100% rename from versioned_docs/version-2.15.0/guides/environment-variables.md rename to versioned_docs/version-2.16.0/guides/environment-variables.md diff --git a/versioned_docs/version-2.16.0/guides/generate-frontend-code-to-consume-platformatic-rest-api.md b/versioned_docs/version-2.16.0/guides/generate-frontend-code-to-consume-platformatic-rest-api.md new file mode 100644 index 0000000000..e60da18ef7 --- /dev/null +++ b/versioned_docs/version-2.16.0/guides/generate-frontend-code-to-consume-platformatic-rest-api.md @@ -0,0 +1,316 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import NewApiProjectInstructions from '../getting-started/new-api-project-instructions.md'; +import SetupWatt from '../getting-started/setup-watt.md'; + +# Build Front-end for Platformatic REST API + +Platformatic apps expose REST APIs that provide provide CRUD (Create, Read, +Update, Delete) functionality for each entity (see the +[Introduction to the REST API](https://docs.platformatic.dev/docs/reference/sql-openapi/introduction) +documentation for more information on the REST API) by default. + +In this guide, you will learn how to create a new Platformatic guide with Watt, Frontend Client, add a frontend to consume your Platformatic REST API. + +## Create a Watt Application + + + + +### Add a Platformatic DB service + + + + + +### Add a new Platformatic service + +Every Platformatic service uses the "Movie" demo entity and includes the corresponding table, migrations, and REST API to create, read, update, and delete movies. + +Launch your application with the command below: + +```sh +npm run dev +``` + +Your Platformatic app should be at the `http://127.0.0.1:3042/` URL. + +## Create a Front-end Application + +Refer to the [Scaffolding Your First Vite Project](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) documentation to create a new front-end application, and call it "rest-api-frontend". + +:::info +Please note Vite is suggested only for practical reasons, Platformatic Watt supports Astro, Remix, Next.js and Vite frameworks. +::: + +In the `web` directory of your application, run the command: + + + + + +```bash +npm create vite@latest rest-api-frontend -- --template react +``` + + + + +```bash +npm create vite@latest rest-api-frontend -- --template vue-ts +``` + + + + +and then follow the Vite's instructions + +```bash +Scaffolding project in /Users/noriste/Sites/temp/platformatic/rest-api-frontend... + +Done. Now run: + + cd rest-api-frontend + npm install + npm run dev +``` + +Once done, run the command below to add `watt.json` file to your frontend application: + +```sh +npx wattpm import web/frontend +``` + +Add your frontend `id` and DB service to your `platformatic.json` file in your `web/composer` application: + +```json +{ + "$schema": "https://schemas.platformatic.dev/@platformatic/composer/2.15.0.json", + "composer": { + "services": [ + { + "id": "db", + "openapi": { + "url": "/documentation/json", + "prefix": "/db" + } + }, + { + "id":"frontend" // Frontend ID for Vite applications + } + ], + "refreshTimeout": 1000 + }, + "watch": true +} +``` + + +### Add a Frontend Client for REST API + +To consume REST APIs in your Platformatic application. run the command to use Platformatic [frontend client](https://docs.platformatic.dev/docs/client/frontend) for exposing a client for your remote OpenAPI server, the client uses fetch and runs on the browser. + +```bash +cd rest-api-frontend/src +npx platformatic client http://127.0.0.1:3042 --frontend --name frontend-client +``` + +Refer to the [Platformatic CLI frontend command](https://docs.platformatic.dev/docs/reference/cli#frontend) documentation to know about the available options. + +The Platformatic CLI will generate `frontend-client.mjs`, `frontend-client-types.d.ts`, `frontend-client.openapi.json`. Refer to the [frontend client documentation](https://docs.platformatic.dev/docs/client/frontend) to learn more about the [Client](https://docs.platformatic.dev/docs/client/frontend) and [CLI](https://docs.platformatic.dev/docs/cli). + + +### React component for CRUD operations + +In this section, you’ll build a React component for CRUD operations using the autogenerated client code provided by Platformatic. The code showcases a `MovieManager.jsx` file that manages movies in a database. You will implement features to create, read, update, and delete movies. + + +```js +import { useState, useEffect } from 'react'; +import { setBaseUrl, dbGetMovies, dbCreateMovie, dbUpdateMovie, dbDeleteMovies } from './frontend-client/frontend-client.mjs'; + +// Set the base URL for the API client +setBaseUrl(window.location.origin); // Or your specific API base URL + +export default function MovieManager() { + const [movies, setMovies] = useState([]); + const [newMovie, setNewMovie] = useState({ title: '' }); + const [editMovie, setEditMovie] = useState(null); + const [showEditModal, setShowEditModal] = useState(false); + + useEffect(() => { + fetchMovies(); + }, []); + + const fetchMovies = async () => { + try { + const response = await dbGetMovies({}); + setMovies(response); + } catch (error) { + console.error('Error fetching movies:', error); + } + }; + + const handleCreateMovie = async (e) => { + e.preventDefault(); + try { + await dbCreateMovie(newMovie); + setNewMovie({ title: '' }); + fetchMovies(); + } catch (error) { + console.error('Error creating movie:', error); + } + }; + + const handleEditMovie = async (e) => { + e.preventDefault(); + try { + await dbUpdateMovie(editMovie); + setShowEditModal(false); + setEditMovie(null); + fetchMovies(); + } catch (error) { + console.error('Error updating movie:', error); + } + }; + + const handleDeleteMovie = async (id) => { + try { + await dbDeleteMovies({ id }); + fetchMovies(); + } catch (error) { + console.error('Error deleting movie:', error); + } + }; + + return ( +
+
+

Movie Management

+ + {/* Create Movie Form */} +
+ setNewMovie({ title: e.target.value })} + className="flex-1 px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + /> + +
+ + {/* Movies Table */} +
+ + + + + + + + + + {movies.map((movie) => ( + + + + + + ))} + +
IDTitleActions
{movie.id}{movie.title} + + +
+
+ + {/* Edit Modal */} + {showEditModal && ( +
+
+

Edit Movie

+
+ setEditMovie({ ...editMovie, title: e.target.value })} + className="w-full px-4 py-2 mb-4 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" + /> +
+ + +
+
+
+
+ )} +
+
+ ); +} +``` + +This component handles all the CRUD operations for managing movies by interacting with the autogenerated client functions (`dbGetMovies`, `dbCreateMovie`, etc.) from your Platformatic API. + +#### Rendering in App.jsx + +To include this component in your app, import it into your `App.jsx` file: + +```js +import MovieManager from './MovieManager'; +import './App.css' + +function App() { + return ( +
+ +
+ ); +} + +export default App; +``` + +The styling for the `MovieManager.jsx` file uses Tailwind CSS. See the [tailwind documentation](https://tailwindcss.com/docs/installation) on how to install and set it up. + +### Start your Server + +In the root of your project directory, run the command: + +```sh +npm run dev +``` + +Your application is now up and running on `http://127.0.0.1:3042/frontend` + +![Platformatic CRUD movie application](./images/movie-app.png) \ No newline at end of file diff --git a/versioned_docs/version-2.15.0/guides/images/kibana-1.png b/versioned_docs/version-2.16.0/guides/images/kibana-1.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/images/kibana-1.png rename to versioned_docs/version-2.16.0/guides/images/kibana-1.png diff --git a/versioned_docs/version-2.15.0/guides/images/kibana-2.png b/versioned_docs/version-2.16.0/guides/images/kibana-2.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/images/kibana-2.png rename to versioned_docs/version-2.16.0/guides/images/kibana-2.png diff --git a/versioned_docs/version-2.15.0/guides/images/kibana-3.png b/versioned_docs/version-2.16.0/guides/images/kibana-3.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/images/kibana-3.png rename to versioned_docs/version-2.16.0/guides/images/kibana-3.png diff --git a/versioned_docs/version-2.15.0/guides/images/kibana-4.png b/versioned_docs/version-2.16.0/guides/images/kibana-4.png similarity index 100% rename from versioned_docs/version-2.15.0/guides/images/kibana-4.png rename to versioned_docs/version-2.16.0/guides/images/kibana-4.png diff --git a/versioned_docs/version-2.16.0/guides/images/movie-app.png b/versioned_docs/version-2.16.0/guides/images/movie-app.png new file mode 100644 index 0000000000000000000000000000000000000000..5c461fd011bc23be8b5cabfc1e2c88b34437ae43 GIT binary patch literal 65320 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 miUaA#O5dK=5 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 hzw)X7n}FdngH`Na#G