From 32371e1a56e1e390c7d4f3044f123c2efe4c79bf Mon Sep 17 00:00:00 2001 From: David Pine Date: Thu, 20 Mar 2025 13:32:45 -0500 Subject: [PATCH 1/9] Initial setup --- docs/fundamentals/custom-resource-commands.md | 3 +- docs/fundamentals/http-commands.md | 94 +++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 docs/fundamentals/http-commands.md diff --git a/docs/fundamentals/custom-resource-commands.md b/docs/fundamentals/custom-resource-commands.md index d6ee2ea78f..81bf51c2a7 100644 --- a/docs/fundamentals/custom-resource-commands.md +++ b/docs/fundamentals/custom-resource-commands.md @@ -124,5 +124,6 @@ Select the **Clear cache** command to clear the cache of the Redis resource. The ## See also -- [.NET Aspire orchestration overview](app-host-overview.md) +- [Custom HTTP commands in .NET Aspire](http-commands.md) - [.NET Aspire dashboard: Resource submenu actions](dashboard/explore.md#resource-submenu-actions) +- [.NET Aspire orchestration overview](app-host-overview.md) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md new file mode 100644 index 0000000000..097b115508 --- /dev/null +++ b/docs/fundamentals/http-commands.md @@ -0,0 +1,94 @@ +--- +title: Custom HTTP commands in .NET Aspire +description: Learn how to create custom HTTP commands in .NET Aspire. +ms.date: 03/20/2025 +ms.topic: how-to +--- + +# Custom HTTP commands in .NET Aspire + +In .NET Aspire, you can add custom HTTP commands to resources using the `WithHttpCommand` API. This API extends existing functionality, where you can provide [custom resource commands](custom-resource-commands.md). This feature enables a command on a resource that sends an HTTP request to the specified endpoint and path. This is useful for scenarios such as triggering database migrations, clearing caches, or performing custom actions on resources through HTTP requests. + +## Add HTTP commands to a resource + +The available APIs provide extensive capabilities with numerous parameters to customize the HTTP command. To add an HTTP command to a resource, use the `WithHttpCommand` extension method on the resource builder. There are two overloads available: + + + +```csharp +public static IResourceBuilder WithHttpCommand( + this IResourceBuilder builder, + string path, + string displayName, + [EndpointName] string? endpointName = null, + HttpMethod? method = null, + string? httpClientName = null, + Func? configureRequest = null, + Func>? getCommandResult = null, + string? commandName = null, + Func? updateState = null, + string? displayDescription = null, + string? confirmationMessage = null, + string? iconName = null, + IconVariant? iconVariant = null, + bool isHighlighted = false) + where TResource : IResourceWithEndpoints; +``` + +The parameters are defined as follows: + +- `path`: The relative path for the HTTP request. +- `displayName`: The name displayed in the [.NET Aspire dashboard](dashboard/overview.md). +- `endpointName`: (Optional) The name of the endpoint to use for the HTTP request. +- `method`: (Optional) The HTTP method to use (defaults to ). +- `httpClientName`: (Optional) The name of the HTTP client to use when creating it via . +- `configureRequest`: (Optional) A callback to be invoked to configure the HTTP request before it is sent. +- `getCommandResult`: (Optional) A callback to be invoked after the HTTP response is received to determine the result of the command invocation. +- `commandName`: (Optional) The unique identifier for the command. +- `updateState`: (Optional) A callback that is used to update the command state. The callback is executed when the command's resource snapshot is updated. By default, the command is enabled when the resource is . +- `displayDescription`: (Optional) A description displayed in the dashboard. Could be used as a tooltip and might be localized. +- `confirmationMessage`: (Optional) When a confirmation message is specified, the UI prompts the user to confirm the execution of the command with an Ok/Cancel dialog. +- `iconName`: (Optional) The name of the icon to display in the dashboard. The icon is optional, but when you do provide it, it should be a valid [Fluent UI Blazor icon name](https://www.fluentui-blazor.net/Icon#explorer). +- `iconVariant`: (Optional) The variant of the icon to display in the dashboard, valid options are `Regular` (default) or `Filled`. +- `isHighlighted`: (Optional) Indicates whether the command is highlighted in the dashboard. + +```csharp +public static IResourceBuilder WithHttpCommand( + this IResourceBuilder builder, + string path, + string displayName, + Func? endpointSelector, + HttpMethod? method = null, + string? httpClientName = null, + Func? configureRequest = null, + Func>? getCommandResult = null, + string? commandName = null, + Func? updateState = null, + string? displayDescription = null, + string? confirmationMessage = null, + string? iconName = null, + IconVariant? iconVariant = null, + bool isHighlighted = false) + where TResource : IResourceWithEndpoints; +``` + +The parameters are defined as follows: + +- `path`: The relative path for the HTTP request. +- `displayName`: The name displayed in the [.NET Aspire dashboard](dashboard/overview.md). +- `endpointSelector`: (Optional) A callback that selects the HTTP endpoint to send the request to when the command is invoked. +- `method`: (Optional) The HTTP method to use (defaults to ). +- `httpClientName`: (Optional) The name of the HTTP client to use when creating it via . +- `configureRequest`: (Optional) A callback to be invoked to configure the HTTP request before it is sent. +- `getCommandResult`: (Optional) A callback to be invoked after the HTTP response is received to determine the result of the command invocation. +- `commandName`: (Optional) The unique identifier for the command. +- `updateState`: (Optional) A callback that is used to update the command state. The callback is executed when the command's resource snapshot is updated. By default, the command is enabled when the resource is . +- `displayDescription`: (Optional) A description displayed in the dashboard. Could be used as a tooltip and might be localized. +- `confirmationMessage`: (Optional) When a confirmation message is specified, the UI prompts the user to confirm the execution of the command with an Ok/Cancel dialog. +- `iconName`: (Optional) The name of the icon to display in the dashboard. The icon is optional, but when you do provide it, it should be a valid [Fluent UI Blazor icon name](https://www.fluentui-blazor.net/Icon#explorer). +- `iconVariant`: (Optional) The variant of the icon to display in the dashboard, valid options are `Regular` (default) or `Filled`. +- `isHighlighted`: (Optional) Indicates whether the command is highlighted in the dashboard. + +## See also + +- [Custom resource commands in .NET Aspire](custom-resource-commands.md) From adb35e27af8a66f535821ff6e04229b3f894aa80 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 24 Mar 2025 13:01:29 -0500 Subject: [PATCH 2/9] Rework HTTP command content with an example --- docs/fundamentals/http-commands.md | 142 ++++++++---------- .../AspireApp/AspireApp.Api/AppJsonContext.cs | 8 + .../AspireApp.Api/AspireApp.Api.csproj | 22 +++ .../AspireApp.Api/AspireApp.Api.http | 6 + .../AspireApp/AspireApp.Api/ICacheService.cs | 13 ++ .../AspireApp/AspireApp.Api/Product.cs | 3 + .../AspireApp/AspireApp.Api/Products.cs | 11 ++ .../AspireApp/AspireApp.Api/Program.cs | 81 ++++++++++ .../Properties/launchSettings.json | 31 ++++ .../AspireApp.Api/RedisCacheService.cs | 52 +++++++ .../appsettings.Development.json | 8 + .../AspireApp/AspireApp.Api/appsettings.json | 9 ++ .../AspireApp.AppHost.csproj | 24 +++ .../AspireApp/AspireApp.AppHost/Program.cs | 34 +++++ .../Properties/launchSettings.json | 29 ++++ .../appsettings.Development.json | 8 + .../AspireApp.AppHost/appsettings.json | 9 ++ .../http-commands/AspireApp/AspireApp.sln | 30 ++++ 18 files changed, 444 insertions(+), 76 deletions(-) create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AppJsonContext.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.http create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/ICacheService.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Product.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Products.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Program.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Properties/launchSettings.json create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/RedisCacheService.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.Development.json create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.json create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Properties/launchSettings.json create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.Development.json create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.json create mode 100644 docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.sln diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index 097b115508..49c40a2a0b 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -1,93 +1,83 @@ --- title: Custom HTTP commands in .NET Aspire description: Learn how to create custom HTTP commands in .NET Aspire. -ms.date: 03/20/2025 +ms.date: 03/24/2025 ms.topic: how-to --- # Custom HTTP commands in .NET Aspire -In .NET Aspire, you can add custom HTTP commands to resources using the `WithHttpCommand` API. This API extends existing functionality, where you can provide [custom resource commands](custom-resource-commands.md). This feature enables a command on a resource that sends an HTTP request to the specified endpoint and path. This is useful for scenarios such as triggering database migrations, clearing caches, or performing custom actions on resources through HTTP requests. +In .NET Aspire, you can add custom HTTP commands to resources using the `WithHttpCommand` API. This API extends existing functionality, where you provide [custom commands on resources](custom-resource-commands.md). This feature enables a command on a resource that sends an HTTP request to a specified endpoint and path. This is useful for scenarios such as triggering database migrations, clearing caches, or performing custom actions on resources through HTTP requests. -## Add HTTP commands to a resource +To implement custom HTTP commands, you define a command on a resource and a corresponding HTTP endpoint that handles the request. This article provides an overview of how to create and configure custom HTTP commands in .NET Aspire. + +## HTTP command APIs The available APIs provide extensive capabilities with numerous parameters to customize the HTTP command. To add an HTTP command to a resource, use the `WithHttpCommand` extension method on the resource builder. There are two overloads available: -```csharp -public static IResourceBuilder WithHttpCommand( - this IResourceBuilder builder, - string path, - string displayName, - [EndpointName] string? endpointName = null, - HttpMethod? method = null, - string? httpClientName = null, - Func? configureRequest = null, - Func>? getCommandResult = null, - string? commandName = null, - Func? updateState = null, - string? displayDescription = null, - string? confirmationMessage = null, - string? iconName = null, - IconVariant? iconVariant = null, - bool isHighlighted = false) - where TResource : IResourceWithEndpoints; -``` - -The parameters are defined as follows: - -- `path`: The relative path for the HTTP request. -- `displayName`: The name displayed in the [.NET Aspire dashboard](dashboard/overview.md). -- `endpointName`: (Optional) The name of the endpoint to use for the HTTP request. -- `method`: (Optional) The HTTP method to use (defaults to ). -- `httpClientName`: (Optional) The name of the HTTP client to use when creating it via . -- `configureRequest`: (Optional) A callback to be invoked to configure the HTTP request before it is sent. -- `getCommandResult`: (Optional) A callback to be invoked after the HTTP response is received to determine the result of the command invocation. -- `commandName`: (Optional) The unique identifier for the command. -- `updateState`: (Optional) A callback that is used to update the command state. The callback is executed when the command's resource snapshot is updated. By default, the command is enabled when the resource is . -- `displayDescription`: (Optional) A description displayed in the dashboard. Could be used as a tooltip and might be localized. -- `confirmationMessage`: (Optional) When a confirmation message is specified, the UI prompts the user to confirm the execution of the command with an Ok/Cancel dialog. -- `iconName`: (Optional) The name of the icon to display in the dashboard. The icon is optional, but when you do provide it, it should be a valid [Fluent UI Blazor icon name](https://www.fluentui-blazor.net/Icon#explorer). -- `iconVariant`: (Optional) The variant of the icon to display in the dashboard, valid options are `Regular` (default) or `Filled`. -- `isHighlighted`: (Optional) Indicates whether the command is highlighted in the dashboard. - -```csharp -public static IResourceBuilder WithHttpCommand( - this IResourceBuilder builder, - string path, - string displayName, - Func? endpointSelector, - HttpMethod? method = null, - string? httpClientName = null, - Func? configureRequest = null, - Func>? getCommandResult = null, - string? commandName = null, - Func? updateState = null, - string? displayDescription = null, - string? confirmationMessage = null, - string? iconName = null, - IconVariant? iconVariant = null, - bool isHighlighted = false) - where TResource : IResourceWithEndpoints; -``` - -The parameters are defined as follows: - -- `path`: The relative path for the HTTP request. -- `displayName`: The name displayed in the [.NET Aspire dashboard](dashboard/overview.md). -- `endpointSelector`: (Optional) A callback that selects the HTTP endpoint to send the request to when the command is invoked. -- `method`: (Optional) The HTTP method to use (defaults to ). -- `httpClientName`: (Optional) The name of the HTTP client to use when creating it via . -- `configureRequest`: (Optional) A callback to be invoked to configure the HTTP request before it is sent. -- `getCommandResult`: (Optional) A callback to be invoked after the HTTP response is received to determine the result of the command invocation. -- `commandName`: (Optional) The unique identifier for the command. -- `updateState`: (Optional) A callback that is used to update the command state. The callback is executed when the command's resource snapshot is updated. By default, the command is enabled when the resource is . -- `displayDescription`: (Optional) A description displayed in the dashboard. Could be used as a tooltip and might be localized. -- `confirmationMessage`: (Optional) When a confirmation message is specified, the UI prompts the user to confirm the execution of the command with an Ok/Cancel dialog. -- `iconName`: (Optional) The name of the icon to display in the dashboard. The icon is optional, but when you do provide it, it should be a valid [Fluent UI Blazor icon name](https://www.fluentui-blazor.net/Icon#explorer). -- `iconVariant`: (Optional) The variant of the icon to display in the dashboard, valid options are `Regular` (default) or `Filled`. -- `isHighlighted`: (Optional) Indicates whether the command is highlighted in the dashboard. +The `WithHttpCommand` API provides two overloads to add custom HTTP commands to resources in .NET Aspire. These APIs are designed to offer flexibility and cater to different use cases when defining HTTP commands. + +1. **Overload with `endpointName`:** + + This version is ideal when you have a predefined endpoint name that the HTTP command should target. It simplifies the configuration by directly associating the command with a specific endpoint. This is useful in scenarios where the endpoint is static and well-known during development. + +1. **Overload with `endpointSelector`:** + + This version provides more dynamic behavior by allowing you to specify a callback (`endpointSelector`) to determine the endpoint at runtime. This is useful when the endpoint might vary based on the resource's state or other contextual factors. It offers greater flexibility for advanced scenarios where the endpoint can't be hardcoded. + +Both overloads allow you to customize the HTTP command extensively, including specifying the HTTP method, configure the request, handling the response, and define UI-related properties like display name, description, and icons. The choice between the two depends on whether the endpoint is static or dynamic in your use case. + +These APIs are designed to integrate seamlessly with the .NET Aspire ecosystem, enabling developers to extend resource functionality with minimal effort while maintaining control over the behavior and presentation of the commands. + +## Considerations when registering HTTP commands + +Since HTTP commands are exposed as HTTP endpoints on a resource, you should consider potential security implications. It might be best to only expose the HTTP endpoints in development or staging environments. Likewise, you should validate all requests to the HTTP command endpoint to ensure they're coming from a trusted source. + +You can use the `configureRequest` callback to add authentication headers or other security measures to the request. One common approach is to use a shared secret, [external parameter](external-parameters.md), or token that is known only to the resource in the app host. The app host code can provide that shared value to the resource explicitly so it can be used to validate the request. This helps to prevent unauthorized access to the HTTP command. + +## Add a custom HTTP command + +In your app host _Program.cs_ file, you can add a custom HTTP command to a resource using the `WithHttpCommand` API. Here's an example of how to do this: + +:::code source="snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs"::: + +The preceding code: + +- Creates a new distributed application builder. +- Adds a [Redis cache](../caching/stackexchange-redis-integration.md) named `cache` to the application. +- Adds a parameter named `ApiCacheInvalidationKey` to the application. This parameter is marked as a secret, meaning its value will be treated securely. +- Adds a project named `AspireApp_Api` to the application. +- Adds a reference to the Redis cache and [waits for it to be ready before proceeding](app-host-overview.md#waiting-for-resources). +- Configures an HTTP command for the project with the following properties: + - **Path**: Specifies the URL path for the HTTP command (`/cache/invalidate`). + - **Display Name**: Sets the name of the command as it appears in the UI (`Invalidate cache`). + - **Display Description**: Provides a description of the command that will be shown in the UI. + - **Configure Request**: A callback function that configures the HTTP request before it's sent. In this case, it adds a custom header (`X-CacheInvalidation-Key`) with the value of the `ApiCacheInvalidationKey` parameter. + - **Icon Name**: Specifies the icon to be used for the command in the UI (`DocumentLightningFilled`). + - **Is Highlighted**: Indicates whether the command should be highlighted in the UI. +- The `configureRequest` callback is used to add a custom header to the HTTP request. In this case, it adds an `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. +- The `Task.CompletedTask` is returned to indicate that the request configuration is complete. +- Finally, the application is built and run. + +The HTTP endpoint is responsible for invalidating the cache. When the command is executed, it sends an HTTP request to the specified path (`/cache/invalidate`) with the configured parameters. Since there's an added security measure, the request will include the `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. This ensures that only authorized requests can trigger the cache invalidation process. + +### Example HTTP endpoint + +The preceding app host code snippet defined a custom HTTP command that sends a request to the `/cache/invalidate` endpoint. The ASP.NET Core minimal API project defines an HTTP endpoint that handles the cache invalidation request. Consider the following code snippet from the project's _Program.cs_ file: + +:::code source="snippets/http-commands/AspireApp/AspireApp.Api/Program.cs" id="post"::: + +The preceding code: + +- Assumes that the `app` variable is an instance of and is set up to handle HTTP requests. +- Maps an HTTP POST endpoint at the path `/cache/invalidate`. +- The endpoint expects a header named `X-CacheInvalidation-Key` to be present in the request. +- It retrieves the value of the `ApiCacheInvalidationKey` parameter from the configuration. +- If the header value doesn't match the expected key, it returns an unauthorized response. +- If the header is valid, it calls the `ClearAllAsync` method on the `ICacheService` to clear all cached items. +- Finally, it returns an HTTP OK response. ## See also diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AppJsonContext.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AppJsonContext.cs new file mode 100644 index 0000000000..8c332da5b4 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AppJsonContext.cs @@ -0,0 +1,8 @@ +using System.Text.Json.Serialization; + +namespace AspireApp.Api; + +[JsonSerializable(typeof(Product))] +[JsonSerializable(typeof(Product[]))] +public partial class AppJsonContext : JsonSerializerContext; + diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj new file mode 100644 index 0000000000..510c7efbfc --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj @@ -0,0 +1,22 @@ + + + + net9.0 + enable + enable + True + mcr.microsoft.com/dotnet/aspnet:9.0 + e0e06cf4-582d-4892-a64f-05ee5544080c + + + + + + + + + + + + + diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.http b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.http new file mode 100644 index 0000000000..7727715d4b --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.http @@ -0,0 +1,6 @@ +@AspireApp.Api_HostAddress = http://localhost:5290 + +GET {{AspireApp.Api_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/ICacheService.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/ICacheService.cs new file mode 100644 index 0000000000..60fa970afa --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/ICacheService.cs @@ -0,0 +1,13 @@ +using System.Text.Json.Serialization.Metadata; + +namespace AspireApp.Api; + +public interface ICacheService +{ + Task GetAsync(string key, JsonTypeInfo jsonTypeInfo); + Task SetAsync(string key, T value, JsonTypeInfo jsonTypeInfo, TimeSpan? absoluteExpiration = null); + Task RemoveAsync(string key); + IAsyncEnumerable GetRegisteredKeysAsync(); + Task ClearAllAsync(); +} + diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Product.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Product.cs new file mode 100644 index 0000000000..9266d7aaf1 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Product.cs @@ -0,0 +1,3 @@ +namespace AspireApp.Api; + +public sealed record Product(int Id, string Name, decimal Price); diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Products.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Products.cs new file mode 100644 index 0000000000..627fb0ff14 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Products.cs @@ -0,0 +1,11 @@ +namespace AspireApp.Api; + +internal static class Products +{ + public static readonly Product[] DefaultProducts = + [ + new (1, "Laptop", 999.99m), + new (2, "Keyboard", 49.99m), + new (3, "Mouse", 24.99m), + ]; +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Program.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Program.cs new file mode 100644 index 0000000000..4e10c51e23 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Program.cs @@ -0,0 +1,81 @@ +using AspireApp.Api; +using Microsoft.AspNetCore.Mvc; +using Scalar.AspNetCore; + +var builder = WebApplication.CreateBuilder(args); + +builder.AddRedisDistributedCache(connectionName: "cache"); + +builder.Services.AddScoped(); + +if (builder.Environment.IsDevelopment()) +{ + builder.Services.AddCors(options => + { + options.AddPolicy("AllowAll", policy => + { + policy.AllowAnyOrigin() // Allow requests from any origin + .AllowAnyHeader() // Allow any headers in requests + .AllowAnyMethod(); // Allow any HTTP methods (GET, POST, etc.) + }); + }); +} + +// Add services to the container. +// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseCors("AllowAll"); + + app.MapOpenApi(); + app.MapScalarApiReference(); + + // + app.MapPost("/cache/invalidate", static async ( + [FromHeader(Name = "X-CacheInvalidation-Key")] string? header, + ICacheService registry, + IConfiguration config) => + { + var hasValidHeader = config.GetValue("ApiCacheInvalidationKey") is { } key + && header == $"Key: {key}"; + + if (hasValidHeader is false) + { + return Results.Unauthorized(); + } + + await registry.ClearAllAsync(); + + return Results.Ok(); + }); + // +} + +app.UseHttpsRedirection(); + +app.MapGet("/api/products/{id:int}", async (string id, ICacheService cache) => +{ + var product = await cache.GetAsync($"product:{id}", AppJsonContext.Default.Product); + + IResult result = product is null ? Results.NotFound() : Results.Ok(product); + + return result; +}); + +app.Lifetime.ApplicationStarted.Register(async () => +{ + using var scope = app.Services.CreateScope(); + var cache = scope.ServiceProvider.GetRequiredService(); + + foreach (var product in Products.DefaultProducts) + { + await cache.SetAsync($"product:{product.Id}", product, AppJsonContext.Default.Product); + } +}); + +app.Run(); diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Properties/launchSettings.json b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Properties/launchSettings.json new file mode 100644 index 0000000000..169efa4d5b --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "profiles": { + "http": { + "commandName": "Project", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5290" + }, + "https": { + "commandName": "Project", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7056;http://localhost:5290" + }, + "Container (.NET SDK)": { + "commandName": "SdkContainer", + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", + "environmentVariables": { + "ASPNETCORE_HTTPS_PORTS": "8081", + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "https://json.schemastore.org/launchsettings.json" +} \ No newline at end of file diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/RedisCacheService.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/RedisCacheService.cs new file mode 100644 index 0000000000..477515fe2d --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/RedisCacheService.cs @@ -0,0 +1,52 @@ +using StackExchange.Redis; +using System.Text.Json; +using System.Text.Json.Serialization.Metadata; + +namespace AspireApp.Api; + +public sealed class RedisCacheService(IConnectionMultiplexer connection) : ICacheService +{ + private readonly IDatabase _db = connection.GetDatabase(); + private const string RegistryKey = "cache:registry"; + + public async Task GetAsync(string key, JsonTypeInfo jsonTypeInfo) + { + var value = await _db.StringGetAsync(key); + + return value.IsNullOrEmpty ? default : JsonSerializer.Deserialize(value!, jsonTypeInfo); + } + + public async Task SetAsync(string key, T value, JsonTypeInfo jsonTypeInfo, TimeSpan? absoluteExpiration = null) + { + var json = JsonSerializer.Serialize(value, jsonTypeInfo); + + await _db.StringSetAsync(key, json, absoluteExpiration ?? TimeSpan.FromMinutes(5)); + await _db.SetAddAsync(RegistryKey, key); + } + + public async Task RemoveAsync(string key) + { + await _db.KeyDeleteAsync(key); + await _db.SetRemoveAsync(RegistryKey, key); + } + + public async IAsyncEnumerable GetRegisteredKeysAsync() + { + var keys = await _db.SetMembersAsync(RegistryKey); + + foreach (var key in keys) + { + yield return key.ToString(); + } + } + + public async Task ClearAllAsync() + { + await foreach (var key in GetRegisteredKeysAsync()) + { + await _db.KeyDeleteAsync(key); + } + + await _db.KeyDeleteAsync(RegistryKey); + } +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.Development.json b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.Development.json new file mode 100644 index 0000000000..0c208ae918 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.json b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.json new file mode 100644 index 0000000000..10f68b8c8b --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj new file mode 100644 index 0000000000..902c3f9535 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -0,0 +1,24 @@ + + + + + + Exe + net9.0 + enable + enable + true + da41f190-8f5d-494c-a2e8-05e2d09bba4b + + + + + + + + + + + + + diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs new file mode 100644 index 0000000000..862e922db8 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs @@ -0,0 +1,34 @@ +using Microsoft.Extensions.DependencyInjection; + +var builder = DistributedApplication.CreateBuilder(args); + +// TODO: Delete when bug is fixed +// https://github.com/dotnet/aspire/issues/8270 +builder.Services.AddHttpClient(); + +var cache = builder.AddRedis("cache"); + +var apiCacheInvalidationKey = builder.AddParameter("ApiCacheInvalidationKey", secret: true); + +var api = builder.AddProject("api") + .WithReference(cache) + .WaitFor(cache) + .WithEnvironment("ApiCacheInvalidationKey", apiCacheInvalidationKey) + .WithHttpCommand( + path: "/cache/invalidate", + displayName: "Invalidate cache", + displayDescription: """ + Invalidates the API cache. All cached values are cleared! + """, + configureRequest: (context) => + { + var key = apiCacheInvalidationKey.Resource.Value; + + context.Request.Headers.Add("X-CacheInvalidation-Key", $"Key: {key}"); + + return Task.CompletedTask; + }, + iconName: "DocumentLightning", + isHighlighted: false); + +builder.Build().Run(); diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Properties/launchSettings.json b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Properties/launchSettings.json new file mode 100644 index 0000000000..4e05a211e8 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Properties/launchSettings.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:17028;http://localhost:15219", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21270", + "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22132" + } + }, + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:15219", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "DOTNET_ENVIRONMENT": "Development", + "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19122", + "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20186" + } + } + } +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.Development.json b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.Development.json new file mode 100644 index 0000000000..0c208ae918 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.json b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.json new file mode 100644 index 0000000000..31c092aa45 --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Aspire.Hosting.Dcp": "Warning" + } + } +} diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.sln b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.sln new file mode 100644 index 0000000000..545ab0154e --- /dev/null +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.sln @@ -0,0 +1,30 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.35806.103 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspireApp.AppHost", "AspireApp.AppHost\AspireApp.AppHost.csproj", "{3E85BCA2-E8A4-4545-B335-45D4FB37A9D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspireApp.Api", "AspireApp.Api\AspireApp.Api.csproj", "{C90FC13B-ECF7-2893-B9BD-49165768EE28}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3E85BCA2-E8A4-4545-B335-45D4FB37A9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E85BCA2-E8A4-4545-B335-45D4FB37A9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E85BCA2-E8A4-4545-B335-45D4FB37A9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E85BCA2-E8A4-4545-B335-45D4FB37A9D4}.Release|Any CPU.Build.0 = Release|Any CPU + {C90FC13B-ECF7-2893-B9BD-49165768EE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C90FC13B-ECF7-2893-B9BD-49165768EE28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C90FC13B-ECF7-2893-B9BD-49165768EE28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C90FC13B-ECF7-2893-B9BD-49165768EE28}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {71BDF2AB-F354-4B61-AF34-E68BB6B32F1C} + EndGlobalSection +EndGlobal From 32038565da82bfa9666868ec7deaa951d727ad3e Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 24 Mar 2025 13:37:53 -0500 Subject: [PATCH 3/9] Add images and more details. --- docs/fundamentals/http-commands.md | 40 +++++++++++++----- .../media/custom-http-command-highlighted.png | Bin 0 -> 59234 bytes .../media/custom-http-command-starting.png | Bin 0 -> 63549 bytes .../media/custom-http-command-succeeded.png | Bin 0 -> 63404 bytes .../media/custom-http-command.png | Bin 0 -> 68923 bytes docs/toc.yml | 8 +++- 6 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 docs/fundamentals/media/custom-http-command-highlighted.png create mode 100644 docs/fundamentals/media/custom-http-command-starting.png create mode 100644 docs/fundamentals/media/custom-http-command-succeeded.png create mode 100644 docs/fundamentals/media/custom-http-command.png diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index 49c40a2a0b..766da64383 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -33,13 +33,13 @@ These APIs are designed to integrate seamlessly with the .NET Aspire ecosystem, ## Considerations when registering HTTP commands -Since HTTP commands are exposed as HTTP endpoints on a resource, you should consider potential security implications. It might be best to only expose the HTTP endpoints in development or staging environments. Likewise, you should validate all requests to the HTTP command endpoint to ensure they're coming from a trusted source. +Since HTTP commands are exposed as HTTP endpoints on a resource, you should consider potential security implications. It might be best to only expose these command-centric HTTP endpoints in development or staging environments. Likewise, you should validate all requests to the HTTP command endpoint, to ensure they're coming from a trusted source. You can use the `configureRequest` callback to add authentication headers or other security measures to the request. One common approach is to use a shared secret, [external parameter](external-parameters.md), or token that is known only to the resource in the app host. The app host code can provide that shared value to the resource explicitly so it can be used to validate the request. This helps to prevent unauthorized access to the HTTP command. ## Add a custom HTTP command -In your app host _Program.cs_ file, you can add a custom HTTP command to a resource using the `WithHttpCommand` API. Here's an example of how to do this: +In your app host _Program.cs_ file, you add a custom HTTP command using the `WithHttpCommand` API on an where `T` is an . Here's an example of how to do this: :::code source="snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs"::: @@ -47,21 +47,21 @@ The preceding code: - Creates a new distributed application builder. - Adds a [Redis cache](../caching/stackexchange-redis-integration.md) named `cache` to the application. -- Adds a parameter named `ApiCacheInvalidationKey` to the application. This parameter is marked as a secret, meaning its value will be treated securely. +- Adds a parameter named `ApiCacheInvalidationKey` to the application. This parameter is marked as a secret, meaning its value is treated securely. - Adds a project named `AspireApp_Api` to the application. - Adds a reference to the Redis cache and [waits for it to be ready before proceeding](app-host-overview.md#waiting-for-resources). - Configures an HTTP command for the project with the following properties: - - **Path**: Specifies the URL path for the HTTP command (`/cache/invalidate`). - - **Display Name**: Sets the name of the command as it appears in the UI (`Invalidate cache`). - - **Display Description**: Provides a description of the command that will be shown in the UI. - - **Configure Request**: A callback function that configures the HTTP request before it's sent. In this case, it adds a custom header (`X-CacheInvalidation-Key`) with the value of the `ApiCacheInvalidationKey` parameter. - - **Icon Name**: Specifies the icon to be used for the command in the UI (`DocumentLightningFilled`). - - **Is Highlighted**: Indicates whether the command should be highlighted in the UI. + - `path`: Specifies the URL path for the HTTP command (`/cache/invalidate`). + - `displayName`: Sets the name of the command as it appears in the UI (`Invalidate cache`). + - `displayDescription`: Provides a description of the command that's shown in the UI. + - `configureRequest`: A callback function that configures the HTTP request before sending it. In this case, it adds a custom (`X-CacheInvalidation-Key`) header with the value of the `ApiCacheInvalidationKey` parameter. + - `iconName`: Specifies the icon to be used for the command in the UI (`DocumentLightningFilled`). + - `isHighlighted`: Indicates whether the command should be highlighted in the UI. - The `configureRequest` callback is used to add a custom header to the HTTP request. In this case, it adds an `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. -- The `Task.CompletedTask` is returned to indicate that the request configuration is complete. +- The is returned to indicate that the request configuration is complete. - Finally, the application is built and run. -The HTTP endpoint is responsible for invalidating the cache. When the command is executed, it sends an HTTP request to the specified path (`/cache/invalidate`) with the configured parameters. Since there's an added security measure, the request will include the `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. This ensures that only authorized requests can trigger the cache invalidation process. +The HTTP endpoint is responsible for invalidating the cache. When the command is executed, it sends an HTTP request to the specified path (`/cache/invalidate`) with the configured parameters. Since there's an added security measure, the request includes the `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. This ensures that only authorized requests can trigger the cache invalidation process. ### Example HTTP endpoint @@ -79,6 +79,24 @@ The preceding code: - If the header is valid, it calls the `ClearAllAsync` method on the `ICacheService` to clear all cached items. - Finally, it returns an HTTP OK response. +### Example dashboard experiences + +The sample app host and corresponding ASP.NET Core minimal API projects demonstrate both sides of the HTTP command implementation. When you run the app host, the dashboard's **Resources** page displays the custom HTTP command as a button. When you specify that the command should be highlighted (`isHighlighted: true`), the button appears on the **Actions** column of the **Resources** page. This allows users to easily trigger the command from the dashboard, as shown in the following screenshot: + +:::image type="content" source="media/custom-http-command-highlighted.png" lightbox="media/custom-http-command-highlighted.png" alt-text=".NET Aspire dashboard: Resources page showing a highlighted custom HTTP command."::: + +If you're to ignore the `isHighlighted` property, or set it to `false`, the command appears nested under the horizontal ellipsis menu (three dots) in the **Actions** column of the **Resources** page. This allows users to access the command without cluttering the UI with too many buttons. The following screenshot shows the same command appearing in the ellipsis menu: + +:::image type="content" source="media/custom-http-command.png" lightbox="media/custom-http-command.png" alt-text=".NET Aspire dashboard: Resources page showing a custom HTTP command in the ellipsis menu."::: + +When the user clicks the button, the command is executed, and the HTTP request is sent to the specified endpoint. The dashboard provides feedback on the command's execution status, allowing users to monitor the results. When it's starting, a toast notification appears: + +:::image type="content" source="media/custom-http-command-starting.png" lightbox="media/custom-http-command-starting.png" alt-text=".NET Aspire dashboard: Toast notification showing the custom HTTP command is starting."::: + +When the command completes, the dashboard updates the status and provides feedback on whether it was successful or failed. The following screenshot shows a successful execution of the command: + +:::image type="content" source="media/custom-http-command-succeeded.png" lightbox="media/custom-http-command-succeeded.png" alt-text=".NET Aspire dashboard: Toast notification showing the custom HTTP command succeeded."::: + ## See also - [Custom resource commands in .NET Aspire](custom-resource-commands.md) diff --git a/docs/fundamentals/media/custom-http-command-highlighted.png b/docs/fundamentals/media/custom-http-command-highlighted.png new file mode 100644 index 0000000000000000000000000000000000000000..e6bd6d4dace70011c95d27a00b42aa45c63e6775 GIT binary patch literal 59234 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

C5 zoNR)CB>J3qt?wLB_dr}15%<&ONB;qDUNl{XhB|qP7L_*UyzFQIpyUp|d;s!$yfO3; z*>WEPKv0zlZQW*QStnm-ef~@~x7#y$gX3=Ob}RmOfii zSA(RP2xi>Na>yCVB32JUyPXkkLt-7sV``SqC^kgnWgjRcbYY5OP0U8b>MS0^D9?eD z`X66_JCPyay?I|rqCq;r&Fh3Lwd#{}Cf5cUtxjw@twaiEjiO^Rp*1&3Bh{UL2AaU#J_RiQHFkR(h%b9=Lg=&Q_+=fNdcJ!rbNpR$(8Kgs2bJ8Tv z6kg_|tKY+7`#1l-<)Ga(bZhFt4A6uM3ylnJvq+n1-N=S>mV9+TVWu;nYROCgNyF@v znN9NpWTg70-@x`wLz)L2%%1m1_X z*G0-V@PI{p>$Nm{o2277@%+p=^ta6-W7b5UiVm`$9?i#C*DnDsKi(#g^qd}?{4i_d zN^lLCakFhEG%n%0>ixT*9_V z_q=}P>AAu6-ThU5`7~TK|N2Yn#75C91mPUM*3&tIy~CS`dvit3Y<)yp)~}66mLGa$ z%H$xHL!y_#E$bZn!rBdWW7sg8Z)Ojl!IhFRj)Q-(1R;c7=@oC5AuQ~iYt@wN)Ov*lsvHbm`1HQ(p)~rx; z+4j@djViYGS{C!@LGlgadh5x%kaKa~E;{g!J$d-I#%AzJGC>tLr)rS(FvN3kFVokh zLbF&kS0}WvID}0=tO}MW5(91C&LBIJ_opfD6N@VI;?HNk0)F+#&xw8c3o8%O`-5Oa zfC6k*+9#Mb<=(%h-Le`O&a2`hyRI|m*mG>CzS%z<+d`{1?@`fiVF)+iZJUlsa6t~$ z=2#CK05VT4O(Jf53S)NyTw5a&CGAMp=~FE^eeD!IRBNL)wDSULuaGyvI(4*GbtT8q zp)@Y|gR(2@dkxd}#nhux?Wi&;@UquX?Dc`>QZrPuxw4JWxW6*{o2aH@OM=pdw_UVq zK&#^%*sKj%``yzlzx?_=Q}tY2&V$moIR)Zz@!;5V+N9Py-@Z`q>lXV0-vm z)xd_?6AtD#pD%u*GWT5PTL2M}_rJqLU_~y0F4iA`L2U0EyPM+x(R8Oh#PG4>2 zxLpZgyYWwMu1z&6$5K#y2y`ALT~5CUNEHar&&~%;sDL7>u!OWKhtHpq;x)q(4fbprPw2g3N!U8=MkjqIcr*g|_w<)Flz;j(NMjsuWM*vC&X4eiGr zLM0X0nj(vhE5!Lg?+oZtO=xAmsB2Gv*E3%}d8$A3-~d)%Uv{2;rlZVZQ0?nlduv0{ z^&(NxIxhqJU;HSRdI)Vqm5nNh4HPGLlQ4J1T(grCayvhnrW36>&Jj!aHjw$XXo&oJ zhJlzcHPbJ*WvIkT1NM63+z)~%Vb@h%RRVJ{bJ?Aem71Rv%yBBWP4{74<&I5JK?KeV zeRgZZkD@9}h&P>3_3ft%Rof-UBSPl+4x7}Txe0ZG-y4`?D&gr&Y_PENQS3c=ufvah zys3jPeHHpdbaLSNuvyKK;)c<^n`RzKOXF?w)chyRN{I8(Q?)`}(dK5AFg=8c+LkCZ zd*|t04UWE`>C&R>ACwU%%a)__1?r~Zr@E`DI+N(QmyVmv|A6)X+&dPIFjeh8^AvQZC{Nkr`- zf+mDZ^Tl}W@k%=L>R*``6}A`PimXBBd@(*I{gbXj*-0NFrwH36eq()HD751J{M#?9F+Fid^+Kop`4F9xvLrUZ zDU?>Fm>^A8>{9L7yTILR19w6lO$?elmm;KU z@Z@{*E-{a)nvwj0y+bRmsgz)(5R$hixK0HzWWq@X)BM&>oi_erngqJkk~Yvj^RvUN z>EOkfS#yaDa<-KGmh!%5pim^s$q#^B@SI*TwLIP2;;mrwpsEL?vb}07IS!php)RZkx?`J(`)3P3?&!*vToDw@~=sTWTPVuzR63E#i-{KIF@a>)xWWJ9C6ErA-X!v>FPJd&%o)% zbG;v2vW^dZGtR&cvjS##3#GO+uMV}|8CazSr+0}h)OXHJQ*MS~AD27kzK=Tdj37@} z$(?>5*6ZW7wKO))*)M#Hd8S;}*N}8`RW3O~FXRX^K98P`@Y!DU>f`-1v%2*}$<}19 zTqA(tq$6Ecw`PDHflaD@lN5_nHm9hrS+8wQi3$;WR-m!HN0G0We)r&q846<2uf@)^ zDXX&fxyq#NuVlRVxP0o963w5-BwEsxpw^K@Kz(SjV)xavFC&##>zZ$ZDU=!PdENip zTxugX#*HA0jxo^67@>9AGWgq;x<5cG3M7E!a&RxT!jWMkI(@n8$_l=0*oWkCf%|pm zG8C=oA_Qwh51KVtiS~?tBo?Vk2O5kg z;Uor!%x2NsdHH@rlr&F=-DUQ2t{f!VtK%$if34g~D(cF`@_2 zTnt+mPLLqR;rQa^Et{?s%-d}PEjEF?ZCcgY3FaZwtn-j+mkNedJSBYRx?+pK$(Y zf24AZY&2~uTkRH3S_dzeaWU@@H&)et(wEI=ybo%{ovLX|cw&IKT6usYl%UAP%3*1` zp}#(vZFf@28tgkmbwvY8S5DiFw?z%E`gX>Pn4f=l?WM3Jwn$z8l@@t&$wE}*_a-|u z+$fadewmnF*;X(ehhKl^2T^d)LD@bjqSTAzXS%jyY4lYyoy`iC);*7;WCdHg`$K2i z%3Ouce!T8%L2EAZtQEx0_G|L)m%LZxI5$PmQ z36I)>w#5W#5zIEU91a3#MMHmLX>IN%dm$ zM;b{~3gA{JNl!krRJLu`Rm@OE)6CYa!vc-_`MmxM94MVmi27o0xO+BNm zYpA@)xQldk6OE2ZVD+1J9D~#J+bOR$9*BTDr=2Eg!vqsJcs{{=hGgANqs^MSnwQz5 zaoQ0twRq8`qxxImu5gzrPtiuOBd@W3Y9aOdP6xcHB0P1hJcaQsQ9}78JOWuaVX6C7 z#&+PdnyiO{?DS%oOc1Wuv~U@gO(+H?%|VyOve3nxHV|C0#26{+B9g3mRUIypwlVbv zEMBlGU-|8C?ztJM>!MHG?R09it714Az;C-?Dkf`wDLb>Xlo$7tNl+3Hb)0HshE9?3 z=$$q-kHhjGFN|OObT+v!zKKPtk0}#Bwv*)pS*7WmE|YRYq$Ns_qZn5Wrd3w1%WpnL_R2)|X`T(%Q)% zuGCqI(ziRbNR4$wozb!l8jXso8Av$r|U1^IYi2)c9ns9YtNc?;_oXR`!H znp`Oz6>xu@L?vWWBkc#~(o{^tgCafN(|83Ibw90t-bU;T%WX&EG6;$&6WzR3wv^U{ zUgUna2Qv<9*&s@jtrt_%Pku=-*s~QuS4PyIE;b6c& z+7UPN*$p82w5(3Ggs4~#mlZi4Y3QAWJB^z&^_g&%5n~CK`I<&==b4agzt?F5GavL9 ztWT3xB(hZa6OUKcgs`tg9_a4~0KE7kxY{7G9DAsXWmLZ}#wJYYd{icP1-D?~;$n2r zSr7KaVtofrXT96qJ7pR_-Avmk)JHPZazgj(`R-I! z^To-Amni8*BV!`fqRGQ}lidN~n`|>QQZ!JzHG&&zG`CGoz)W|Kgk8 zimL`mUw5M%u9WOU%Fc7i@R}>BFqoI^5L$GPs$;N@9ikZt;WbqWc_Wa(HteMwnt2iF za~`5OIdiRjaTtIkl@agAd$h{dj?}fkZm)YfxUD&Q<5GpooIEEE$!zzDW+|8X5L%z2=HSr5;aN{slbhAMz@=8NROL?#RbLirYR}%zJxW>}J zG`obaanES*O|+sfPnpq)ZNI8?txiY(&hWfPlfm@p$qmV9(0r%^=T7u$b)~cJg+w6R z0M`I(E6>V!xg_z3@QF31b$!MC;LwH`D6a7h46RiVwe>2Q|wTL$3H59qq6B1fV@` zlR}%2A8>M95Qpgst6sxlC6G|!o^ZGzJ&*(6))uFe0qyNVf+?3-DNrjkCG`{ck(`NWt?81Gnke<+` z+kgw_UR{)OFW{B_;mEA;Z#VOM!XzMxkBOTo`a7Wa*uf|jz^MLB@z!(Xfl{1o@R4B_ z7@?=t=SlyY?Qqx}2r2OV)Zj{V>+hmcSalpOotR}|?z zb^>iE@ZCE?Vq)&pm4Qqt554r~4$`mweZ_!3b3=oguFp3U5)-knQ^nv71HIJ0_u%$- z7M_XfeJJB(=_?>dI>9H}f7kM=Y6!1MH{&~y<;G#5_0HGL?Cfj-AR(?p+WYtK&+PF3 z-9PM7i4d;uMfv#{qN1WT`Q)UeZ9urBSOn|88>Y&NwE|jRm(ErNy_?>?58~nDTRdDJ z{$knD-tMqAKp7ey&Zd3w@!yxl8SME>O@L>Td~0iKiS^Z0rY9!8Q!xKW{aqon*e1E| zJ2Qg7=UX4m6B81CFB+lvkN!r*(h`{fg#RkR^dD8go+)sBmq!*AJpyv2^T#|Bao-{F zEB|+oK3XWpNk@+EEp-e|O%(UV2wgP9*q9pdZgNVh1v;3olHR^PoUb(B z?>hM(ZC6#`iF~&L;&>q&yFg^0AbWmwH6HLy>MtkZFEB~1trC5k6#u3`R;;;d z4Cd{yfiF4?&dr6lx3_By#HK;>n2Ie&h${M0h51j~pZ}YvgTedsK#t_IboQ3htbuI_ zFE8PzBmx}vrdMe1L1^z=n^=SiB1De~fka7~Yi7^>d_C$3;J%fRlEUJ`{jmU~SqiHb z;DX*!dlsYCg)A@UwC^S*CLWHVp~*VqZS=(Vb+~?cezOS0?Zq`3{l+xI>!|f!N9K15 zm}o$+2^h|XtD(KzR|d75e0$^vBfvmmq4-LXc<(eKWA_cHU_v`04j9~6JqaxaF8L4K z>37;Uu(a3>i~nm9EL00D1CZzU8w^758~#}&FD~4~LYgDUIxXko=S6}r?JouT0WQyK zvr@eW9UK~;BnUL0Ket_S=Sw&%{)lYR+N^`A!-4Qz6E5hN|pPFuLdjrFrWrStm zrMs2s_+sfn@zJYl8lLW_gOxw+f5_>BztMdBlq?go)q# zPHWt0e|9j93`p*rNDJb@J!{_#%vI$`ihP0&Zpl&*c$cR?Um^s$)d-QCLz6h}6M z%%-TUZB7;ySW%59*emYgMKTycUH7Y9Wq*c?DvRen6kD|q7~A4lbZtf2s@w3k;9XcX zCGK8!ALZK+tUAl6wXKkB%dX3SOc!dE(V*=^y)&cAyv^jkd~xM1Q4`)OOo=bQ9CUo1 z*_D$liD6vHMVD}*w6jxy11>E;?Duh4%{MSKnZKxE zJ?9o?&!?$;#1ZqMr6M`-V;sSW9r?yMy2L&27EjP{Lu;ke$nHG4dywHuvQ+z)7H{t_ z-jC!>iXCh}E*Jc(Mgp!T)TvogZ#Q9k1O9r&OqXWup1yF1l^t@?NjHm1URh3|>L*>vCS3YD5 z&{_QQsGk!cu|4WUUb)-Bw;4Y|K2VtqG5})B@EEqu7_Cr_Aa6}-Wp^^8!%Fb+W!*Z@)MuYLxcr0T!^-_U> z!F%3K(3)RK*N&9wLy*9yyq?pR#s;)j0lR{DJqA7q^Cd+^7V-uOqeASzgr z81h=gI7ouIve@& zepi#9@+WUP@7qt%3l8p|ZH3I>uim!i$vGvji&~2pKC2Td3%x$sRt{;u_hUBq$?KRE z^b}#K4;YK>{bL$WXy(4teJ_79z3Wclv5k8!3tIKl+*Y7Uyh}1I!jWF|Br{c+BJq_S zWk%JfpBP7kGVuzypo#Y@()c_Iuj*A>lFzjiYwDEW)(A#64K-e(ZKIPhavY~``*KZV z&40A;K%o0)*<1M;(cS;b*G(^jO-6zt&*W$T6(h!%u4^QYe=}TQF%fb8xSP#>g7T82 z^=^QEWpZ1WBul75xn<0VH;&z`&d$c8g_Xd!oBYEJ^(SI6AuC8rnJZ62?|}p;(|OW4 zFMkp-(>q{qc$cRwa0T1C-+o6!V^aq`#=hiL=OIrXd8#l3jGX2 zy`aC{%a!6a>)ACj5?N_KtX|$Mto(S}^n}&{4@**7UN4(6zX~JKF`f3MEXln&KQ$d3 zGweFN2h?N{-FGzIrj5iMf|p)WQB^3A5>_u|((etUyoP_7OF#U=q!+DI4?Gc0=(Ngx z7UMN=IYoQKj2C?Z30=;4wVZrt8PY2+vYv0;wUA3S&Z24M&Nu&gmfC$alec11UG7WJ zP}q9B;&5y?Tz|HIm?*&0Q6)gldVSdkEusMnQ(lK?n&RkUh*__I^u!`uw9+6xsH@vm ziMMl`)f@H}A$J9yLwz_=@@<~S5EvVm7nfmDJkz~4>Y z+o>C?q!GjR-3XR#sZ=8SSByaKuPlP0>XVmTqm87z;WTgTF$T*A(Nz?1Bd{yLuB;fq5fSF)?+e^DPtDrSVrL>uUf1lT2)<7oQXYu zV%h;y;lcPsE@lJTq#g97^BjaWSdWp_xN+Nbp!1Cnak^9;>+_`ohv056aJP#E_Z?H+ zh!IWMt><%Jp4N*bfGx{KT|Rw}+^ehLD6^F7oV$CIoT z`^uwO!PGnWZ9(VbTqDK~j6Z-YE;?GgLnQH(=V1mKvDG^ZtK`OVBT)`9!nSXvya{EF zOUb++K#ZVP9pnE* z^-1AZLPs!bw|fxSI-A~@f_^SWIcLh24HM(D*X1>)mTSvc=OA4~^CS!={_fG?3iGb)`=-%{SgLHxstZqjw8)9Pp9RP-QLeWJge+UihAe zuT(20mVEq(kH!rx1=*TYf9%G3p~rT%du9abnpgJMd8e;+epSW{7SN$;C}FaFAicPM zug(*8rFZp$B%I%9!^1R5pJu_IKC9b*@d+iBxQ!e;W`QuiEFk$N`|VRqKh}_T4__uXhgI`_uSNMPNco($ilzwq;qQ+!?5!t;jgr#^54 ze&-vbZ{$r$Vr=Ym3ll4{KTF(p`dS1or{Dcp9q!O$7il0i)zAh`Ytt4e{XGe#b+il+ z#rr~<1%}>50>4NFbQTovyE|ngym_JU93ejfa#Y^_* zqh#M)jk^TH9-T$*P~F33>~8dDn3-6z9y5uF%8OR8>FlmMOqSoW{IrKTS>d@gUhBmXlKho#rS?M5 ze|k~rpoAAVp$t7AqtbeeL{D~F(|F0dhI>`sL6Xq1wtPY9o!j#Fv>(>Y<`ORWNXGNZ zrj;$Oy!IqU2?cb~SG|-yquzU5!*Arg%RrmZ6jC9fL5=>5+Zj`y=AJ z9YI!1XU-x66g||jvQzzqcNu0s-buLRZO?1#D8zNqKyxo0%?G{HIkkE5B^2s880DBF zkCs>RHR-vbw~5@89j$d$x%1{&#@%7U#XbBQaXcgf&sBB;or|R`pRf`RMCQ6NO`dbM88|Q-d<1UyFFnf7PI)i>U5N`J+361 zdLAvEq3-3p0t%MU_8d6RD)^Ruykf9%S-NhYI6gQ@Z@MNBOBpHE`DQd(37^^JjY751 zI|U)1lI}Zbq`UMWS>QVyOPn1N>`b_YHZPr+hM!DU^@&9sVp{066Rvx&Nz8J$F9>72 zNxEhZv)>Bm{_tyTqr$pt)za%=`a*1d>!3A}L?(Xcbc=KlPW~Vse4tFGK#z2>Y#;jU zSG`6$sKOFqe{_NK@~!nU26s^)YfZ-(W9kEP92RljIppYZEkR&Z6|YZur-|Z+V>1^$ z@R#!KProuDtA2ef=uED?(ux-zQu-rFF_XNZrJ#xCG1aj=@%9h)9g(<-#U}YpMK?Rq zl{~>{QU2SQ{yz$p-<*29WHdTTa0)k;WPAp_&?{w>PI1)D5TU6?vBw_h$ zFM+5&hMJViGcvwZGmtMXArrQe=MXFCv*LN5$)BB|i4pL9SgC`}lIy$T};%!bsBAzkOx`JL6*gf-H*{B~amEz~q4Fvie_QBjpcCiQ6uL{8Y2#F-k}C4g1B z6*-NFGsQBhpCkr-u6;Iow-~5a))72A*GZYuPe;gByz=PWSc!XMT!s3)$Zb9$R)(1o z{6;Q1j4Ak6v8rNxUAYwAV;;`8a}GV1TzOAex@J0Z9!oEguZ_i9-n9EL+HT$_Keq4t zk^hXhcS2qL!+L_x{7M9_L@pNHP|#nTE;tN@lj!N}&K{q2>x!8(dgF4jUL(+>#>5SE zZ+jh$5>M;?ihdpEL5mi}yIRRXsrJt>IvOQtJ}APV<_zs`Fe6D#Pf z=?S;yG8IWyNdMFrPTO}aFnmWBC&D?Eb=?ro_&|;%#a?i%l90eME~>X$|MpC-aJHZR zDMTr%d6a`b>i_wS)B@jxm6wAwTky3z3tQ}INXL`UXI6dqqb^^_jZ7G;vA7J>d-`t` zAI)G=EYTqIn+^Zv`MK12?z`ly^j_q#V)NmpDsMV8Z6ziv({Ls<^q8CTG5NfXk;*wM z(;9j}JQf`co6w}XCvonwUoIUY-6;^Y9xpr8bbfTNBOfF%WI7WQ(tUEIfGLl{N6vAb zV2UO2SGHAt86Ur%uTC;#qHW!XSoZz4-C?&{iyba>x>S^WS2%wlHok=HgTcIBy5w^S z%fGJO{t9ccYjY5}x7W#PQSmH@4Dk8VZ)s;JUY43WaS{~gPKBR~u`?lG_}6N78d51) zqe^lPH&snZmDKed5@TxRJ2~qLw{37zor<;ONpj}c8U)pvc`|Nty#Bu~j329<9qJq2#btc7;Ph{J^dM3fp4fwj7 zQ>*=&2$>AS;zE$`UW&bk}7W-x9ZihV!hdyWnJ*h*3_{qUumxNMRmY~9&n zJo9D-iljF_PV#6EexH{ zq_ePCx+Y}l#igFpL1RkB{WA|{>u{50z~G0UTIQ%g46KM+FPiOSM` zRZ5GGHQo%VgVp^Nx9+eeh6>}gZ+8Ql!+@JAU9ugMa2iAQk`c?RU)|5ABIBC%^<542#J$zVLMVTkA9*d=mj`8kizB5B#ylHxd zO?%?vCZ=VIPOw)Kky$^-SS1NTZhqGWjNSL7p)|kO1=YVH^zubVVcCUby5S>_OVx6c zx65kgZB7p=CIXrYMiui-v}%$E6<%Hc=#aB-53T!07{yyEJ<w6Fp!M6GQ z0|2)b-rQKwWO=Au)r+5NU!(ydr}rx!cLO#TbPKUgg3-=|44&9`8JeOodHDJ*%J)M(^iC&A8`x)jJFo%Wd2i*t(Fa(R;XcjwoL0c zCYI&rT@C}D0do4dxI=vZa!?3c-Bk53pWb@cvyT(+&9u&I%%&$FEINuK@DFnBSj=3v zauwPv?Xm*csE-v%H^{c`D%xXU{D6P;d;7Pp$oO5czT7K{e<$w6dR}E%a~vfDvw+w= z)c!My7@t`I__Oqxee}r`oo32c;iHz_oD;#0)q8L%U$&0FwM9dsbG(Of-~)N411o2i z=5pMpG}zpXIxO&xZmf^MqR7To!p0)`U~rN@^#DU;Pe3GV@+gSf-_)AB^OtDuq3tZ^ z?6KSvl1`(Pq_3wvOoZw;kv&|(X`|K3p0;0%OO~zx^-k@b8i&7&W&ptxO7)31dvFt* z^d`M!a;${(drqtu$@n4@SSmBrrXm7y-+morN!U8eN5&sXsU!mz?35n9dp>gET|m&6on+_PGhw?G{EvFXf4X1|YR71Fg_d-w zqI|JtXs0IChD{TIgGlaXx{g(Cv%n3#oM8y+BBpo`Zqi7mGiePf)R@Jwvk<=)2#9&^ z2LPYz-CWAR;S=4)Xt_mvE15|IHO+=1lGgDL%~=BAub)~TG?aJHKQ-ankqOz>skp!V z&g$ahd4g3C(S-#rDpd4caFXY#_fcyvrHgq~uFWktCmwrj3;-Z4_eZZsc^I1wx`~gC zRl3~w;xZ5Q|Tac+llI_rY7x0*jSAPDK-oZHn*RK@Kd6!qf zw#F7r%)hDXy9;ON@aJTBrt06AyHx9QLuTo#8FB(SthRfVX|oD6PwaB>>XD4gxW-~j z1*M{*{7a2tPQl95nYc%}$j&>E_6(WUJv>|c9{D)<7d6W8qrc)t1%@}ysSdCnly-QI zEoHfQRo0JnFE!gS^X;5K4d~_W==F_gR|D>1NelBUFGY5uA?7SSF zg4yv8j*(k z!;apEj^F-IdtVuq$FjAFB?PzN4uRnAP9P9GxVyW%1xRprclQ@}cY+3YcPF?_bM8Ig zckewjYi54TpIN6?)=GENZ*_O|uC86rexBNAuHH-TcqwgK=65UVr>#|yBV=lf7<>Z< zQ_YF42e@7JURQFAbp%>#*QHQNR(%Bo1mxp~as+GjVwf6DV#mg*m88JJPQaq#<>|f0 z`HL!x?HJ|{d7(;9Oe#STbwE%@1@1L$5dZGeY=Uk^ayKNan&j46xCe}@EN(PY3Lf90 z|5_&zfXAw*Za7@wb_dqui45S@c!okD&5&SKCd)K+Cbig6HCM@BNNICy;fA^)DuTs* z0US=}d~4VpjJ?lq$e;~4ET4iKzHa>#{GxYz_d9GIn0NBHB7S3yZOTL^Z3fk*?#oOm zLt&T0R-mO@B7UfN$0WNQR2H41s&SZT)*dVzB05Bc4m*VOK1>xmmL^QqSn=m=CXi*v zUCoZDwuSc~ycfm0&#E1C7paiW=240`9`U&o5tL>R7{^!jdj)UX7sCpBjnja? zX0h^3u^)*((Q-d9u*)Im@g-8CQ6>(yE(Y8u;}^E48$K`*h}tPpB)(ZTgk_1o-mTaM zE8a;i+^<3N+nw-i)oPFd+$Y_pKH7v?W~02|@X(w#LD(+e=sW3F0ljZ2WN&CulJ#wI3_>F)enk6UTNWy3%?&&r_|1>jA;`_z_R8h`R*>xSzq z;!%?~_X2Xw9N$GNWn-`~+l^iBPX(CYO-x}hyLh0|{dGT(CF3*s9NGpc@!)zB*%E{=^&otaaiqZOSk z=pp-TBBsI$62EOiHDOifF>e;moUf{y29;pKaO7sf@e0Be<#pa;#WN|7%aIr|qQnU~ zW-F+CV%3;vwbNHtQ2T~K z-{_FMe9?j3M{J3nH{cv!FeL=8t2)Xvcyk+kAx#A$ClLMeBu&=ss&rr5{8(~Zdj0hN z-duAJA3T+|Z<0XC@@EG8EPD27MhAwF>YT>AdRYuIQA^E3gAZxdxzRp$-#}TRS*R|l zBR5gYsJX6qXjF#!bO1DtkC;(A0ln>MT0j%waH7EUyJ!fno&%gCcdh&j#cm}?JwpnT z%)CncOJaqgnpA=!2A(j=iIRA@Vy2ctHg&+=Wv%7wJ65B^{z!$uLHMAfwR{i%i$c(U z$aUt|;JhpRMH@c(**uFJcHt3n0+dDoD_Jp(vf-7BPHXJ>pjKVpPfwOtN2Qsbm!1zkSQyvA(ATnI}PW~o-SqL-YL`n*5p$3u^6bf0e?@85k8q*j~x< z-pS0%AQ`x2tW_%3Bl6}~CNb4SysiLt-6QW}xy&xRtP7BQ;{+|RY#&sYi0vl1#nGYN zly!Nfq8`f)UzWkH`T$e@o5*Pnc@5O@nX9;M75WfcS*2Mw*Opmc(HVW4eS(NRXmI@I z*ecI&)npc@ZXCEy-i1kyPU`zBaBJU1dHX^hWOu>79t-ji065pnE3B=?`5Le~ec9*k z;*akj&HkizOGK^q75`L%eT)~pno?3+hC)?jQX-mw#^Q2ocZ1#m8}wmqX%MbBuh1m_ z-Dl?>?84WG;?Dssjs!Etp>_rT@=McH)JfoC=qQ?;vv0wM%@R+4>~+IL0|G9j(G#& z2ufMsex(-Fv@-&7|5lY#f(szA%pnL4t}=b(lY+22i;907=To;^`@{y$s&u()xtI$< zbzr;NN|qS@B!?Et@M?;b8OHXlS58V*$M1ZVaywAVUai?iM=Hr`p%mgIG@Eo2@Sj&% zelw$GcfC>D<4vp-C`5||^ZO;M%wZrB%$C^vmX~adYw@?&+OLpw0w@H;PCk;Evwi9G z^wnXdq@WV|YC6KcPM0LYqWAHUvYu~!r4{-l+7^DBRDLNtyL~rqghT!} zvAVy|YtT_L&w50>qCa=R;lh&4%7&zb!$c%iRfWE#;n!jMJFN^|o6Lzx*rK=Ykwb8! zKXae^9>UFbIPX?M51yQDph{93c;0nvRZrbAeCG97Y zyztXcleyLO3EIn0>z+bQ6xW9Y<#lOcCcXwH=afzI-=_&n(=YAtPPf?6Y9_Y-uA z15)IO{OP(CiQr%A@}k~|-%BD+;mZ>m15h##g%mm59Mh24K*%%7as@iz-KwQ7XuG`a z3hdtu%(a?vB(b=S%g`8l4YCx0ky6f$gGMTNBZdw;zIbzyMtI@-RGN7fo2sRL(c&~z zqhdIO-g|8>Ds$!ght7MS>PJ<4d!+KLPx}Iwm)&2K+>s;T`cMI!wb;v=4-tsgM+sCI z7SSF$Y2f>;&yLFp_%#uV@2+?l!yVl2>V9~WA>kr9*~N@4;e3533;A?ogS-NOH!Pvn z+if|V+Ph43h+XQ`#wQ99a9gJs-Hn96BOQhPS{xOTYv*A%wAEZ+-2s3rD*11ZI+nK? zmo`o_)-tZ18>i&F53^j@wKsYk`vN1QI2==}1z?j%I9C;mn&lJ{N!QKZ<@#Ntd{166 z1kZWbQMyM_Rsn1RUn>x@zG!$5WFXmHr$i_7EhGj@iOUcsLMCEBd`0wTn&r(%p6Ey5*dRG|AJFjgE>2iPxlQuO&FS zW9u@&tyoSm-vk3g!;_mT?=`yu7`vk3)|RBuL0$Z-AK`W!&2$ZVg@7%D$f(By;>i|) zX{mWVW#od=JrN%>nxD1UBAI-p2HVg9Xtf^NYL3SHE)Ke~|Kl7z;FvJs_tIagdP%Qb zE6vyD!mAy8>qjWOxr6FABy5Hp5- zNc|POlT%0yqN_rLv9*nWFXNnNedXA%A`4>E?|S&faQ5Sp$@SgWb}eN+N9;%l&(I`= zYHZ_!{>aHIMbvKkd_Ns{{m;W7t?SL~QlLA!RJcoj(n_src*({taT5yMD@V$Gpgger z&_;(IHUYoMwSBo?&K`O*7iYfEsKJkhf-;g3!58ma>UHmIt+zUQy8Zj+6@GnU&H=a4@`M zxJ}$hh*F4@RZ(|aX05N!Pb(=JVj+KW0mSfJ_ufgjIU{R7cpp=&TtR%x;czV`%CHl3 zJhCIUWrKJDacuO*D#u`XX}Pw;-3UL*6|d+Ixoal6iD(zJL5`F|eL~@XJm+{U`izi6 zo#0=~-tEZyeSonD(No+GOB32&m54UCnf#;+7@O7s#OSB#Gl1`)Y?MRyfb$Kx|BdOZFP(d=W@%^$>x`V`n>edN9pnjStJ|f^&0gIU4Oh};MB=L(F zV#%{EBckodv2rDTvm1!498Vu`9+M|*D=}W3`(k}c+le15(3@vl)p(KvAq$c3S&Df3 z(Doe9>svzv4_eA_UQynxYfq#N+NPh0#ZN`ptKq-93|%6lhUe66PSZj$}lG8QWTy-`Wxf?yNDAdoN)Jl^JYP30FIWFRT zX~|klu)AAY$F#rWgY8nsjUDw%KBn><%`|Fi428ijwgmgK*eSv}MI+8k7aP=hx%XTH z5S<7;5P*ce&;fQ@M!ckPOVD2MjjuvGUDxJ5XdX(mcwHJA1nJ+7tmo$5i)jiA*~mes7-OvV)0# zg)Wi@Yq9C*Y6rXLRa3yF?00R=9L@Ze7G4DVyXoIh{-e&D%$od=xld(C+DYM>UFvf_ z01;%T*2+;SAD9OdYCvlH6_)`s4&H{&ack!5iK`|{7yEb1*i{fx8ibJPUoGVoI_kBk z{EXQ%MPTCX*&9H{H^#}12aE6mE7k`(S*Q(;i)dH?7peaETMF>>4d0*Ua@50h-FJPO zXTne=NvYsfqNSd3^nY13oVFruCw2%IzZ}%{1Jm{lW$z)1u4RF0nRWyt?c@_jWlq6KRK}w%Bb2$lkU{Rv9F4~V2jX+Fk0fwaxG4=iD>@T+zP8Oc10Q1RU zbXb>DkR;jKyUJ)J`Q>gSgdVo)BFA&{oyW1_dwvJuTkD({7v~+A$7_{0$tZodm)hMW zz3N$M_Y_^5;2y^>@AVILuRI*F=vH7Ud{pxfRj~e~9gedhk4zsOs4iJGg#p1>)e&VN zMq~akn;eh#!JX@2l7xQvyH@1lSccT zd1WLZJU_b2nMm#&0+M2zV(C`)B-Pi!KpEk$wv`gW?sLP#1S*lMwcf3sdoZyY3kQ&b z4|FZ(n>_V_7}bApI_df;yhw%&ri&Fr7-Hg9Zo06%y||xguDVXo)xm7M5xlP-RyUOW zvDVe zHA$-sq)K_ESkktPS`X)m$E$urABTz1$p3mtG>Q93o;9*z06GXDOx8TAhF@{e0Srd6 zqb^+jKJJ%i`hU|cSe6&zmN`-+v0?57_V5lDES*er+0od{B7TmSZvgQz<*hpUGG*6tP&4Shdm3)3 zi)<;F)S7*qEJYd35@i`1&Uz+#;-)zGK1l^!LAlwuL<#we{-*`lcf-;W` zm%|-`nj|6R+U<2zM9JvMzlfS891^vy60!Np@7%zm0VuXkG$%yVo^{3Yj<;`#46E)3 z+c%yz!SOs!KZNHFA^4w%X^z~^B0avtL)zSv`Q0fmisE(Zy{SzYt>vxzyZ)VpRzrkP zjmGQU0))^_Z?b1hqYz_8fO)FzaSZo<r`!zcCzn;7Z?B*p(MQEvdM=wFJe&flm0pSQrRT^4R- zbX;58mAq>#$vr+{Aa;f3DXoM;=YwP~QiuQ05mSEuDuL7AIAm`2a$bVAENwN)h0N+l4 z4_G5J3m~ckv~v!xM-Hdsg&)9Tp`X}8{{7+?YfKq0lT0;fam|78v1Cz$0K*+NEG*2# z+L}EU8XgM5rg`}t6hx8f!~K2Y^j~lNLQfW2_4T$}Tk$7M-dD6gbG=g6=jKcjtsER! z&@EUQ7`_!3Q{nM@X>ic~#U5qZFf1eEP&KAkR;=99CnjX^xEv_ZO&srk@4H$M|K;>D zsMjEju$K4Jl>$bw0MR%5-O=^i^UXSOFe)DS^Khx{kt0vw(KJaa9e|be6MEzM2!Q3NrklhHP=f)@<+8H)<==k|>{0h;!@jl_hN%KxJOt4jnIK?&>})`;0F8*(F*ldE z?*MC5@mCx3P+<{NN`i-n*U`}d1I&fP^WLFv-`&j(P?BU#wU-nZkI&5o0+N+baJ9cS zPVi?m16JUE`uaowD}|~48WtYD0Vr!YY}UYVaB<}gA+KUXRoo^_6sqxzn*MV2+W!(} z)V!ljCZcxa>_|^1SZ4ur9)PLF4+n|l04?0Lwx)AXJ2Nvg^-{vD_LufUF|0E2Esf1A z7#b3PT~1bEvI2PO-O)6OI1GioYON&0&c9rkWb#2S3pW$cZ+w=KK>`}g2C&oA_z6Hp z1lS^A4uGa+r}4*M9=HaTHW?84*=+Q{)YR2wgFq<9$H&+bkio!SzHbd+t*_1I!TvgQ z{cAB1RE&RlBmV4QsdV|_<&e#b`425ccAOy~dHA!!bSkDYhW`!6BJvMlo7712s;fK|!gSYiKLLrhH8{NX0;MWya|-i^cnI)jMIB|s`< z3|s(Q?ixsuDPB`wp96I6S9@r*-(>*0vyTt>tKFlEh>HHWR8~|peb#=mCQ0UZCTQ?W zf;N&|r3c`cW;AF0tAG;BO2vO~4vEFqZSN?1AerQm=kIqbcQ@XhDn86=uWbDPmFmI0 zO=0hCAQS|6!?G1%a+$yv3TQuj{;W@f*nq$CAS0WkP%Dkwme;er=cZTZ6rh86P-U}$!8@=>ejaJcS8i3pfb-SbCADYM}r{5AP2$c87}h0xuy zjb`^!;5B}F{_fMtr~2=}>)6r$sKtdQx;hc(?CrEV@$T*D_jP&)A+Xzw5dAe#;vVo`lxKes@KVFdb;X0ub0Q9Via-K(!upWYI8#Z#YR^-smikZu{^ z<~fScLoZN_G1gEXUk$~i-J=CU%)Hz`=??Ab0Me$qd~2M0Gvx;Dh3r)HZyA$dqH#X?SwGyCgMw$<=a9j^nyYVdSU|q0 zYmEgdl{aaeQO`!>sG3@E?aw&=p<&iwZ#LT$&DTD+=k?0ezh2UxJ4$J1Q@P>R|x)Pz7)`G zMZ&gayJB2qvnlL}jO#@{Dlrw@#R`--R+Of64_zUx=RtozAK(o+S$FEEnaE=@#j)0f*hf<<>vm!WXu}FM+y)otVxnbIdFi;z&h--J|>UW zWp#gWK>$PkLxM6f`LitIs5&;y+SOdhqyTNu05$x8b`J_;?P2*b zHHCgYEdW!c!;ec8bubr_HKGPQt1;p%{<49_rP4_@%m;9kOwQ+&wO|Dta=L;lFz6l3 zL$99<5yT@q40Ub3eq>XG_(iDE_eST=kbWp3;Iva2{E@EP08^_F9r`_`kJTv_WNF*I zASTZCx9C@6xLAJY^-gdtkRtN40PFz7%2N_`ZK$Vcci}LDwlqzh#Pq_O27hlCZZ-@^ z_7xQEAGey)I!0LC?O>Ikm`4oak6nj&RK$r7{GN9=<~+%L`DdX%4+`30^$iwmw>{as z^IW~kIi+y$QBozK7v?;;_c0grP5=373I&Lv3+Ll8E&xZ$WF@18w;ZNxQr@>xe0EF8 zD$=AJ!?00+85pOEEEIupJ^AMM3wie46(AqE)xRUOPxp4ZqIuPoM9>}xT=qh(6?QsV z6JSahglLRX3i*F@5#neW@#*>Ocow+iT#`aF`~Zc-W)7JPV1rH3EI((R>coabvSC|b z33z_2=R!KJ)=`DO|L&Z?CLo)PWOD*ftj}a){Z0y?G=^FD;w@G_c|k|dN@saP+3=Z6 zw|$5f>i~`D%WjCleiL8{TKXhVbOsO*uStlZr%-6AR*nm8KcKjS2w?`m#U!-YcGrK* z-esa;?e`a%i*cN+rr$OHF?PjgO0!ry>D>EitqW~>il$V8!)VYMm$tSSUVC+U7y z^s##0<(Xq(4$Ua3d-{PXy}pbMUB_lxfo}m#bBr+DNxP6414qw7KTPy~!b!@NtbIi;T$(tW@DBb2V<_|ivNN%=}h!&5-zvFh>asoiL96kUL=GT6vr|buIC;W~amY3?K1D~X_D3#@^U+N`aeLzZ-bjbfo0%Mbf+BF#3CsK$ z2SSj`&-zp6F}8(n8^kH=+E`wcKV{pj!OTR%D(4-2Q?d3`Cu+7P0P%EhZw$nr)Ohx3 z@ajh1mPkC@LMG;z(D68J^@^TUCARf$ zKZ$O3e?KaNJ`biB?w{U!naP@sow%y-J_nq*FvdzN)T-KB5DnX9rp?JAe4uk8a(N=a zTTz0R0egoNUUW2L>_&iGs_oK}Vr6{%EKvc(GtB$q`kta(Ghl}d;rLRTtZgj-54^^A zPeRLd2)9T=nX~di60ey!uIZi=v0%8_@>+i_lyD!OVLz0n`Ps6$t~5ogj>MC*%z=AL zlA)J;-tgM0^X-STWQM?E1V?G;e0~l?QuBZ+f@ukiq`1)S5P zFW9E6W@|jXRsDdj@VJ!Sl0#DRY(mjncq|V$Q~&0efx6n*>3JNl;Qlgp39*~WIG-VT zom9i6liG#VXLSS&cZMoMit9zEbhW`!t1TE;iojw4Zq1OWVDm>jhN9}CP2=^0kiA#j zL*7|x2_4csoPq80tX#r)EsYN+b7;(IV0`5M!=%SiCf^MFYL050GK*J%X?(^=-Js2A z%pQNWDy7V39jIEy#0uas=>M8EXRU}UD*|gPPdfpaa;hClD5~mmNu?B+06ib9l@3$m zLVGsuLn&|X!X zGMOa62QzLn6RunABhPsyk-IbkVt@Ub*}?6>=Pp@j?;epELa>Gxh7BYwDSYel5EzcS zJCq4S>wN&)X$P=)K2MA5t{hJni8nI@%6wuBSVKS$ReqViTLTZPgCXTyDqqio^VjUR?D;hZ)$;{2A(=CrM47RLe!^ zAifBhw>ANS$GSI1KqRF8-0nf306oyRy%sTb_xny)Cx!65?PvRYfWIf$lBeJpe*CJP zn9aC>)a}_8KukDjA%x788=}K>1L7!rdkbHN1wZmE;uT%$_CM^*Gv}QiQ%>JD!*$pH zmLG9k(hSc3f|kGKl>*y$?vFfi1uVfRu*`UFSIvu*a1v_LPdA1{s(Oq!_Qbm@x+#$=k$EQi(XjaeYVJf0Y zy|uV5F|`2rLYr*c67+S{=i6MEV&Y^tWr6s?72L+16|lh_*NO@>Iqn2e<#c>mmdi1H z8_qt_;$)okB78w&!v#*2B{W&*3H9;p7>nEHUk<_Tb>z6ni7d9z#`U@-z4NJX<5DLS zfN5%^Lgbq}?3~&7Q2wIs-;971Fz(zJQI>H%bm*LQzE9T@!iC3)He-+?yWnncsbJ>L z!gt&?h@?Okb?pzrZ899;0I6R#(i$w$qrTYN-ubvU;fFoJSeOKx7kF}f=gWgna!aZz zCu|tMt=5$ka>H7>t$_<;8@kS0ARemAjh#lm{W<8NKNk9pAx; zH&s8f;4|U{&r{GA4C3>izGg3>U0DW*Lk!T4e`BnevACj8?~q7Dt?X_Gix5y`S}ff>Qo+qD#F>PzjhWqdhkRP{oxRFd+u!gHi>W*j(eK4`lXdI_-my z@1bqVBrXLQTq-eINxxP9U_YZgZV!1`ysiP1S(PVojucJuA3R<{F6b|Q6$)TIztY)K znFf9J6CfM%wM39t*ipX~(nNOqP-@QCuTTR4TR8l1N+~h+8X$lTW67B+fR%0rNNZEh zGxe1*{Z)}Hg9b^)i&|A5zA1h{j`uy)dLMUd-<9K5xa4%raDWG+={?*MKFY^`zz{00 zbS%IXqG+uIPA2Cc?EseG@TigisQ`hSYe9~~`POZMWNSGb2Rbr!@(m5vXycc-HA$_B zaBbv^>}x%U!fO@i(p+(u8MCnmdPLG9&QoU+nxBs|;MV?|e(^ya7#zfg9uP#{#vwzM zL%Vg;^K;2O$0=RSy(1?Bf(zRvxh~@BeFxiGE!>c?9QBKEi33h|dmZxpxP1<` z_-#2nHVP2ND-%))Lq;e)H!m|E7&g|A=TuUAnx8f@aob;qH{$^}V5B>V@%=9SEWmAa z|GYZn!(N;ju5d@M=}yqyacH?r5m&`n-M{E4dtP$(+Dj}Mu51^on30!ezx&2)Q*{LJ$#(_oH;xmu4(sGso2_p$6LjvaUS^= z9E>8qDu(iD*vY0x3#rb`7t9Y!`h(99ZIb|eu5YoN9jBIw7?q%;GHR7JroyyOM4!$P z`$Z!gzRJ8$0sN}alYewvT_T=6FdK>U6?3F(`C7tlwRKrgSP^oBpzmymdipH6{EWym zZM~~88I&N5y*KW2TJUUXzc|MU^h!K|Ppy_)mjtPDY+Oll7xK*UE{)g~VcXUkpY^O; zZ(!4TPO2UsQoKFh1K~Qjmq;0Ga@x>N~4?Tu4Yruy1G|rPlzc4FJkG9QGo&Yp4@c``%Cck;aAJ zpn-|oMmQ5Mh)8r=oR^+m)xJ2Fktd47RNe!VlUFR|&honuRsVbCXD8__YWc6hw7#2b z0P7vh|AfQzPcDEs^>06Q&Sqb68xPoTLh@DP3J0CKW>y|{aLF{naz+HQXX3~S6^uh> zcab-(8lz*9#u;s6Aw&Fc*2@%`G`{>=pvRvIsyt{gOFra5pq z>c9Z!!~*ghMgr0eT0TJ86eA&nGrHSnU(PTtI01~}fuqZPcUQx#1|t*DbK|hT{Kus~ zGE7#$^fi0X!YEizy!kM=Y2nyWGp^CU?0dHj*4y)NU)|bJ)|eXbBMD(7oVA++x=5c| ze@7(m@sPj7&+m0~9lmEd9QA0C*ldMgRR$B@Et`5~Fi5MJE9g3%L)5?*>;pjpI0mh~ zKm1q0$K3+3UsU^9}aX)+>GRYn$AZtFeW*lkCmE>3m=)5EOsTUWd zt4`4=a$ici0hSQR8B-O9L*>cTa#vSl7knY0ow$!_fR#`9gggz{Y)wN z5q65H?lVjun(=5=11cX>{d#SQo=G) zyq#DGXFMpOO&#**oP`40Vgd%Q{xxUOPlJ2+w|l|3kS;V4aLZM4s}*djwCZLOM)L+5 zzl^rzT<^?wh(N9CmEdel3OHExVNdqyI-dISiT(!~xvAD~=HE1LTtmuIvcIYV0SVxl zb)!**T!?D%XW9^VdDLH|-G%)JwZ)Ks;-Fwk~{0pNZ zYpdjjbugox9iMFQzVmfXF=kGUzZIOXf7SA@5Y0vAy|F8*{|~tZzW{)s0CEdud^j+< z-3I^$(>Pu*O@UYCgf|zcruMw70(3!SdXN*uEeH@XXR_qqU^)3 z`mmg^iA6CY8Kle4!!l8X6xssNU4$&_14c-1M_s;wv^4Yam?t4eaGy4+oF1O5-jXqQ z-@4`p6xh8@IwZ$7$UP>8{x$%v`U}P#DeY;j7o=WK>-{lZf%MWVYWUFeKBz%qiJq_X zw5^2a5kY+3w{5$BCZFSNvd+(iC}y(2kMe_DY4D49kxY4OCQzbm?rWmRnqb#)37-Zj zvPY2}*MG!R zIq+VNd9;USq0DTx<;t?rAj6b9S0D(XNFYdKjF7E$DOBV;V+NK>p-l0@=2VPwMgz_}z}l zJbi02D7G7QqP$Ux1zYvf@7P*lc>9~|iEpG_YNkImiS6-B)XRbvNP@d7`gC!Vkji)x zs1s}&()dKTpFZrZW>grfYL#L!>MGxNMY&o%)V_UbIcUWHb~Nz9m2th(gBdQL3SgmI zFso3mxZR*jdU1tE@P%XX9Y(nSF`1)XbqA7#V^lSMP@fc3GVo*nJ^n+HZYCmp$wk$+jZ-5RMt0Q({c;^^IDzsk{rrV>ANVMg-pp8Dn%B z!Qmu_a7H98yCe9lGR^6Lg_QG`#pdogicuDswTRH`0qa2f%h)-Fso4xW|A2= z!f+k0#StZ^3C%>&qlNl9=nXJ7(jUIF4JILe5BLtfeoB}#Mz^1oW+ZEZX=zg$Q9@W4 z`547S=EoVBa2o{0b*fPM22VZ&+YvS`oLDKhpRm2vzkT}PZR6}Xy*RCCjXAYC_N&dE z32H@?q9@!`sC>J8r^%hhU%Px$ZO?3Xy@j^mlk{}-EL$&|f0Uv@>ir0(pN?nFtlY2k zQ_qQ7wucp32P55y39b^6_*`Eguji$Js=(gBbFJ+M@y;+k6}={+@n6kc!ItB83G=uq z1X`0Ww*}I*pQvN>so^wvQZ(0jR|tg`aUTe;=6_+1y)?Kyx!&p+m!44coQD_DBH_l@ zmbz0{R1Mup*cu*Wq_X8=K@1f)w#eS|+EFDM5dU~EE`nHOO|b87(v|`t+s;E$_~ISO@RaWDTn= zS-^m)2Pf<}#dN1dWaMB;Xqk_L8W^lX{->@rE^OcPG6@uom%U$ov{_Cl-^&E@B& z9~vMCxJxn6hOnb~QD9)5O8nx6=>n@#o%eAQef;MzaZ+Qt-Z{x))O@YkTE4dG+;a>w z_m@M1+xph~-R*TOiCVwlz@Zss_nb=*8KaY4CMXk={l|oaD{Z}a@U9}&ZIqYi=CCa@ z)hMH_lg@$1^a=s6kT6NS$Hy6GDNn=InOa~eHv&jw(s-Ua(tGOo#<#P}2tO~G(*o=l zt!Hje2CXO9pIlWf^f@rP>32iRJc&f~&4%Yn=Cx}3MsIjQrg|B*pLf4bH<*tPg#idPpADCT7f+6IVRar>O}HA< z_a(H`CaO21ryIX;EHl#EoK?L_3N`f4O^bYGX3~rD_pMsAWmwf9l<;I&V~Z=d>veuo zHEh?_moklCg~ znfGqzv*+{vV+XJ*pM{s62al^+ig_7r^k_DGMzNOI@AmfcKm*NDsx3jTo75|N!_BVh z#TOkOlQ+Xi`ZNo{WqCu#?ko#>EGw1`$uiR;o6oDgd4;xUJm#EJHjc49hr!dDI0%pi z{U`IzmqM~n{Ttn&K(bY>3|u;z{Y5txksMks5w2`nkxi3jbiIb8*wLbJAx_cZHqji~ zN#c&JL*q&f;dlDW7T3Huma^PX>O5?do#VWxVSQ5=-)7gExKsES+h#LT`74YFM%_zq zH6t&1qcEvPuZ@rE{PH}{bQMcFqIu6x=5Y?wC$96&_B`kZuji+9JVu?pOkZZ@HL35C zFlL#Z4ibY4zy#8&>hw4-x)o4tUvlLA5Y-97rlX4AP6Pc|fAF|BepKZbSG@cL1&N+| z%f)WcnM|#7cyH2q;I#KjhJ6mJc>udwabWF7J`O_L+3vJjNIX^u>E4vB>Vg6WoQWnn zHp`@YjTMAD*m?KS=0=Sdgbj<;DGQjS){og01MWZY(8(g9i|o*O z`{y#9LNaB#l@y zI&BDyDEY8jPtGz)=@4hrH?0tasmNJCE2>{>CH&NZU*frM-VoSG9OHMQ*7p8=G zlj30UMZ_>kt3$J$^#e!aS%te@HFbyh(~zLkY@aHOEO-6NuYsRT8;>Fc|}Yp?w{FZf%YC*@qvy8QHd(M`q-0 z5x~H{s-Nc@Y1I~NNcAqn5iM*KDGzr^MBMa$6;6)g+cCH(=L1%}gHZdy2j z5yh*@!Vc|;Ve}epu4&5 zv(ST46K91WuV^(@6zAo@*O9MtSI*lZ_pllohmIOyAsL#1FW2qQB*4Os8U5bRC*DaD zGQvGCkE>%n(8i)Wzguk%n=H$rJ8El<^<|dWC-DK5rttcYz(5d|SK~*zr$X+0r+I=f zpKIsMiBH6^DZ_*%1=B?J$&37ryjCw;*S8ld^v1vM z0iD#r=4VHG*fEOG4?y~L@zy4^FK;jOaXTx%O_UP>eq)O0D{droe?X3>)<{aR)II(EC);4c=_TJk3j!*Y~YQtJ+v%0uD zU*Ge5lH;lNJa{S84ogp1*jy@)nrm!D?ypZEzz>P3sF!hlDXAVS-^$6ErX9WCxFbE( zH*v2+>I=xZ>DOef*PJ&i_jhj6)BoK+etp8>#n3!NKp4JaY_GPgNC?S@W6j&_WEQv` zCUxF(_l&imb?s$VX0Nn$nm{_QvSLQxBR~IKF;}qJJ>mXgBk5wyXu&pqL5JW=U8hG$ zR)^Gv%Lul_u|AdhtRq)l#E~|x=xe7mjaV!+fBrHekFGYWcv66~D=*xmiIjjpi{7`f zb!h%kTb{LTiIX84booQQE9&Jzm*>(3bfxLoJdmE?w!z=BfNxGdIt}8ubCdD7cW^FE z>a26qGK+Arwc`sJXgh>Uvu(*KEg9z41f4&3a;(TYX=D%vehlYRYt*Q-c&-)F=6Ts{ z+bdtt5 zaG<<#@rJk5#?07x!??yJMvz0P{&v%)ziQ~)==V~H$#!yxKmpD0G;ZbdhkM04DgJd4 zr`rB=@0J@Gy}|4}gw~xQ%#3AZ@RB=&yNhkx^Nrp{g1796Z{RRA`o)zJ=tX%NS>5!# zB?pxV=5P*A!vlw}%FJfRf6UcyjF>!G9mnoGhf!M(*q|=~xJ!|UuM&h(wV^f7y+F@g z(893;7)3qp$%B&cT)@PaFflM4FD|c2n~|BPp6cUSUH9o}BdTRZ z#bsah{y6$Ry-jcJl!v8^rI+K|MNDt6k-9YJBT*Kw$BLrjBe|^FrVY&c==OWU7s_YH zqZ@l(_%-sgm+yHx(wgm&)5|EfcUdaVL?lkJ{2=PL?Jr+b`Rus}nr@oH-X@aejZd}L zKe<1uFSbv^tJeZP4xA`v-^MCU+bC)3ZqvQ~mM97|RWXr8$aB=F2`+AUI&PsJWCwz! zwsEOC6Gk`xIc83WRAC7}7Xd{bi-Y4kF!pve-N+O}_sHG)U73+V(B3UHSf{*9rY*6bD9tv;zGq?#KRqeV&I#1_ckr(~5rm)fi_{o(9&w{{GD^ zpUEmrJ)1oP+dJ(W5j+m;P0XSCTI#p-lI7MLjk|9*Kg~M@A41|xyqeSV$cBoWgDK5Z ze;#N{S>koXn7B`wF?o_Qe?4|ymf?#q=Xt-{VaB!!gX^|7+b%}ijd8wNv`!RNH&#UR$9B%ZsVcTYT=meUVB@u z)9HJtI!HyL=l$6Ikg%E6?-tU|$BxDCa^}#I^d^HGPX!Z6lMf?+yi1yUbDaM(PnE6m zloMz8lVup)33OfGJqHG_;o^Lwt$eJPI;gm2i`i^3I*M~egr}k9<2A3V^HS?Z7Ph7R>(LC4_YVa;)%K71MJB-{?#(sA~T$aF;6_( z(}RHuzgnOYn(~*g7U(tqbyrkB1qZ0~UdG)~WXdA~Mq98`w1!o6`fXCZY|K-67$k6) z81V{DwFsAmVi-$SvO4F`TWzao6dZxjaCME~KkfraGhxK|k+{UgQohBNeB*bJT3nG+ zUovKRZ!n>B9ULBEJF?#xdIoJB-V)B{=BDFY5b)O-q4V>Y2lAPE$6iqozjS~9ja8b3 z*zK7+$lZUs>d%V5rO5x{y;-^(QP%cko!xBMwwS9VmQLeho&7VnN5eWkw{!W%%~grg z$ix?&9lU-9Z(5Z~op35u@IPz$iT3F=|HwZI%)f5ek6itEJQJmVG%e+j7|bR__P_IE z5D5;z{&~i~ZLilgzUH+5qvV!q*P4|FfOXJHlTrV9@Ea8I|K0ZY#T_@W`l{{Wgt4nX zvXQ*jq_fiOa=yX(`gOuhfEu>IY(fA`or&XbnQQD8PA$imK!Nl1N)-(WJ4t`NTb>0pqDl2`)7S%>?v|l#rgU9 zCZ?uApF=RD3<|^}R+ZEkvJ<=1fZvy@fJk0*P;yL$umFhpoNo=Elu$2iDI9nh08zb`2G){K$n{U literal 0 HcmV?d00001 diff --git a/docs/fundamentals/media/custom-http-command-starting.png b/docs/fundamentals/media/custom-http-command-starting.png new file mode 100644 index 0000000000000000000000000000000000000000..965f0b3f8fb93f36fc1ab88267a41abcdba05d77 GIT binary patch literal 63549 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 B2+{xm literal 0 HcmV?d00001 diff --git a/docs/fundamentals/media/custom-http-command-succeeded.png b/docs/fundamentals/media/custom-http-command-succeeded.png new file mode 100644 index 0000000000000000000000000000000000000000..4c72a7acdfb490601ffb0258f30c2181781514f2 GIT binary patch literal 63404 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 M4;QR!&idW{4^{!lyZ`_I literal 0 HcmV?d00001 diff --git a/docs/fundamentals/media/custom-http-command.png b/docs/fundamentals/media/custom-http-command.png new file mode 100644 index 0000000000000000000000000000000000000000..318c54a57ffdb934ef53b2b90d42696f55461194 GIT binary patch literal 68923 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­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

b}@ypI8pjBfzJcq?QCJ-NpCtV-|>VD|s0Z5es z<`r!&qR%wK+uuYB>&u}vC=y9)gA$D{p>~bJQJysS&yA}aDHe%}w?CEa?k*^R;215H z91a}Q!S5mr^d~PCFk(64PWn7M&c(oIJ!;2LSCB zc-7AD!$D~^3_0?+_CnUOI?tQgrtDL>UptL2NB6gaJ*(Mo$>6+$rfpM1H-EFgZraOV z6WP;#4tI4Y6%}T8)wOSk6*Y79YAG5g+|PRq;{EbW_!k^-FdXJg7s;Cyn*u!Q`=e)8%_TKMs>DV5+^lzu~9omM)3G0({L#U4K{uQ$kT^$QD?8w zj61j#8+P2gQLR{U@V?B_xPovwjXB6iKIIwgMc#+FR?~wiv4K>~lgh?-zm9gfhiG&U zv@`sub*g@I&?2;#cS@BnD}?V`l0Ej5AT`|>!@Foc5w_WefoQ+{NhpclP74r&f0+>LGIoPwh4i|W{T6D5HC6C&o%7d<*FFbl}GTG z@(F?sMhs=3w>_K`Slwsq6!O{ePI&$l@DMIH@yw(>dYAE+TmEE5?*y&2VRw0Nk5` zNhqjM)ZWM>h+dj_!D)2A6jUCL9xGJT^0O(W?lI8MVqh6hfRaKeAefqqZ>Mq9E+T-- z)?^>G4f!hfYfe=DP2t0X?YqKn1}D5XXPf$&Vu|(B)raob-R>+|gRfyk>C*Klr~_T6 z5irwZOUP6rwkEiC^_6u)z~N6x;zC|0ugNCMr_B*OON4~=L*mT6SIuJ*v6@wHV8tXz z=upHH2>duXUvLEJvnT#Gz3V$wh`oCBi@iqU0gEHcgWtLqQ~J+}Y6@Y&9hGHVXUzha zR&jn_@}m}4)&>q1q7-({CfGHXP1R~X)%byT@Iz@g6=_wtwBd?xX&PGWzq>5_E^G({ zikb#or-p@{a07&sel7SQV9x`A+8@4GWA8evjxIzfWQ?AAQon;-Y%Yk;0pF0}eUxeW zRaT9H)GQ&Jdw{1EkYq{O*I@5SO{r*xUH9fNeY#;rwqC8Y(4 z#j@Z_JvF5)`K3|g!&{*_5BqkHTnM__pk<%Efa zV#-^vQ@uXvdh+?cwsjp>zqwg*Ge|9Dw7ICp?e3tNlF*{|(@gU7=~6+n`!^8|9`aM# z=qRaKV4jxS@F8Do4rE-4>Uz~mtF6VZ(&XfVEu=aloN0A-W8Gk{ovH>@or!x{T&#KU zUdnvE5qhvgS5z!-HesIeo9!WZ9J&phw!oVN{UV1wX^vi4Ih z3}!DH@LwB!!weGhd}WQ0v7h=>Y>v!_y#_481$>ML&hv|01wCP|#RQ<5NoMK2`^5RQ zNW0d9Wus)`SBWqJ@;Ls`^N^2d(?lfvjA_U!8}h+hcle(yclBbO3wtPH&&S_;cN8y< zl^vK5bBoGS7JtDL)3ypaH@LY>P*YJNuh&XMEvFixA~L{Ap7MLQK%5CY4hWy-W)jP| z&4nFKG=H zaRhmXozE!3!uPFs&+DdEjwnte>LmdOo*va4STjhKYyCv_ZAMSG*V5MOdeTtSaODlT zd+lZzt|Gg@ZqZNal{(h>@4uG5{XLTYRl!S|QmVA{4WjQvGL)TPpd!|^)E6l(^6h2=E`rCb}H-fulLR>y4w#{XT(`UNh6>$ z5L0W9&C*J0I9=Vtg{#^^L37gn@aVQa;g+t4d+FOB_f39>4{u+3cjf01Vg#lTr6)f~ z=u8~;kEp1}4y2ES6>Gbv@jWUf89EJz$;U)ILHP38+^ydWZ`lwb!pj5Q$kZ-HOZJK#h}TC!wS9@NsZ@n)~8~=oim#2>;?2S*j!b zbnZ*%7b@IRk7>~SEIE+u7G~g4%kAc2yddh}IL_1BAl|G_+eaZC#y;vPMF4|9d0Pi5 z0;{C^_ry;~>xfPLarOX(K+%K*((LDTM#3J@Le^#yKUv@jrO*%IL?cU+#NMt7ULcSD z1h^gUGu@^SPimvKqgL&R+x@CMPAC;ot%BewO~q>8KFh~1LeH3gElu{cSvKcWMeH^V9zQi*S2oqD3}@$kZVs@&~Mww)c^vP--+oH*KzyQ|7(DYF@yyG=~8a}6$ zGWqd<-0)-GLi+5~-sC#ky4_T;;>#G&+ZUD(H8K8_5j*a}|H!n#I<1&Z#|ZGLcYK1Wob6&v8sDk&@lY4ku*ncH33#A54oc^M*2bNC^p(!i`JZ z7INqI<$`J^7579(onY4T1T6<-+$-_)Ud=B$lL+ha5$?FuT0E^G^7Wo_Tz= zbniQA>a9)Ua=D$Rn~c&g6f%AND2(bV_beH=%Za_U`?ET-4`Q*uH*|FPD}-t~`%CWD z9hv^FN#cq?QF5irWy<75hH9HPLPT`&#otwi*c zAa!m4S_j1AIrlqm%S9TpYTmo0)3cyT@UhbG6||1#iYtw-*K8N6ap%6(mo7cRF%203 zARUC0Msc_!6!c~v34my|;zFYasd)|wC1{Kfm=-FP=N%aD0ms)~%ox0u;nKT5=f-ap z7H72;bVSjZHHioq+JR>Tc*C71k)0a`myevAc@4ybZtS#wZ+P29BN-!iT~3no;v1oc zQ}C_Y_*BKKNr}-z0xvGgAl`g^*CsLQWAblLjtO%Z-rSt`e4H@VzEahr0{b+-Kis)ZjnfBCq$1HN_Gndn}X^w#7qoN(!(si%?-p^Oc zn@R~gt_!*8GE0Zf%wMN**EM42xr*OH)K+)m|$x0(k z*$h9W(!4QjztsN5*(vJzx07q6w6eC)$9U2P19S z<&Lu4waJ6jS!`4WMPIne$xVRVQ7<*NxMaQ39QH1v1IJWE>t4{`4u)zr2H{DLT` zsMt|ydJvJ`L0YhafQZsND7|+=OM-HcqcrKgN${3xd(XM& z-tWCJ-al`=J%)~qu(Q|NtIjp&Z_cSPtX}FDl`(e13p1KE`SN*Wo??uS-dpRwCqh*M`ZTm9kEh6@Outa7=*Qkue+EV#8^0lq>P&UVeQ(^I zk|M0P4{dE{7i#dOHu@B|?jfMgss;-VmaJ|tfgJ)7b&BUPS# z_OBzx2l`Q3vx<@=;~eey7O`DpefJlD1b6*myLuE=EzvhKfs>E;AR_jrTVj39|EGQ? zF)x=ZD6G;@e-LX+!#aqrM1vodW`&wRfON}VGp3X(BFyT0M_l^`3!~4iiVYBR)eml@ zNsGt5sTO>^T6W|bmeca_1}^4QWo~21!bA7v{?j(=KK4cnYjMQ|;@-R^!;>vDevp?N znt>NuIkT(*et=FPwBNJM;?NrBU%zyrd=I*AA!o*)dKJZRs!No^jpg=!+>ZGNQipaLxCk30nzkO z6=rCmyVz(hOI;t|b^9l4w)7ty3*Cdo9GgoO(?raqQ<3U05GPNzC(HR0m)vfDnCWh9m7bx%!-agQK`Z*znF!9znWE+wd zlZ<;HjQh%$2%(#i)fyCnktX(%T+OFeylp0Z9@*Ajr0KT?tYZea!z3RB_kPw@hJr3x zkDppHq-HkEun3UA9N*CV8)09&<(Y9IB6W>Xufn%g>YGQtvY#WDOdi(a2!ABc@YD7!H`{VpUc^ zwQkkO-k0V~bCs2(nBV@GuaKAhrBWM|^SR^kO0%jLToeN-#5la2TJp_WA8bzaD-`Sj zPZW5MPBIMQ7P@ML5;_>%r_+67Us_u0O2+>@d%T+l2GVq8i`3v`2!U^hv?SIS{I)XH zSZcP@-Uq_r=;c|>DEl(LZFmT#ZR~<~RtU z-4M9$Z&CMR^pjA2u1b>cEHCa&dNl_wcJ# zis>$3{8?kx&?a+Cf84q=?rZw&3T?Uxt_4{kAZ0h(X>uDUX*=6l3xRb?$~Qxz_d}xH zxjaf}wEZ&7Aw_Rnk%B1D9WxF|I78po9(1jN>t(v;yHE}{ZF~1%@&wdV&VG)=8sC=s zg{c8^rV4@5F|}xubU`hx?iilmws)_Vy8SOR&&o37fjRl|FZdRw*53ZJ(&>Mlr+Ka& ztsUQsZW2Oke_sM++uH+c3qxfk9sZK^j8#~eOs(y(2%~v%JH~hPO7mK?Q*}R=?95r3 z$8RtvgJ-d%*|wt(?2WjJZzm^*fNLlR$h&|VgO2zZE~iDbYD4wiEIDGZCYpr3rYh&qa*J~CJk9vV^$%) zt3$@bLCVhLOscx7uMvXv;edf)VOr{yFpk%S_Ar$K@??>1n4Dz`DsQMyFzfj&6x{++ zQ<%xg-I6Yl5G@7lr&M*hXw{v!rXm;7PTI>3Mt$VBIT|Ak$T7~%S?$3Kv>DaFVjfHV z2k4vMy-ha-jzgts^^HGDMClX1733!!a*wk}(T^0n`-sOzxhksJFBd$qg>7&g3jGe$ z#P(rMeo2{1`ljZR;oF> z`G?~%kQSThST zn;Y{jhhLu=^Txbc_wyiDVChciy#sNX-hf?tci9`sso$*Vb{a@Di}#ql7Td{w}@0yy_j?X8y5xyhq_&&urQJMq3T z#gG?h_Ez0lFHD@s0U#2Cc;@SdQVC@=R8b~mmSeId9OGxTbpr_ki5-41L2fsK!Ote` zgI`Zo9ftAlVP)j~O*`j2#Ik%>R#5AQBv$)aKsZ?gHCuSr-64PSIT=b(a6}gAlQBQc zCJBZ>kIVCI*WlBA$|i980$uwx(lh8*1RVbg@S#?B)NyOuW|sp@fqA(#U|6&Y&+b9+ z$9+%W+~CzSC!y&}B_$RZy#URXkmmX6G}lB;qH)pbJ5{^Whm+)lCHHCc7E+O>{k<|} zwrov4A`!-@Gh~0ys9rpWYAE&q^jK)X3@_vhiouc2Q2ImbRXPEN+>C2EL`c|LYzsu)xV7FC+U5Fh z@XFGWj^=I~pMB}N#sC)}7Ug6hsFoXaLoKqde%Hu`#=vBJ9h z@@E$0d95>v3LWdT#bkd%tTRDLs^lLBAA~l=V0R&Vd{s&0FXRK%X1p@n((}JqfC%Lh zsj}FG6ktCW+^FlBXzA-c1R^#t^XZj+eXMZmSfz`u-zg5|pUh(3Z zFE~n7O#HcJ#@L3WrFp26)@nI@SVKd@&ji3Q0_62{iivhxTWbbl=y;YZRhA;eIL=Fx zklud@>o?dxX&r}_5F;o@DZ&a+&=oP_H}o@w5kLkoBxC#3?8vov2mHLlAZ9Oo0^ zUxJH%BdD|sK1mJ66HjaH1INgZD$}Qcc9nw+h;G}{(&)WDJ4shQ=l^Z)VsBq!3Fh&b z(Hm49C4Pap&0K>XvKEb20L2W8`5I8rjzBEebMiY$i%Tla(s<%nbemCoHyuq}G+;Hb z9g?-LKAG|@p#&eCCqK+C;x3(>0Z-a(%i7lfDp7P&eCfURvWL{gO-DRdqyLbZ3JAq) zP$4s&X25)yqrv0pcw@!;UyxDxZ{&qWPc-OcJu9NWa_r^*d`O`|TkTYZ>KvFmmDBFWw3S!WcZC zBW4YcdDjON`Sy8K0u?RqXDcl#{pmh|8bf171rNv1ISnjO)LCP6Gn&s=9tBYkusf( z^!xIAKdx~(bN=IQ;A2Q800jasQg!MWc!!WQB#@}&zA}LLCi?t$8a{dY990Jnk! zDn@Idthk#N58MjC&Bg#V`Ue24uF0kbZ9)D~BCrSMl)nFXjJ?gyJ_#__z`J|y{_JQT zV*=P@M4Ege3<->%h6a5AFZH22{ok*Ze;QyhrKF_`fNUHSlaszyi^(Y|;{e^e-^&@1 z55T6HwaC8yv+LqAGD#8~qW>M|EoipQuHau zl{Ej|ZEuu8Z+GbRfI%lAESv$f5ist`^L;K{xbX01$i`fQI}mJ95MTrUtA+H8ZbSpA zEYke3%0M*$h*lq%h(4+~UjV{IoIVFsn%Yu1PXEQH^J)!sD`-t%%7oU%HegNJ>FJdC zGj>;K2Gw7jApo<)4)_U`hz2GCSHaK6ZNOal4TrM8(b4e#P8D9ji>TX_mcuVpkv4$mn*z^QRy=G0LdsE*Utrmw_C3IJe_LF9 z2do^bQ9w&cNK0=J2vpRXQcD5+a0vCsIRi-m?1~{#&Fd3Oy7s^(d9yJ$ni6i({%5ehD(EaHd)r3D@?(e(86D`^wu(|fVcl#KecRQftoSDen#@PDB; z!l-e)8~u^~*bvlKhZ)nB4}8b3f#!X-wwSF^ko}8|dMAylF6NC&f!5QO6{oW_!6sZ9 zJUO2p$*5ZDqZEVz2tNmGZ}be2vp>%;F#oj+c`y|7iSnQ{xPSig!DbU8M|{7&1ZLQQ z8u+z0wKMSJSp>JlvC&gw;8`Tea{e0z-@uuxZ;M$r?;N0ju+LPwkpd>>d^@?nq2SzL zDm5+<=O|ATW71`bt$GDG6;Kx$fXl9RMwJ3#5C{Eq&Y`GaKCrYU0aF8*fsiU7qs5zI z>f8MyGc%qH=ESKQz#Lk1j7_x1-Tp*NC6@Q#_4J%2n>==JyZhe*FSa-P+Afa9EUv*D5b5aoTMkCN@*?-3LPg zg}a^=@Z=N66vOn#Xew`fGj5b~(|+sC*P3oo^KH7TNT(y?m&RUeN{~Fn? zqo8dBYaPbofyh)^;lb?ccBbC15XU~jCcVCSx+sVsFI&hupHN(ZYt+8k(@ud2-zC{F zVs}KUv)5)BC0DiX*!Rs4tU<2S?dFfba~JDgq9}GnL^lBQ9g5j0=o9IX?(u>OXD;5H zh5X$5qX%jMRkEM2@p*QQPmU35|Q8ZGT_dvK6N=`*nLYVl2XIooJX`j8rSTC}YPAlwgN~zY<#WQF5H>Ypw51Rp?D3a-HKn`Fp3i-ZK zJ(^iw`{O?0Ol15kz$nIe{8j#@w&ueU51DM@tW1tKm$5PPB!a%87{hT(iY}nC$Qa{3 z?}xU67>t(PtdVdsjw~0K{dT1+Bhe7N-dHp0r|?_5P<*hYj%pHI))-}~*i5%k{CL0| zPSa-BvX}bD?O}`4-P@$(`sFM2;yADJ0BO!)7b6s9)5x%~HL;h}@czg-z8tiDB}Nas zLUC;=6fa#$>#%KU%v4PBA=R6F<-IFw8N|CUcjIoklM{!7IR1${3M!as;P*KHc6LD> zY20CFmPtNsytRz$0O@v`c!S#eDe}S?DvxA7vZa>*bbaMVn$+UE?e>#5ba$8^TNd`Z zwLpOlL2R06XIBaHT{@Pcp}`$InP;H70K9;m{1365$aF%(FRQrG7^D6GA>H!qZO|B} zj2UAB8s+(zbK`3g`&ko}ay+fyVY9RoZW7Cw;Dq~}l&Q;5c)zK4ZP+7M;C2-z`PUjD( zr}!m1ITYx$8Lg*X&%wPM1nY3cIUfHp?8D4iKTW-)N4a#?qdO;+bLTg#X=xri)pgfo zDf(iR7M=(j3#b()vAzA4l1Lxl@|t`Q-#OY~UYn6)0;%IFPOM{^GC?DyOm2+~&OE5G zigmomE{q2zl~_HmY!zUE7JPiOtrD$`4!bwhEWh61#3aA)&0eB(i7`>xC1~%WjaQ@i zH|xqnpf_~%q%01%fdZbX70O5@+-N3#9}6R%G<kU1ei_7VI;U9k|Q8C z@0S=M^R!(5E9rrp+qboH0oRDwPa0n)3F`Ki)`@U!w~N5}?|s$Lv~lZRB~|lvx}+l1 zUPd6O$Z-u&QWwCPOJ}gKl+)w71e$M>CBL{j@|Nze^G_!oJ3P6WZCVv zrc0zRGXq}4SZR+#T|f)cqEjM>@T7|q!QF~XT!feC8g6Fq7c7M@<(u{(wzS7|IM0@G zYaSx+c|7vQ8L$y1#46W2J9t4hhCk9+D(Cj&*o)Wi$=q^^w^HHGsOuKQoDe4i*vdOr(_ z*}$d69wz1FRS~symF+N{kc zjK6Idx!hD9`QnBn)wtbLC6qW2YG27AdsuN%I$VTwP<7vretyu^o^%Yr%&sxT=3~Z( z3zP&g;^AJF{H8*azF(ar&z)$Z@z~5vq^FT=yyNRs={#0sI1md;=jtOH1;bu!^A3l9 zJmyxOTWJv*GK<$8mVEe2_CSt94A@*5`}N&K`I3_og9=rm#)G}!DBCYhbt7#MYf-9{rcuwN=s7S`z2M!E z*5w>hs%_wWoRu}C04l9wlGup*LuB+lz6eM7I8mHYN0)PM-91imXhw=$H-NIm%z@p_ z<3FXNN9VkxK=_S1QZx&0S3c-|P99ms zoBmG%+4F8Yq18a355TT;P{VnV9(p5Mzd1h;dInI=wd)?a9CyaO^OcSJymh>ysLG6) z?{^gJ(1GyrqM|UjL_K{XSc3Q0?RxXEKV3lb<}|4gna*XC*FX(}VnGsmt@osG{*ot? za)xGctdgr^fNKEOnnezvkpb9{CJ5HlU6V+ou8UU%YoQ7+TRp|?;nczg&6tWJ zLgXZVbKKUjdkAy3+mD>MFaZ+#T^rk{7o5e@FSpXFh3|69ko+q694lBZOa zF?4F@b9y}F1Pe&j&T(kKec|?VD_JkW#x-4lx-Lk5ZOxXx(P)#gG)D9vsP>t&B<=!| zAfVcN^hgSowRFBNCuYC*)QnI4i+5pYkGgECJrif~uo+sW5uw6>H8N+}tdX*8ON+2^ z`7Jw_Y_jx}{rrygT0=8GpspIcD?eL5`SUiK45$m?c!rf$P2OU)G?cB9k@6aN6AYrK z;ZIP9Nf$uS5e0;zD-tk?Z`KR1i#EFjA;|ta2TPZ>kL{kL6u3EsyHj@fgzi`xCbx-w zyM3EhV#qWsfBMQgZbOJ$f>k;-5rzXRifdk**p+g$CK@i?5e@t%I>yE*^V*so62^f) zrz0ww+LFv2f}#ql4)k0zvxO{8m9ut&I6#*5K;*5~D&cfFi6`|CsGsM2y(6SmCLcd3 zX`60uvVesOH2`i8#lS4uEOV|=Bbt4$fg+k6V>7l#bO$YObr^M%p7gKYX|6mPifth4 z>YiJHlF?;c5IdZakA78(or%@maeeE%S|Z>5B#u`$8XUn6Mung4)?Lw?2v}3|u1D5h zYX8|cVzmXFXGNQJJDHSWYjX@I57^6#fv{WZq!=a1Q+zn55a7LhOR2))aIM1O#zhHR zl>0eP>3D(^&vuimOjYYNssH`=!&Pdi&c1 zQGM0bV0iCT#{FWqmWC7ddh>M2V$;?fALo4g@eT@3LjGo0!z2#yLn7nL*t}xJ<3b&+ zA(!+n#W{SX9p+XzF7q(9mH>X9piexeST#V@{o zxhP4`Pg~4SsW?9dL%DpY$YGcuwM{!psRQJ@tWhodHoMp zD&f{XDg_3#*TIc}_d;SEU~It+~+nyjzA;20*;&0kzxcW8D9_1yAc7!4NB1u6Lu zANS;KF^$XisGsvmG)xd)iiQ)$sSB8Udb*3f5$4y5X%4ZxjQ}fe6e62C}Iw z+a|2zEL9rX-b%_J3yg5O5v^FZto_Y&nN#QF@!Np>EEBP9xACQ(j&FX@t)hx^x+jx( z5T?K}?sp!|Zs@Y`ECO>dICJ!Uj4cr+)ZJRbaIG;9knQx$4~Z>PcJyaRZ;5O|wBW$88G zxu?C8E11CGB=zx@a~lCV4;_H$W8@FHMF7~}rWuSQPh%3Fe4rxA0C5cebe8{xs$?(q zYy_wZXR53t0G*w9Q|1EKp>HnPGYech_4;f8OE^*9QIY_zI;tOoTW205GQNhhsBlAtg?q1gtk6GI(W$~ zW7k;#R8*kASM#fqhda}00ma;kuZ3k|Cyw%uWR0agx$b2} z6D0prFKIw$f94obrB~{9X0D0UYy?S({J;-}ZC)ttbFm_RaeO4#3XAuPBP6c~} z`ya89LRuwrK2;$b)@xPGTb3lpo=__Nl~x@5qPnl<6~gRkNQL|y{w+;F&`)@PRH^Au zp@n{yoY+>2w*jV)*OsTn1!|z7Cw2NlcA{p|E90*rNJ&eM8lwQ!!pHW z(94@%_|V=$PN1Yjr-abI45SLFHBqCDGroo4hZ1gWC)%gSiiq-!%@r#tK2=UCnG9d6 zU7z=#X2iK}OIdY``!%h0+P8@ZwiZsVwS7d}*=kH|B`7x6qDx%2^CK5jR|=ND@-U-g z8%mWhY0-}9q95NwBJx;OnwW8w3zoy@$w#0)rigObtpY-JQL@%C%qDrj~C%UmTaWvDmFh)$RMm zAhamy*WRLk3CZ_!Aq&B%8{ABKs(hl*>gI3q?uF)|WIblX*ZDjjp3GX#`bcacQEp(? zpkq#LQza(`%WrP)V#|Auws1 zVpG*!*M&sYoub4(Roe)jkR=I9X!Db5#mjkMm$cgno7Yaq=j0k_tDtq)no;oc>|$*L zDcf+pcE~JmA_zsIMFg05H;xRl-#Qr5vWdBQ$$oVk1WrUV8&3E; z7->s+4LO$e+DcGt476!yAIB+}Ejs8?^bu{Fo&$By%jVI}&DqXml)4RqQr~%_7{5)) zGeog(9S&OAv>+!TU~dlL_3@s2`^EWoFX89K$8mrsMUf1}Lr{@k zRC?gk>Q&WSwCC7!u-FZ%W^VGUxJdpVO7v|f1-72b?1?>8#|Xg!K}x3^XL(=mar_Jh z+D0Yfcci>gfYZ}Am71D|3nN+K_1ZHcO5JyhUjjP8j)=sd%lk)JLS1gwR+^d*3$=JR zp$ZnMh#?rbj(61YKuNJ2WumK$o^zugTe-3|_ikT4Y6OH2tbg#rTmyD*Eh7ZOJRGrd z=~9}hg5eQ%4jb_TaFW+*%cgo1dv>?Jo$^Vhv88z|?B4MlnAGWb)y)ZTddQs)8G)Us z%-4#!RgrUvaQ{;@Yds1!ykoV_xgP3afHEjOsU#zv;o2Q19;>a)>ws^6+2PB&Zi)Sx z2b@!wd*Hssr}`aMu(c}=l0G~F5Ic4;-L{hhq;aBXIgppmKKG#1-bYb*wZ>|9&VSPO z?a`U?#L&vJC1R`fWz#Z)KR5sHRm${{LIE|{!|h*ijv(*FNm>TXT1*HBqA_fT>`A)C3@U%cTaz0X- zUar(WCW8L-OCoEcX0s3F+e~le_YCfUSj+!sa5t6&PE(ayvMU{AR^&K+SM?a8MvB=* z&uMK(UhMV90J=GBFaP*Wom{zkfw8w#ZMWmQ9CBscqo>hbf3W~7!+=vDFeths6y@lS z?>AKXHZC*jiK?OjaMMzSJVT-9zCYo(_sDc+s{fvEY{2PNKCo9_dFXQ>HiYl+)*Fk+ z?<&Kj_Bp0o#%mBUbd4@*s;x+5Oz8L89qndL5(E*|Y$e$`r@!o=3PXu4hk{`4f>{R^Vu9ys^y4HV*LlUyD!c$r-y#;U}=z05}R($B^9IwAdMWAX&f zl(Eocya$dHHG4x(ky&N_65m!ap*D)|=5a$t;B>Bjk6iy8;Z9<;eA9HpMzKa_nken3 zD`1^64Oc5McW;}ly$hSBsZW%2^ykc%MrR(7ZCkHqOW$5GCaW;Fxj<*~o|i`!2)Oi_ z8`6t$K6`h`=i}PVXt1(L&&hJ%TxnWPf~8gTK9A6Lj5Tbi|8l%_dQ|lzQf=%sLTL7# zGMuB!3=2Nq}6YVQ9Mw?G}j!Ev0^jpLcU1v$5#{U4LWH zI_^M?IbrW*)OEnyp80Oz+vED~(FJ6B8nPT-0QesEX8oQ)^;7XlH>}JZ{aH}`)DUln z0W^c^7wM1QUASxnxQ+n)v_P;tyWCMs$Ax3UZ@JOWh402a6kAFKVhwlkPos4gbSjBw zz!`B!>taxD{TF&Gg>6D-N^wrYlE6X-VbWiYZll=*C*X{pU{0D9Q!*t{s=z%Ro^klp z^|tTz9Tmct?A|wdI6g39m0aSPnpWG(jm69vKaEUymG`VQ4DJ(g*OZ)=2!q2NT3kQXy*tsp=3FDUaLs2Yr|LFE zshC-REW74{=c%-xcp(~Io9}n$espB;mCcF@=HoVCCnL&rmxm(PMl}bs4U;Z`Wmr%n z0@A1rhcB54W#o8{Fs&Y43e$Fm>NkD5VhmkWylV+EEbfw zB_Uy9Vlu0Y{@iid&OEUM%z)vz)`Az?Ae)cUEZwJ1H?_6#vOa|PmPfCLHokKLeHF0p zagczHV3-p)=;-K}544qgC?rP0&wfK6Hv2sC^NqIoD0mcQ*9WGn>SW?7iGW%9&KuI)Y~)ff zjam^BY+LuyIbPGhRKQlx7Xia>t^1KaG-0>uDV(lY5=8s<<{R&Mj%MM)s(!Mu0AYO@ z(rPx+h}p$SH~m`mFTFo3cI0Ph%iWkNz5D%h%A*mV4_`aH11UWxT8%Sdrb{Qu^mTa1 z=EvD(`N*b|o!E0wia(dS+BmI?&3s?r73J3baWkoO#^34EruH06`o0wFiTF&Nx3XAw z_uE3tf!TT)VJ^mSD1I-p&Sowi52AmYw6uZi8%w4^)Cf*}@wg61O88bp2BL)`H%khM^=i8MYB_uN)@ zk=qTaOAkZcKEU3*2Xj&l zJ9ysO0(+D%-fV13cx~ND+s@-DqZ-8tUilef?Y_E=Pkkv&c}WW z*AL$!Rb>)CHReIKqB$dA#2scglEpm5D&qi=-f!O^Sclr$udD9>BT6L8m#GR99OZl*G(a>;zo$3}fK_&joi6FinX zoo#~PFlT>Pw#u2p7HBwm;Kk1X6R$n;zXX2*Zoncf%j1@~#guP(4kE19 z4`QO#EoTY#l7}_&tiSwf{jKXWX@25!n=c;RFGGqV9eyFlhY_$eli3ZM!7*;J)wL8H zJ_4D>HvI+v9Ut+^JDs>cFSI;sDlg)8vP!pcXN=b6h!9(Nli3s(HW`EiKFFJ~+;zK;j_Gb=ECYwoiOd*23BpvdZogs$gKnZ?IVHt+QaH2BP|>te?*&QE*)dj9(O$wozi!vUkq z2BBuGEzVSyY)|MaG#y+&rp_$OGQs4PLV7wLa7sO=6lQyn%s`JB>BN&{U#Il4Dbr){ z>Rf&pz032yJNEVWHe@1Y;V_enP8SdN%)!e)IQV~u{w|ETG#4AO_Sj@9sN6PKT3s-JV?d7!ebQ-7iP)=#F-PDYB#_`D%gNg(Ox#rP2AkbMC{WYx=M=%|#~b z-nVX()kmgqW9L-U2Zq|nBMuFGKEK+ZFYTz}i@?i`p-iXS9lYQ7^x%HbrAqHH-DrvA+LC1s=HO$i*ZI^Lgg%Xc**p76OTs~a$(JdxzJf~a5 zW-g?~Dj#TN0O7+LHc+8eT8c6zFrCN^M?!%@edN+vB=FOi+SN~PPpYaAc?W!bYbsDg z>rd0)jjG`nF7wr)fH9j#l* zeNjE?pjZ^d%N+PTeeCRpx16;$?Q10q*q&^D7H8rR1f|y^!Y^`^^!9v$dIiE){U}a@ zH?x#>`a57JPm_X6I}C+ta~DTG>vGI(9x$xcjS8&UM?mEoNI~N9#pKD562iQwLQ_TA zhZKL_wkE%0%;`0lP7Y#iS(7lYke-F&=r@V)AR1DR3mlF%*`6UOz$~ARygLOvcGV0d zwP`Ij;;sNFTxapEIwuVmoc4(0`=?B!n@xI5tCUSNJKcu{>}74qIF?b_)f%y*#+G+; zxVBw#)-j~8xW>Fx)1+@Ko$NhL>Z?a?<-04IFlP0{!Y=jgF9^LkN7-GX#I+G3O#3)a zgkW-6ILfL5luLoQ2LmQV?pjznIl|+ZtUJ1gH!ZMXd+b@D-{7{=?uTiSsw>*s97HoY zDxWv)m#~Blw92NIDSQ?15j1Vg6^TA(2U&u_Eolr+a+3DAp;|+y1}>qNeT|%fN6u@} zLfI>IsLShgx0ZAVV6o{?Y#w0(YpRBBrcOpCInsx7b;p)={vg`&ggKPwZ{TBJ!riOF z13NNbnGY9Iq;6_Wc?w$`c8scr&i7J^yfL~!D+*G__W{o!XEdQEb~soNwsQa zx!C<=4q|%cFEU5Mq_i`6Ngc;@4|Z8Xs&w=? z=A|J!8^Qj|y9i8gTv1d?;*8dxZ?6NBuSxD6@>s~ah}5#IX9@_id{iuznvouWa=1P1 zq}t9Dpo)SYua{V38$|h|`+Q81XpWn?U3Y#hje;|gwU_UP3|Zppv`kx1>J$c* zKof~gs!W(h38|F^Il_F!(k!;+y+~JP8M28UVJB-aNOz#ig$8Hq@vr(tFhxM*Q;kt9 ztgvbUpJP9sR+Glb`3--FMJq018yLr2=nHTLnyf$HhH`@S|2fUHOot*q2BfVU`iGm9 zs|m@X6hi(`d@?)Z?~tEtIy>?n+J;eW$OS8XN#7iZFSQ-avK_#Gk&QZBbaf<{ z?BU1i@JZqz9jB&+jy;YIAGhVHB@|yGX2+xT$8SB!HeA>XZ4dqSeF%S${^@i+~wzhzi=2 z%A5=#TWF#zHb!%B(|tn9>_cKgX?;r2Cdb`b<5U9qKw%IW{1Ln+4|NB*tv1N{fE<8b zjj>PdBG~%9HFl1&V04n%1GZ32Q?>7t8M+vD`^4#>anWau`{!R7W#6bsi6%f6bd7jd zrI+L7W_AybUC5X`cU?Ddr&>ed8X+`nb-u;P(`_P7?oDOb4$$2zg%cc!BT3*g!_*Y0 zKt#CT@`$(zE{C;g??a>`^e^CW^#jdS#)+rvzog>uER565!N-b?SWhb@NWT}#uewfX z!$%Z=QM1}4)rJc&r`Wf*RdtM$u@D*#wIzu_oI)bo$G>6%x2IeY|JaWMS!5PG?iKQ> zM(b&`adB)AeD84ZiT!j(tOcXN%YG4v(U0kVAcbZ-Rf9&w_fSXU)CO6g$CUFi!4PXJ z+b92S^MEI(Uc6~(R?t7odlfri9!Bt0$97^~k0+K%bIg*AbevhHOY8Lf)bDy5vk+_HnlS{= zKT&A4(jQBQX~CQ1p!GbQ8dl<(_eWJ@1^gnZlLq*V|9WP7PR8hBt4bM@yXCj?c_S96y0#tU)`Pzz5xZQmx>I_sKd>Ni z8{hBo%%QDOg#?bydo3S6e85rUQh%Ck_z0)}{&x^$E3*f* zZHs01^=lpU7x1n473@Hllo<%%Ntff>jx85}(74SwxUASEVuwGD=dWHC4*vA)2@nWZ zHLBRCK~&es^@U*5R;5bZnUGNu@DzU2Ryp9W1GCO;sel(i3QTBoRH^3b-%*tlICJJn zrS-qQ7sMMR=L~#&fvFr29Kfy&xOd&qT?XP0`{3un(PxQoQ=fnTtJu|c7X~0I z?g#4g0VuI1fI};hOEqqpj^pTYoPc564=*4^&ONH{2=xkJOt9Tu1CZD?*(2JCg52B( zd^*LwEAa>iO|6c{tN&=L)1T^QQa5~nQ|2jXIgOFmv?X;Xe$lq}PVnsC!J%VZD?X$G zg#&Lqdb6ecu@RK8qTlLIcrkQuy~pVC-!FG->HSBU9OGl4LXsicwC;`s>RM z17|L2Y_f6cW)*e8h!y;+U2c}x2D`jYV?EerP&n$S>;x#ycp%_1kfq!zH;48{wLbyd zOd(^^>#waP_;q-QJ>I$asz(S$P`%ftLi}^tx%%&-1MZDoB)9B!vs{C_0>N&LAO{or zjUF4tMO%#3(dJHGbyrwD)F`b(7U<-2DDK=d`Z<-3w-K zueH;zCXp^MKl?jkw%N_Id+j+rq$In$e~)H}Vi@Xbbv4YWe+ed&3W zZlugl4GBYhIKZsy=YQ&Y`k%VcHhJP48&+0P18QigaK9}*b?}TV({fkZ&Ur2Rc87A~ zzli+ud?Q{%r_w^h)V5ZNOKUxOA!P?M&)4iHw($X5U>@xK3daO@ZO&JQcWo9Orwx-(9;>bP6q4hM2;KB zd+2|L9KWzsDJp?l+UtY#{xy#2)Lb)z*xIHMy8MKg`xi9G*M2pFzbwMYi&XTQh2X`FoWpw=p_DUqx*z)A=fe z9^Xb>kdl|F3*Q2>Un4G&L?7+Ld~KgZYL$u}w<2>t2(OlayocCnzCwUyqVBUbv1pj0 zzRCw%S6fUp)s`Oq26q~&B@)L`(=zr4<>f}_@tmu{f0xzHpBOO=kH`3k1C_@D<*1{Z z6?~R=?)M#br-~UKVW3~Ly0Q<6L)Sb??fX~J_R-M@wU zvcZ+yU0i4g0hLQl9?pVSG3-LilS6f3ep?ouKp5ST~UZyyV-njKmCWI^I9Kyo&4Mou%sR7LOrD2YIfuQ852ub5 z@$r>)^Miu2GIa>VFx*NrDLBwKI3hbQVSLh9me?!-WJC01QK56{oTmdalBqe@?WpQz zilAS6T`JK}C-(SOLUqk2V{b3G<$qlbBX6*>8=?{yYQi|5v~>E7zA;UQM=O6(8j}=v zntj%Za8;UYo0F{6fmr+6OXc{?EH-zPn=MUn+K(f_x!|NK;kv?=llC0d|IC;V^|s`0 zIoz?-1OMYhPE;>2{AJ#q6;=*E@IaJDn<}32UaH-4?E6%cs4?Z#(>=5AB@yGWF&in* z5T2XhIb9CkC2o z=YefU^`)8j;h@@*<%Vi2LtV@d;|o3OQ}bUx&9iYS8Q?tdQ)}X945h3gj-!TC(UH>z zRoigoGEtY$SN>j=1$~&uY>NyUJuWifOtz#YHxktJEs1qMv{v~{iC+1w! z_WV~*p4D~KYj%)5@dt4{4t*$fot<@ORBB4Z<h6rC=awu?Fwd+sNq2 z#Lp7Lf*sy-HQqCjELQy@FYQ)8H-$C6koRp#3#MT}(qaY0o`i0jyp(9Xz9XVl2JG^G ztyzz23~UyYCp_&}p^?Gid3Bj0$)JfSR`v@A7wMP6!$GMMr$O$_cclFkGAhmDvBO= zQgP4xx+==~MKjULrW9g4G_56DRmD)Vy0If*yD*jTG*d)+I?>noxNs8iN3yfC<29y_ zzx$t|tpDcD+2U1~pP_Y|@?{b|>XKIT!;@7dhIq??nd~Wug@0bN8!)0K-{cmVBud;V zL#5<;EYCE~TsH+pg#(|YlB)`KW-c&b=_3%8As5DKSb4Ku9W}O`RLQ%wEq=3_Hu=ei zM!I#K-l$$#1LTc3}TfXXZ)+3_! zZI9r(pAaW}P?lHO0dw?Bqmk@{gdN(=(V+63qli3ePU3oJY{%#ZMR^bTfgp|KfjZ3 z#-katdKXP6lxz@pOemAUB}b+?1uMUwaTn3Kj}|Rt+?H3~M>Q5t%P@|KaGmo0rx^Gm z0YNidg@B1km7o%UB~j;akGi(+b}(>njn|P6QpL^&6U;h+JEk?j58_ z`S4!tjw&*9v}jcPdZE9dpWt;T3!QVsx61LljepINfCje$$5g_5b#R(AHq60!E)i&N z%T9j;D-SBiS$lqy`c+^mGs`Z^_+Dz-)>J)D&BoAPa4ysYoqFKo2-8hsInN^=$|~el zXNg$90kjv}bajQ-t3O=6Ek%3V7;cWGJ$>eWK4>-bOhj(UqPLTfc=&83SpAuj!KE9c z^+jL5mqsf2Hf@U8(Jchm=D2tE)-RM29sF$6?||ljpPHW!>h5smmeoYn+za|N!l%|Z z6Xo-1tr0LVCf{zD!c+b=t5&z=1R)Z9x}~h%zzKoZxaXVufI!`HPP|E>$6t8^fH6Mw z74QjOF!*=0_FhN=pR?;slaMh|E|do~hQA6s@$AR&H-vz=Cuh{Kp24 zP*(fD+WXF^rnYwL;8C%26cnY1N4f}zQl#6c(xf9*L6F`FJt%?*0!NB;P>~|NNDa+H zm!|ZZ&;&^!p@onT;I43v3GY|Nea9W+j_><%`QdOtvew$`X>-nJ?Y*5oZ4!WTOuhy8 zI=Uwo6P29P5W zj$iY|BHeJzr#4v83#q+t>l%V|8n;rL6{sbM#-}(-5}+Tw>JyN;wkNRyf3FVQH2&~s z@1f3fczVk)3S@9**o&=`H>lG>AUeuzGGD#{IDZMEbnmt{-9PpVkjvv-3c6FhA*Qq7 z+whp&g7{@wGZY!8<|jEOeXj!E*E@ua1DQ;)?$7+K-ZEP)o7Rhh7gY@#Q{9Y6#~}A8 zyJ_~N65#ti{{)yze!dXk_r7gE@nOO}ax%G~`#ol_9vXIjZ$*{PJ1v;=TVo&IX!N4t z+2?Q1Hi3h$b-r<&oeHGu{z(G3z7%BoaxqNuqc%sL$+&duT*0CILXj~hOKm0yJ(Ui| zbAlaq6~%|6#lZWkJY<}Ah8Zi6Nnikla9ga@wJDDpax87fMRs|@k(t|)!4jLQR+5OR zZW!mwul5U)pSK-hdVZ-UeX(=l?A+@f16E^q&22A8XD%j_3#Yyqs>a1tRi7{{qUMpg z(>?ep#i-j2bwRS+Q`kPJT3C#XB~PYH@RaY>-1aI)LvE$R$R6-k9-vCN80_0%OSSru zxW4W5`nm2FySh42al&{!zc+WWyJ_{Yu90<1D-;_2vToExIH}j@srvl{Effk~!mggm zh8#5RtPTbwCgQcVxVGY2%Z}UIZo=G8FOWSopJsP}omCjbpt`_kfMtz~)>mxZGNJb7 z$BegJrb;_{#0I<*H=r5ciUewn+0DmHOw#6rXuf=bJozJBk4@FkI^{+-UA76u^C8Fk zzhtGg0p`Vm6M4W`9|m@~oqT5n~yVos^ndrhJ2?Lqj z>X?fQtwY6IRqI@!uzK3v7tK=*olv*37>rn~D*YISL~IBbsCvWYp*0D^&G9p22#;uvC>%w({dXQl|m)>e(Sp%mgXbmm}+3Jw8rO}G7l zWm$(KiLK?&*NZR2o0pD{6gsGCX>yf|b^ik+`FEFXx0@~OjSE;^eSJfU*s~CJY6TYw z{_0a33{0XKRT_$}V8@x117D~bxVlG)smB(s0{DVWT=Y7TVk#*NOE}%Us&0LtFLxe* zLXK^%WVnbr)KO`zrG?>Gczb(yKYE%rj)jtb0uG@73)daWzW}W%+|>pJr3>?T!ipB& zGGHtTU+ZqVJEpm-(fhfcuZx+s(NnT|tXCs*YvQ%e^=o>IJ-`h{i{XE;D(%&7k86uV zV>+@nxu#~1N-12v;Q($3&qijwu<@ad7K70b(3pC*@yF1mU=?fEVZANxiF0_cR_maV zuM2=_5Q#*$RDg#tZFTwWX7lwi6US~UmAH2uDrc>0AoLZwJjB%unyT2eLT{=>Ws11d z7xa2t`JvEbE}!G`Y@eo$_8igwost$ImLPM3Cc*3tygmOGx%$mp)DB8Y_9eMnO9=-Z z8JS{V;N?Q2@UcfL$}Ad3KW?tR`D91(nW~P!b8$ZVYjCC(FwyZkC~5d_3%mM8sX?Pt zWM_z(`s%Hpb~w-_kH&{HK@e{o;B%jC>uBb1Hz>t@=*WC+U^Y z)#qA=`=fAqT3SOg@ljY?cXGnMw_lJ-$g};)gu;kfIQk@t4Q5u@8gfm9;NNGxl$Z_| zukReyx}M_Ab$-kxTO6&$B8?sNTVQgv7c(_YN(LD4lzN4tfPC3Fccm~{?)p^$DvQX8 zd$2D>9YOL@lD`A%a|dl)sPpXxKx>_Dl2ecQ`#)QXBN-zjE{sKO+ySsG>J30;u=$Td z@b-bfSx^+n(HpN($A*D{OvaG0bH+go9w}_`>5&8Ke?W%bNS|a4>~ZcVC^_nFzpkcJ z%Ss)TL`MtRGQ!7tok+mpTkJ;Q9&ZczHQa4<3yj2Yn&V(VPan|#khBr|6!64EyV zF=jme7Oq|V_A{gC>}I@!AOFk5(of}LDJL)c7Y$P#=GMT|u9fJZJvu6FB$ZfBlwQcz zHn`Qi?;~feYfBMtYZ|=bbSM}eKr<;yfdAhS1Nhj#1zh$J#ILLTHxUzfwI3Cl{8uOH z|3L+tlbU5fTJ7)e*RDQc7V1yvFwNAzs#|^HJQd8DMUYnG>hs*d0|A_<1ocFi(QYUr z;$_nuN=nl+=3Jz0_+Sn<`6puE<@l~oKznFOQL|s4JzJD=<=SnPCEdjkM|wb``_`e{ z-vS6!P^cYCw~f+!5_x=!rszBsyz2bGB6oLcYTOoH?ENX8>S#JY^h89epaVIiA-;lm zx8x!=NZ6Ns_A$#7dwaEgUN8S^R!?eIJz=D$#3BlUbQ;D+lv=Izhn^*`8(iUy$N^nM zPW6C+afRhLnIH3MoP?ArQ7~loLsP@z%SglWtGgTFVkH~3crI4>`9}Xeb++1S_eEqH zP=ZZad^LvY%xI`pMq|Llq*{2_5{Dwa-JB{y4*9RAgPoX*LbN~)XN<||tVgy) zGOfxHO(-P)Pss)FC|LD2V!YDdJcus^oUDaw@_f$9nAHbDBe<(k9416gb?y@kyjnxm#0p%}UdJoHewa+m!5hz>hXdv(DH>Xi%RyyITf;;)rg5WIv=mRG;coWG0Nz8X5b3K zWM>FC>r2PlvP;0@PP)$;))LCsT8YH1ZraU@GMnItman0%v2JSpd1V-i820^4P*dEvAE49dE_}^pzGoW&7FPbi=RGVu#l_Y3ki0M+r2u zato%TEM3CffgQ}!a3FY(HtK=GCq*3%AD!)Bp}S0O55H^Y!AY*$2N( ze-`3A9W^D-CnqWPaSvvR){4t46?mE#b}frY%LM(L*u))9bF@bV!)YBRl5u59*p=ea zlg5o@%&R?_hS#t0OZ?I&GzNj&>o!EnS>Ig5!$Hq@B3Ji^UB+>y8PL#qqGL?phen=s zUrB;(i;IYUgl=jRp`7lVFCXr1JS|@w74DsIym?EPhhAZ9EcH%f_4igpvYP5YL_~F5 z+VT0?MmTy^Ea=wcpvb5Dn($)rpgXP!G|^o`44r%%vt^%RZjO{)sLpJT%etmj3?q4y zrP-(|S);g7j&jbT5et#k{ov#&VssjV~FGEO*QpUgSeAhd3mK2-r8P>(55_PpU%Og%KC39(9&i&JR54%Jwn@zNrac+4!td-~ag{R@FxA z$3`uEcs#1Cs#2mwd{2fp-mX*nEu>+bf??m~6&iaz@dt2a;kp@O`$HzzOIzEuR!|2K zIVJdpd&Z>T6i}qCFwAjJa|Q0cFRn%pWt9&{v!|B_u%ez;c--Gefidx0Bg=Siv~6a9 zcoTn^*Oh6!#QCfua}jN$VqARFds(BkS~cy;g{peKaP!813#YC`U>$~t6$)CN)xsX( zN1H&aYG~*9z1fSSZ@Z)0tAh)o=4Ct`wh$H)Lz%el?)A5y(tl`dop=so9nm^};*uyE zlb=W5PQm-pfU13z{G9|Vd^(h+5|!h-VI>Rv>YAYc1Fh&nLDN(iY(QtBK95M`$_GN0 z)^?V>pDCFv*DbeU2m-c;$-Mxwwk_I>VZQ(uazLlp8}xy^0YApOs2l~FXoGKe;EAQy zhi#Xv6*t^PvWh{9`t}{D*-}-Rd|ep{?SM-ylX*Rp7SD-rsgVR?!Aa1N3{TxyPL(3O zDi9W9(0r;GI$nOp*re za$)>i)rks24*+2}uKS>cOyE&t%mU&OIob^1?qaYna3N$hN&V{L3?-I`i~ z1hk;{M?)T5qtemL?2^)I8h}*~T4kNPMCc==p%^0+3bnd}uZNwwq6X^YSa!Zo7Sr-p z2WZQK_AscLlga&u;+{V)jt3Gshmy@#w>8p#%BBL^_sjxJqZ~)`#CQ$iLnuunaj+4Z z1vC8|%AlAe6>G-&1-E5GfI9$}p3AuknG2wVP0^(ZldG0P>afHoeT&x!VTp;Pm!qR3 zT30^?$f6$SOYN@OramKZI8fKD#uALoG@pF(Dc0I?-Uo}r27q`Ou_mzZBs zVi7ul7ie|@*gKMPtr`ObULZ4$sQX7nlBOB8m;}dZ8#1V>Z1%$n#;_4wUz+7el`A6) zANj9}RJ<*rck0A!7+6v{X-3w>Y0;??i!^oDAqv9nF6IEzz)lgcwPS(4N(k%ATKf(~ zrnnhdS7LqV>z+OH%KjZPw{JZ<{_{%}+$T3qq#qg@D#2rI9Z!fqH2=h`Pm+#fN2AV4H)6USjR89dXC;G(}JMQI>hYO9%kIlFxlz z!IUU7{*o}j*&c4nEdS3q?7!1q_}|F#ekCS8wZ6s*_RldHj&@Lbs>mWcxpk9REus`f zZinu4w35A9yF?oz5JlO&h65!z4(<*Q>xGt5XvzPr^X*AD(5a9B@zPDZrE6R(K}PIh zNq@JMK!>XvpxQ7~Uq_!~C(&P}G=NOcR5HKZEGT561@f2Gc89(7@PyD-DHf}|hLg6o z9gZGJW1XC)T0`XnIQq5M<}goY9zw>{+l;4?9h<}s?}6g@+|hGmB>*dt7eWXNqysMz zpszK?jcj~t!&C5Qq>PMYfvWM6U5~-_EhDw=4-dexy@fNCFN}4m`qa4($}hb^OQ5qj z72`WsmroyzC$|_#?d;Hb?cGnLg$gJ4u88%66TVb1zl1 zp&{ofZY8k2F(mKhAF3v6NPXabi9u~xJH*Isd@MQ=<)DRXorsI5g}nyM+r7`&s*c9 z>z=4gVa8+DYO4)t{qsq?xDSFy8uBQ`6{2rOK2oEj7m4{gGz7ExYXz9grD*LHx$z3R zkI7~BJ_?_KQpv%s9)5f%UlNp!;4g|M8|7KwG!%yt%Y_#&vW$S^C@p0G_c)$EieVj1 z<{%5J5mA34mc<(rH?VEQxG_!G&gSIs++F^K%2Ic?S3_9EwWOYmI{#Tu^wfJ?;YH>X z2eU6y5+LMw8}JPlU*aq4G$`PGrsMvO4o0xPt1n53C55>{=-#C6C^O@Z_bqvRpfzMY zjM)##-A)Ak7DiV8wG}qT#mg!u%#IXk+ooa=QFGzUy-^>9=kyH6(z=6p>ua~X!q@8P zZ|)Gf70o5zylQ8$yPXvC7g1Z$-utPUo^+6~$FRA}r@oEF=USu2S+FlHZgEXT;#h}? z`z}UI86(ni@X6F^h6B&8#z^qrYq`)yceQ+t4bK|!xetYyFoV$x9W58 zixJR;M)c|9+%pS|moM+IpT(u|(5tFr-yLaQ9>CNRpb(s^d*si@=q@b%r)rszU(EeqI{SI?cGof$`*2`;(JRxrJ`r%gM?#6Gi=9xud3nj$;=e{y zcIz$(7D}=4S*f*xSAX5C7ws&r5^Okeau3Yj**^%R%yiriIjV&HFVnHEh zy1qkK;H`#&tuQ0QFwbe)6>ogVc!f;3?mc0~E!h|NuH#mZt*vKZJ5(maEMM-FFiqby`q*x9=HdYd+01A|wP_Sf{nA;%MS2 zSkQVWd8Zv+9E~#$rIUT7e-r0x#Nw2HpUosPBM>aRnBEPc`M8ELfd?%Onn&$=^Wj=P3ZTif%~pQ5vf)$`!rX*jofv!DrFqgOj_ zdVCcZ64bXs;)BW%dhq7_sjo{rCYG@gdIe3ZKQP>kGhd&jnUcDrPupT!u^y3xiKB;S zR+_ibq)%sUi+|7B-EolLoc{6S=2lZcG|W@_a$@mjQOa*LS1wZyPsLxun)q?c*!wZ< zZuS;lWFkttuWFMzdIVc(*-XP^{eAOm-kWS2*VLa|nN9eSlJ0@@7Vo}V%R0ok=N!2*iv#9f`C!gKcHDGKr|AT{a~OXucsJ2oL9xoxU#3r!mv9>Pgop5Wn^hZC)SZ%yK!W-}q`_~K_jdE!x$E2gl` zZHFdkjn`#0VaA#9k+j7f(oj7itJm_GbxC>oIaA*ixsNdzf`RgvA;fbZ- zoOlD?jAzi@jxM+!@)ey--8t^WFz0Etaq>zKwM4b?r}?^4tlysK$pmv!jX|EpIlYVt zmgoIDwGi>(iTHm%H$u5lZVD5 zk#sStly5;G31@zBbO^)M42Bf7ER;~dAD+#27`*Fa{vT#!kc^+fHz}!eEcC+J?PD#q11f0f&KG#%!qZyi?pTD_S z+Vj}fHurgZz{@JXEsyaUFIRkuwBowLz`b7wksCVsZcHoj%E2ch1_lNy-O;+%Jv4_a z>gq1$=H_N#%6ZRNXuIlA8WkGA5N;AFIjtcf@KU#3pS8KJo4%V)EYjY>OyR+sv{$|@ zxJ?h{8?Jyyk~ilYR&1~qri3M1zW1iC@W8mBz&JBe?w*~UT~kYoJQ(h#%dBE&SC?GA z2lmnHz~IoT7vUP8ZwFRv8Q0g=vMzZ@jxKFr-06;!nmlH2QOv7RQcE+5c>2`b+#Km1 z_`>^%yx;TN@;V!*htrLGmT&yQRz**-{yjn~>7o(LQNN!LBK339t}$3?o5U)o{`&3% zWU2q)Cz~u8>>0V=DW7MUee`}ZFk(I2(h#x=SCNq?oUPRjx@Sy+EjQ`@^M7gR|Isr|OTt zyHB~2YnD$~=xy|5GrNkA)~(Ce?J4Gg+&z!u`Brl0qr-Vli^pfeiQD|swTb=a{s|`g ztrEOvl~?{d*|sbvqH;+10F%(ybD2{i6FF(>snpSYUf(#iIBziVGb<$F9!xv`bx1x^ zr1iqLS2&(1iiesV*oZd=OyPx0Ucub8b%Vly{4%F}GaObXk!;!jcr2sp4# zPk-tRi${9e?etoc;y;%o$IqUwI$16M{TW+~9A(3t*a9&J^xb}nb>i@bGnb~=ba>g5 zJN{UvKd5<*vgy}w@<)G!hAhe(yAB&~6AfH{|LfMN90@z-IfD4TV7ZA7yM6Y~Mg};> zdpbFu(3W%JmcL9pa|Go()UK3|`ekN_i{4;y3U9`H^A8U&K}x~}_-3Kn*%mcQAgS=o z3{QMW6+=1y0z+3IXN4Kk6PEWoH zk3Zb#AL+N-ZoF^7EuV5GDm0bvV$X5idA^l9Jy8_Vqu6#^_y?m_{fsODv6h;t64lI>5pFLq0Ha#r+oOKu+WqEGuuM^ zp%GIqM@VMpsn@`D_Vn=C;_hrXal)}Sun9Jsv*;<1HGzNe`~-DBI`fR~)MJ>8pB(g( zYm&Qj`_xyFhkPyq&)9URYhieoZB_)=z32ZRMe)`650556hT9ZZ==}U)rsi^EO$ihq zXsw|e5;x-z(8)zvOP*A79I!5#n`cUe6x%pH-v` z>(t5t-e{XT5Vjeq^uYah?qzm8%9RC3e?78&IVWsM{%H8Y=O=8=G?rhtOl^YEu2QSq z`M@0W`bS4%<1OouDxnXlK{1=zxyhZuA@KZI?Di?|dfvnoN+@~r5Qh;aXsBv0#{b%@ zma~YXB%VM@SWe2cxHn-qF8(+keQUf`nCiPy_eS8vCBJTy53=V~&K9RMM3zv)lX$J* z8+P&r{2=U`A+T{nq%-x4>z_iuIbuuc&g=-;x`d)!5`z}FDCOwNAi4mH+w5uX^*ZW#xZ%?AN~hH#&?qe}*=W{8p~Ne;R0bIVCBG2y&}{ngJkxCa7i6 zpFUkCpMJV5agYKJAubPc2RtIse(T>A*uh{@zs70``efeZ%T zjHkj(&Wppv*+b|R!h9O&P Date: Mon, 24 Mar 2025 13:49:28 -0500 Subject: [PATCH 4/9] Edit pass --- docs/fundamentals/http-commands.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index 766da64383..164d202449 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -33,9 +33,9 @@ These APIs are designed to integrate seamlessly with the .NET Aspire ecosystem, ## Considerations when registering HTTP commands -Since HTTP commands are exposed as HTTP endpoints on a resource, you should consider potential security implications. It might be best to only expose these command-centric HTTP endpoints in development or staging environments. Likewise, you should validate all requests to the HTTP command endpoint, to ensure they're coming from a trusted source. +Since HTTP commands are exposed via HTTP endpoints, consider potential security risks. Limit these endpoints to development or staging environments when possible. Always validate incoming requests to ensure they originate from trusted sources. For more information, see [ASP.NET Core security](/aspnet/core/security). -You can use the `configureRequest` callback to add authentication headers or other security measures to the request. One common approach is to use a shared secret, [external parameter](external-parameters.md), or token that is known only to the resource in the app host. The app host code can provide that shared value to the resource explicitly so it can be used to validate the request. This helps to prevent unauthorized access to the HTTP command. +Use the `configureRequest` callback to enhance security by adding authentication headers or other measures. A common approach is to use a shared secret, [external parameter](external-parameters.md), or token known only to the app host and resource. This shared value can be used to validate requests and prevent unauthorized access. ## Add a custom HTTP command @@ -85,11 +85,11 @@ The sample app host and corresponding ASP.NET Core minimal API projects demonstr :::image type="content" source="media/custom-http-command-highlighted.png" lightbox="media/custom-http-command-highlighted.png" alt-text=".NET Aspire dashboard: Resources page showing a highlighted custom HTTP command."::: -If you're to ignore the `isHighlighted` property, or set it to `false`, the command appears nested under the horizontal ellipsis menu (three dots) in the **Actions** column of the **Resources** page. This allows users to access the command without cluttering the UI with too many buttons. The following screenshot shows the same command appearing in the ellipsis menu: +If you're to omit the `isHighlighted` parameter, or set it to `false`, the command appears nested under the horizontal ellipsis menu (three dots) in the **Actions** column of the **Resources** page. This allows users to access the command without cluttering the UI with too many buttons. The following screenshot shows the same command appearing in the ellipsis menu: :::image type="content" source="media/custom-http-command.png" lightbox="media/custom-http-command.png" alt-text=".NET Aspire dashboard: Resources page showing a custom HTTP command in the ellipsis menu."::: -When the user clicks the button, the command is executed, and the HTTP request is sent to the specified endpoint. The dashboard provides feedback on the command's execution status, allowing users to monitor the results. When it's starting, a toast notification appears: +When the user selects the button, the command is executed, and the HTTP request is sent to the specified endpoint. The dashboard provides feedback on the command's execution status, allowing users to monitor the results. When it's starting, a toast notification appears: :::image type="content" source="media/custom-http-command-starting.png" lightbox="media/custom-http-command-starting.png" alt-text=".NET Aspire dashboard: Toast notification showing the custom HTTP command is starting."::: From 902e618c0a04658b527c6dc444e6184026c54b73 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 24 Mar 2025 13:51:24 -0500 Subject: [PATCH 5/9] Added playground sample --- docs/fundamentals/http-commands.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index 164d202449..b5980da809 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -99,4 +99,6 @@ When the command completes, the dashboard updates the status and provides feedba ## See also +- [.NET Aspire orchestration overview](app-host-overview.md) - [Custom resource commands in .NET Aspire](custom-resource-commands.md) +- [.NET Aspire GitHub repository: Playground sample](https://github.com/dotnet/aspire/tree/4fdfdbf57d35265913a3bbac38b92d98ed255a5d/playground/TestShop) From 6e0d453b6fa2cddf575fc25a995a025324ead710 Mon Sep 17 00:00:00 2001 From: David Pine Date: Tue, 25 Mar 2025 13:34:59 -0500 Subject: [PATCH 6/9] Update HTTP command content with updated source --- docs/fundamentals/http-commands.md | 51 +++++++++++++++---- .../AspireApp.Api/AspireApp.Api.csproj | 2 +- .../AspireApp.AppHost.csproj | 6 +-- .../AspireApp/AspireApp.AppHost/Program.cs | 35 ++++++------- 4 files changed, 62 insertions(+), 32 deletions(-) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index b5980da809..db29bd1e36 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -1,7 +1,7 @@ --- title: Custom HTTP commands in .NET Aspire description: Learn how to create custom HTTP commands in .NET Aspire. -ms.date: 03/24/2025 +ms.date: 03/25/2025 ms.topic: how-to --- @@ -27,7 +27,7 @@ The `WithHttpCommand` API provides two overloads to add custom HTTP commands to This version provides more dynamic behavior by allowing you to specify a callback (`endpointSelector`) to determine the endpoint at runtime. This is useful when the endpoint might vary based on the resource's state or other contextual factors. It offers greater flexibility for advanced scenarios where the endpoint can't be hardcoded. -Both overloads allow you to customize the HTTP command extensively, including specifying the HTTP method, configure the request, handling the response, and define UI-related properties like display name, description, and icons. The choice between the two depends on whether the endpoint is static or dynamic in your use case. +Both overloads allow you to customize the HTTP command extensively, providing an `HttpCommandOptions` subclass of the `CommandOptions` type, including specifying the HTTP method, configure the request, handling the response, and define UI-related properties like display name, description, and icons. The choice between the two depends on whether the endpoint is static or dynamic in your use case. These APIs are designed to integrate seamlessly with the .NET Aspire ecosystem, enabling developers to extend resource functionality with minimal effort while maintaining control over the behavior and presentation of the commands. @@ -43,6 +43,40 @@ In your app host _Program.cs_ file, you add a custom HTTP command using the `Wit :::code source="snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs"::: +```csharp +var builder = DistributedApplication.CreateBuilder(args); + +var cache = builder.AddRedis("cache"); + +var apiCacheInvalidationKey = builder.AddParameter("ApiCacheInvalidationKey", secret: true); + +var api = builder.AddProject("api") + .WithReference(cache) + .WaitFor(cache) + .WithEnvironment("ApiCacheInvalidationKey", apiCacheInvalidationKey) + .WithHttpCommand( + path: "/cache/invalidate", + displayName: "Invalidate cache", + commandOptions: new HttpCommandOptions() + { + Description = """ + Invalidates the API cache. All cached values are cleared! + """, + PrepareRequest = (context) => + { + var key = apiCacheInvalidationKey.Resource.Value; + + context.Request.Headers.Add("X-CacheInvalidation-Key", $"Key: {key}"); + + return Task.CompletedTask; + }, + IconName = "DocumentLightning", + IsHighlighted = true + }); + +builder.Build().Run(); +``` + The preceding code: - Creates a new distributed application builder. @@ -50,15 +84,14 @@ The preceding code: - Adds a parameter named `ApiCacheInvalidationKey` to the application. This parameter is marked as a secret, meaning its value is treated securely. - Adds a project named `AspireApp_Api` to the application. - Adds a reference to the Redis cache and [waits for it to be ready before proceeding](app-host-overview.md#waiting-for-resources). -- Configures an HTTP command for the project with the following properties: +- Configures an HTTP command for the project with the following: - `path`: Specifies the URL path for the HTTP command (`/cache/invalidate`). - `displayName`: Sets the name of the command as it appears in the UI (`Invalidate cache`). - - `displayDescription`: Provides a description of the command that's shown in the UI. - - `configureRequest`: A callback function that configures the HTTP request before sending it. In this case, it adds a custom (`X-CacheInvalidation-Key`) header with the value of the `ApiCacheInvalidationKey` parameter. - - `iconName`: Specifies the icon to be used for the command in the UI (`DocumentLightningFilled`). - - `isHighlighted`: Indicates whether the command should be highlighted in the UI. -- The `configureRequest` callback is used to add a custom header to the HTTP request. In this case, it adds an `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. -- The is returned to indicate that the request configuration is complete. + - `commandOptions`: An optional instance of `HttpCommandOptions` that configures the command's behavior and appearance in the UI: + - `Description`: Provides a description of the command that's shown in the UI. + - `PrepareRequest`: A callback function that configures the HTTP request before sending it. In this case, it adds a custom (`X-CacheInvalidation-Key`) header with the value of the `ApiCacheInvalidationKey` parameter. + - `IconName`: Specifies the icon to be used for the command in the UI (`DocumentLightningFilled`). + - `IsHighlighted`: Indicates whether the command should be highlighted in the UI. - Finally, the application is built and run. The HTTP endpoint is responsible for invalidating the cache. When the command is executed, it sends an HTTP request to the specified path (`/cache/invalidate`) with the configured parameters. Since there's an added security measure, the request includes the `X-CacheInvalidation-Key` header with the value of the `ApiCacheInvalidationKey` parameter. This ensures that only authorized requests can trigger the cache invalidation process. diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj index 510c7efbfc..1d68b36d17 100644 --- a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj index 902c3f9535..f0854f06e8 100644 --- a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj @@ -12,9 +12,9 @@ - - - + + + diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs index 862e922db8..51317faaf6 100644 --- a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs +++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs @@ -1,10 +1,4 @@ -using Microsoft.Extensions.DependencyInjection; - -var builder = DistributedApplication.CreateBuilder(args); - -// TODO: Delete when bug is fixed -// https://github.com/dotnet/aspire/issues/8270 -builder.Services.AddHttpClient(); +var builder = DistributedApplication.CreateBuilder(args); var cache = builder.AddRedis("cache"); @@ -17,18 +11,21 @@ .WithHttpCommand( path: "/cache/invalidate", displayName: "Invalidate cache", - displayDescription: """ - Invalidates the API cache. All cached values are cleared! - """, - configureRequest: (context) => + commandOptions: new HttpCommandOptions() { - var key = apiCacheInvalidationKey.Resource.Value; - - context.Request.Headers.Add("X-CacheInvalidation-Key", $"Key: {key}"); - - return Task.CompletedTask; - }, - iconName: "DocumentLightning", - isHighlighted: false); + Description = """ + Invalidates the API cache. All cached values are cleared! + """, + PrepareRequest = (context) => + { + var key = apiCacheInvalidationKey.Resource.Value; + + context.Request.Headers.Add("X-CacheInvalidation-Key", $"Key: {key}"); + + return Task.CompletedTask; + }, + IconName = "DocumentLightning", + IsHighlighted = true + }); builder.Build().Run(); From 68dd95d2ca79f69e16e74a85a7ef782b3e4dde33 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 26 Mar 2025 11:31:48 -0500 Subject: [PATCH 7/9] Remove duplicated code snippet --- docs/fundamentals/http-commands.md | 34 ------------------------------ 1 file changed, 34 deletions(-) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index db29bd1e36..014b9ec005 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -43,40 +43,6 @@ In your app host _Program.cs_ file, you add a custom HTTP command using the `Wit :::code source="snippets/http-commands/AspireApp/AspireApp.AppHost/Program.cs"::: -```csharp -var builder = DistributedApplication.CreateBuilder(args); - -var cache = builder.AddRedis("cache"); - -var apiCacheInvalidationKey = builder.AddParameter("ApiCacheInvalidationKey", secret: true); - -var api = builder.AddProject("api") - .WithReference(cache) - .WaitFor(cache) - .WithEnvironment("ApiCacheInvalidationKey", apiCacheInvalidationKey) - .WithHttpCommand( - path: "/cache/invalidate", - displayName: "Invalidate cache", - commandOptions: new HttpCommandOptions() - { - Description = """ - Invalidates the API cache. All cached values are cleared! - """, - PrepareRequest = (context) => - { - var key = apiCacheInvalidationKey.Resource.Value; - - context.Request.Headers.Add("X-CacheInvalidation-Key", $"Key: {key}"); - - return Task.CompletedTask; - }, - IconName = "DocumentLightning", - IsHighlighted = true - }); - -builder.Build().Run(); -``` - The preceding code: - Creates a new distributed application builder. From 42a7ffda86d8505dff50615ccbf48a993e5316f6 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 26 Mar 2025 12:23:43 -0500 Subject: [PATCH 8/9] Correct member over parameter --- docs/fundamentals/http-commands.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index 014b9ec005..69007cdd09 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -35,7 +35,7 @@ These APIs are designed to integrate seamlessly with the .NET Aspire ecosystem, Since HTTP commands are exposed via HTTP endpoints, consider potential security risks. Limit these endpoints to development or staging environments when possible. Always validate incoming requests to ensure they originate from trusted sources. For more information, see [ASP.NET Core security](/aspnet/core/security). -Use the `configureRequest` callback to enhance security by adding authentication headers or other measures. A common approach is to use a shared secret, [external parameter](external-parameters.md), or token known only to the app host and resource. This shared value can be used to validate requests and prevent unauthorized access. +Use the `CommandOptions.PrepareRequest` callback to enhance security by adding authentication headers or other measures. A common approach is to use a shared secret, [external parameter](external-parameters.md), or token known only to the app host and resource. This shared value can be used to validate requests and prevent unauthorized access. ## Add a custom HTTP command From 681fa0ac5b19c67f132956a9efe8c7e51d34f217 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 26 Mar 2025 12:25:04 -0500 Subject: [PATCH 9/9] Fix name --- docs/fundamentals/http-commands.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/http-commands.md b/docs/fundamentals/http-commands.md index 69007cdd09..347bd34fea 100644 --- a/docs/fundamentals/http-commands.md +++ b/docs/fundamentals/http-commands.md @@ -35,7 +35,7 @@ These APIs are designed to integrate seamlessly with the .NET Aspire ecosystem, Since HTTP commands are exposed via HTTP endpoints, consider potential security risks. Limit these endpoints to development or staging environments when possible. Always validate incoming requests to ensure they originate from trusted sources. For more information, see [ASP.NET Core security](/aspnet/core/security). -Use the `CommandOptions.PrepareRequest` callback to enhance security by adding authentication headers or other measures. A common approach is to use a shared secret, [external parameter](external-parameters.md), or token known only to the app host and resource. This shared value can be used to validate requests and prevent unauthorized access. +Use the `HttpCommandOptions.PrepareRequest` callback to enhance security by adding authentication headers or other measures. A common approach is to use a shared secret, [external parameter](external-parameters.md), or token known only to the app host and resource. This shared value can be used to validate requests and prevent unauthorized access. ## Add a custom HTTP command