From c0b90b43a71154e6268bb96ce20831de9389457d Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Fri, 13 Dec 2024 16:50:45 -0800 Subject: [PATCH 01/62] chore(weave): add two providers to backend (#3242) * add two providers to backend * lint * pr comments * use optional --- .../trace_server/clickhouse_trace_server_batched.py | 6 +++--- weave/trace_server/llm_completion.py | 13 +++++++++++-- .../model_providers/model_providers.json | 2 +- .../trace_server/model_providers/model_providers.py | 2 ++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/weave/trace_server/clickhouse_trace_server_batched.py b/weave/trace_server/clickhouse_trace_server_batched.py index d40d7bcc2a39..8a84d53256e9 100644 --- a/weave/trace_server/clickhouse_trace_server_batched.py +++ b/weave/trace_server/clickhouse_trace_server_batched.py @@ -1447,8 +1447,8 @@ def completions_create( if not secret_name: raise InvalidRequest(f"No secret name found for model {model_name}") api_key = secret_fetcher.fetch(secret_name).get("secrets", {}).get(secret_name) - isBedrock = model_info.get("litellm_provider") == "bedrock" - if not api_key and not isBedrock: + provider = model_info.get("litellm_provider") + if not api_key and provider != "bedrock" and provider != "bedrock_converse": raise MissingLLMApiKeyError( f"No API key {secret_name} found for model {model_name}", api_key_name=secret_name, @@ -1458,7 +1458,7 @@ def completions_create( res = lite_llm_completion( api_key, req.inputs, - isBedrock, + provider, ) end_time = datetime.datetime.now() diff --git a/weave/trace_server/llm_completion.py b/weave/trace_server/llm_completion.py index 754bbb5eb922..bec4361c856f 100644 --- a/weave/trace_server/llm_completion.py +++ b/weave/trace_server/llm_completion.py @@ -7,17 +7,26 @@ ) from weave.trace_server.secret_fetcher_context import _secret_fetcher_context +NOVA_MODELS = ("nova-pro-v1", "nova-lite-v1", "nova-micro-v1") + def lite_llm_completion( api_key: str, inputs: tsi.CompletionsCreateRequestInputs, - isBedrock: bool, + provider: Optional[str] = None, ) -> tsi.CompletionsCreateRes: aws_access_key_id, aws_secret_access_key, aws_region_name = None, None, None - if isBedrock: + if provider == "bedrock" or provider == "bedrock_converse": aws_access_key_id, aws_secret_access_key, aws_region_name = ( get_bedrock_credentials(inputs.model) ) + # Nova models need the region in the model name + if any(x in inputs.model for x in NOVA_MODELS) and aws_region_name: + aws_inference_region = aws_region_name.split("-")[0] + inputs.model = "bedrock/" + aws_inference_region + "." + inputs.model + # XAI models don't support response_format + elif provider == "xai": + inputs.response_format = None import litellm diff --git a/weave/trace_server/model_providers/model_providers.json b/weave/trace_server/model_providers/model_providers.json index 8b0c0320176b..c373c87f2d6f 100644 --- a/weave/trace_server/model_providers/model_providers.json +++ b/weave/trace_server/model_providers/model_providers.json @@ -1 +1 @@ -{"gpt-4": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-audio-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-audio-preview-2024-10-01": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-mini": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-mini-2024-07-18": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-mini": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-mini-2024-09-12": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-preview-2024-09-12": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "chatgpt-4o-latest": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-05-13": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-08-06": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-11-20": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0314": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k-0314": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo-2024-04-09": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-1106-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0125-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-vision-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-1106-vision-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0301": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-1106": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0125": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-16k": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-16k-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-0125": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-1106": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-2024-08-06": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-2024-11-20": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-mini-2024-07-18": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-3-large": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-3-small": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-ada-002": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-ada-002-v2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-stable": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-007": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-latest": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "256-x-256/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "512-x-512/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "1024-x-1024/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1024-x-1792/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1792-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1024-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1024-x-1792/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1792-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1024-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "whisper-1": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "tts-1": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "tts-1-hd": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "claude-instant-1": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "groq/llama2-70b-4096": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-8b-8192": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-1b-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-3b-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-11b-text-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-11b-vision-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-90b-text-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-90b-vision-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-70b-8192": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-8b-instant": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-70b-versatile": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-405b-reasoning": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/mixtral-8x7b-32768": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/gemma-7b-it": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/gemma2-9b-it": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-groq-70b-8192-tool-use-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-groq-8b-8192-tool-use-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "claude-instant-1.2": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-2": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-2.1": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-haiku-20240307": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-haiku-20241022": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-opus-20240229": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-sonnet-20240229": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-sonnet-20240620": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-sonnet-20241022": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "gemini/gemini-1.5-flash-002": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-001": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-latest": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b-exp-0924": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-exp-1114": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-pro": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-002": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-001": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-exp-0801": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-latest": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-pro-vision": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-gemma-2-27b-it": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-gemma-2-9b-it": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "ai21.j2-mid-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "ai21.j2-ultra-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "ai21.jamba-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-lite-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-express-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-premier-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-text-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-text-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-image-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-large-2407-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-small-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/1-month-commitment/cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/6-month-commitment/cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/1-month-commitment/cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/6-month-commitment/cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-r-plus-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-r-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.embed-english-v3": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.embed-multilingual-v3": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama2-13b-chat-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama2-70b-chat-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-south-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ca-central-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-2/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/sa-east-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-south-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ca-central-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-2/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/sa-east-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-405b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-405b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-11b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-11b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-90b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-90b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "512-x-512/50-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "512-x-512/max-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "max-x-max/50-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "max-x-max/max-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "1024-x-1024/50-steps/stability.stable-diffusion-xl-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "1024-x-1024/max-steps/stability.stable-diffusion-xl-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "stability.sd3-large-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "stability.stable-image-ultra-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}} \ No newline at end of file +{"gpt-4": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-audio-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-audio-preview-2024-10-01": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-mini": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-mini-2024-07-18": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-mini": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-mini-2024-09-12": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-preview-2024-09-12": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "chatgpt-4o-latest": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-05-13": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-08-06": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-11-20": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0314": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k-0314": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo-2024-04-09": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-1106-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0125-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-vision-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-1106-vision-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0301": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-1106": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0125": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-16k": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-16k-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-0125": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-1106": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-2024-08-06": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-2024-11-20": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-mini-2024-07-18": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-3-large": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-3-small": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-ada-002": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-ada-002-v2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-stable": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-007": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-latest": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "256-x-256/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "512-x-512/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "1024-x-1024/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1024-x-1792/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1792-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1024-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1024-x-1792/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1792-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1024-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "whisper-1": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "tts-1": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "tts-1-hd": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "claude-instant-1": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "xai/grok-beta": {"litellm_provider": "xai", "api_key_name": "XAI_API_KEY"}, "groq/llama-3.3-70b-versatile": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.3-70b-specdec": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama2-70b-4096": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-8b-8192": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-1b-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-3b-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-11b-text-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-11b-vision-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-90b-text-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-90b-vision-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-70b-8192": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-8b-instant": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-70b-versatile": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-405b-reasoning": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/mixtral-8x7b-32768": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/gemma-7b-it": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/gemma2-9b-it": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-groq-70b-8192-tool-use-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-groq-8b-8192-tool-use-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "claude-instant-1.2": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-2": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-2.1": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-haiku-20240307": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-haiku-20241022": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-opus-20240229": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-sonnet-20240229": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-sonnet-20240620": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-sonnet-20241022": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "gemini/gemini-1.5-flash-002": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-001": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-latest": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b-exp-0924": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-exp-1114": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-exp-1206": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-pro": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-002": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-001": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-exp-0801": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-latest": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-pro-vision": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-gemma-2-27b-it": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-gemma-2-9b-it": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "ai21.j2-mid-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "ai21.j2-ultra-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "ai21.jamba-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-lite-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-express-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-premier-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-text-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-text-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-image-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-large-2407-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-small-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.nova-micro-v1:0": {"litellm_provider": "bedrock_converse", "api_key_name": "BEDROCK_API_KEY"}, "amazon.nova-lite-v1:0": {"litellm_provider": "bedrock_converse", "api_key_name": "BEDROCK_API_KEY"}, "amazon.nova-pro-v1:0": {"litellm_provider": "bedrock_converse", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/1-month-commitment/cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/6-month-commitment/cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/1-month-commitment/cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/6-month-commitment/cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-r-plus-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-r-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.embed-english-v3": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.embed-multilingual-v3": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama2-13b-chat-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama2-70b-chat-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-south-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ca-central-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-2/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/sa-east-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-south-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ca-central-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-2/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/sa-east-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-405b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-405b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-11b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-11b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-90b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-90b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "512-x-512/50-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "512-x-512/max-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "max-x-max/50-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "max-x-max/max-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "1024-x-1024/50-steps/stability.stable-diffusion-xl-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "1024-x-1024/max-steps/stability.stable-diffusion-xl-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "stability.sd3-large-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "stability.stable-image-ultra-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}} \ No newline at end of file diff --git a/weave/trace_server/model_providers/model_providers.py b/weave/trace_server/model_providers/model_providers.py index 135ed91e2b1b..1b967a890957 100644 --- a/weave/trace_server/model_providers/model_providers.py +++ b/weave/trace_server/model_providers/model_providers.py @@ -16,6 +16,8 @@ "fireworks": "FIREWORKS_API_KEY", "groq": "GEMMA_API_KEY", "bedrock": "BEDROCK_API_KEY", + "bedrock_converse": "BEDROCK_API_KEY", + "xai": "XAI_API_KEY", } From cb612d4c601babe1c416852ba81b27b8fbd6ae14 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Fri, 13 Dec 2024 16:53:35 -0800 Subject: [PATCH 02/62] style(weave): add icons to trace tree (#3227) * add icons to trace tree * sentence case --- .../PlaygroundChat/PlaygroundCallStats.tsx | 54 ++++++++++--------- .../pages/PlaygroundPage/PlaygroundPage.tsx | 24 +++++++-- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundCallStats.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundCallStats.tsx index 9888ea886819..d969a91136ed 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundCallStats.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundCallStats.tsx @@ -1,31 +1,19 @@ import {Button} from '@wandb/weave/components/Button'; +import {Pill} from '@wandb/weave/components/Tag'; import {Tailwind} from '@wandb/weave/components/Tailwind'; +import {Tooltip} from '@wandb/weave/components/Tooltip'; import {makeRefCall} from '@wandb/weave/util/refs'; import React from 'react'; import {useHistory} from 'react-router-dom'; import {useWeaveflowRouteContext} from '../../../context'; import {Reactions} from '../../../feedback/Reactions'; +import {TraceCostStats} from '../../CallPage/cost'; import {TraceCallSchema} from '../../wfReactInterface/traceServerClientTypes'; export const PlaygroundCallStats = ({call}: {call: TraceCallSchema}) => { - let totalTokens = 0; - if (call?.summary?.usage) { - for (const key of Object.keys(call.summary.usage)) { - totalTokens += - call.summary.usage[key].prompt_tokens || - call.summary.usage[key].input_tokens || - 0; - totalTokens += - call.summary.usage[key].completion_tokens || - call.summary.usage[key].output_tokens || - 0; - } - } - const [entityName, projectName] = call?.project_id?.split('/') || []; const callId = call?.id || ''; - const latency = call?.summary?.weave?.latency_ms; const {peekingRouter} = useWeaveflowRouteContext(); const history = useHistory(); @@ -43,21 +31,35 @@ export const PlaygroundCallStats = ({call}: {call: TraceCallSchema}) => { false ); + const latency = call?.summary?.weave?.latency_ms ?? 0; + const usageData = call?.summary?.usage; + const costData = call?.summary?.weave?.costs; + return ( -
- Latency: {latency}ms - +
+ {(call.output as any)?.choices?.[0]?.finish_reason && ( - <> - - Finish reason: {(call.output as any).choices[0].finish_reason} - - - + + + + } + /> )} - {totalTokens} tokens - {callLink && (
From 7d02770fe84512846b25b5c503d254b76146129e Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Mon, 16 Dec 2024 15:46:27 -0800 Subject: [PATCH 14/62] Hide func drawer textarea draggable (#3263) --- .../PlaygroundPage/PlaygroundSettings/FunctionDrawer.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundSettings/FunctionDrawer.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundSettings/FunctionDrawer.tsx index d9b817ef8868..c01e38245467 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundSettings/FunctionDrawer.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundSettings/FunctionDrawer.tsx @@ -129,11 +129,9 @@ export const FunctionDrawer: React.FC = ({ setFunctionJSON(e.target.value)} + className="!resize-none" /> {jsonValidationError && functionJSON.length > 0 && ( From 98feb8beaad29963d0985e49a09e9c5f314e6df6 Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen <112953339+jamie-rasmussen@users.noreply.github.com> Date: Tue, 17 Dec 2024 06:05:30 -0600 Subject: [PATCH 15/62] chore(ui): addicon codegen, diff icon (#3258) --- weave-js/src/assets/icons/icon-diff.svg | 4 ++++ weave-js/src/components/Icon/Icon.tsx | 5 +++++ weave-js/src/components/Icon/index.ts | 1 + weave-js/src/components/Icon/types.ts | 1 + 4 files changed, 11 insertions(+) create mode 100644 weave-js/src/assets/icons/icon-diff.svg diff --git a/weave-js/src/assets/icons/icon-diff.svg b/weave-js/src/assets/icons/icon-diff.svg new file mode 100644 index 000000000000..318ec5dcfff0 --- /dev/null +++ b/weave-js/src/assets/icons/icon-diff.svg @@ -0,0 +1,4 @@ + + + + diff --git a/weave-js/src/components/Icon/Icon.tsx b/weave-js/src/components/Icon/Icon.tsx index 20e8e23401d0..30843394931b 100644 --- a/weave-js/src/components/Icon/Icon.tsx +++ b/weave-js/src/components/Icon/Icon.tsx @@ -57,6 +57,7 @@ import {ReactComponent as ImportDatabaseArtifacts} from '../../assets/icons/icon import {ReactComponent as ImportDate} from '../../assets/icons/icon-date.svg'; import {ReactComponent as ImportDelete} from '../../assets/icons/icon-delete.svg'; import {ReactComponent as ImportDiamond} from '../../assets/icons/icon-diamond.svg'; +import {ReactComponent as ImportDiff} from '../../assets/icons/icon-diff.svg'; import {ReactComponent as ImportDiscordSocial} from '../../assets/icons/icon-discord-social.svg'; import {ReactComponent as ImportDockerWhale} from '../../assets/icons/icon-docker-whale.svg'; import {ReactComponent as ImportDocument} from '../../assets/icons/icon-document.svg'; @@ -453,6 +454,9 @@ export const IconDelete = (props: SVGIconProps) => ( export const IconDiamond = (props: SVGIconProps) => ( ); +export const IconDiff = (props: SVGIconProps) => ( + +); export const IconDiscordSocial = (props: SVGIconProps) => ( ); @@ -1145,6 +1149,7 @@ const ICON_NAME_TO_ICON: Record = { date: IconDate, delete: IconDelete, diamond: IconDiamond, + diff: IconDiff, 'discord-social': IconDiscordSocial, 'docker-whale': IconDockerWhale, document: IconDocument, diff --git a/weave-js/src/components/Icon/index.ts b/weave-js/src/components/Icon/index.ts index 39c6eed31703..ef67dfa6e4a0 100644 --- a/weave-js/src/components/Icon/index.ts +++ b/weave-js/src/components/Icon/index.ts @@ -57,6 +57,7 @@ export { IconDate, IconDelete, IconDiamond, + IconDiff, IconDiscordSocial, IconDockerWhale, IconDocument, diff --git a/weave-js/src/components/Icon/types.ts b/weave-js/src/components/Icon/types.ts index 47f5f357adc6..4eaa6bd2db15 100644 --- a/weave-js/src/components/Icon/types.ts +++ b/weave-js/src/components/Icon/types.ts @@ -56,6 +56,7 @@ export const IconNames = { Date: 'date', Delete: 'delete', Diamond: 'diamond', + Diff: 'diff', DiscordSocial: 'discord-social', DockerWhale: 'docker-whale', Document: 'document', From b506acb1b8a02037107bdcda30e7467ad16f33c1 Mon Sep 17 00:00:00 2001 From: J2-D2-3PO <188380414+J2-D2-3PO@users.noreply.github.com> Date: Tue, 17 Dec 2024 08:15:36 -0700 Subject: [PATCH 16/62] docs(weave): Update platform doc with dedicated cloud info (#3244) * docs(weave): Update platform doc with dedicated cloud info --- docs/docs/guides/platform/index.md | 43 +++++++++++++++++++----------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/docs/docs/guides/platform/index.md b/docs/docs/guides/platform/index.md index 50cceb9b5f96..9a53f79d7234 100644 --- a/docs/docs/guides/platform/index.md +++ b/docs/docs/guides/platform/index.md @@ -1,31 +1,44 @@ # Platform & Security -Weave is available on [W&B SaaS Cloud](https://docs.wandb.ai/guides/hosting/hosting-options/saas_cloud) which is a multi-tenant, fully-managed platform deployed in W&B's Google Cloud Platform (GCP) account in a North America region. +Weave is available on the following deployment options: -:::info -It's coming soon on [W&B Dedicated Cloud](https://docs.wandb.ai/guides/hosting/hosting-options/dedicated_cloud). Reach out to your W&B team if that would be of interest in your organization. -::: +- **[W&B SaaS Cloud](https://docs.wandb.ai/guides/hosting/hosting-options/saas_cloud):** A multi-tenant, fully-managed platform deployed in W&B's Google Cloud Platform (GCP) account in a North America region. +- **[W&B Dedicated Cloud](https://docs.wandb.ai/guides/hosting/hosting-options/dedicated_cloud):** Generally available on AWS and in preview on GCP and Azure. +- **Self-managed instances:** For teams that prefer to host Weave independently, guidance is available from your W&B team to evaluate deployment options. -## Identity & Access Management +## Identity and Access Management -Use the identity and access management capabilities for secure authentication and effective authorization in your [W&B Organization](https://docs.wandb.ai/guides/hosting/iam/org_team_struct#organization). The following capabilities are available for Weave users in W&B SaaS Cloud: +Use the identity and access management capabilities for secure authentication and effective authorization in your [W&B Organization](https://docs.wandb.ai/guides/hosting/iam/org_team_struct#organization). The following capabilities are available for Weave users depending on your deployment option and [pricing plan](https://wandb.ai/site/pricing/): -* Authenticate using Single-Sign On (SSO), with available options being Google, Github, Microsoft, and [OIDC providers](https://docs.wandb.ai/guides/technical-faq/general#does-wb-support-sso-for-saas) -* [Team-based access control](https://docs.wandb.ai/guides/hosting/iam/manage-users#manage-a-team), where each team may correspond to a business unit / function, department, or a project team in your company -* Use W&B projects to organize different initiatives within a team, and configure the required [visibility scope](https://docs.wandb.ai/guides/hosting/restricted-projects) for each project +- **Authenticate using Single-Sign On (SSO):** Options include public identity providers like Google and Github, as well as enterprise providers such as Okta, Azure Active Directory, and others, [using OIDC](https://docs.wandb.ai/guides/technical-faq/general#does-wb-support-sso-for-saas). +- **[Team-based logical separation](https://docs.wandb.ai/guides/hosting/iam/manage-organization/#add-and-manage-teams):** Each team may correspond to a business unit, department, or project team within your organization. +- **Use W&B projects to organize initiatives:** Organize initiatives within teams and configure the required [visibility scope](https://docs.wandb.ai/guides/hosting/restricted-projects), including the `restricted` scope for sensitive collaborations. +- **Role-based access control:** Configure access at the [team](https://docs.wandb.ai/guides/hosting/iam/manage-organization#assign-or-update-a-team-members-role) or [project](https://docs.wandb.ai/guides/hosting/iam/restricted-projects#project-level-roles) level to ensure users access data on a need-to-know basis. +- **Scoped service accounts:** Automate Gen AI workflows using service accounts scoped to your organization or team. +- **[SCIM API and Python SDK](https://docs.wandb.ai/guides/hosting/iam/automate_iam):** Manage users and teams efficiently with SCIM API and Python SDK. ## Data Security -In the W&B SaaS Cloud, data of all Weave users is stored in a shared cloud storage and is processed using shared compute services. The shared cloud storage is encrypted using the cloud-native encryption mechanism. When reading or writing data on behalf of a user, a security context comprising of the user's W&B organization, team and project is utilized to ensure data path isolation. +- **SaaS Cloud:** Data for all Weave users is stored in a shared Clickhouse Cloud cluster, encrypted using cloud-native encryption. Shared compute services process the data, ensuring isolation through a security context comprising your W&B organization, team, and project. + +- **Dedicated Cloud:** Data is stored in a unique Clickhouse Cloud cluster in the cloud and region of your choice. A unique compute environment processes the data, with the following additional protections: + - **[IP allowlisting](https://docs.wandb.ai/guides/hosting/data-security/ip-allowlisting):** Authorize access to your instance from specific IP addresses. This is an optional capability. + - **[Private connectivity](https://docs.wandb.ai/guides/hosting/data-security/private-connectivity):** Route data securely through the cloud provider's private network. This is an optional capability. + - **[Data encryption](https://docs.wandb.ai/guides/hosting/data-security/data-encryption):** W&B encrypts data at rest using a unique W&B-managed encryption key. + - **Clickhouse cluster security:** W&B connects to the unique Clickhouse Cloud cluster for your Dedicated Cloud instance over the cloud provider's private network. W&B also encrypts the cluster using a unique W&B-managed encryption key, while leveraging Clickhouse's file level encryption. -:::note -[Secure storage connector](https://docs.wandb.ai/guides/hosting/secure-storage-connector) is not applicable to Weave. +:::important +[The W&B Platform secure storage connector or BYOB](https://docs.wandb.ai/guides/hosting/data-security/secure-storage-connector) is not available for Weave. ::: -## Maintenance +## Maintenance -If you're using Weave on W&B SaaS Cloud, you do not incur the overhead and costs of provisioning and maintaining the W&B platform. It's all fully managed for you. +If you're using Weave on SaaS Cloud or Dedicated Cloud, you avoid the overhead and costs of provisioning, operating, and maintaining the W&B platform, as it is fully managed for you. ## Compliance -Security controls for W&B SaaS Cloud are periodically audited internally and externally. Refer to the [W&B Security Portal](https://security.wandb.ai/) to request the SOC2 report and other security and compliance documents. \ No newline at end of file +:::tip +To request SOC 2 reports and other security and compliance documents, refer to the [W&B Security Portal](https://security.wandb.ai/) or contact your W&B team for more information. +::: + +Security controls for both SaaS Cloud and Dedicated Cloud are periodically audited internally and externally. Both platforms are SOC 2 Type II compliant. Additionally, Dedicated Cloud is HIPAA-compliant for organizations managing PHI data while building Generative AI applications. From 5ed3f51ec1cc55cb18f7459b9a39f4e04c3f4985 Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen <112953339+jamie-rasmussen@users.noreply.github.com> Date: Tue, 17 Dec 2024 09:38:15 -0600 Subject: [PATCH 17/62] chore(weave): add some links to Release instructions (#3210) --- dev_docs/RELEASE.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dev_docs/RELEASE.md b/dev_docs/RELEASE.md index 8c5611afa62f..6514f9d6730b 100644 --- a/dev_docs/RELEASE.md +++ b/dev_docs/RELEASE.md @@ -6,7 +6,8 @@ This document outlines how to publish a new Weave release to our public [PyPI pa 2. You should also run through this [sample notebook](https://colab.research.google.com/drive/1DmkLzhFCFC0OoN-ggBDoG1nejGw2jQZy#scrollTo=29hJrcJQA7jZ) remember to install from master. You can also just run the [quickstart](http://wandb.me/weave_colab). -3. To prepare a PATCH release, go to GitHub Actions and run the `bump-python-sdk-version` workflow on master. This will: +3. To prepare a PATCH release, go to GitHub Actions and run the [bump-python-sdk-version](https://github.com/wandb/weave/actions/workflows/bump_version.yaml) workflow on master. This will: + - Create a new patch version by dropping the pre-release (e.g., `x.y.z-dev0` -> `x.y.z`) and tag this commit with `x.y.z` - Create a new dev version by incrementing the dev version (e.g., `x.y.z` -> `x.y.(z+1)-dev0`) and commit this to master - Both of these commits will be pushed to master @@ -16,6 +17,6 @@ This document outlines how to publish a new Weave release to our public [PyPI pa 5. Verify the new version of Weave exists in [PyPI](https://pypi.org/project/weave/) once it is complete. -6. Go to GitHub, click the release tag, and click `Draft a New Release`. Select the new tag, and click generate release notes. Publish the release. +6. Go to the [GitHub new release page](https://github.com/wandb/weave/releases/new). Select the new tag, and click "Generate release notes". Publish the release. 7. Finally, announce that the merge freeze is over. From ee585dc0fbb0aa2139e73923a735fdec3969e839 Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Tue, 17 Dec 2024 09:15:31 -0800 Subject: [PATCH 18/62] chore(weave): Fixes error overflow #3266 --- .../Home/Browse3/pages/CallPage/CallDetails.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallDetails.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallDetails.tsx index 26be9f0c5d0e..03519960bf37 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallDetails.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallDetails.tsx @@ -149,12 +149,13 @@ export const CallDetails: FC<{ p: 2, }}> {'traceback' in excInfo ? ( - <> - +
+ Error - +
) : ( From f542138eadc65aedc395ec694c426d470203b6b9 Mon Sep 17 00:00:00 2001 From: Abraham Leal <45460452+abraham-leal@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:20:03 -0600 Subject: [PATCH 19/62] feat(weave): Add tracking for openai moderation and embeddings api (#3252) * feat(weave): Add tracking for openai moderation and embeddings api * different settings for moderations and embeddings * Add tests for embedding and moderation autopatching * Actually run things with nox * finish up tests * expect embeddings tracing in llamaindex and langchain * expect embeddings tracing in llamaindex and langchain, mod len of flattened calls * expect embeddings tracing in llamaindex and langchain, mod len of flattened calls * surface embedding calls at the right level --- .../integrations/langchain/langchain_test.py | 6 +- .../llamaindex/llamaindex_test.py | 4 +- ...test_openai_async_embeddings_patching.yaml | 206 ++++++++++++++++++ ...test_openai_async_moderation_patching.yaml | 90 ++++++++ .../test_openai_embeddings_patching.yaml | 206 ++++++++++++++++++ .../test_openai_moderation_patching.yaml | 90 ++++++++ tests/integrations/openai/openai_test.py | 144 ++++++++++++ weave/integrations/openai/openai_sdk.py | 32 +++ 8 files changed, 776 insertions(+), 2 deletions(-) create mode 100644 tests/integrations/openai/cassettes/openai_test/test_openai_async_embeddings_patching.yaml create mode 100644 tests/integrations/openai/cassettes/openai_test/test_openai_async_moderation_patching.yaml create mode 100644 tests/integrations/openai/cassettes/openai_test/test_openai_embeddings_patching.yaml create mode 100644 tests/integrations/openai/cassettes/openai_test/test_openai_moderation_patching.yaml diff --git a/tests/integrations/langchain/langchain_test.py b/tests/integrations/langchain/langchain_test.py index e1e9f1a7fe21..0d0b2bedb149 100644 --- a/tests/integrations/langchain/langchain_test.py +++ b/tests/integrations/langchain/langchain_test.py @@ -293,16 +293,18 @@ def run_batch(batch: list) -> None: def assert_correct_calls_for_rag_chain(calls: list[Call]) -> None: flattened = flatten_calls(calls) - assert len(flattened) == 10 + assert len(flattened) == 12 assert_ends_and_errors(flattened) got = [(op_name_from_ref(c.op_name), d) for (c, d) in flattened] exp = [ + ("openai.embeddings.create", 0), ("langchain.Chain.RunnableSequence", 0), ("langchain.Chain.RunnableParallel_context_question", 1), ("langchain.Chain.RunnableSequence", 2), ("langchain.Retriever.VectorStoreRetriever", 3), + ("openai.embeddings.create", 4), ("langchain.Chain.format_docs", 3), ("langchain.Chain.RunnablePassthrough", 2), # Potential position ("langchain.Prompt.ChatPromptTemplate", 1), @@ -315,11 +317,13 @@ def assert_correct_calls_for_rag_chain(calls: list[Call]) -> None: # allowing for variation in the order of execution. As a result, # `RunnablePassthrough` may appear in one of two possible positions. exp_2 = [ + ("openai.embeddings.create", 0), ("langchain.Chain.RunnableSequence", 0), ("langchain.Chain.RunnableParallel_context_question", 1), ("langchain.Chain.RunnablePassthrough", 2), # Potential position ("langchain.Chain.RunnableSequence", 2), ("langchain.Retriever.VectorStoreRetriever", 3), + ("openai.embeddings.create", 4), ("langchain.Chain.format_docs", 3), ("langchain.Prompt.ChatPromptTemplate", 1), ("langchain.Llm.ChatOpenAI", 1), diff --git a/tests/integrations/llamaindex/llamaindex_test.py b/tests/integrations/llamaindex/llamaindex_test.py index d74ee148f6eb..7f656b1be69c 100644 --- a/tests/integrations/llamaindex/llamaindex_test.py +++ b/tests/integrations/llamaindex/llamaindex_test.py @@ -24,12 +24,14 @@ def assert_calls_correct_for_quickstart(flattened_calls: list[Call]) -> None: llama_index.llm openai.chat.completions.create """ - assert len(flattened_calls) == 9 + assert len(flattened_calls) == 11 exp = [ + ("openai.embeddings.create", 0), ("llama_index.query", 0), ("llama_index.retrieve", 1), ("llama_index.embedding", 2), + ("openai.embeddings.create", 3), ("llama_index.synthesize", 1), ("llama_index.chunking", 2), ("llama_index.chunking", 2), diff --git a/tests/integrations/openai/cassettes/openai_test/test_openai_async_embeddings_patching.yaml b/tests/integrations/openai/cassettes/openai_test/test_openai_async_embeddings_patching.yaml new file mode 100644 index 000000000000..e1b0fccb592f --- /dev/null +++ b/tests/integrations/openai/cassettes/openai_test/test_openai_async_embeddings_patching.yaml @@ -0,0 +1,206 @@ +interactions: +- request: + body: '{"input":"embed this","model":"text-embedding-3-small","encoding_format":"base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '82' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 1.57.3 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.57.3 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.11.4 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + 8L/mG/3nv/4LAAD//wMA3GYCk94gAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8f12d0ca8cc9ddb2-DFW + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Fri, 13 Dec 2024 03:19:58 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=8OrYJ27G0T2k3GwdfOkcxWgrU0RzIlxwBlemzx.k_5U-1734059998-1.0.1.1-mzTeRj51O67D9oMNYGoJhFqYhiIFE41tEzlZDPW33.5pKcAehjSZaVZrWYdjXdrINskD26anAWdAPWy_Io5Wtw; + path=/; expires=Fri, 13-Dec-24 03:49:58 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=hXF9bvLtiUxnlwRnz1vIQVZDPM2HmranVz_wwkn2S2g-1734059998111-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-3-small + openai-organization: + - wandb + openai-processing-ms: + - '31' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999998' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_85bd5aa437d13281f7fc4ebea31f0ff5 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrations/openai/cassettes/openai_test/test_openai_async_moderation_patching.yaml b/tests/integrations/openai/cassettes/openai_test/test_openai_async_moderation_patching.yaml new file mode 100644 index 000000000000..078d06098ba3 --- /dev/null +++ b/tests/integrations/openai/cassettes/openai_test/test_openai_async_moderation_patching.yaml @@ -0,0 +1,90 @@ +interactions: +- request: + body: '{"input":"...text to classify goes here...","model":"omni-moderation-latest"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '77' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 1.57.3 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.57.3 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.11.4 + method: POST + uri: https://api.openai.com/v1/moderations + response: + body: + string: !!binary | + H4sIAAAAAAAAA5ySzW7rIBBG93kK5HXtMDPAQF6lqiJqkwTJsSObXLWq+u5X+U9bx026QTJ8B8Yz + 52MiRBarbCaydVt1OQZTVc4ySFav+BrYYVWCqUAaII86e9oB67YK9Y5p103Md1+dT7Ft8tqn0Kc8 + Nik0qT+Eu9Bv69RnM/E8EUKIj/0qRLao/XIZdm8vfN2Hp9N+6VNYtl0MO+aUFiJb+c73/To06Tvy + 5XCaVl3wKTSxWQ4E+/C29fXgDSnc2P7lyljXsYzp9sn0X2zr4br7UC/yle/W00PTfon0qduWu1b3 + Y8Gbvz1dx6bththDhWUYOZouO79ZxfIUOSY+vw/ufd6XbTc6PVlIKaWWRKQ1a6XRAih1zzy5AAVO + AjlnnSEbcjM03cMLiqTWLC0QKgPK/Rz3IQdaOyuRDRErskjjAriCjGVgNJaZpeOQ86APh9uRFJC2 + qJgNOSVx1JAjIyUysTEMFsihHXcGCrCKgJxE7dgZrb/35YZDUEinCRAtgnKaLN4As5nAAhUraZ3V + Ch2w5qHmXxw79hYUIJLVSpEykoalO2ZZSakVaY0srSMc19AUIK3VGiQYZffl3JbSbzZ1DNU8Nptt + mqf3zaihz+d9IbIU3lJ23ni5R9M7+bOvd7+3t/aB9N/quij8GHDl8d0d+CHzH8gvTj/KPzqui+F3 + YleeP0hcyT5GnqyfnNaXyed/AAAA//8DAOTybXvbBwAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8f12cd363e762fdc-DFW + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Fri, 13 Dec 2024 03:17:31 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=Qr5.qfRySMNCzUPavCszRhkeHffVp1XlscN.uBaYNxE-1734059851-1.0.1.1-5Yg7IpO35VlPbizUKQpQDBSIbRby1ftrF2z0aUWMdZEpVHTrwGhRcrPYtLqaumOBP.AknEdD13fR318ip7aHrw; + path=/; expires=Fri, 13-Dec-24 03:47:31 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=cAdIEFLy8d6tIO96o.0oZObHGQHfTbHqkLTPbYcCWkE-1734059851364-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - wandb + openai-processing-ms: + - '94' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-request-id: + - req_2e6dd9871074b2be792dc16d10613a25 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrations/openai/cassettes/openai_test/test_openai_embeddings_patching.yaml b/tests/integrations/openai/cassettes/openai_test/test_openai_embeddings_patching.yaml new file mode 100644 index 000000000000..ed0385030eb5 --- /dev/null +++ b/tests/integrations/openai/cassettes/openai_test/test_openai_embeddings_patching.yaml @@ -0,0 +1,206 @@ +interactions: +- request: + body: '{"input":"embed this","model":"text-embedding-3-small","encoding_format":"base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '82' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.57.3 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.57.3 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.11.4 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + 8L/mG/3nv/4LAAD//wMA3GYCk94gAAA= + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8f12d0843c2b3ab8-DFW + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Fri, 13 Dec 2024 03:19:46 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=MouSG8zen4RbjBvg1pbWMOdtdKX_O7pxUPoPDV0DGfo-1734059986-1.0.1.1-kGg2CTzpOP.0at0jd3z_1.SIwXeD3Bezt4eAh_6IpUfZkKCgNegvFRUWDe5fQUNptLrqjZtydLHMqejyHz7efg; + path=/; expires=Fri, 13-Dec-24 03:49:46 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=wZveVO4UKJ6qxc4PHIIFCjJD5zbBjxpaiQaSPCHVNls-1734059986943-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-3-small + openai-organization: + - wandb + openai-processing-ms: + - '68' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999998' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_47caa74121ca25ba7b18055c6262448d + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrations/openai/cassettes/openai_test/test_openai_moderation_patching.yaml b/tests/integrations/openai/cassettes/openai_test/test_openai_moderation_patching.yaml new file mode 100644 index 000000000000..20a3b6e41e86 --- /dev/null +++ b/tests/integrations/openai/cassettes/openai_test/test_openai_moderation_patching.yaml @@ -0,0 +1,90 @@ +interactions: +- request: + body: '{"input":"...text to classify goes here...","model":"omni-moderation-latest"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '77' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.57.3 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.57.3 + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.11.4 + method: POST + uri: https://api.openai.com/v1/moderations + response: + body: + string: !!binary | + H4sIAAAAAAAAA5yS227qMBBF3/kKK89N8HhmfOFXqgqZYMBSSFBijlpV/fcj7pSGFPpiKfZe9mRm + fY6EyOI8m4hs3czbvDQz1mGuFKDhxWwGJXAI5BVZuyhxlr3sgHUzD9WOadZ1zHdfrU+xqfPKp9Cl + PNYp1Kk7hNvQbavUZRPxOhJCiM/9KkS2qPxyGXZvL3zVhZfTfulTWDZtDDvmlBYiW/nWd9061OkW + +XY4Tqs2+BTqWC97gl143/qq94YU7mz/cmWsqljGdP9k/C82VX/dXagW+cq36/Ghab9EutRuy12r + u6Hg3d8er2PdtH3socIyDByNl63frGJ5ihwTX7eD+5h2ZdMOTk8WUkrJEhGZDRMrC0D0yDxNAQRO + AjpnnUYbct033cMLhJLZSAuoSAO5n+M+5IDZWamMRjSEVuGwAK5AbQ0Ypa0xRjoTctPrw+F2hQTI + VpExGh1JNWjIkZFSGTRaG7CATtlhZ6AASwjopGJnnGa+7csdh6CQjhGUsgrIMVp1B8wmQhWKDEnr + LJNyYNj0Nf/i2LG3QKAUWiZC0hL7pTtmDUnJhMzKSOtQDWuoC5DWMoMETXZfzn0p/WZTxTCfxnqz + TdP0sRk09PW8L0SWwnvKzhtvj2j6IH/29eH39tY+kf5bXReFnwOuPH64Az9k/gP5zeln+WfHdTH8 + QezK8yeJK9mHyJP1o9P6Nvr6DwAA//8DANKB+3PbBwAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8f12cb777c83e5ca-DFW + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Fri, 13 Dec 2024 03:16:20 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=a1guxveldOUhJ5IsYW8vnQONfiCVkKZFJgg4gs6ubHo-1734059780-1.0.1.1-zI0WzOrzIlfvgeUyEUhB9n7N4OnejhO.8ztT7zTqrJErTmNSeQZ41_LfgHuGDr6keU6YE7_VsoLunVeS3SRuAA; + path=/; expires=Fri, 13-Dec-24 03:46:20 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=uPw7vy9aQTYIAjaA9b3t36r4.rOXONmbgAc6v_sgoLY-1734059780219-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - wandb + openai-processing-ms: + - '408' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-request-id: + - req_c7b56ed221375fbb1c15ee4a2488fc3b + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrations/openai/openai_test.py b/tests/integrations/openai/openai_test.py index 3022defc5a1f..bf486f9794fd 100644 --- a/tests/integrations/openai/openai_test.py +++ b/tests/integrations/openai/openai_test.py @@ -893,3 +893,147 @@ async def test_openai_as_context_manager_async( # since we are setting `stream_options`, the chunk should not have usage information assert chunk.usage is None + + +@pytest.mark.skip_clickhouse_client # TODO:VCR recording does not seem to allow us to make requests to the clickhouse db in non-recording mode +@pytest.mark.vcr( + filter_headers=["authorization"], + allowed_hosts=["api.wandb.ai", "localhost"], +) +def test_openai_moderation_patching( + client: weave.trace.weave_client.WeaveClient, +) -> None: + api_key = os.environ.get("OPENAI_API_KEY", "DUMMY_API_KEY") + + openai_client = OpenAI(api_key=api_key) + + response = openai_client.moderations.create( + model="omni-moderation-latest", + input="...text to classify goes here...", + ) + + calls = list(client.calls()) + assert len(calls) == 1 + call = calls[0] + + exp_harassment = False + assert response.results[0].categories.harassment == exp_harassment + + assert op_name_from_ref(call.op_name) == "openai.moderations.create" + assert call.started_at is not None + assert call.started_at < call.ended_at # type: ignore + + output = call.output + assert output["model"] == "omni-moderation-latest-intents" + + inputs = call.inputs + assert inputs["model"] == "omni-moderation-latest" + assert inputs["input"] == "...text to classify goes here..." + + +@pytest.mark.skip_clickhouse_client # TODO:VCR recording does not seem to allow us to make requests to the clickhouse db in non-recording mode +@pytest.mark.vcr( + filter_headers=["authorization"], allowed_hosts=["api.wandb.ai", "localhost"] +) +@pytest.mark.asyncio +async def test_openai_async_moderation_patching( + client: weave.trace.weave_client.WeaveClient, +) -> None: + api_key = os.environ.get("OPENAI_API_KEY", "DUMMY_API_KEY") + + openai_client = AsyncOpenAI(api_key=api_key) + + response = await openai_client.moderations.create( + model="omni-moderation-latest", + input="...text to classify goes here...", + ) + + calls = list(client.calls()) + assert len(calls) == 1 + call = calls[0] + + exp_harassment = False + assert response.results[0].categories.harassment == exp_harassment + + assert op_name_from_ref(call.op_name) == "openai.moderations.create" + assert call.started_at is not None + assert call.started_at < call.ended_at # type: ignore + + output = call.output + assert output["model"] == "omni-moderation-latest-intents" + + inputs = call.inputs + assert inputs["model"] == "omni-moderation-latest" + assert inputs["input"] == "...text to classify goes here..." + + +@pytest.mark.skip_clickhouse_client # TODO:VCR recording does not seem to allow us to make requests to the clickhouse db in non-recording mode +@pytest.mark.vcr( + filter_headers=["authorization"], + allowed_hosts=["api.wandb.ai", "localhost"], +) +def test_openai_embeddings_patching( + client: weave.trace.weave_client.WeaveClient, +) -> None: + api_key = os.environ.get("OPENAI_API_KEY", "DUMMY_API_KEY") + + openai_client = OpenAI(api_key=api_key) + + response = openai_client.embeddings.create( + model="text-embedding-3-small", + input="embed this", + ) + + calls = list(client.calls()) + assert len(calls) == 1 + call = calls[0] + + exp_embeddings = "list" + assert response.object == exp_embeddings + + assert op_name_from_ref(call.op_name) == "openai.embeddings.create" + assert call.started_at is not None + assert call.started_at < call.ended_at # type: ignore + + output = call.output + assert output["model"] == "text-embedding-3-small" + + inputs = call.inputs + assert inputs["model"] == "text-embedding-3-small" + assert inputs["input"] == "embed this" + + +@pytest.mark.skip_clickhouse_client # TODO:VCR recording does not seem to allow us to make requests to the clickhouse db in non-recording mode +@pytest.mark.vcr( + filter_headers=["authorization"], allowed_hosts=["api.wandb.ai", "localhost"] +) +@pytest.mark.asyncio +async def test_openai_async_embeddings_patching( + client: weave.trace.weave_client.WeaveClient, +) -> None: + api_key = os.environ.get("OPENAI_API_KEY", "DUMMY_API_KEY") + + openai_client = AsyncOpenAI(api_key=api_key) + + response = await openai_client.embeddings.create( + model="text-embedding-3-small", + input="embed this", + ) + + calls = list(client.calls()) + assert len(calls) == 1 + call = calls[0] + + exp_embeddings = "list" + assert response.object == exp_embeddings + + assert op_name_from_ref(call.op_name) == "openai.embeddings.create" + assert call.started_at is not None + assert call.started_at < call.ended_at # type: ignore + + output = call.output + assert output["model"] == "text-embedding-3-small" + + inputs = call.inputs + assert inputs["model"] == "text-embedding-3-small" + assert inputs["input"] == "embed this" diff --git a/weave/integrations/openai/openai_sdk.py b/weave/integrations/openai/openai_sdk.py index a1e3a9b5831b..7bf8691c83e8 100644 --- a/weave/integrations/openai/openai_sdk.py +++ b/weave/integrations/openai/openai_sdk.py @@ -404,6 +404,18 @@ def get_openai_patcher( async_completions_parse_settings = base.model_copy( update={"name": base.name or "openai.beta.chat.completions.parse"} ) + moderation_create_settings = base.model_copy( + update={"name": base.name or "openai.moderations.create"} + ) + async_moderation_create_settings = base.model_copy( + update={"name": base.name or "openai.moderations.create"} + ) + embeddings_create_settings = base.model_copy( + update={"name": base.name or "openai.embeddings.create"} + ) + async_embeddings_create_settings = base.model_copy( + update={"name": base.name or "openai.embeddings.create"} + ) _openai_patcher = MultiPatcher( [ @@ -431,6 +443,26 @@ def get_openai_patcher( "AsyncCompletions.parse", create_wrapper_async(settings=async_completions_parse_settings), ), + SymbolPatcher( + lambda: importlib.import_module("openai.resources.moderations"), + "Moderations.create", + create_wrapper_sync(settings=moderation_create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("openai.resources.moderations"), + "AsyncModerations.create", + create_wrapper_async(settings=async_moderation_create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("openai.resources.embeddings"), + "Embeddings.create", + create_wrapper_sync(settings=embeddings_create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("openai.resources.embeddings"), + "AsyncEmbeddings.create", + create_wrapper_async(settings=async_embeddings_create_settings), + ), ] ) From 322d7fbdfc6ed432ab9991268f2a183056a908af Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Tue, 17 Dec 2024 09:36:15 -0800 Subject: [PATCH 20/62] chore(weave): Regen latest docs #3265 --- .../gen_notebooks/01-intro_notebook.md | 14 +- .../gen_notebooks/audio_with_weave.md | 98 ++- .../notdiamond_custom_routing.md | 229 ++++++ .../gen_notebooks/online_monitoring.md | 76 +- .../gen_notebooks/weave_via_service_api.md | 393 +++++----- docs/docs/reference/python-sdk/weave/index.md | 255 +++++- .../weave/trace/weave.trace.feedback.md | 67 +- .../python-sdk/weave/trace/weave.trace.op.md | 14 +- .../weave/trace/weave.trace.util.md | 30 +- .../weave/trace/weave.trace.weave_client.md | 207 +++-- .../weave.trace_server.interface.query.md | 16 +- ...ave.trace_server.trace_server_interface.md | 534 +++++++++---- ...erver_bindings.remote_http_trace_server.md | 136 +++- .../call-end-call-end-post.api.mdx | 2 +- ...start-batch-call-upsert-batch-post.api.mdx | 2 +- .../call-start-call-start-post.api.mdx | 2 +- .../cost-query-cost-query-post.api.mdx | 2 +- ...edback-create-feedback-create-post.api.mdx | 184 ++++- ...back-replace-feedback-replace-post.api.mdx | 732 ++++++++++++++++++ .../obj-create-obj-create-post.api.mdx | 92 ++- .../obj-read-obj-read-post.api.mdx | 2 +- .../objs-query-objs-query-post.api.mdx | 2 +- docs/docs/reference/service-api/sidebar.ts | 6 + docs/scripts/screenshot_spec.json | 2 +- docs/static/img/screenshots/basic_call.png | Bin 249337 -> 200779 bytes docs/static/img/screenshots/calls_filter.png | Bin 147506 -> 150386 bytes docs/static/img/screenshots/calls_macro.png | Bin 261203 -> 265492 bytes weave/trace/op.py | 2 + 28 files changed, 2411 insertions(+), 688 deletions(-) create mode 100644 docs/docs/reference/gen_notebooks/notdiamond_custom_routing.md create mode 100644 docs/docs/reference/service-api/feedback-replace-feedback-replace-post.api.mdx diff --git a/docs/docs/reference/gen_notebooks/01-intro_notebook.md b/docs/docs/reference/gen_notebooks/01-intro_notebook.md index 19e49c027bff..4aefaa5991bc 100644 --- a/docs/docs/reference/gen_notebooks/01-intro_notebook.md +++ b/docs/docs/reference/gen_notebooks/01-intro_notebook.md @@ -83,7 +83,7 @@ weave.init(PROJECT) client = OpenAI() response = client.chat.completions.create( - model="gpt-3.5-turbo-1106", + model="gpt-4o-mini", messages=[ { "role": "system", @@ -153,7 +153,7 @@ def correct_grammar(user_input): stripped = strip_user_input(user_input) response = client.chat.completions.create( - model="gpt-3.5-turbo-1106", + model="gpt-4o-mini", messages=[ { "role": "system", @@ -198,7 +198,7 @@ def correct_grammar(user_input): stripped = strip_user_input(user_input) response = client.chat.completions.create( - model="gpt-3.5-turbo-1106", + model="gpt-4o-mini", messages=[ { "role": "system", @@ -282,7 +282,7 @@ class OpenAIGrammarCorrector(weave.Model): corrector = OpenAIGrammarCorrector( - openai_model_name="gpt-3.5-turbo-1106", + openai_model_name="gpt-4o-mini", system_message="You are a grammar checker, correct the following user input.", ) @@ -307,8 +307,8 @@ dataset = weave.Dataset( }, {"user_input": " I write good ", "expected": "I write well"}, { - "user_input": " GPT-3 is smartest AI model. ", - "expected": "GPT-3 is the smartest AI model.", + "user_input": " GPT-4 is smartest AI model. ", + "expected": "GPT-4 is the smartest AI model.", }, ], ) @@ -331,7 +331,7 @@ import weave weave.init(PROJECT) corrector = OpenAIGrammarCorrector( - openai_model_name="gpt-3.5-turbo-1106", + openai_model_name="gpt-4o-mini", system_message="You are a grammar checker, correct the following user input.", ) diff --git a/docs/docs/reference/gen_notebooks/audio_with_weave.md b/docs/docs/reference/gen_notebooks/audio_with_weave.md index a8c6b45efc1e..6b25bb332713 100644 --- a/docs/docs/reference/gen_notebooks/audio_with_weave.md +++ b/docs/docs/reference/gen_notebooks/audio_with_weave.md @@ -1,6 +1,6 @@ ---- -title: Log Audio With Weave ---- + +## title: Log Audio With Weave + :::tip[This is a notebook] @@ -12,14 +12,14 @@ title: Log Audio With Weave ::: - +## + # How to use Weave with Audio Data: An OpenAI Example This demo uses the OpenAI chat completions API with GPT 4o Audio Preview to generate audio responses to text prompts and track these in Weave. - For the advanced use case, we leverage the OpenAI Realtime API to stream audio in realtime. Click the following thumbnail to view the video demonstration, or click [here](https://www.youtube.com/watch?v=lnnd73xDElw). @@ -27,12 +27,12 @@ For the advanced use case, we leverage the OpenAI Realtime API to stream audio i [![Everything Is AWESOME](https://img.youtube.com/vi/lnnd73xDElw/0.jpg)](https://www.youtube.com/watch?v=lnnd73xDElw "Everything Is AWESOME") - ## Setup Start by installing the OpenAI (`openai`) and Weave (`weave`) dependencies, as well as API key management dependencey `set-env`. + ```python %%capture !pip install openai @@ -40,7 +40,8 @@ Start by installing the OpenAI (`openai`) and Weave (`weave`) dependencies, as w !pip install set-env-colab-kaggle-dotenv -q # for env var ``` -Next, load the required API keys for OpenAI and Weave. Here, we use set_env which is compatible with google colab's secret keys manager, and is an alternative to colab's specific `google.colab.userdata`. See: [here](https://pypi.org/project/set-env-colab-kaggle-dotenv/) for usage instructions. +Next, load the required API keys for OpenAI and Weave. Here, we use set_env which is compatible with google colab's secret keys manager, and is an alternative to colab's specific `google.colab.userdata`. See: [here](https://pypi.org/project/set-env-colab-kaggle-dotenv/) for usage instructions. + ```python @@ -54,6 +55,7 @@ _ = set_env("WANDB_API_KEY") And finally import the required libraries. + ```python import base64 import os @@ -69,9 +71,11 @@ import weave ## Audio Streaming and Storage Example + Now we will setup a call to OpenAI's completions endpoint with audio modality enabled. First create the OpenAI client and initiate a Weave project. + ```python client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY")) weave.init("openai-audio-chat") @@ -80,15 +84,18 @@ weave.init("openai-audio-chat") Now we will define our OpenAI completions request and add our Weave decorator (op). Here, we define the function `prompt_endpont_and_log_trace`. This function has three primary steps: + 1. We make a completion object using the `GPT 4o Audio Preview` model that supports text and audio inputs and outputs. - - We prompt the model to count to 13 slowly with varying accents. - - We set the completion to "stream". + + - We prompt the model to count to 13 slowly with varying accents. + - We set the completion to "stream". 2. We open a new output file to which the streamed data is writen chunk by chunk. 3. We return an open file handler to the audio file so Weave logs the audio data in the trace. + ```python SAMPLE_RATE = 22050 @@ -146,6 +153,7 @@ Run the following cell. The system and user prompt will be stored in a Weave tra After running the cell, click the link next to the "🍩" emoji to view your trace. + ```python from IPython.display import Audio, display @@ -160,15 +168,17 @@ display(Audio("output.wav", rate=SAMPLE_RATE, autoplay=True)) ``` # Advanced Usage: Realtime Audio API with Weave +
(Advanced) Realtime Audio API with Weave OpenAI's realtime API is a highly functional and reliable conversational API for building realtime audio and text assistants. Please note: + - Review the cells in [Microphone Configuration](#microphone-configuration) - Due to limitations of the Google Colab execution environment, **this must be run on your host machine** as a Jupyter Notebook. This cannot be ran in the browser. - - On MacOS you will need to install `portaudio` via Brew (see [here](https://formulae.brew.sh/formula/portaudio)) for Pyaudio to function. + - On MacOS you will need to install `portaudio` via Brew (see [here](https://formulae.brew.sh/formula/portaudio)) for Pyaudio to function. - OpenAI's Python SDK does not yet provide Realtime API support. We implement the complete OAI Realtime API schema in Pydantic for greater legibility, and may deprecate once official support is released. - The `enable_audio_playback` toggle will cause playback of assistant outputted audio. Please note that **headphones are required if this is enabled**, as echo detection requires a highly complex implementation. @@ -176,6 +186,7 @@ Please note: ## Requirements Setup + ```python %%capture !pip install numpy==2.0 @@ -195,7 +206,7 @@ import os import threading import time import wave -from typing import Dict, List, Optional +from typing import Optional import numpy as np import pyaudio @@ -219,6 +230,7 @@ _ = set_env("WANDB_API_KEY") Run the following cell to find all available audio devices. Then, populate the `INPUT_DEVICE_INDEX` and the `OUTPUT_DEVICE_INDEX` based on the devices listed. Your input device will have at least 1 input channels, and your output device will have at least 1 output channels. + ```python # Get device list from pyaudio so we can configure the next cell p = pyaudio.PyAudio() @@ -259,9 +271,10 @@ The OpenAI Python SDK does not yet provide Realtime API support. We implement th Pydantic Schema for OpenAI Realtime API (OpenAI's SDK lacks Realtime API support) + ```python from enum import Enum -from typing import Any, Dict, List, Literal, Optional, Union +from typing import Any, Literal, Optional, Union from pydantic import BaseModel, Field, ValidationError @@ -315,8 +328,8 @@ class ToolParameterProperty(BaseModel): class ToolParameter(BaseModel): type: str - properties: Dict[str, ToolParameterProperty] - required: List[str] + properties: dict[str, ToolParameterProperty] + required: list[str] class Tool(BaseModel): @@ -327,14 +340,14 @@ class Tool(BaseModel): class Session(BaseModel): - modalities: Optional[List[str]] = None + modalities: Optional[list[str]] = None instructions: Optional[str] = None voice: Optional[str] = None input_audio_format: Optional[str] = None output_audio_format: Optional[str] = None input_audio_transcription: Optional[InputAudioTranscription] = None turn_detection: Optional[TurnDetection] = None - tools: Optional[List[Tool]] = None + tools: Optional[list[Tool]] = None tool_choice: Optional[str] = None temperature: Optional[float] = None max_output_tokens: Optional[int] = None @@ -393,7 +406,7 @@ class ConversationItem(BaseModel): type: Literal["message", "function_call", "function_call_output"] status: Optional[Literal["completed", "in_progress", "incomplete"]] = None role: Literal["user", "assistant", "system"] - content: List[ + content: list[ Union[ConversationItemContent, FunctionCallContent, FunctionCallOutputContent] ] call_id: Optional[str] = None @@ -545,7 +558,7 @@ class ConversationItemInputAudioTranscriptionFailed(BaseEvent): ] = ServerEventTypes.CONVERSATION_ITEM_INPUT_AUDIO_TRANSCRIPTION_FAILED item_id: str content_index: int - error: Dict[str, Any] + error: dict[str, Any] class ConversationItemTruncated(BaseEvent): @@ -569,8 +582,8 @@ class ResponseUsage(BaseModel): total_tokens: int input_tokens: int output_tokens: int - input_token_details: Optional[Dict[str, int]] = None - output_token_details: Optional[Dict[str, int]] = None + input_token_details: Optional[dict[str, int]] = None + output_token_details: Optional[dict[str, int]] = None class ResponseOutput(BaseModel): @@ -579,7 +592,7 @@ class ResponseOutput(BaseModel): type: str status: str role: str - content: List[Dict[str, Any]] + content: list[dict[str, Any]] class ResponseContentPart(BaseModel): @@ -603,7 +616,7 @@ class ResponseOutputItem(BaseModel): type: str status: str role: str - content: List[ResponseOutputItemContent] + content: list[ResponseOutputItemContent] class Response(BaseModel): @@ -611,7 +624,7 @@ class Response(BaseModel): object: Literal["realtime.response"] status: str status_details: Optional[ResponseStatusDetails] = None - output: List[ResponseOutput] + output: list[ResponseOutput] usage: Optional[ResponseUsage] @@ -788,7 +801,7 @@ class RateLimitsUpdated(BaseEvent): type: Literal[ServerEventTypes.RATE_LIMITS_UPDATED] = ( ServerEventTypes.RATE_LIMITS_UPDATED ) - rate_limits: List[RateLimit] + rate_limits: list[RateLimit] ServerEvent = Union[ @@ -866,9 +879,11 @@ def parse_server_event(event_data: dict) -> ServerEvent:
+ ## Audio Stream Writer (To Disk and In Memory) + ```python class StreamingWavWriter: """Writes audio integer or byte array chunks to a WAV file.""" @@ -915,24 +930,25 @@ class StreamingWavWriter: The realtime (RT) audio model uses a websocket to send events to OpenAI's Realtime audio API. This works as follows: -1. __init:__ We initialize local buffers (input audio) and streams (assistant playback stream, user audio disk writer stream) and open a connection to the Realtime API. -2. __receive_messages_thread__: A thread handles receiving messages from the API. Four primary event types are handled: - - RESPONSE_AUDIO_TRANSCRIPT_DONE: +1. **init:** We initialize local buffers (input audio) and streams (assistant playback stream, user audio disk writer stream) and open a connection to the Realtime API. +2. **receive_messages_thread**: A thread handles receiving messages from the API. Four primary event types are handled: - RESPONSE_AUDIO_TRANSCRIPT_DONE: + + The server indicates the assistant's response is completed and provides the transcript. + + - CONVERSATION_ITEM_INPUT_AUDIO_TRANSCRIPTION_COMPLETED: - The server indicates the assistant's response is completed and provides the transcript. + The server indicates the user's audio has been transcribed, and sends the transcript of the user's audio. We log the transcript to Weave and print it for the user. - - CONVERSATION_ITEM_INPUT_AUDIO_TRANSCRIPTION_COMPLETED: - - The server indicates the user's audio has been transcribed, and sends the transcript of the user's audio. We log the transcript to Weave and print it for the user. + - RESPONSE_AUDIO_DELTA: - - RESPONSE_AUDIO_DELTA: - - The server sends a new chunk of assistant response audio. We append this to the ongoing response data via the response ID, and add this to the output stream for playback. + The server sends a new chunk of assistant response audio. We append this to the ongoing response data via the response ID, and add this to the output stream for playback. + + - RESPONSE_DONE: + + The server indicates completion of an assistant response. We get all audio chunks associated with the response, as well as the transcript, and log these in Weave. + + 3.**send_audio**: A handler appends user audio chunks to a buffer, and sends chunks of audio when the audio buffer reaches a certain size. - - RESPONSE_DONE: - - The server indicates completion of an assistant response. We get all audio chunks associated with the response, as well as the transcript, and log these in Weave. -3.__send_audio__: A handler appends user audio chunks to a buffer, and sends chunks of audio when the audio buffer reaches a certain size. ```python @@ -948,7 +964,7 @@ class RTAudioModel(weave.Model): None # Stream for writing user output to file ) input_audio_buffer: Optional[np.ndarray] = None # Buffer for user audio chunks - assistant_outputs: Dict[str, StreamingWavWriter] = ( + assistant_outputs: dict[str, StreamingWavWriter] = ( None # Assistant outputs aggregated to send to weave ) playback_stream: Optional[pyaudio.Stream] = ( @@ -1134,6 +1150,7 @@ class RTAudioModel(weave.Model): We use a pyaudio input stream with a handler linked to the `send_audio` method of the RTAudio model. The stream is returned to the main thread so it can be safely exited upon program completion. + ```python # Audio capture stream def record_audio(realtime_model: RTAudioModel) -> pyaudio.Stream: @@ -1164,6 +1181,7 @@ def record_audio(realtime_model: RTAudioModel) -> pyaudio.Stream: The main thread initiates a Realtime Audio Model with Weave integrated. Next, a reccording is opened and we wait for a keyboard interrupt from the user. + ```python weave.init(project_name="realtime-oai-audio-testing") @@ -1194,5 +1212,5 @@ else: ) ``` - + diff --git a/docs/docs/reference/gen_notebooks/notdiamond_custom_routing.md b/docs/docs/reference/gen_notebooks/notdiamond_custom_routing.md new file mode 100644 index 000000000000..c590adc1627e --- /dev/null +++ b/docs/docs/reference/gen_notebooks/notdiamond_custom_routing.md @@ -0,0 +1,229 @@ + +## title: NotDiamond Custom Routing + + + +:::tip[This is a notebook] + +
Open In Colab
Open in Colab
+ +
View in Github
View in Github
+ +::: + + +## + + + +# Custom Routing for LLM Prompts with Not Diamond + +This notebook demonstrates how to use Weave with [Not Diamond's custom routing](https://docs.notdiamond.ai/docs/router-training-quickstart) to route LLM prompts to the most appropriate model based on evaluation results. + +## Routing prompts + +When building complex LLM workflows users may need to prompt different models according to accuracy, cost, or call latency. +Users can use [Not Diamond](https://www.notdiamond.ai/) to route prompts in these workflows to the right model for their needs, helping maximize accuracy while saving on model costs. + +For any given distribution of data, rarely will one single model outperform every other model on every single query. By combining together multiple models into a "meta-model" that learns when to call each LLM, you can beat every individual model's performance and even drive down costs and latency in the process. + +## Custom routing + +You need three things to train a custom router for your prompts: + +1. A set of LLM prompts: Prompts must be strings and should be representative of the prompts used in our application. +1. LLM responses: The responses from candidate LLMs for each input. Candidate LLMs can include both our supported LLMs and your own custom models. +1. Evaluation scores for responses to the inputs from candidate LLMs: Scores are numbers, and can be any metric that fit your needs. + +By submitting these to the Not Diamond API you can then train a custom router tuned to each of your workflows. + + +## Setting up the training data + +In practice, you will use your own Evaluations to train a custom router. For this example notebook, however, you will use LLM responses +for [the HumanEval dataset](https://github.com/openai/human-eval) to train a custom router for coding tasks. + +We start by downloading the dataset we have prepared for this example, then parsing LLM responses into EvaluationResults for each model. + + + +```python +!curl -L "https://drive.google.com/uc?export=download&id=1q1zNZHioy9B7M-WRjsJPkfvFosfaHX38" -o humaneval.csv +``` + + +```python +import random + +import weave +from weave.flow.dataset import Dataset +from weave.flow.eval import EvaluationResults +from weave.integrations.notdiamond.util import get_model_evals + +pct_train = 0.8 +pct_test = 1 - pct_train + +# In practice, you will build an Evaluation on your dataset and call +# `evaluation.get_eval_results(model)` +model_evals = get_model_evals("./humaneval.csv") +model_train = {} +model_test = {} +for model, evaluation_results in model_evals.items(): + n_results = len(evaluation_results.rows) + all_idxs = list(range(n_results)) + train_idxs = random.sample(all_idxs, k=int(n_results * pct_train)) + test_idxs = [idx for idx in all_idxs if idx not in train_idxs] + + model_train[model] = EvaluationResults( + rows=weave.Table([evaluation_results.rows[idx] for idx in train_idxs]) + ) + model_test[model] = Dataset( + rows=weave.Table([evaluation_results.rows[idx] for idx in test_idxs]) + ) + print( + f"Found {len(train_idxs)} train rows and {len(test_idxs)} test rows for {model}." + ) +``` + +## Training a custom router + +Now that you have EvaluationResults, you can train a custom router. Make sure you have [created an account](https://app.notdiamond.ai/keys) and +[generated an API key](https://app.notdiamond.ai/keys), then insert your API key below. + +![Create an API key](/../docs/guides/integrations/imgs/notdiamond/api-keys.png) + + + +```python +import os + +from weave.integrations.notdiamond.custom_router import train_router + +api_key = os.getenv("NOTDIAMOND_API_KEY", "") + +preference_id = train_router( + model_evals=model_train, + prompt_column="prompt", + response_column="actual", + language="en", + maximize=True, + api_key=api_key, + # Leave this commented out to train your first custom router + # Uncomment this to retrain your custom router in place + # preference_id=preference_id, +) +``` + +You can then follow the training process for your custom router via the Not Diamond app. + +![Check on router training progress](/../docs/guides/integrations/imgs/notdiamond/router-preferences.png) + + +Once your custom router has finished training, you can use it to route your prompts. + + + +```python +from notdiamond import NotDiamond + +import weave + +weave.init("notdiamond-quickstart") + +llm_configs = [ + "anthropic/claude-3-5-sonnet-20240620", + "openai/gpt-4o-2024-05-13", + "google/gemini-1.5-pro-latest", + "openai/gpt-4-turbo-2024-04-09", + "anthropic/claude-3-opus-20240229", +] +client = NotDiamond(api_key=api_key, llm_configs=llm_configs) + +new_prompt = ( + """ +You are a helpful coding assistant. Using the provided function signature, write the implementation for the function +in Python. Write only the function. Do not include any other text. + +from typing import List + + +def has_close_elements(numbers: List[float], threshold: float) -> bool: + """ + """ Check if in given list of numbers, are any two numbers closer to each other than + given threshold. + >>> has_close_elements([1.0, 2.0, 3.0], 0.5) + False + >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) + True + """ + """ +""" +) +session_id, routing_target_model = client.model_select( + messages=[{"role": "user", "content": new_prompt}], + preference_id=preference_id, +) + +print(f"Session ID: {session_id}") +print(f"Target Model: {routing_target_model}") +``` + +This example also used Not Diamond's compatibility with Weave auto-tracing. You can see the results in the Weave UI. + +![Weave UI for custom routing](/../docs/guides/integrations/imgs/notdiamond/weave-trace.png) + + +## Evaluating your custom router + +Once you have trained your custom router, you can evaluate either its + +- in-sample performance by submitting the training prompts, or +- out-of-sample performance by submitting new or held-out prompts + +Below, we submit the test set to the custom router to evaluate its performance. + + + +```python +from weave.integrations.notdiamond.custom_router import evaluate_router + +eval_prompt_column = "prompt" +eval_response_column = "actual" + +best_provider_model, nd_model = evaluate_router( + model_datasets=model_test, + prompt_column=eval_prompt_column, + response_column=eval_response_column, + api_key=api_key, + preference_id=preference_id, +) +``` + + +```python +@weave.op() +def is_correct(score: int, model_output: dict) -> dict: + # We hack score, since we already have model responses + return {"correct": score} + + +best_provider_eval = weave.Evaluation( + dataset=best_provider_model.model_results.to_dict(orient="records"), + scorers=[is_correct], +) +await best_provider_eval.evaluate(best_provider_model) + +nd_eval = weave.Evaluation( + dataset=nd_model.model_results.to_dict(orient="records"), scorers=[is_correct] +) +await nd_eval.evaluate(nd_model) +``` + +In this instance, the Not Diamond "meta-model" routes prompts across several different models. + +Training the custom router via Weave will also run evaluations and upload results to the Weave UI. Once the custom router process is completed, you can review the results in the Weave UI. + +In the UI we see that the Not Diamond "meta-model" outperforms the best-performing model by routing prompts to other models with higher likelihood of answering the prompt accurately. + +![Evaluating Not Diamond](/../docs/guides/integrations/imgs/notdiamond/evaluations.png) + diff --git a/docs/docs/reference/gen_notebooks/online_monitoring.md b/docs/docs/reference/gen_notebooks/online_monitoring.md index 4f50c51e3a54..8d5a7323a06b 100644 --- a/docs/docs/reference/gen_notebooks/online_monitoring.md +++ b/docs/docs/reference/gen_notebooks/online_monitoring.md @@ -1,6 +1,6 @@ ---- -title: Integrating with Weave - Production Dashboard ---- + +## title: Integrating with Weave - Production Dashboard + :::tip[This is a notebook] @@ -12,37 +12,46 @@ title: Integrating with Weave - Production Dashboard ::: - +## + # Integrating with Weave: Production Dashboard The GenAI tooling landscape is rapidly evolving - new frameworks, tools, and applications are emerging all the time. Weave aims to be a one-stop-shop for all your GenAI monitoring and evaluation needs. This also means that sometimes it is necessary to integrate with existing platforms or extend Weave to fit the specific needs of your project or organization. In this cookbook, we'll demonstrate how to leverage Weave's powerful APIs and functions to create a custom dashboard for production monitoring as an extension to the Traces view in Weave. We'll focus on: -* Fetching traces, costs, feedback, and other metrics from Weave -* Creating aggregate views for user feedback and cost distribution -* Creating visualizations for token usage and latency over time + +- Fetching traces, costs, feedback, and other metrics from Weave +- Creating aggregate views for user feedback and cost distribution +- Creating visualizations for token usage and latency over time You can try out the dashboard with your own Weave project by installing streamlit and running [this production dashboard script](https://github.com/NiWaRe/agent-dev-collection)! + Example Production Dashboard with Weave + # 1. Setup + To follow along this tutorial you'll only need to install the following packages: + ```python !pip install streamlit pandas plotly weave ``` # 2. Implementation + ## 2.1 Initializing Weave Client and Defining Costs -First, we'll set up a function to initialize the Weave client and add costs for each model. -* We have included the standard costs for many standard models but we also make it easy to add your own custom costs and custom models. In the following we'll show how to add custom costs for a few models and use the standard costs for the rest. -* The costs are calculate based on the tracked tokens for each call in Weave. For many LLM vendor libraries, we will automatically track the token usage, but it is also possible to return custom token counts for any call. See this cookbook on how to define the token count and cost calculation for a custom model - [custom cost cookbook](https://weave-docs.wandb.ai/reference/gen_notebooks/custom_model_cost#setting-up-a-model-with-weave). +First, we'll set up a function to initialize the Weave client and add costs for each model. + +- We have included the standard costs for many standard models but we also make it easy to add your own custom costs and custom models. In the following we'll show how to add custom costs for a few models and use the standard costs for the rest. +- The costs are calculate based on the tracked tokens for each call in Weave. For many LLM vendor libraries, we will automatically track the token usage, but it is also possible to return custom token counts for any call. See this cookbook on how to define the token count and cost calculation for a custom model - [custom cost cookbook](https://weave-docs.wandb.ai/reference/gen_notebooks/custom_model_cost#setting-up-a-model-with-weave). + ```python @@ -74,29 +83,34 @@ def init_weave_client(project_name): prompt_token_cost=prompt_cost, completion_token_cost=completion_cost, ) - return client except Exception as e: print(f"Failed to initialize Weave client for project '{project_name}': {e}") return None + else: + return client client = init_weave_client(PROJECT_NAME) ``` ## 2.2 Fetching Calls Data from Weave + In order to fetch call data from Weave, we have two options: + 1. Fetching Data call-by-call 2. Using high-level APIs ### 2.2.1 Fetching Data call-by-call + The first option to access data from Weave is to retrieve a list of filtered calls and extract the wanted data call-by-call. For that we can use the `calls_query_stream` API to fetch the calls data from Weave: -* `calls_query_stream` API: This API allows us to fetch the calls data from Weave. -* `filter` dictionary: This dictionary contains the filter parameters to fetch the calls data - see [here](https://weave-docs.wandb.ai/reference/python-sdk/weave/trace_server/weave.trace_server.trace_server_interface/#class-callschema) for more details. -* `expand_columns` list: This list contains the columns to expand in the calls data. -* `sort_by` list: This list contains the sorting parameters for the calls data. -* `include_costs` boolean: This boolean indicates whether to include the costs in the calls data. -* `include_feedback` boolean: This boolean indicates whether to include the feedback in the calls data. +- `calls_query_stream` API: This API allows us to fetch the calls data from Weave. +- `filter` dictionary: This dictionary contains the filter parameters to fetch the calls data - see [here](https://weave-docs.wandb.ai/reference/python-sdk/weave/trace_server/weave.trace_server.trace_server_interface/#class-callschema) for more details. +- `expand_columns` list: This list contains the columns to expand in the calls data. +- `sort_by` list: This list contains the sorting parameters for the calls data. +- `include_costs` boolean: This boolean indicates whether to include the costs in the calls data. +- `include_feedback` boolean: This boolean indicates whether to include the feedback in the calls data. + ```python @@ -121,10 +135,11 @@ def fetch_calls(client, project_id, start_time, trace_roots_only, limit): itertools.islice(calls_stream, limit) ) # limit the number of calls to fetch if too many print(f"Fetched {len(calls)} calls.") - return calls except Exception as e: print(f"Error fetching calls: {e}") return [] + else: + return calls calls = fetch_calls(client, PROJECT_NAME, datetime.now() - timedelta(days=1), True, 100) @@ -136,7 +151,8 @@ calls = fetch_calls(client, PROJECT_NAME, datetime.now() - timedelta(days=1), Tr pd.DataFrame([call.dict() for call in calls]).head(3) ``` -Processing the calls is very easy with the return from Weave - we'll extract the relevant information and store it in a list of dictionaries. We'll then convert the list of dictionaries to a pandas DataFrame and return it. +Processing the calls is very easy with the return from Weave - we'll extract the relevant information and store it in a list of dictionaries. We'll then convert the list of dictionaries to a pandas DataFrame and return it. + ```python @@ -185,10 +201,12 @@ df_calls.head(3) ``` ### 2.2.2 Using high-level APIs -Instead of goin through every call Weave also provides high-level APIs to directly access model costs, feedback, and other metrics. + +Instead of goin through every call Weave also provides high-level APIs to directly access model costs, feedback, and other metrics. For example, for the cost, we'll use the `query_costs` API to fetch the costs of all used LLMs using in project: + ```python # Use cost API to get costs costs = client.query_costs() @@ -202,9 +220,11 @@ df_costs ``` ## 2.4 Gathering inputs and generating visualizations + Next, we can generate the visualizations using plotly. This is the most basic dashboard, but you can customize it as you like! For a more complex example, check out a Streamlit example [here](https://github.com/NiWaRe/knowledge-worker-weave/blob/master/prod_dashboard.py). + ```python import plotly.express as px import plotly.graph_objects as go @@ -216,7 +236,7 @@ def plot_feedback_pie_chart(thumbs_up, thumbs_down): go.Pie( labels=["Thumbs Up", "Thumbs Down"], values=[thumbs_up, thumbs_down], - marker=dict(colors=["#66b3ff", "#ff9999"]), + marker={"colors": ["#66b3ff", "#ff9999"]}, hole=0.3, ) ] @@ -252,13 +272,15 @@ plot_model_cost_distribution(df_costs) ``` # Conclusion + In this cookbook, we demonstrated how to create a custom production monitoring dashboard using Weave's APIs and functions. Weave currently focuses on fast integrations for easy input of data as well as extraction of the data for custom processes. -* **Data Input:** - * Framework-agnostic tracing with [@weave-op()](https://weave-docs.wandb.ai/quickstart#2-log-a-trace-to-a-new-project) decorator and the possibility to import calls from CSV (see related [import cookbook](https://weave-docs.wandb.ai/reference/gen_notebooks/import_from_csv)) - * Service API endpoints to log to Weave from for various programming frameworks and languages, see [here](https://weave-docs.wandb.ai/reference/service-api/call-start-call-start-post) for more details. -* **Data Output:** - * Easy download of the data in CSV, TSV, JSONL, JSON formats - see [here](https://weave-docs.wandb.ai/guides/tracking/tracing#querying--exporting-calls) for more details. - * Easy export using programmatic access to the data - see "Use Python" section in the export panel as described in this cookbook. See [here](https://weave-docs.wandb.ai/guides/tracking/tracing#querying--exporting-calls) for more details. +- **Data Input:** + - Framework-agnostic tracing with [@weave-op()](https://weave-docs.wandb.ai/quickstart#2-log-a-trace-to-a-new-project) decorator and the possibility to import calls from CSV (see related [import cookbook](https://weave-docs.wandb.ai/reference/gen_notebooks/import_from_csv)) + - Service API endpoints to log to Weave from for various programming frameworks and languages, see [here](https://weave-docs.wandb.ai/reference/service-api/call-start-call-start-post) for more details. +- **Data Output:** + - Easy download of the data in CSV, TSV, JSONL, JSON formats - see [here](https://weave-docs.wandb.ai/guides/tracking/tracing#querying--exporting-calls) for more details. + - Easy export using programmatic access to the data - see "Use Python" section in the export panel as described in this cookbook. See [here](https://weave-docs.wandb.ai/guides/tracking/tracing#querying--exporting-calls) for more details. This custom dashboard extends Weave's native Traces view, allowing for tailored monitoring of LLM applications in production. If you're interested in viewing a more complex dashboard, check out a Streamlit example where you can add your own Weave project URL [in this repo](https://github.com/NiWaRe/agent-dev-collection). + diff --git a/docs/docs/reference/gen_notebooks/weave_via_service_api.md b/docs/docs/reference/gen_notebooks/weave_via_service_api.md index 5081e8923b46..af8a27b2f060 100644 --- a/docs/docs/reference/gen_notebooks/weave_via_service_api.md +++ b/docs/docs/reference/gen_notebooks/weave_via_service_api.md @@ -1,9 +1,6 @@ ---- -title: Use the Service API to Log and Query Traces ---- -:::note[This is a notebook] +:::tip[This is a notebook]
Open In Colab
Open in Colab
@@ -11,17 +8,18 @@ title: Use the Service API to Log and Query Traces ::: - -In the following notebook, you will learn how to use the Weave Service API to log traces. Specifically, you will use the Service API to: +# Use the Service API to Log and Query Traces + +In the following guide, you will learn how to use the Weave Service API to log traces. Specifically, you will use the Service API to: 1. [Create a mock of a simple LLM call and response, and log it to Weave.](#simple-trace) 2. [Create a mock of a more complex LLM call and response, and log it to Weave.](#complex-trace) 3. [Run a sample lookup query on the logged traces.](#run-a-lookup-query) -:::tip[View logged traces] -You can view all of the Weave traces created when you run the code in this guide by going to the **Traces** tab in your Weave project (specified by `team_id\project_id`), and selecting the name of the trace. -::: +> **View logged traces** +> +> You can view all of the Weave traces created when you run the code in this guide by going to the **Traces** tab in your Weave project (specified by `team_id\project_id`), and selecting the name of the trace. Before beginning, complete the [prerequisites](#prerequisites-set-variables-and-endpoints) @@ -43,6 +41,7 @@ Additionally, you must set the following variables: ```python import datetime import json + import requests # Headers and URLs @@ -52,9 +51,9 @@ url_end = "https://trace.wandb.ai/call/end" url_stream_query = "https://trace.wandb.ai/calls/stream_query" # W&B variables -team_id="" -project_id="" -wandb_token="" +team_id = "" +project_id = "" +wandb_token = "" ``` ## Simple trace @@ -79,30 +78,30 @@ Call started. ID: 01939cdc-38d2-7d61-940d-dcca0a56c575, Trace ID: 01939cdc-38d2- ## Start trace ## ------------ payload_start = { - "start": { - "project_id": f"{team_id}/{project_id}", - "op_name": "simple_trace", - "started_at": datetime.datetime.now().isoformat(), - "inputs": { - # Use this "messages" style to generate the chat UI in the expanded trace. - "messages": [{"role":"user","content":"Why is the sky blue?"}], - "model": "gpt-4o" - }, - "attributes": {}, - } + "start": { + "project_id": f"{team_id}/{project_id}", + "op_name": "simple_trace", + "started_at": datetime.datetime.now().isoformat(), + "inputs": { + # Use this "messages" style to generate the chat UI in the expanded trace. + "messages": [{"role": "user", "content": "Why is the sky blue?"}], + "model": "gpt-4o", + }, + "attributes": {}, + } } response = requests.post( - url_start, headers=headers, json=payload_start, auth=("api", wandb_token) + url_start, headers=headers, json=payload_start, auth=("api", wandb_token) ) if response.status_code == 200: - data = response.json() - call_id = data.get("id") - trace_id = data.get("trace_id") - print(f"Call started. ID: {call_id}, Trace ID: {trace_id}") + data = response.json() + call_id = data.get("id") + trace_id = data.get("trace_id") + print(f"Call started. ID: {call_id}, Trace ID: {trace_id}") else: - print("Start request failed with status:", response.status_code) - print(response.text) - exit() + print("Start request failed with status:", response.status_code) + print(response.text) + exit() ``` ### End a simple trace @@ -121,37 +120,41 @@ Call ended. ## End trace ## ------------ payload_end = { - "end": { - "project_id": f"{team_id}/{project_id}", - "id": call_id, - "ended_at": datetime.datetime.now().isoformat(), - "output": { - # Use this "choices" style to add the completion to the chat UI in the expanded trace. - "choices": [ - {"message": {"content": "It’s due to Rayleigh scattering, where shorter blue wavelengths of sunlight scatter in all directions."}}, - ] - }, - # Format the summary like this to generate the pricing summary information in the traces table. - "summary": { - "usage": { - "gpt-4o": { - "prompt_tokens": 10, - "completion_tokens": 20, - "total_tokens": 30, - "requests": 1, - } - } - }, - } + "end": { + "project_id": f"{team_id}/{project_id}", + "id": call_id, + "ended_at": datetime.datetime.now().isoformat(), + "output": { + # Use this "choices" style to add the completion to the chat UI in the expanded trace. + "choices": [ + { + "message": { + "content": "It’s due to Rayleigh scattering, where shorter blue wavelengths of sunlight scatter in all directions." + } + }, + ] + }, + # Format the summary like this to generate the pricing summary information in the traces table. + "summary": { + "usage": { + "gpt-4o": { + "prompt_tokens": 10, + "completion_tokens": 20, + "total_tokens": 30, + "requests": 1, + } + } + }, + } } response = requests.post( - url_end, headers=headers, json=payload_end, auth=("api", wandb_token) + url_end, headers=headers, json=payload_end, auth=("api", wandb_token) ) if response.status_code == 200: - print("Call ended.") + print("Call ended.") else: - print("End request failed with status:", response.status_code) - print(response.text) + print("End request failed with status:", response.status_code) + print(response.text) ``` ## Complex trace @@ -182,28 +185,26 @@ Parent call started. ID: 01939d26-0844-7c43-94bb-cdc471b6d65f, Trace ID: 01939d2 # Parent call: Start payload_parent_start = { - "start": { - "project_id": f"{team_id}/{project_id}", - "op_name": "complex_trace", - "started_at": datetime.datetime.now().isoformat(), - "inputs": { - "question": "Can you summarize the key points of this document?" - }, - "attributes": {}, - } + "start": { + "project_id": f"{team_id}/{project_id}", + "op_name": "complex_trace", + "started_at": datetime.datetime.now().isoformat(), + "inputs": {"question": "Can you summarize the key points of this document?"}, + "attributes": {}, + } } response = requests.post( - url_start, headers=headers, json=payload_parent_start, auth=("api", wandb_token) + url_start, headers=headers, json=payload_parent_start, auth=("api", wandb_token) ) if response.status_code == 200: - data = response.json() - parent_call_id = data.get("id") - trace_id = data.get("trace_id") - print(f"Parent call started. ID: {parent_call_id}, Trace ID: {trace_id}") + data = response.json() + parent_call_id = data.get("id") + trace_id = data.get("trace_id") + print(f"Parent call started. ID: {parent_call_id}, Trace ID: {trace_id}") else: - print("Parent start request failed with status:", response.status_code) - print(response.text) - exit() + print("Parent start request failed with status:", response.status_code) + print(response.text) + exit() ``` ### Add a child span to a complex trace: RAG document lookup @@ -232,50 +233,50 @@ Child call ended. # Child call: Start payload_child_start = { - "start": { - "project_id": f"{team_id}/{project_id}", - "op_name": "rag_document_lookup", - "trace_id": trace_id, - "parent_id": parent_call_id, - "started_at": datetime.datetime.now().isoformat(), - "inputs": { - "document_search": "This is a search query of the documents I'm looking for." - }, - "attributes": {}, - } + "start": { + "project_id": f"{team_id}/{project_id}", + "op_name": "rag_document_lookup", + "trace_id": trace_id, + "parent_id": parent_call_id, + "started_at": datetime.datetime.now().isoformat(), + "inputs": { + "document_search": "This is a search query of the documents I'm looking for." + }, + "attributes": {}, + } } response = requests.post( - url_start, headers=headers, json=payload_child_start, auth=("api", wandb_token) + url_start, headers=headers, json=payload_child_start, auth=("api", wandb_token) ) if response.status_code == 200: - data = response.json() - child_call_id = data.get("id") - print(f"Child call started. ID: {child_call_id}") + data = response.json() + child_call_id = data.get("id") + print(f"Child call started. ID: {child_call_id}") else: - print("Child start request failed with status:", response.status_code) - print(response.text) - exit() + print("Child start request failed with status:", response.status_code) + print(response.text) + exit() # Child call: End payload_child_end = { - "end": { - "project_id": f"{team_id}/{project_id}", - "id": child_call_id, - "ended_at": datetime.datetime.now().isoformat(), - "output": { - "document_results": "This will be the RAG'd document text which will be returned from the search query." - }, - "summary": {}, - } + "end": { + "project_id": f"{team_id}/{project_id}", + "id": child_call_id, + "ended_at": datetime.datetime.now().isoformat(), + "output": { + "document_results": "This will be the RAG'd document text which will be returned from the search query." + }, + "summary": {}, + } } response = requests.post( - url_end, headers=headers, json=payload_child_end, auth=("api", wandb_token) + url_end, headers=headers, json=payload_child_end, auth=("api", wandb_token) ) if response.status_code == 200: - print("Child call ended.") + print("Child call ended.") else: - print("Child end request failed with status:", response.status_code) - print(response.text) + print("Child end request failed with status:", response.status_code) + print(response.text) ``` ### Add a child span to a complex trace: LLM completion call @@ -312,62 +313,67 @@ Child call ended. # Child call: Start payload_child_start = { - "start": { - "project_id": f"{team_id}/{project_id}", - "op_name": "llm_completion", - "trace_id": trace_id, - "parent_id": parent_call_id, - "started_at": datetime.datetime.now().isoformat(), - "inputs": { - "messages": [{"role":"user","content":"With the following document context, could you help me answer:\n Can you summarize the key points of this document?\n [+ appended document context]"}], - "model": "gpt-4o" - }, - "attributes": {}, - } + "start": { + "project_id": f"{team_id}/{project_id}", + "op_name": "llm_completion", + "trace_id": trace_id, + "parent_id": parent_call_id, + "started_at": datetime.datetime.now().isoformat(), + "inputs": { + "messages": [ + { + "role": "user", + "content": "With the following document context, could you help me answer:\n Can you summarize the key points of this document?\n [+ appended document context]", + } + ], + "model": "gpt-4o", + }, + "attributes": {}, + } } response = requests.post( - url_start, headers=headers, json=payload_child_start, auth=("api", wandb_token) + url_start, headers=headers, json=payload_child_start, auth=("api", wandb_token) ) if response.status_code == 200: - data = response.json() - child_call_id = data.get("id") - print(f"Child call started. ID: {child_call_id}") + data = response.json() + child_call_id = data.get("id") + print(f"Child call started. ID: {child_call_id}") else: - print("Child start request failed with status:", response.status_code) - print(response.text) - exit() + print("Child start request failed with status:", response.status_code) + print(response.text) + exit() # Child call: End payload_child_end = { - "end": { - "project_id": f"{team_id}/{project_id}", - "id": child_call_id, - "ended_at": datetime.datetime.now().isoformat(), - "output": { - "choices": [ - {"message": {"content": "This is the response generated by the LLM."}}, - ] - }, - "summary": { - "usage": { - "gpt-4o": { - "prompt_tokens": 10, - "completion_tokens": 20, - "total_tokens": 30, - "requests": 1, - } - } - }, - } + "end": { + "project_id": f"{team_id}/{project_id}", + "id": child_call_id, + "ended_at": datetime.datetime.now().isoformat(), + "output": { + "choices": [ + {"message": {"content": "This is the response generated by the LLM."}}, + ] + }, + "summary": { + "usage": { + "gpt-4o": { + "prompt_tokens": 10, + "completion_tokens": 20, + "total_tokens": 30, + "requests": 1, + } + } + }, + } } response = requests.post( - url_end, headers=headers, json=payload_child_end, auth=("api", wandb_token) + url_end, headers=headers, json=payload_child_end, auth=("api", wandb_token) ) if response.status_code == 200: - print("Child call ended.") + print("Child call ended.") else: - print("Child end request failed with status:", response.status_code) - print(response.text) + print("Child end request failed with status:", response.status_code) + print(response.text) ``` ### End a complex trace @@ -397,35 +403,35 @@ Parent call ended. # Parent call: End payload_parent_end = { - "end": { - "project_id": f"{team_id}/{project_id}", - "id": parent_call_id, - "ended_at": datetime.datetime.now().isoformat(), - "output": { - "choices": [ - {"message": {"content": "This is the response generated by the LLM."}}, - ] - }, - "summary": { - "usage": { - "gpt-4o": { - "prompt_tokens": 10, - "completion_tokens": 20, - "total_tokens": 30, - "requests": 1, - } - } - }, - } + "end": { + "project_id": f"{team_id}/{project_id}", + "id": parent_call_id, + "ended_at": datetime.datetime.now().isoformat(), + "output": { + "choices": [ + {"message": {"content": "This is the response generated by the LLM."}}, + ] + }, + "summary": { + "usage": { + "gpt-4o": { + "prompt_tokens": 10, + "completion_tokens": 20, + "total_tokens": 30, + "requests": 1, + } + } + }, + } } response = requests.post( - url_end, headers=headers, json=payload_parent_end, auth=("api", wandb_token) + url_end, headers=headers, json=payload_parent_end, auth=("api", wandb_token) ) if response.status_code == 200: - print("Parent call ended.") + print("Parent call ended.") else: - print("Parent end request failed with status:", response.status_code) - print(response.text) + print("Parent end request failed with status:", response.status_code) + print(response.text) ``` ## Run a lookup query @@ -454,34 +460,29 @@ On a successful query, the response will include trace data matching the query p ```python query_payload = { - "project_id": f"{team_id}/{project_id}", - "filter": {"trace_roots_only": True}, - "query": { - "$expr": { - "$eq": [ - {"$getField": "inputs.model"}, - {"$literal": "gpt-4o"} - ] - } - }, - "limit": 10000, - "offset": 0, - "sort_by": [{"field": "started_at", "direction": "desc"}], - "include_feedback": False + "project_id": f"{team_id}/{project_id}", + "filter": {"trace_roots_only": True}, + "query": { + "$expr": {"$eq": [{"$getField": "inputs.model"}, {"$literal": "gpt-4o"}]} + }, + "limit": 10000, + "offset": 0, + "sort_by": [{"field": "started_at", "direction": "desc"}], + "include_feedback": False, } response = requests.post( - url_stream_query, headers=headers, json=query_payload, auth=("api", wandb_token) + url_stream_query, headers=headers, json=query_payload, auth=("api", wandb_token) ) if response.status_code == 200: - print("Query successful!") - try: - data = response.json() - print(data) - except json.JSONDecodeError as e: - # Alternate decode - json_objects = response.text.strip().split("\n") - parsed_data = [json.loads(obj) for obj in json_objects] - print(parsed_data) + print("Query successful!") + try: + data = response.json() + print(data) + except json.JSONDecodeError as e: + # Alternate decode + json_objects = response.text.strip().split("\n") + parsed_data = [json.loads(obj) for obj in json_objects] + print(parsed_data) else: print(f"Query failed with status code: {response.status_code}") print(response.text) diff --git a/docs/docs/reference/python-sdk/weave/index.md b/docs/docs/reference/python-sdk/weave/index.md index d2c6a0f036db..a8ff34e7d760 100644 --- a/docs/docs/reference/python-sdk/weave/index.md +++ b/docs/docs/reference/python-sdk/weave/index.md @@ -19,8 +19,11 @@ The top-level functions and classes for working with Weave. - [`obj.Object`](#class-object) - [`dataset.Dataset`](#class-dataset): Dataset object with easy saving and automatic versioning - [`model.Model`](#class-model): Intended to capture a combination of code and data the operates on an input. +- [`prompt.Prompt`](#class-prompt) +- [`prompt.StringPrompt`](#class-stringprompt) +- [`prompt.MessagesPrompt`](#class-messagesprompt) - [`eval.Evaluation`](#class-evaluation): Sets up an evaluation which includes a set of scorers and a dataset. -- [`scorer.Scorer`](#class-scorer) +- [`base_scorer.Scorer`](#class-scorer) ## Functions @@ -37,14 +40,15 @@ The top-level functions and classes for working with Weave. --- - + ### function `init` ```python init( - project_name: str, - settings: Optional[UserSettings, dict[str, Any]] = None + project_name: 'str', + settings: 'UserSettings | dict[str, Any] | None' = None, + autopatch_settings: 'AutopatchSettings | None' = None ) → WeaveClient ``` @@ -67,12 +71,12 @@ Following init, calls of weave.op() decorated functions will be logged to the sp --- - + ### function `publish` ```python -publish(obj: Any, name: Optional[str] = None) → ObjectRef +publish(obj: 'Any', name: 'str | None' = None) → ObjectRef ``` Save and version a python object. @@ -95,12 +99,12 @@ TODO: Need to document how name works with this change. --- - + ### function `ref` ```python -ref(location: str) → ObjectRef +ref(location: 'str') → ObjectRef ``` Construct a Ref to a Weave object. @@ -122,7 +126,7 @@ TODO: what happens if obj does not exist --- - + ### function `require_current_call` @@ -175,12 +179,12 @@ print(mycall.id) --- - + ### function `get_current_call` ```python -get_current_call() → Optional[ForwardRef('Call')] +get_current_call() → Call | None ``` Get the Call object for the currently executing Op, within that Op. @@ -192,7 +196,7 @@ Get the Call object for the currently executing Op, within that Op. --- - + ### function `finish` @@ -206,18 +210,19 @@ Following finish, calls of weave.op() decorated functions will no longer be logg --- - + ### function `op` ```python op( - func: Optional[Callable] = None, - name: Optional[str] = None, - call_display_name: Optional[str, Callable[[ForwardRef('Call')], str]] = None, - postprocess_inputs: Optional[Callable[[dict[str, Any]], dict[str, Any]]] = None, - postprocess_output: Optional[Callable[, Any]] = None -) → Union[Callable[[Any], Op], Op] + func: 'Callable | None' = None, + name: 'str | None' = None, + call_display_name: 'str | CallDisplayNameFunc | None' = None, + postprocess_inputs: 'PostprocessInputsFunc | None' = None, + postprocess_output: 'PostprocessOutputFunc | None' = None, + tracing_sample_rate: 'float' = 1.0 +) → Callable[[Callable], Op] | Op ``` A decorator to weave op-ify a function or method. Works for both sync and async. @@ -237,6 +242,7 @@ If you don't call `weave.init` then the function will behave as if it were not d - `call_display_name` (Optional[Union[str, Callable[["Call"], str]]]): Custom display name for the call in the Weave UI. Can be a string or a function that takes a Call object and returns a string. When a function is passed, it can use any attributes of the Call object (e.g. `op_name`, `trace_id`, etc.) to generate a custom display name. - `postprocess_inputs` (Optional[Callable[[dict[str, Any]], dict[str, Any]]]): A function to process the inputs after they've been captured but before they're logged. This does not affect the actual inputs passed to the function, only the displayed inputs. - `postprocess_output` (Optional[Callable[..., Any]]): A function to process the output after it's been returned from the function but before it's logged. This does not affect the actual output of the function, only the displayed output. + - `tracing_sample_rate` (float): The sampling rate for tracing this function. Defaults to 1.0 (always trace). @@ -252,7 +258,9 @@ If you don't call `weave.init` then the function will behave as if it were not d -Example usage: ```python +Example usage: + +```python import weave weave.init("my-project") @@ -271,12 +279,12 @@ await extract() # calls the function and tracks the call in the Weave UI --- - + ### function `attributes` ```python -attributes(attributes: dict[str, Any]) → Iterator +attributes(attributes: 'dict[str, Any]') → Iterator ``` Context manager for setting attributes on a call. @@ -293,7 +301,7 @@ with weave.attributes({'env': 'production'}): --- - + ## class `Object` @@ -307,7 +315,7 @@ with weave.attributes({'env': 'production'}): - `description`: `typing.Optional[str]` --- - + ### classmethod `handle_relocatable_object` @@ -326,7 +334,7 @@ handle_relocatable_object( --- - + ## class `Dataset` Dataset object with easy saving and automatic versioning @@ -362,7 +370,7 @@ example_label = dataset_ref.rows[2]['sentence'] - `rows`: `` --- - + ### classmethod `convert_to_table` @@ -423,7 +431,162 @@ get_infer_method() → Callable --- - + + +## class `Prompt` + + + + + +**Pydantic Fields:** + +- `name`: `typing.Optional[str]` +- `description`: `typing.Optional[str]` +--- + + + +### method `format` + +```python +format(**kwargs: Any) → Any +``` + + + + + + +--- + + + +## class `StringPrompt` + + + + + + +### method `__init__` + +```python +__init__(content: str) +``` + + + + + + +**Pydantic Fields:** + +- `name`: `typing.Optional[str]` +- `description`: `typing.Optional[str]` +- `content`: `` +--- + + + +### method `format` + +```python +format(**kwargs: Any) → str +``` + + + + + +--- + + + +### classmethod `from_obj` + +```python +from_obj(obj: Any) → StringPrompt +``` + + + + + + +--- + + + +## class `MessagesPrompt` + + + + + + +### method `__init__` + +```python +__init__(messages: list[dict]) +``` + + + + + + +**Pydantic Fields:** + +- `name`: `typing.Optional[str]` +- `description`: `typing.Optional[str]` +- `messages`: `list[dict]` +--- + + + +### method `format` + +```python +format(**kwargs: Any) → list +``` + + + + + +--- + + + +### method `format_message` + +```python +format_message(message: dict, **kwargs: Any) → dict +``` + + + + + +--- + + + +### classmethod `from_obj` + +```python +from_obj(obj: Any) → MessagesPrompt +``` + + + + + + +--- + + ## class `Evaluation` Sets up an evaluation which includes a set of scorers and a dataset. @@ -475,12 +638,13 @@ asyncio.run(evaluation.evaluate(function_to_evaluate)) - `name`: `typing.Optional[str]` - `description`: `typing.Optional[str]` - `dataset`: `typing.Union[flow.dataset.Dataset, list]` -- `scorers`: `typing.Optional[list[typing.Union[typing.Callable, trace.op.Op, flow.scorer.Scorer]]]` +- `scorers`: `typing.Optional[list[typing.Union[typing.Callable, trace.op.Op, scorers.base_scorer.Scorer]]]` - `preprocess_model_input`: `typing.Optional[typing.Callable]` - `trials`: `` +- `evaluation_name`: `typing.Union[str, typing.Callable[[trace.weave_client.Call], str], NoneType]` --- - + ### method `evaluate` @@ -494,12 +658,12 @@ evaluate(model: Union[Callable, Model]) → dict --- - + -### method `model_post_init` +### method `get_eval_results` ```python -model_post_init(_Evaluation__context: Any) → None +get_eval_results(model: Union[Callable, Model]) → EvaluationResults ``` @@ -508,7 +672,7 @@ model_post_init(_Evaluation__context: Any) → None --- - + ### method `predict_and_score` @@ -522,7 +686,7 @@ predict_and_score(model: Union[Callable, Model], example: dict) → dict --- - + ### method `summarize` @@ -537,7 +701,7 @@ summarize(eval_table: EvaluationResults) → dict --- - + ## class `Scorer` @@ -549,14 +713,29 @@ summarize(eval_table: EvaluationResults) → dict - `name`: `typing.Optional[str]` - `description`: `typing.Optional[str]` +- `column_map`: `typing.Optional[dict[str, str]]` +--- + + + +### method `model_post_init` + +```python +model_post_init(_Scorer__context: Any) → None +``` + + + + + --- - + ### method `score` ```python -score(target: Any, model_output: Any) → Any +score(output: Any, **kwargs: Any) → Any ``` @@ -565,7 +744,7 @@ score(target: Any, model_output: Any) → Any --- - + ### method `summarize` diff --git a/docs/docs/reference/python-sdk/weave/trace/weave.trace.feedback.md b/docs/docs/reference/python-sdk/weave/trace/weave.trace.feedback.md index 81ab1360df03..9b225ea81ac7 100644 --- a/docs/docs/reference/python-sdk/weave/trace/weave.trace.feedback.md +++ b/docs/docs/reference/python-sdk/weave/trace/weave.trace.feedback.md @@ -26,17 +26,20 @@ Classes for working with feedback on a project or ref level. --- - + ## class `Feedbacks` A collection of Feedback objects with utilities. - + ### method `__init__` ```python -__init__(show_refs: bool, feedbacks: Optional[Iterable[Feedback]] = None) → None +__init__( + show_refs: 'bool', + feedbacks: 'Iterable[Feedback] | None' = None +) → None ``` @@ -48,7 +51,7 @@ __init__(show_refs: bool, feedbacks: Optional[Iterable[Feedback]] = None) → No --- - + ### method `refs` @@ -61,23 +64,23 @@ Return the unique refs associated with these feedbacks. --- - + ## class `FeedbackQuery` Lazy-loading object for fetching feedback from the server. - + ### method `__init__` ```python __init__( - entity: str, - project: str, - query: Query, - offset: Optional[int] = None, - limit: Optional[int] = None, - show_refs: bool = False + entity: 'str', + project: 'str', + query: 'Query', + offset: 'int | None' = None, + limit: 'int | None' = None, + show_refs: 'bool' = False ) ``` @@ -90,7 +93,7 @@ __init__( --- - + ### method `execute` @@ -104,7 +107,7 @@ execute() → Feedbacks --- - + ### method `refresh` @@ -118,7 +121,7 @@ refresh() → Feedbacks --- - + ### method `refs` @@ -133,17 +136,17 @@ refs() → Refs --- - + ## class `RefFeedbackQuery` Object for interacting with feedback associated with a particular ref. - + ### method `__init__` ```python -__init__(ref: str) → None +__init__(ref: 'str') → None ``` @@ -155,16 +158,16 @@ __init__(ref: str) → None --- - + ### method `add` ```python add( - feedback_type: str, - payload: Optional[dict[str, Any]] = None, - creator: Optional[str] = None, - **kwargs: dict[str, Any] + feedback_type: 'str', + payload: 'dict[str, Any] | None' = None, + creator: 'str | None' = None, + **kwargs: 'dict[str, Any]' ) → str ``` @@ -174,12 +177,12 @@ feedback_type: A string identifying the type of feedback. The "wandb." prefix is --- - + ### method `add_note` ```python -add_note(note: str, creator: Optional[str] = None) → str +add_note(note: 'str', creator: 'str | None' = None) → str ``` @@ -188,12 +191,12 @@ add_note(note: str, creator: Optional[str] = None) → str --- - + ### method `add_reaction` ```python -add_reaction(emoji: str, creator: Optional[str] = None) → str +add_reaction(emoji: 'str', creator: 'str | None' = None) → str ``` @@ -202,7 +205,7 @@ add_reaction(emoji: str, creator: Optional[str] = None) → str --- - + ### method `execute` @@ -216,12 +219,12 @@ execute() → Feedbacks --- - + ### method `purge` ```python -purge(feedback_id: str) → None +purge(feedback_id: 'str') → None ``` @@ -230,7 +233,7 @@ purge(feedback_id: str) → None --- - + ### method `refresh` @@ -244,7 +247,7 @@ refresh() → Feedbacks --- - + ### method `refs` diff --git a/docs/docs/reference/python-sdk/weave/trace/weave.trace.op.md b/docs/docs/reference/python-sdk/weave/trace/weave.trace.op.md index a927f39c41cf..8d94cb37e5bd 100644 --- a/docs/docs/reference/python-sdk/weave/trace/weave.trace.op.md +++ b/docs/docs/reference/python-sdk/weave/trace/weave.trace.op.md @@ -25,12 +25,18 @@ Defines the Op protocol and related functions. --- - + ### function `call` ```python -call(op: Op, *args: Any, **kwargs: Any) → tuple[Any, 'Call'] +call( + op: 'Op', + *args: 'Any', + __weave: 'WeaveKwargs | None' = None, + __should_raise: 'bool' = False, + **kwargs: 'Any' +) → tuple[Any, Call] | Coroutine[Any, Any, tuple[Any, Call]] ``` Executes the op and returns both the result and a Call representing the execution. @@ -49,12 +55,12 @@ result, call = add.call(1, 2) --- - + ### function `calls` ```python -calls(op: Op) → CallsIter +calls(op: 'Op') → CallsIter ``` Get an iterator over all calls to this op. diff --git a/docs/docs/reference/python-sdk/weave/trace/weave.trace.util.md b/docs/docs/reference/python-sdk/weave/trace/weave.trace.util.md index 011deb05f8ec..ccdf96c63fef 100644 --- a/docs/docs/reference/python-sdk/weave/trace/weave.trace.util.md +++ b/docs/docs/reference/python-sdk/weave/trace/weave.trace.util.md @@ -25,7 +25,7 @@ sidebar_label: util --- - + ## class `ContextAwareThreadPoolExecutor` A ThreadPoolExecutor that runs functions with the context of the caller. @@ -44,12 +44,12 @@ with concurrent.futures.ThreadPoolExecutor() as executor: executor.map(_wrapped_fn, vals) ``` - + ### method `__init__` ```python -__init__(*args: Any, **kwargs: Any) → None +__init__(*args: 'Any', **kwargs: 'Any') → None ``` @@ -61,16 +61,16 @@ __init__(*args: Any, **kwargs: Any) → None --- - + ### method `map` ```python map( - fn: Callable, - *iterables: Iterable[Iterable], - timeout: Optional[float] = None, - chunksize: int = 1 + fn: 'Callable', + *iterables: 'Iterable[Iterable]', + timeout: 'float | None' = None, + chunksize: 'int' = 1 ) → Iterator ``` @@ -80,12 +80,12 @@ map( --- - + ### method `submit` ```python -submit(fn: Callable, *args: Any, **kwargs: Any) → Any +submit(fn: 'Callable', *args: 'Any', **kwargs: 'Any') → Any ``` @@ -95,12 +95,12 @@ submit(fn: Callable, *args: Any, **kwargs: Any) → Any --- - + ## class `ContextAwareThread` A Thread that runs functions with the context of the caller. -This is a drop-in replacement for threading.Thread that ensures calls behave as expected inside the thread. Weave requires certain contextvars to be set (see call_context.py), but new threads do not automatically copy context from the parent, which can cause the call context to be lost -- not good! This class automates contextvar copying so using this thread "just works" as the user probaly expects. +This is a drop-in replacement for threading.Thread that ensures calls behave as expected inside the thread. Weave requires certain contextvars to be set (see call_context.py), but new threads do not automatically copy context from the parent, which can cause the call context to be lost -- not good! This class automates contextvar copying so using this thread "just works" as the user probably expects. You can achieve the same effect without this class by instead writing: @@ -115,12 +115,12 @@ thread = threading.Thread(target=run_with_context(your_func, *args, **kwargs)) thread.start() ``` - + ### method `__init__` ```python -__init__(*args: Any, **kwargs: Any) → None +__init__(*args: 'Any', **kwargs: 'Any') → None ``` @@ -166,7 +166,7 @@ This is a non-negative integer. See the get_native_id() function. This represent --- - + ### method `run` diff --git a/docs/docs/reference/python-sdk/weave/trace/weave.trace.weave_client.md b/docs/docs/reference/python-sdk/weave/trace/weave.trace.weave_client.md index 7c08c4c707ac..32a1ae124221 100644 --- a/docs/docs/reference/python-sdk/weave/trace/weave.trace.weave_client.md +++ b/docs/docs/reference/python-sdk/weave/trace/weave.trace.weave_client.md @@ -18,31 +18,32 @@ sidebar_label: weave_client - [`weave_client.WeaveClient`](#class-weaveclient) - [`weave_client.Call`](#class-call): A Call represents a single operation that was executed as part of a trace. -- [`weave_client.CallsIter`](#class-callsiter) +## Functions +- [`weave_client.PaginatedIterator`](#function-paginatediterator) --- - + ## class `WeaveClient` - + ### method `__init__` ```python __init__( - entity: str, - project: str, - server: TraceServerInterface, - ensure_project_exists: bool = True + entity: 'str', + project: 'str', + server: 'TraceServerInterface', + ensure_project_exists: 'bool' = True ) ``` @@ -55,19 +56,19 @@ __init__( --- - + ### method `add_cost` ```python add_cost( - llm_id: str, - prompt_token_cost: float, - completion_token_cost: float, - effective_date: Optional[datetime] = datetime.datetime(2024, 10, 9, 19, 25, 36, 393932, tzinfo=datetime.timezone.utc), - prompt_token_cost_unit: Optional[str] = 'USD', - completion_token_cost_unit: Optional[str] = 'USD', - provider_id: Optional[str] = 'default' + llm_id: 'str', + prompt_token_cost: 'float', + completion_token_cost: 'float', + effective_date: 'datetime | None' = datetime.datetime(2024, 12, 17, 4, 20, 20, 550683, tzinfo=datetime.timezone.utc), + prompt_token_cost_unit: 'str | None' = 'USD', + completion_token_cost_unit: 'str | None' = 'USD', + provider_id: 'str | None' = 'default' ) → CostCreateRes ``` @@ -102,12 +103,12 @@ Add a cost to the current project. --- - + ### method `call` ```python -call(call_id: str, include_costs: Optional[bool] = False) → WeaveObject +call(call_id: 'str', include_costs: 'bool' = False) → WeaveObject ``` @@ -116,14 +117,14 @@ call(call_id: str, include_costs: Optional[bool] = False) → WeaveObject --- - + ### method `calls` ```python calls( - filter: Optional[CallsFilter] = None, - include_costs: Optional[bool] = False + filter: 'CallsFilter | None' = None, + include_costs: 'bool' = False ) → CallsIter ``` @@ -133,18 +134,18 @@ calls( --- - + ### method `create_call` ```python create_call( - op: Union[str, Op], - inputs: dict, - parent: Optional[Call] = None, - attributes: Optional[dict] = None, - display_name: Optional[str, Callable[[Call], str]] = None, - use_stack: bool = True + op: 'str | Op', + inputs: 'dict', + parent: 'Call | None' = None, + attributes: 'dict | None' = None, + display_name: 'str | Callable[[Call], str] | None' = None, + use_stack: 'bool' = True ) → Call ``` @@ -168,12 +169,12 @@ Create, log, and push a call onto the runtime stack. --- - + ### method `delete_call` ```python -delete_call(call: Call) → None +delete_call(call: 'Call') → None ``` @@ -182,28 +183,28 @@ delete_call(call: Call) → None --- - + ### method `fail_call` ```python -fail_call(call: Call, exception: BaseException) → None +fail_call(call: 'Call', exception: 'BaseException') → None ``` Fail a call with an exception. This is a convenience method for finish_call. --- - + ### method `feedback` ```python feedback( - query: Optional[Query, str] = None, - reaction: Optional[str] = None, - offset: int = 0, - limit: int = 100 + query: 'Query | str | None' = None, + reaction: 'str | None' = None, + offset: 'int' = 0, + limit: 'int' = 100 ) → FeedbackQuery ``` @@ -213,16 +214,16 @@ feedback( --- - + ### method `finish_call` ```python finish_call( - call: Call, - output: Any = None, - exception: Optional[BaseException] = None, - op: Optional[Op] = None + call: 'Call', + output: 'Any' = None, + exception: 'BaseException | None' = None, + op: 'Op | None' = None ) → None ``` @@ -232,12 +233,12 @@ finish_call( --- - + ### method `get` ```python -get(ref: ObjectRef) → Any +get(ref: 'ObjectRef') → Any ``` @@ -246,12 +247,12 @@ get(ref: ObjectRef) → Any --- - + ### method `get_call` ```python -get_call(call_id: str, include_costs: Optional[bool] = False) → WeaveObject +get_call(call_id: 'str', include_costs: 'bool' = False) → WeaveObject ``` @@ -260,14 +261,14 @@ get_call(call_id: str, include_costs: Optional[bool] = False) → WeaveObject --- - + ### method `get_calls` ```python get_calls( - filter: Optional[CallsFilter] = None, - include_costs: Optional[bool] = False + filter: 'CallsFilter | None' = None, + include_costs: 'bool' = False ) → CallsIter ``` @@ -277,16 +278,16 @@ get_calls( --- - + ### method `get_feedback` ```python get_feedback( - query: Optional[Query, str] = None, - reaction: Optional[str] = None, - offset: int = 0, - limit: int = 100 + query: 'Query | str | None' = None, + reaction: 'str | None' = None, + offset: 'int' = 0, + limit: 'int' = 100 ) → FeedbackQuery ``` @@ -321,12 +322,12 @@ Query project for feedback. --- - + ### method `purge_costs` ```python -purge_costs(ids: Union[list[str], str]) → None +purge_costs(ids: 'list[str] | str') → None ``` Purge costs from the current project. @@ -349,16 +350,16 @@ Purge costs from the current project. --- - + ### method `query_costs` ```python query_costs( - query: Optional[Query, str] = None, - llm_ids: Optional[list[str]] = None, - offset: int = 0, - limit: int = 100 + query: 'Query | str | None' = None, + llm_ids: 'list[str] | None' = None, + offset: 'int' = 0, + limit: 'int' = 100 ) → list[CostQueryOutput] ``` @@ -395,12 +396,12 @@ Query project for costs. --- - + ### method `save` ```python -save(val: Any, name: str, branch: str = 'latest') → Any +save(val: 'Any', name: 'str', branch: 'str' = 'latest') → Any ``` Do not call directly, use weave.publish() instead. @@ -421,7 +422,7 @@ Do not call directly, use weave.publish() instead. --- - + ## class `Call` A Call represents a single operation that was executed as part of a trace. @@ -432,22 +433,22 @@ A Call represents a single operation that was executed as part of a trace. ```python __init__( - _op_name: Union[str, Future[str]], - trace_id: str, - project_id: str, - parent_id: Optional[str], - inputs: dict, - id: Optional[str] = None, - output: Any = None, - exception: Optional[str] = None, - summary: Optional[dict] = None, - display_name: Optional[str, Callable[[ForwardRef('Call')], str]] = None, - attributes: Optional[dict] = None, - started_at: Optional[datetime] = None, - ended_at: Optional[datetime] = None, - deleted_at: Optional[datetime] = None, - _children: list['Call'] = <factory>, - _feedback: Optional[RefFeedbackQuery] = None + _op_name: 'str | Future[str]', + trace_id: 'str', + project_id: 'str', + parent_id: 'str | None', + inputs: 'dict', + id: 'str | None' = None, + output: 'Any' = None, + exception: 'str | None' = None, + summary: 'dict | None' = None, + _display_name: 'str | Callable[[Call], str] | None' = None, + attributes: 'dict | None' = None, + started_at: 'datetime | None' = None, + ended_at: 'datetime | None' = None, + deleted_at: 'datetime | None' = None, + _children: 'list[Call]' = <factory>, + _feedback: 'RefFeedbackQuery | None' = None ) → None ``` @@ -456,6 +457,14 @@ __init__( +--- + +#### property display_name + + + + + --- #### property feedback @@ -480,6 +489,14 @@ This is different from `op_name` which is usually the ref of the op. +--- + +#### property ref + + + + + --- #### property ui_url @@ -492,7 +509,7 @@ This is different from `op_name` which is usually the ref of the op. --- - + ### method `children` @@ -506,7 +523,7 @@ children() → CallsIter --- - + ### method `delete` @@ -518,7 +535,7 @@ Delete the call. --- - + ### method `remove_display_name` @@ -532,12 +549,12 @@ remove_display_name() → None --- - + ### method `set_display_name` ```python -set_display_name(name: Optional[str]) → None +set_display_name(name: 'str | None') → None ``` Set the display name for the call. @@ -561,30 +578,12 @@ call.set_display_name("My Custom Display Name") --- - - -## class `CallsIter` - - - - - - -### method `__init__` +### function `PaginatedIterator` ```python -__init__( - server: TraceServerInterface, - project_id: str, - filter: CallsFilter, - include_costs: bool = False -) → None +PaginatedIterator(*args, **kwargs) ``` - - - - diff --git a/docs/docs/reference/python-sdk/weave/trace_server/interface/weave.trace_server.interface.query.md b/docs/docs/reference/python-sdk/weave/trace_server/interface/weave.trace_server.interface.query.md index 260b55b0d9ba..3ceb22344900 100644 --- a/docs/docs/reference/python-sdk/weave/trace_server/interface/weave.trace_server.interface.query.md +++ b/docs/docs/reference/python-sdk/weave/trace_server/interface/weave.trace_server.interface.query.md @@ -69,7 +69,7 @@ simplifications: **Pydantic Fields:** -- `$and`: `typing.List[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation]]` +- `$and`: `list['Operand']` --- @@ -142,7 +142,7 @@ simplifications: **Pydantic Fields:** -- `$eq`: `typing.Tuple[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation], typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation]]` +- `$eq`: `tuple['Operand', 'Operand']` --- @@ -170,7 +170,7 @@ simplifications: **Pydantic Fields:** -- `$gt`: `typing.Tuple[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation], typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation]]` +- `$gt`: `tuple['Operand', 'Operand']` --- @@ -184,7 +184,7 @@ simplifications: **Pydantic Fields:** -- `$gte`: `typing.Tuple[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation], typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation]]` +- `$gte`: `tuple['Operand', 'Operand']` --- @@ -198,7 +198,7 @@ simplifications: **Pydantic Fields:** -- `$in`: `typing.Tuple[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation], list['Operand']]` +- `$in`: `tuple['Operand', list['Operand']]` --- @@ -226,7 +226,7 @@ simplifications: **Pydantic Fields:** -- `$not`: `typing.Tuple[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation]]` +- `$not`: `tuple['Operand']` --- @@ -240,11 +240,11 @@ simplifications: **Pydantic Fields:** -- `$or`: `typing.List[typing.Union[LiteralOperation, GetFieldOperator, ConvertOperation, AndOperation, OrOperation, NotOperation, EqOperation, GtOperation, GteOperation, InOperation, ContainsOperation]]` +- `$or`: `list['Operand']` --- - + ## class `Query` diff --git a/docs/docs/reference/python-sdk/weave/trace_server/weave.trace_server.trace_server_interface.md b/docs/docs/reference/python-sdk/weave/trace_server/weave.trace_server.trace_server_interface.md index 7175da620695..9bb62beaa82e 100644 --- a/docs/docs/reference/python-sdk/weave/trace_server/weave.trace_server.trace_server_interface.md +++ b/docs/docs/reference/python-sdk/weave/trace_server/weave.trace_server.trace_server_interface.md @@ -16,6 +16,8 @@ sidebar_label: trace_server_interface ## Classes +- [`trace_server_interface.ActionsExecuteBatchReq`](#class-actionsexecutebatchreq) +- [`trace_server_interface.ActionsExecuteBatchRes`](#class-actionsexecutebatchres) - [`trace_server_interface.CallEndReq`](#class-callendreq) - [`trace_server_interface.CallEndRes`](#class-callendres) - [`trace_server_interface.CallReadReq`](#class-callreadreq) @@ -32,6 +34,9 @@ sidebar_label: trace_server_interface - [`trace_server_interface.CallsQueryRes`](#class-callsqueryres) - [`trace_server_interface.CallsQueryStatsReq`](#class-callsquerystatsreq) - [`trace_server_interface.CallsQueryStatsRes`](#class-callsquerystatsres) +- [`trace_server_interface.CompletionsCreateReq`](#class-completionscreatereq) +- [`trace_server_interface.CompletionsCreateRequestInputs`](#class-completionscreaterequestinputs) +- [`trace_server_interface.CompletionsCreateRes`](#class-completionscreateres) - [`trace_server_interface.CostCreateInput`](#class-costcreateinput) - [`trace_server_interface.CostCreateReq`](#class-costcreatereq) - [`trace_server_interface.CostCreateRes`](#class-costcreateres) @@ -47,12 +52,12 @@ sidebar_label: trace_server_interface - [`trace_server_interface.FeedbackCreateReq`](#class-feedbackcreatereq) - [`trace_server_interface.FeedbackCreateRes`](#class-feedbackcreateres) - [`trace_server_interface.FeedbackDict`](#class-feedbackdict) -- [`trace_server_interface.FeedbackPayloadNoteReq`](#class-feedbackpayloadnotereq) -- [`trace_server_interface.FeedbackPayloadReactionReq`](#class-feedbackpayloadreactionreq) - [`trace_server_interface.FeedbackPurgeReq`](#class-feedbackpurgereq) - [`trace_server_interface.FeedbackPurgeRes`](#class-feedbackpurgeres) - [`trace_server_interface.FeedbackQueryReq`](#class-feedbackqueryreq) - [`trace_server_interface.FeedbackQueryRes`](#class-feedbackqueryres) +- [`trace_server_interface.FeedbackReplaceReq`](#class-feedbackreplacereq) +- [`trace_server_interface.FeedbackReplaceRes`](#class-feedbackreplaceres) - [`trace_server_interface.FileContentReadReq`](#class-filecontentreadreq) - [`trace_server_interface.FileContentReadRes`](#class-filecontentreadres) - [`trace_server_interface.FileCreateReq`](#class-filecreatereq) @@ -108,7 +113,35 @@ sidebar_label: trace_server_interface --- - + + +## class `ActionsExecuteBatchReq` + + + + + +**Pydantic Fields:** + +- `project_id`: `` +- `action_ref`: `` +- `call_ids`: `list[str]` +- `wb_user_id`: `typing.Optional[str]` + +--- + + + +## class `ActionsExecuteBatchRes` + + + + + + +--- + + ## class `CallEndReq` @@ -122,7 +155,7 @@ sidebar_label: trace_server_interface --- - + ## class `CallEndRes` @@ -133,7 +166,7 @@ sidebar_label: trace_server_interface --- - + ## class `CallReadReq` @@ -149,7 +182,7 @@ sidebar_label: trace_server_interface --- - + ## class `CallReadRes` @@ -163,7 +196,7 @@ sidebar_label: trace_server_interface --- - + ## class `CallSchema` @@ -180,8 +213,8 @@ sidebar_label: trace_server_interface - `trace_id`: `` - `parent_id`: `typing.Optional[str]` - `started_at`: `` -- `attributes`: `typing.Dict[str, typing.Any]` -- `inputs`: `typing.Dict[str, typing.Any]` +- `attributes`: `dict[str, typing.Any]` +- `inputs`: `dict[str, typing.Any]` - `ended_at`: `typing.Optional[datetime.datetime]` - `exception`: `typing.Optional[str]` - `output`: `typing.Optional[typing.Any]` @@ -191,12 +224,12 @@ sidebar_label: trace_server_interface - `deleted_at`: `typing.Optional[datetime.datetime]` --- - + ### method `serialize_typed_dicts` ```python -serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] +serialize_typed_dicts(v: dict[str, Any]) → dict[str, Any] ``` @@ -206,7 +239,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallStartReq` @@ -220,7 +253,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallStartRes` @@ -235,7 +268,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallUpdateReq` @@ -252,7 +285,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallUpdateRes` @@ -263,7 +296,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallsDeleteReq` @@ -274,12 +307,12 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** - `project_id`: `` -- `call_ids`: `typing.List[str]` +- `call_ids`: `list[str]` - `wb_user_id`: `typing.Optional[str]` --- - + ## class `CallsDeleteRes` @@ -290,7 +323,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallsFilter` @@ -300,19 +333,19 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `op_names`: `typing.Optional[typing.List[str]]` -- `input_refs`: `typing.Optional[typing.List[str]]` -- `output_refs`: `typing.Optional[typing.List[str]]` -- `parent_ids`: `typing.Optional[typing.List[str]]` -- `trace_ids`: `typing.Optional[typing.List[str]]` -- `call_ids`: `typing.Optional[typing.List[str]]` +- `op_names`: `typing.Optional[list[str]]` +- `input_refs`: `typing.Optional[list[str]]` +- `output_refs`: `typing.Optional[list[str]]` +- `parent_ids`: `typing.Optional[list[str]]` +- `trace_ids`: `typing.Optional[list[str]]` +- `call_ids`: `typing.Optional[list[str]]` - `trace_roots_only`: `typing.Optional[bool]` -- `wb_user_ids`: `typing.Optional[typing.List[str]]` -- `wb_run_ids`: `typing.Optional[typing.List[str]]` +- `wb_user_ids`: `typing.Optional[list[str]]` +- `wb_run_ids`: `typing.Optional[list[str]]` --- - + ## class `CallsQueryReq` @@ -326,16 +359,16 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `filter`: `typing.Optional[CallsFilter]` - `limit`: `typing.Optional[int]` - `offset`: `typing.Optional[int]` -- `sort_by`: `typing.Optional[typing.List[SortBy]]` +- `sort_by`: `typing.Optional[list[SortBy]]` - `query`: `typing.Optional[weave.trace_server.interface.query.Query]` - `include_costs`: `typing.Optional[bool]` - `include_feedback`: `typing.Optional[bool]` -- `columns`: `typing.Optional[typing.List[str]]` -- `expand_columns`: `typing.Optional[typing.List[str]]` +- `columns`: `typing.Optional[list[str]]` +- `expand_columns`: `typing.Optional[list[str]]` --- - + ## class `CallsQueryRes` @@ -345,11 +378,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `calls`: `typing.List[CallSchema]` +- `calls`: `list[CallSchema]` --- - + ## class `CallsQueryStatsReq` @@ -365,7 +398,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CallsQueryStatsRes` @@ -379,7 +412,77 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + + +## class `CompletionsCreateReq` + + + + + +**Pydantic Fields:** + +- `project_id`: `` +- `inputs`: `` +- `wb_user_id`: `typing.Optional[str]` +- `track_llm_call`: `typing.Optional[bool]` + +--- + + + +## class `CompletionsCreateRequestInputs` + + + + + +**Pydantic Fields:** + +- `model`: `` +- `messages`: `` +- `timeout`: `typing.Union[float, str, NoneType]` +- `temperature`: `typing.Optional[float]` +- `top_p`: `typing.Optional[float]` +- `n`: `typing.Optional[int]` +- `stop`: `typing.Union[str, list, NoneType]` +- `max_completion_tokens`: `typing.Optional[int]` +- `max_tokens`: `typing.Optional[int]` +- `modalities`: `typing.Optional[list]` +- `presence_penalty`: `typing.Optional[float]` +- `frequency_penalty`: `typing.Optional[float]` +- `logit_bias`: `typing.Optional[dict]` +- `user`: `typing.Optional[str]` +- `response_format`: `typing.Union[dict, type[pydantic.main.BaseModel], NoneType]` +- `seed`: `typing.Optional[int]` +- `tools`: `typing.Optional[list]` +- `tool_choice`: `typing.Union[str, dict, NoneType]` +- `logprobs`: `typing.Optional[bool]` +- `top_logprobs`: `typing.Optional[int]` +- `parallel_tool_calls`: `typing.Optional[bool]` +- `extra_headers`: `typing.Optional[dict]` +- `functions`: `typing.Optional[list]` +- `function_call`: `typing.Optional[str]` +- `api_version`: `typing.Optional[str]` + +--- + + + +## class `CompletionsCreateRes` + + + + + +**Pydantic Fields:** + +- `response`: `dict[str, typing.Any]` +- `weave_call_id`: `typing.Optional[str]` + +--- + + ## class `CostCreateInput` @@ -398,7 +501,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CostCreateReq` @@ -409,12 +512,12 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** - `project_id`: `` -- `costs`: `typing.Dict[str, CostCreateInput]` +- `costs`: `dict[str, CostCreateInput]` - `wb_user_id`: `typing.Optional[str]` --- - + ## class `CostCreateRes` @@ -428,7 +531,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CostPurgeReq` @@ -443,7 +546,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CostPurgeRes` @@ -454,7 +557,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CostQueryOutput` @@ -475,7 +578,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `CostQueryReq` @@ -488,13 +591,13 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `project_id`: `` - `fields`: `typing.Optional[list[str]]` - `query`: `typing.Optional[weave.trace_server.interface.query.Query]` -- `sort_by`: `typing.Optional[typing.List[SortBy]]` +- `sort_by`: `typing.Optional[list[SortBy]]` - `limit`: `typing.Optional[int]` - `offset`: `typing.Optional[int]` --- - + ## class `CostQueryRes` @@ -508,7 +611,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `EndedCallSchemaForInsert` @@ -526,12 +629,12 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `summary`: `` --- - + ### method `serialize_typed_dicts` ```python -serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] +serialize_typed_dicts(v: dict[str, Any]) → dict[str, Any] ``` @@ -541,7 +644,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `EnsureProjectExistsRes` @@ -555,7 +658,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ExtraKeysTypedDict` @@ -568,7 +671,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `Feedback` @@ -582,14 +685,18 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `weave_ref`: `` - `creator`: `typing.Optional[str]` - `feedback_type`: `` -- `payload`: `typing.Dict[str, typing.Any]` +- `payload`: `dict[str, typing.Any]` +- `annotation_ref`: `typing.Optional[str]` +- `runnable_ref`: `typing.Optional[str]` +- `call_ref`: `typing.Optional[str]` +- `trigger_ref`: `typing.Optional[str]` - `wb_user_id`: `typing.Optional[str]` - `id`: `` - `created_at`: `` --- - + ## class `FeedbackCreateReq` @@ -603,12 +710,16 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `weave_ref`: `` - `creator`: `typing.Optional[str]` - `feedback_type`: `` -- `payload`: `typing.Dict[str, typing.Any]` +- `payload`: `dict[str, typing.Any]` +- `annotation_ref`: `typing.Optional[str]` +- `runnable_ref`: `typing.Optional[str]` +- `call_ref`: `typing.Optional[str]` +- `trigger_ref`: `typing.Optional[str]` - `wb_user_id`: `typing.Optional[str]` --- - + ## class `FeedbackCreateRes` @@ -621,11 +732,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `id`: `` - `created_at`: `` - `wb_user_id`: `` -- `payload`: `typing.Dict[str, typing.Any]` +- `payload`: `dict[str, typing.Any]` --- - + ## class `FeedbackDict` @@ -638,9 +749,9 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + -## class `FeedbackPayloadNoteReq` +## class `FeedbackPurgeReq` @@ -648,27 +759,25 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `note`: `` +- `project_id`: `` +- `query`: `` --- - + -## class `FeedbackPayloadReactionReq` +## class `FeedbackPurgeRes` -**Pydantic Fields:** - -- `emoji`: `` --- - + -## class `FeedbackPurgeReq` +## class `FeedbackQueryReq` @@ -677,24 +786,31 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** - `project_id`: `` -- `query`: `` +- `fields`: `typing.Optional[list[str]]` +- `query`: `typing.Optional[weave.trace_server.interface.query.Query]` +- `sort_by`: `typing.Optional[list[SortBy]]` +- `limit`: `typing.Optional[int]` +- `offset`: `typing.Optional[int]` --- - + -## class `FeedbackPurgeRes` +## class `FeedbackQueryRes` +**Pydantic Fields:** + +- `result`: `list[dict[str, typing.Any]]` --- - + -## class `FeedbackQueryReq` +## class `FeedbackReplaceReq` @@ -703,17 +819,22 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** - `project_id`: `` -- `fields`: `typing.Optional[list[str]]` -- `query`: `typing.Optional[weave.trace_server.interface.query.Query]` -- `sort_by`: `typing.Optional[typing.List[SortBy]]` -- `limit`: `typing.Optional[int]` -- `offset`: `typing.Optional[int]` +- `weave_ref`: `` +- `creator`: `typing.Optional[str]` +- `feedback_type`: `` +- `payload`: `dict[str, typing.Any]` +- `annotation_ref`: `typing.Optional[str]` +- `runnable_ref`: `typing.Optional[str]` +- `call_ref`: `typing.Optional[str]` +- `trigger_ref`: `typing.Optional[str]` +- `wb_user_id`: `typing.Optional[str]` +- `feedback_id`: `` --- - + -## class `FeedbackQueryRes` +## class `FeedbackReplaceRes` @@ -721,11 +842,14 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `result`: `list[dict[str, typing.Any]]` +- `id`: `` +- `created_at`: `` +- `wb_user_id`: `` +- `payload`: `dict[str, typing.Any]` --- - + ## class `FileContentReadReq` @@ -740,7 +864,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `FileContentReadRes` @@ -754,7 +878,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `FileCreateReq` @@ -770,7 +894,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `FileCreateRes` @@ -784,7 +908,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `LLMCostSchema` @@ -797,7 +921,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `LLMUsageSchema` @@ -810,7 +934,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ObjCreateReq` @@ -824,7 +948,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ObjCreateRes` @@ -838,7 +962,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ObjQueryReq` @@ -852,12 +976,12 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `filter`: `typing.Optional[ObjectVersionFilter]` - `limit`: `typing.Optional[int]` - `offset`: `typing.Optional[int]` -- `sort_by`: `typing.Optional[typing.List[SortBy]]` +- `sort_by`: `typing.Optional[list[SortBy]]` - `metadata_only`: `typing.Optional[bool]` --- - + ## class `ObjQueryRes` @@ -867,11 +991,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `objs`: `typing.List[ObjSchema]` +- `objs`: `list[ObjSchema]` --- - + ## class `ObjReadReq` @@ -887,7 +1011,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ObjReadRes` @@ -901,7 +1025,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ObjSchema` @@ -924,7 +1048,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `ObjSchemaForInsert` @@ -937,10 +1061,26 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `project_id`: `` - `object_id`: `` - `val`: `typing.Any` +- `builtin_object_class`: `typing.Optional[str]` +- `set_base_object_class`: `typing.Optional[str]` +--- + + + +### method `model_post_init` + +```python +model_post_init(_ObjSchemaForInsert__context: Any) → None +``` + + + + + --- - + ## class `ObjectVersionFilter` @@ -950,14 +1090,14 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `base_object_classes`: `typing.Optional[typing.List[str]]` -- `object_ids`: `typing.Optional[typing.List[str]]` +- `base_object_classes`: `typing.Optional[list[str]]` +- `object_ids`: `typing.Optional[list[str]]` - `is_op`: `typing.Optional[bool]` - `latest_only`: `typing.Optional[bool]` --- - + ## class `OpCreateReq` @@ -971,7 +1111,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `OpCreateRes` @@ -985,7 +1125,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `OpQueryReq` @@ -1000,7 +1140,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `OpQueryRes` @@ -1010,11 +1150,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `op_objs`: `typing.List[ObjSchema]` +- `op_objs`: `list[ObjSchema]` --- - + ## class `OpReadReq` @@ -1030,7 +1170,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `OpReadRes` @@ -1044,7 +1184,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `OpVersionFilter` @@ -1054,12 +1194,12 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `op_names`: `typing.Optional[typing.List[str]]` +- `op_names`: `typing.Optional[list[str]]` - `latest_only`: `typing.Optional[bool]` --- - + ## class `RefsReadBatchReq` @@ -1069,11 +1209,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `refs`: `typing.List[str]` +- `refs`: `list[str]` --- - + ## class `RefsReadBatchRes` @@ -1083,11 +1223,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `vals`: `typing.List[typing.Any]` +- `vals`: `list[typing.Any]` --- - + ## class `SortBy` @@ -1102,7 +1242,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `StartedCallSchemaForInsert` @@ -1119,14 +1259,14 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `trace_id`: `typing.Optional[str]` - `parent_id`: `typing.Optional[str]` - `started_at`: `` -- `attributes`: `typing.Dict[str, typing.Any]` -- `inputs`: `typing.Dict[str, typing.Any]` +- `attributes`: `dict[str, typing.Any]` +- `inputs`: `dict[str, typing.Any]` - `wb_user_id`: `typing.Optional[str]` - `wb_run_id`: `typing.Optional[str]` --- - + ## class `SummaryInsertMap` @@ -1139,7 +1279,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `SummaryMap` @@ -1152,7 +1292,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableAppendSpec` @@ -1166,7 +1306,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableAppendSpecPayload` @@ -1180,7 +1320,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableCreateReq` @@ -1194,7 +1334,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableCreateRes` @@ -1209,7 +1349,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableInsertSpec` @@ -1223,7 +1363,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableInsertSpecPayload` @@ -1238,7 +1378,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TablePopSpec` @@ -1252,7 +1392,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TablePopSpecPayload` @@ -1266,7 +1406,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableQueryReq` @@ -1281,11 +1421,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] - `filter`: `typing.Optional[TableRowFilter]` - `limit`: `typing.Optional[int]` - `offset`: `typing.Optional[int]` -- `sort_by`: `typing.Optional[typing.List[SortBy]]` +- `sort_by`: `typing.Optional[list[SortBy]]` --- - + ## class `TableQueryRes` @@ -1295,11 +1435,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `rows`: `typing.List[TableRowSchema]` +- `rows`: `list[TableRowSchema]` --- - + ## class `TableQueryStatsReq` @@ -1314,7 +1454,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableQueryStatsRes` @@ -1328,7 +1468,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableRowFilter` @@ -1338,11 +1478,11 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] **Pydantic Fields:** -- `row_digests`: `typing.Optional[typing.List[str]]` +- `row_digests`: `typing.Optional[list[str]]` --- - + ## class `TableRowSchema` @@ -1357,7 +1497,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableSchemaForInsert` @@ -1372,7 +1512,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableUpdateReq` @@ -1388,7 +1528,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TableUpdateRes` @@ -1403,7 +1543,7 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + ## class `TraceServerInterface` @@ -1415,7 +1555,21 @@ serialize_typed_dicts(v: Dict[str, Any]) → Dict[str, Any] --- - + + +### method `actions_execute_batch` + +```python +actions_execute_batch(req: ActionsExecuteBatchReq) → ActionsExecuteBatchRes +``` + + + + + +--- + + ### method `call_end` @@ -1429,7 +1583,7 @@ call_end(req: CallEndReq) → CallEndRes --- - + ### method `call_read` @@ -1443,7 +1597,7 @@ call_read(req: CallReadReq) → CallReadRes --- - + ### method `call_start` @@ -1457,7 +1611,7 @@ call_start(req: CallStartReq) → CallStartRes --- - + ### method `call_update` @@ -1471,7 +1625,7 @@ call_update(req: CallUpdateReq) → CallUpdateRes --- - + ### method `calls_delete` @@ -1485,7 +1639,7 @@ calls_delete(req: CallsDeleteReq) → CallsDeleteRes --- - + ### method `calls_query` @@ -1499,7 +1653,7 @@ calls_query(req: CallsQueryReq) → CallsQueryRes --- - + ### method `calls_query_stats` @@ -1513,7 +1667,7 @@ calls_query_stats(req: CallsQueryStatsReq) → CallsQueryStatsRes --- - + ### method `calls_query_stream` @@ -1527,7 +1681,21 @@ calls_query_stream(req: CallsQueryReq) → Iterator[CallSchema] --- - + + +### method `completions_create` + +```python +completions_create(req: CompletionsCreateReq) → CompletionsCreateRes +``` + + + + + +--- + + ### method `cost_create` @@ -1541,7 +1709,7 @@ cost_create(req: CostCreateReq) → CostCreateRes --- - + ### method `cost_purge` @@ -1555,7 +1723,7 @@ cost_purge(req: CostPurgeReq) → CostPurgeRes --- - + ### method `cost_query` @@ -1569,7 +1737,7 @@ cost_query(req: CostQueryReq) → CostQueryRes --- - + ### method `ensure_project_exists` @@ -1583,7 +1751,7 @@ ensure_project_exists(entity: str, project: str) → EnsureProjectExistsRes --- - + ### method `feedback_create` @@ -1597,7 +1765,7 @@ feedback_create(req: FeedbackCreateReq) → FeedbackCreateRes --- - + ### method `feedback_purge` @@ -1611,7 +1779,7 @@ feedback_purge(req: FeedbackPurgeReq) → FeedbackPurgeRes --- - + ### method `feedback_query` @@ -1625,7 +1793,21 @@ feedback_query(req: FeedbackQueryReq) → FeedbackQueryRes --- - + + +### method `feedback_replace` + +```python +feedback_replace(req: FeedbackReplaceReq) → FeedbackReplaceRes +``` + + + + + +--- + + ### method `file_content_read` @@ -1639,7 +1821,7 @@ file_content_read(req: FileContentReadReq) → FileContentReadRes --- - + ### method `file_create` @@ -1653,7 +1835,7 @@ file_create(req: FileCreateReq) → FileCreateRes --- - + ### method `obj_create` @@ -1667,7 +1849,7 @@ obj_create(req: ObjCreateReq) → ObjCreateRes --- - + ### method `obj_read` @@ -1681,7 +1863,7 @@ obj_read(req: ObjReadReq) → ObjReadRes --- - + ### method `objs_query` @@ -1695,7 +1877,7 @@ objs_query(req: ObjQueryReq) → ObjQueryRes --- - + ### method `op_create` @@ -1709,7 +1891,7 @@ op_create(req: OpCreateReq) → OpCreateRes --- - + ### method `op_read` @@ -1723,7 +1905,7 @@ op_read(req: OpReadReq) → OpReadRes --- - + ### method `ops_query` @@ -1737,7 +1919,7 @@ ops_query(req: OpQueryReq) → OpQueryRes --- - + ### method `refs_read_batch` @@ -1751,7 +1933,7 @@ refs_read_batch(req: RefsReadBatchReq) → RefsReadBatchRes --- - + ### method `table_create` @@ -1765,7 +1947,7 @@ table_create(req: TableCreateReq) → TableCreateRes --- - + ### method `table_query` @@ -1779,7 +1961,7 @@ table_query(req: TableQueryReq) → TableQueryRes --- - + ### method `table_query_stats` @@ -1793,7 +1975,21 @@ table_query_stats(req: TableQueryStatsReq) → TableQueryStatsRes --- - + + +### method `table_query_stream` + +```python +table_query_stream(req: TableQueryReq) → Iterator[TableRowSchema] +``` + + + + + +--- + + ### method `table_update` @@ -1808,7 +2004,7 @@ table_update(req: TableUpdateReq) → TableUpdateRes --- - + ## class `TraceStatus` An enumeration. @@ -1819,7 +2015,7 @@ An enumeration. --- - + ## class `WeaveSummarySchema` diff --git a/docs/docs/reference/python-sdk/weave/trace_server_bindings/weave.trace_server_bindings.remote_http_trace_server.md b/docs/docs/reference/python-sdk/weave/trace_server_bindings/weave.trace_server_bindings.remote_http_trace_server.md index 1484efbb7819..7a6a40f7beec 100644 --- a/docs/docs/reference/python-sdk/weave/trace_server_bindings/weave.trace_server_bindings.remote_http_trace_server.md +++ b/docs/docs/reference/python-sdk/weave/trace_server_bindings/weave.trace_server_bindings.remote_http_trace_server.md @@ -28,14 +28,14 @@ sidebar_label: remote_http_trace_server --- - + ## class `RemoteHTTPTraceServer` - + ### method `__init__` @@ -56,7 +56,23 @@ __init__( --- - + + +### method `actions_execute_batch` + +```python +actions_execute_batch( + req: Union[ActionsExecuteBatchReq, dict[str, Any]] +) → ActionsExecuteBatchRes +``` + + + + + +--- + + ### method `call_end` @@ -70,7 +86,7 @@ call_end(req: Union[CallEndReq, dict[str, Any]]) → CallEndRes --- - + ### method `call_read` @@ -84,7 +100,7 @@ call_read(req: Union[CallReadReq, dict[str, Any]]) → CallReadRes --- - + ### method `call_start` @@ -98,7 +114,7 @@ call_start(req: Union[CallStartReq, dict[str, Any]]) → CallStartRes --- - + ### method `call_update` @@ -112,7 +128,7 @@ call_update(req: Union[CallUpdateReq, dict[str, Any]]) → CallUpdateRes --- - + ### method `calls_delete` @@ -126,7 +142,7 @@ calls_delete(req: Union[CallsDeleteReq, dict[str, Any]]) → CallsDeleteRes --- - + ### method `calls_query` @@ -140,7 +156,7 @@ calls_query(req: Union[CallsQueryReq, dict[str, Any]]) → CallsQueryRes --- - + ### method `calls_query_stats` @@ -156,7 +172,7 @@ calls_query_stats( --- - + ### method `calls_query_stream` @@ -170,7 +186,21 @@ calls_query_stream(req: CallsQueryReq) → Iterator[CallSchema] --- - + + +### method `completions_create` + +```python +completions_create(req: CompletionsCreateReq) → CompletionsCreateRes +``` + + + + + +--- + + ### method `cost_create` @@ -184,7 +214,7 @@ cost_create(req: Union[CostCreateReq, dict[str, Any]]) → CostCreateRes --- - + ### method `cost_purge` @@ -198,7 +228,7 @@ cost_purge(req: Union[CostPurgeReq, dict[str, Any]]) → CostPurgeRes --- - + ### method `cost_query` @@ -212,7 +242,7 @@ cost_query(req: Union[CostQueryReq, dict[str, Any]]) → CostQueryRes --- - + ### method `ensure_project_exists` @@ -226,7 +256,7 @@ ensure_project_exists(entity: str, project: str) → EnsureProjectExistsRes --- - + ### method `feedback_create` @@ -242,7 +272,7 @@ feedback_create( --- - + ### method `feedback_purge` @@ -256,7 +286,7 @@ feedback_purge(req: Union[FeedbackPurgeReq, dict[str, Any]]) → FeedbackPurgeRe --- - + ### method `feedback_query` @@ -270,7 +300,23 @@ feedback_query(req: Union[FeedbackQueryReq, dict[str, Any]]) → FeedbackQueryRe --- - + + +### method `feedback_replace` + +```python +feedback_replace( + req: Union[FeedbackReplaceReq, dict[str, Any]] +) → FeedbackReplaceRes +``` + + + + + +--- + + ### method `file_content_read` @@ -284,7 +330,7 @@ file_content_read(req: FileContentReadReq) → FileContentReadRes --- - + ### method `file_create` @@ -298,7 +344,7 @@ file_create(req: FileCreateReq) → FileCreateRes --- - + ### classmethod `from_env` @@ -312,7 +358,7 @@ from_env(should_batch: bool = False) → RemoteHTTPTraceServer --- - + ### method `obj_create` @@ -326,7 +372,7 @@ obj_create(req: Union[ObjCreateReq, dict[str, Any]]) → ObjCreateRes --- - + ### method `obj_read` @@ -340,7 +386,7 @@ obj_read(req: Union[ObjReadReq, dict[str, Any]]) → ObjReadRes --- - + ### method `objs_query` @@ -354,7 +400,7 @@ objs_query(req: Union[ObjQueryReq, dict[str, Any]]) → ObjQueryRes --- - + ### method `op_create` @@ -368,7 +414,7 @@ op_create(req: Union[OpCreateReq, dict[str, Any]]) → OpCreateRes --- - + ### method `op_read` @@ -382,7 +428,7 @@ op_read(req: Union[OpReadReq, dict[str, Any]]) → OpReadRes --- - + ### method `ops_query` @@ -396,7 +442,7 @@ ops_query(req: Union[OpQueryReq, dict[str, Any]]) → OpQueryRes --- - + ### method `refs_read_batch` @@ -410,7 +456,7 @@ refs_read_batch(req: Union[RefsReadBatchReq, dict[str, Any]]) → RefsReadBatchR --- - + ### method `server_info` @@ -424,12 +470,12 @@ server_info() → ServerInfoRes --- - + ### method `set_auth` ```python -set_auth(auth: Tuple[str, str]) → None +set_auth(auth: tuple[str, str]) → None ``` @@ -438,7 +484,7 @@ set_auth(auth: Tuple[str, str]) → None --- - + ### method `table_create` @@ -450,7 +496,7 @@ Similar to `calls/batch_upsert`, we can dynamically adjust the payload size due --- - + ### method `table_query` @@ -464,7 +510,7 @@ table_query(req: Union[TableQueryReq, dict[str, Any]]) → TableQueryRes --- - + ### method `table_query_stats` @@ -480,7 +526,21 @@ table_query_stats( --- - + + +### method `table_query_stream` + +```python +table_query_stream(req: TableQueryReq) → Iterator[TableRowSchema] +``` + + + + + +--- + + ### method `table_update` @@ -493,7 +553,7 @@ Similar to `calls/batch_upsert`, we can dynamically adjust the payload size due --- - + ## class `ServerInfoRes` @@ -507,7 +567,7 @@ Similar to `calls/batch_upsert`, we can dynamically adjust the payload size due --- - + ## class `StartBatchItem` @@ -522,7 +582,7 @@ Similar to `calls/batch_upsert`, we can dynamically adjust the payload size due --- - + ## class `EndBatchItem` @@ -537,7 +597,7 @@ Similar to `calls/batch_upsert`, we can dynamically adjust the payload size due --- - + ## class `Batch` diff --git a/docs/docs/reference/service-api/call-end-call-end-post.api.mdx b/docs/docs/reference/service-api/call-end-call-end-post.api.mdx index e8c428523c9d..5bb068d26a98 100644 --- a/docs/docs/reference/service-api/call-end-call-end-post.api.mdx +++ b/docs/docs/reference/service-api/call-end-call-end-post.api.mdx @@ -5,7 +5,7 @@ description: "Call End" sidebar_label: "Call End" hide_title: true hide_table_of_contents: true -api: eJylVt9v2jAQ/leQnylQ1mkqb3TrtEqrilq6hyGETGLAWxJn9qUtQvnfd3cOwaHApvYF4vPd57vvftgbAXLpxGAiPsskcWLaFiZXVoI22U0sBiJC8Uxl8az+yI0D0RZW/SmUgysTr8VgIyKTgcqAPmWeJzpiiO4vZzKSuWilUklfuaUDQCtHKwR8LcTVLxXBTPMerHOFjjiwOlviwaAhIcHIa7XQzbItTut6HTxMxTMJhzQXxqa0I2IJ6gx0qgLzazJsDYFBXiKVU2wcara+WyB7+3hlu5ZkRZKIchqA1QCIZgrIC+9QtX3nJe2tvZlTlKTrijSVdv2ar8LJpWJ34lgTskxG+4Q2V2kOMzC/VeYORqExl0tlT4YxYpTW2KNQBjL0+72oNwQSgEZ4SKIopvcif66RAnhP/3uhfcoC2Ko33o54vwVAMDAgk/e6OCaQ2sNyv7p2it+/3z5SOT34hj2hyWqMdbjswBbquPWDL+abzKH+rcwPOkU8aqtimk/BUOBuD9p51xrTvZ6loeYj+WqsP+ufB9FICusGIRALM4KWZahKAbLA5QahOTn9Xo/+YuUiq6sxgbFGkXJuUSSt+0pZtN84MU8kpPaUMkyuXvT7r535IRMd81Gta2uNfbMniAtSJ/SlQaUHBk1iosbuf0zLupanu0CltXIdlqjxDlJxpm55au7fIu1cpVuw46pMRmtMu/+qEIrLH13pBeWyo9ezezyML56+U834bTwevQL0uXUqKqyGNdNJelfSaaR7MqW2b6acCqOFlUFOK1gZuterWzyXsMJVl273rmIVbJInZR0DFxbzK1YAuRt0u2BlpDrPMovnHal5vmzd4CbzWQ+cqdkmBIJmLVzPeZ/ioCK73z0lrl8kjenm06B+DOyy1lztLnZswP7F2XnvrHc5Pr8c9D8OPlx0Pnz89FM0bu6daX0BNy/Y7ZXqydbZwoR39FfpYDi6QXNiyiP2OuedHqWbmE0ld04mU9Xkv5GYmh5QL9DNE6m5ppn0TZWaCb/AfIxUZyvKG0o3G+RQPdqkLEmMBJLjE/x8klbLOfk5oSZaKRljQ1E2f6s1X4Tc7Wdc6qSeFFye+51PXekthhERd1J3GpTW6O5hjMrz6mWYmphsrHymNsLfgSDemQMuGJbhtJDZsmDWhcfkq6UgEmqifN20q/9gkuBoCfxjcnQ0RONHLGdKA9LUrsIpKlE4d47aj6Rzz8bGgX1eiWhIleVfQ23aQQ== +api: eJylVttO4zAQ/ZXKz6W3RWLVN2BBiwSigrIPW1WVm5jWkMRZe7JQVfn3nRmnqVNKWcFLG49njmfOXOy1ALlwYjgR5zJJnJi2hcmVlaBNdhWLoYhQPFNZPKs/cuNAtIVVfwrl4MzEKzFci8hkoDKgT5nniY4YovvkTEYyFy1VKukrt3QAaOVohYBvhbh6UhHMNO/BKlfoiAOrswUeDBoSEoy8VgvdLNvisK7XwcNUPJOwT/PR2JR2RCxBHYFOVWB+QYatU2CQ10jlFBuHmq1uH5G9XbyyXUuyIklEOQ3AagBEMwXkhXeo2r71kvbG3swpStJ1RZpKu3rLV+HkQrE7cawJWSajXUKbqzSHGZhnlbm9UWjM5ULZg2GMGKU19iiUgQz9/irqFYEEoBEekiiK6avI5zVSAO/p/yq0T1kAW/XG5xHvNgAIBgZk8lUXxwRSe1juVtdW8fr65oHK6d437AFNVmOs/WUHtlDvW9/7Yr7KHOrfyHyvU8Sjtiqm+RQMBe72oJ23rTHd6Vkaaj6SS2P9WR8eRCMprBuEQCzMCFqWoSoFyAKXG4Tm5Ax6PfqLlYusrsYExhpFyrnHImndVcqi/cmJeSAhtaeUYXL1eDB468wvmeiYj2pdWGvspz1BXJA6oS8NKt0zaBITNXb/Y1rWtTzdBiqtlauwRI13kIozdYtDc/8Gaecq3YC9r8pktMa0+1GFUFz+6EovKJctvZ7d98P44ek71Iw/x+PRG0CfW6eiwmpYMZ2kdyadRronU2r7ZsqpMFpYGeS0gqWhe726xXMJS1x16XbvKlbBJvmrrGPgwmJ+xRIgd8NuF6yMVOdFZvG8IzXPl40b3GQ+64EzNduEQNCshes571McVGR326fExaukMd18GtSPgW3WmqvtxY4NODg+6g+O+ifj3vFw0Bv2v3dOTr79Fo2be2taX8DNC3ZzpXqydfZowjv6Ujo4HV2hOTHlEXudfqdH6SZmU8mdk8lUNflvJKamB9QrdPNEaq5pJn1dpWbCLzAfI9XZkvKG0vUaOVQPNilLEiOB5PgEP/9Kq+Wc/JxQEy2VjLGhKJvPasUXIXf7EZc6qScFl+du51NXeovTiIg7qDsNSmt0ez9G5Xn1MkxNTDZWvlAb4e9QEO/MARcMy3BayGxRMOvCY/LVUhAJNVG+btrVfzBJcLQE/jE5OjpF4wcsZ0oD0tSuwikqUTh33rUfSedejI0D+7wS0ZAqy381D9o7 sidebar_class_name: "post api-method" info_path: reference/service-api/fastapi custom_edit_url: null diff --git a/docs/docs/reference/service-api/call-start-batch-call-upsert-batch-post.api.mdx b/docs/docs/reference/service-api/call-start-batch-call-upsert-batch-post.api.mdx index 1aadb4e0ba14..b22f67be5408 100644 --- a/docs/docs/reference/service-api/call-start-batch-call-upsert-batch-post.api.mdx +++ b/docs/docs/reference/service-api/call-start-batch-call-upsert-batch-post.api.mdx @@ -5,7 +5,7 @@ description: "Call Start Batch" sidebar_label: "Call Start Batch" hide_title: true hide_table_of_contents: true -api: eJydVm1PGkEQ/itkPyMgahr5ptamJjUSof1QQsjc3Qpr72W7Lyoh9987M3vAHSJa/eDtzs3OPvPMM3OshIO5FYOJuII0tWLaFoWWBpwq8ptEDESM5pl1YNwsAhcvZmzw2sqNRRfWibYw8q+X1l0WyVIMViIucidzR0vQOlUxx+w+2iInm40XMgNaaUM3OiUt7TgkLZSTGVsgX949IMKVcEstEVIRPcp4faMyMiH4uCbwTrmUfCibSwo1Iui3RSJF2f5chOs8CeenZXsdAIyBpdg6s6Motw57bwi57dxxZSQ4yQHuEUFJQbaHnPGSDVYXuQ0U9Xs9eiTSxkZpYhVDjXwcS2sffNq6r5zx9k8WwYTHf5ZAJcSIgVjOcLmTJtcBke0tQ90R6Wa3A2zz+3e4phQOMU0RKMZpv/+azF+QqoSpal0bU5jPM5lIByptkNl0SIv4MNXWGZXP67QpRDKX5iBFP4oAEM+JzM4pcjPe1vUWZQNz6o/K5W1XJqM1prfv8U95hasrv1oxtvQGdt9O42ugb99la5fv4/HwVcBQWytjb5RbMp3kdwlWId2TaYlomiUngbRYpK3QzAheukVBM7AacBocTibRpQnYrU9AQVeZJ2ks3+QNFlwsnNN20O1yQ3SeIU+iDihBN69xjUg0QQY1dBv6KQKFZi/cR/yeEiPV3W/H7fULZDqVtfGJKDKaWVRDTCnUhnXK26BCIpI6tVbo5q7QsxyyhhISZXUKy1f2TdvXbBoMdsyOkQHIZAaIAidZ//TouHfUOx8fnw/6Z4OT087J2Zff6AcOT0TeMT2Yssq1d9X6OZp5JHwnMlqNzxtGUsGGCZknWx5o80EW0PUDeOVLLNda2hLoHaIOoK3PMjD8afTcb2ilvykn91Bw4StNfwPrLoY3GIFEFYL2OsedHrUKqTEDnjpVFfZotyHujaKcfHFdrJ/iucA6XVWynvCXHk82hI1iXZD48fVqhfqTP01almRG8VEyE1w+gVEQEfAJJbOQkOB0Ig3+kUuCF0bnEc8Nck899/ruGKVahRMXMZF50Hda68/h3WiMzlH1y6Oqt4Fnqjf+HwgWM50Onzey4eiFfO65EiLEpNYC7xY1xkLPtatnbSzjnK7hY3JUfIGHfyJ9VBekqV2l4ytTfYi/eX4I1j4XJqmd15WJJn5Z/gMKOksB +api: eJydVttO20AQ/ZVon0NuRaLKG1CqIhURkdCHRlE0sZdkqS/bvQBR5H/vzKwT2yEECg94dzw7e+bMmXE2wsHSiuFUXEKSWDFri1xLA07l2XUshiJC89w6MG6+ABet5mzw2sqdRefWibYw8q+X1l3k8VoMNyLKMyczR0vQOlERx+w+2jwjm41WMgVaaUM3OiUt7TgkLZSTKVsgW98+IMKNcGstEVK+eJTR9kZlZEzwcU3gnXIJ+VA2FxRqTNBv8liKov25CFdZHM7PivY2ABgDa1E5s6MoKoeDN4Tc9u64NBKc5AB3iKCgINUhZ7xkg9V5ZgNFg16PHrG0kVGaWMVQYx9F0toHn7TuSme8/ZNFMOHxnyVQMTFiIJJzXO6lyXVAZAfLUHdEutntCNv8/h2uKYVjTFMEinE6GLwm8xckKmaqWlfG5ObzTMbSgUoaZDYdkjw6TrV1RmXLOm0KkSylOUrRzzwAxHMitUuK3IxXud6gbGBJ/VG6vO3KZLQm9PY9/imvcHXpVytGRW9g9+00vgX6Dl22dfkxmYxeBQy1tTLyRrk100l+F2AV0j2dFYimWXISSItF2grNjOClW+U0A8sBp8HhZBJdmoDd+gQUdJV5ksbyTd5gwcXKOW2H3S43ROcZsnjRASXo5i2uMYkmyKCGbkc/RaDQ7IX7Bb+nxEh1d9W4vXqBVCeyNj4RRUozi2qIKYXasE55G1RIRFKn1grd3OV6nkHaUEKsrE5g/cq+a/uaTYPBjtkzMgAZzwFR4CQbnJ70Byf9s0nvdDjoDftfO2dnX36jHzg8sfCO6cGUVaa9K9fPi7lHwvcio9X4rGEkFeyYkFlc8UCbD7KArh/AK18iudVSRaB3iDqAtj5NwfCn0XO/oZX+ZpzcQ86FLzX9Haw7H11jBBJVCNrr9Ds9ahVSYwo8dcoqHNBuQ9w7RTn54rpYP8VzgXW6KWU95S89nmwIG8W6IvHj680G9SfvTVIUZEbxUTJTXD6BUbAg4FNKZiUhxulEGvwj1wQvjM4Tnhvknnju9f0xSrUKJ84jIvOo76zWn6Pb8QSdF+Uvj7LeBp6p3vh/KFjMdDp83siGoxeypedKiBCTWgu8W9UYCz3XLp+1sYxzuoaPyVHROR6+R/qoLkhTu0zHl6b6EH/z/Aisfc5NXDuvSxNN/KL4B+hfSvU= sidebar_class_name: "post api-method" info_path: reference/service-api/fastapi custom_edit_url: null diff --git a/docs/docs/reference/service-api/call-start-call-start-post.api.mdx b/docs/docs/reference/service-api/call-start-call-start-post.api.mdx index 2097de9254cd..1fd615f6b108 100644 --- a/docs/docs/reference/service-api/call-start-call-start-post.api.mdx +++ b/docs/docs/reference/service-api/call-start-call-start-post.api.mdx @@ -5,7 +5,7 @@ description: "Call Start" sidebar_label: "Call Start" hide_title: true hide_table_of_contents: true -api: eJylVm1v2kgQ/iuWPxMgNNWpfKPXVhfp7oICvZMuQmixF9je4t3ujkstxH+/mVnHXkNCTskX8I5nZmeeZ158SEFsfDp+SH8VWvt00UuNlU6AMsVtno7TDMVLD8LBMnq0xkPaS538XkoPH01epeNDmpkCZAH0KKzVKmM3g2/eFCTz2VbuBD1ZR5eAkp7l5PJcjKdvMoOlyukElZUYjgenig1eDQo0CaZBK8Fgj7006IqiultjTqdWx14jKUqt0+Oi9RPsjV0WYicvXXhnkz9JBbVz5a0WVWPymns/BR+NT3Aik8vX5zEn+xoNKxzS8QZnU3ZQe2OaZL4U8BQ8a+N29CbNBcgrUJhN62cWTJMJkCMBaLQqIdBcOzIrojGymbRaRGxhS7iofxs0UHe/WpZeujfk/fcq+YoeKHFkWfrMKUulTHyZpDCQeAlJrhyGoKt+MpPuB6rvldaJKMEgEoq6pUqssaVGRBLYKp+sldR5v47RlcXbQrwvC6aGquYEFGpMjC6nxo76qC3wDp0dShqsF2f80YiYcRN/Me62QITgxdtDc0e+2AkJ7+V3tD7G6uBKyQJvDbpnvkfDIf11WZiVWSa9X5c6ua+V8d5Xzp/LAyYUf9yWz2m2rfcCJsxE4/FpbDxhg35uRqPz9P8SWuWcXPLZOeNen3suQSjNKIDc+XMFbbLO2/9Rqwoj2UiH5driIJwTVYTV7yYESNju/OYSrH8g0WIThiOrPK/KYCRzevsSB5RXuLrWi2ho4Q3oPp/GpwDfU5c9qvw2n0/PHAZuvcxKp6BiOEnvo/AK4X5YUKd3KafSSLg2KGwJW0Pbud7DVsAWTwOaOQNfK3keSp6dlw45TrcA1o8HAy69/l4U+aovFI+Vx1C4vQPzUUAN4uSBXLMWnlf8nnKhQrtvPwc+/xQ7q+Xpem8Westd99Qs4FbU3bIR6U1LtrJo47XCeHHhOBndXF0Pr4Yf5tcfxqP343c3/Xfvf/knPdlL8c452Smt52iKN33AhmvDoNUl8EV4mExv0YAICXwO+9f9IS9ppHAnuEnrDDtUd6qg4QHkTxggKoobiNk91FXwwJ9sj2lTWW+pSFB+OCBd8qvTxyOJkStHpYePP4RTYkWxPlDPbqXIsX+pcP6VFUUUhssVdxap65K74XTQ0BAIFhOczxYu6i6iOp7ezeaovKo/JHcmJxsn9tS1+DtOuTbImmuTZTicRLEpaTaM0+CT0McFvI2gCiXaq/+jwYWTLIqPwVHZBI1p9RMVCFOvTqesRfGYe9Z+KrzfG5dH9rYW0Uw8Hv8DXCznyQ== +api: eJylVm1v4jgQ/itRPlOgXKWe+Mbe7uoq3V1RYe+kqxAyiQHvmdhrT5aNEP99Z8Zp4kBLT+0XiCcz45nnmZccUhAbn44f09+E1j5d9FJjpROgTHGXp+M0Q/HSg3CwjB6t8ZD2Uie/ldLDB5NX6fiQZqYAWQA9Cmu1ytjN4Ks3Bcl8tpU7QU/W0SWgpGc5uTwX4+mrzGCpcjpBZSWG48GpYoNXgwJNgmnQSjDYYy8NuqKo7teY06nVsddIilLr9Lho/QR7Y5eF2MlLF97b5C9SQe1ceatF1Zi85d6PwUfjE5zI5PLteczJvkbDCod0vMPZlB3U3pgmmS8FPAfP2rgdvUlzAfIKFGbT+pkF02QC5EgAGq1KCDTXjsyKaIxsJq0WEVvYEi7q3wUN1N2vlqWX7h15/7NKvqAHShxZlj5zylIpE18mKQwkXkKSK4ch6KqfzKT7jup7pXUiSjCIhKJuqRJrbKkRkQS2yidrJXXer2N0ZfG+EB/KgqmhqjkBhRoTo8upsaM+agu8Q2eHkgbrxRl/NCJm3MSfjbsrECF49fbQ3JEvdkLCB/kNrY+xOrhSssBbg+6Z79FwSH9dFmZllknv16VOHmplvPeN8+fygAnFH7flS5pt672CCTPReHweG0/YoJ+b0eg8/b+FVjknl3xyzri3555LEEozCiB3/lxBm6zz9n/UqsJINtJhubY4COdEFWH1hwkBErY7v7kE659ItNiE4cgqL6syGMmc3r7GAeUVrq71IhpaeAO6L6fxMcD33GVPKr/P59Mzh4FbL7PSKagYTtL7ILxCuB8X1Oldyqk0Eq4NClvC1tB2rvewFbDF04BmzsDXSp6HkmfnpUOO0y2A9ePBgEuvvxdFvuoLxWPlKRRu78B8FFCDOHkg16yF5xW/p1yo0B7az4FPP8TOanm63puF3nLXPTULuBV1t2xEetOSrSzaeK0wXlw4TkY3V9ejq+vb+fBmPBqOr3/t397+8m96spfinXOyU1rP0RRv+oAN14ZBq0vgs/Awmd6hARES+Bz2r/tDXtJI4U5wk9YZdqjuVEHDA8gfMEBUFDcQs3uoq+CRP9me0qay3lKRoPxwQLrkF6ePRxIjV45KDx+/C6fEimJ9pJ7dSpFj/1Lh/CcriigMlyvuLFLXJXfD6aChIRAsJjifLVzUXUR1PL2fzVF5VX9I7kxONk7sqWvxd5xybZA11ybLcDiJYlPSbBinwSehjwt4G0EVSrRX/0eDCydZFB+Do7IJGtPqJyoQpl6dTlmL4jH3ov1UeL83Lo/sbS2imXg8/gRNXOfD sidebar_class_name: "post api-method" info_path: reference/service-api/fastapi custom_edit_url: null diff --git a/docs/docs/reference/service-api/cost-query-cost-query-post.api.mdx b/docs/docs/reference/service-api/cost-query-cost-query-post.api.mdx index 8a5c8ce1abd2..e4a828382ced 100644 --- a/docs/docs/reference/service-api/cost-query-cost-query-post.api.mdx +++ b/docs/docs/reference/service-api/cost-query-cost-query-post.api.mdx @@ -827,7 +827,7 @@ Cost Query value={"Example (from schema)"} > diff --git a/docs/docs/reference/service-api/feedback-create-feedback-create-post.api.mdx b/docs/docs/reference/service-api/feedback-create-feedback-create-post.api.mdx index 54bfd040d239..f5e0f23ea824 100644 --- a/docs/docs/reference/service-api/feedback-create-feedback-create-post.api.mdx +++ b/docs/docs/reference/service-api/feedback-create-feedback-create-post.api.mdx @@ -5,7 +5,7 @@ description: "Add feedback to a call or object." sidebar_label: "Feedback Create" hide_title: true hide_table_of_contents: true -api: eJydVl2P2joQ/SuWnynZrvqUN7ptdVu1Klq2tw8IIRMP4NaJU9tZilD++52xA3GgbPfuCyT2fJ45M5MD92LjeD7nHwDkShQ/+WLEJbjCqtorU/GcT6Rk6+6WecMEK4TWzFhmVj+g8GM+4qYGK0j+o0SNo/SysCA8LM/fa+M8Kln41YDzb43c8/zAC1N5qDw9irrWqggGsx+OojhwV2yhFPRUW3LnFbjujaJYKklvfl8DRuC8VdUGfXjlNR1MoxTD+EYcfouy1hDyRo/K77POCl+0I74D8QhLC+unDH4nIXaPQkN7QTnPsmxoOItYZZUoIZdqg3kHXwERY0PS1f4rupyf+2xHp5Oq0Zq3iz6Ku059GMMnUQGblcpvg48T/NHK9ZyOHGAPJDC0WTTOmzLYq8VeG5HCHZNL4e5EBjYO/Cdgpfmj0A1gGgT1atk4sF3xXoLA9xX7hhZiYYfEfWdYZTxz4JlUFgPU+zGbgX1E8Z1CCosGU0KWEZ/3rDZ1o5GezG+VY2sFWo55i0GeJ0m8RXuSYEnYlxLnHPQetMUl3KGIcA+/0Fubmve2gXDgalO5SPfbmxv6G2Y6a4oCnFs3GhkZhdHlCxvq6UZCnI+0BbkU/k+ya2NLuuEShV55VQI/oyxINvH8ggBXm60v8v/j39/KF8qWJDMI6FlFc1Q09PLm9vayLv8KrWRAnb23NvTpC4siwQulQ3k8lO5SQJticPuMXlIYyQZs7MTuTFgr9gmQn00MkHAv3eapIn1BBooN8JOx66IBjDhl/lYhyiu67uSSWvTwRnSvp/EuwvcnZ0eRfx4ephcGY20dFI3FYR7gJLm3wimEe76gSVSC3xpae91aqwXO3ZxnxwmQRX5xskOzJ47CxmI1+db72uG28FYUMN6JSq7GQoUBd3Q6I0bEGieuT9iSBTIdpPB9Fe4paqLUfb9i38dBfL4y++Ika68/PO2npLuH66S/6PvyrLF77iHn1iZEf2wn4fxk+hG1CZnYNTfj1+Ob0OgIaClCX9DeTDfU3RHTQcMlHxHP+mzpMvDw22e1FirQPFTm0JVxfkr3NCiIgVsqNV4eDog3fLO6bekYwbbEEnx8FFaJFeU4p/bagpDYav0SvIuBvupWbdyJ+eVMoH6NGhOc8bV/UjZl4/Tr7AGFV93XVWkk6VixowbD35yH7zbSDuQKZzhHRLVpqI1zHm0SlXBRbhPORY6Nuv9kxuDQSeIL4Khigso0vamECNOoS6fpjtKJdFV/KpzbGSsT/bo7ovHVtv8BR/ayfw== +api: eJylV1GP2jgQ/iuWnynZW91T3ui21bXqqWih14cVQiYewG0Sp7azFKH895uxQ+LAst0uL0Cc8cz4+2Y+DwfuxMby9IF/AJArkf3gixGXYDOjKqd0yVM+kZKt27fMaSZYJvKcacP06jtkbsxHXFdgBNl/lLjjaL3MDAgHy9PnSluHmwz8rMG6t1rueXrgmS4dlI5+iqrKVeYdJt8tZXHgNttCIehXZSicU2DbJ8piqSQ9uX0FmIF1RpUbjOGUy2lhGqwY5jfi8EsUVQ7+3BhRuX3SeuGLZsR3IB5haWD9nMNvZMTu0Wjoz29OkyQZOk4CVkkpCkil2uC5fSyPiDb+0OX+C4Z8OI3ZjLqVss5z3iz6LO7a7cMcPokS2KxQbutjdPAHL5fPdKwBNieDoc+stk4X3l8l9rkWMdzhcDHcrcnAx4H/AGSaP4q8BjwGuhJlqZ3n+Yj3a1CYdF6uJ8TUZSlWOVyTz33r40+yqc5LA7vsmizuqEtfngGF8x/USRQfI2w2YK5JYR5cXM/KbrWsLeYSmvw1qXxbsa/oIQjAUODeaYb1wyw4JpXB8Pl+zGZgHtF8pxBEUWPpY30ROntW6arOUcaY2yrL1gpyOeYNAXbSDKRv6E/SeSOVigXmtDn75lqct6VvdriHnxitid07U4NfsJUubZDF25sb+hqedFZnGVi7rqkwgjGGfKXwPi+4iPNR3kAuhXvKdq1NQW+4RKM3ThXAT6QNJJs4flYAF0W5J/nPdOp39HnaosMMEnoRaZZIwyh/396e8/KfyJUMAvbeGK/nryRFghMq9/Q4KOy5Qa6zwdsX9JLCTLCLg2K3a8IYsY+A/KxDgoR7YTfPkfQvVqDYAO+cXTb1YITb6HcM0blC6NYu4qKHN6B7+RjvAnxPBTua/DOfT88cBm4tZLVBNfNwkt1bYRXC/bAgJSrAbTWNR+34Uwm8n1OeHBUgCfXFyQ9pT7gya4Ns8q1zlUW5dEZkMN6JUq7GQnmBOwadUUUEjqPQHbbkgVx7K3xe+feUNZXUfT+KvQ8qfTpa9eRE41G/2M0xUXcPx47+Rd+XT0wAvdnwJo5CdfdiVDDxXRWlGqlGX9hY0GvtoTn2qrBuMv2IGwj20JI347/GN15FkK1C+KajWykek+6OhA26OZpkXzQ7t/A4+OWSKhfK95Cn/dDWyEOHZadCVN5bqiN8eTggmfDV5E1Dy8ikoRLEn4/CKILQlyBuACGxj/tJ7C4k+qad98Jglp4LDolB2DHBC6Ryz9rGpT79Mpuj8aod8QstaY8RO+IXP1Pu/zzQbl+5fg1FSpSbmjQi5cEn1SnewtuooEMBj9rvSMBQ0aL8PDgqm+BmuhqIQoRp1B6nbpdiubu4fyqs3Wkjo/1Vu0Ta2DT/Awg3kx4= sidebar_class_name: "post api-method" info_path: reference/service-api/fastapi custom_edit_url: null @@ -165,6 +165,186 @@ Add feedback to a call or object. schema={{"type":"object","title":"Payload","examples":[{"key":"value"}]}} > + +
+ + + annotation_ref + + object + +
+ +
+ + anyOf + + +
+ + + string + + +
+
+
+
+
+
+
+ + + runnable_ref + + object + +
+ +
+ + anyOf + + +
+ + + string + + +
+
+
+
+
+
+
+ + + call_ref + + object + +
+ +
+ + anyOf + + +
+ + + string + + +
+
+
+
+
+
+
+ + + trigger_ref + + object + +
+ +
+ + anyOf + + +
+ + + string + + +
+
+
+
+
diff --git a/docs/docs/reference/service-api/feedback-replace-feedback-replace-post.api.mdx b/docs/docs/reference/service-api/feedback-replace-feedback-replace-post.api.mdx new file mode 100644 index 000000000000..052c2f3fdddc --- /dev/null +++ b/docs/docs/reference/service-api/feedback-replace-feedback-replace-post.api.mdx @@ -0,0 +1,732 @@ +--- +id: feedback-replace-feedback-replace-post +title: "Feedback Replace" +description: "Feedback Replace" +sidebar_label: "Feedback Replace" +hide_title: true +hide_table_of_contents: true +api: eJylV02T2jgQ/SsunQmendqTb2SSrc3WboUCsjlMUZSwG1AiW4okD6Eo/vt2S8aW+crOcMG21Opuvdf9JPbM8bVl2TP7A6BY8vw7mw+Y0mC4E6r6VLCMrZqZhQEteQ6LswGtrGMDZuBHDda9V8WOZXuWq8pB5eiVay1F7l2m36yqaMzmGyg5vWlDAZ0A23x9g9wtREFfbqcBc7DOiGqNMZxwkgbGwSrBDAcMfvJSS/D7wIjC7dLGC5sfBmwL/AUw2dUth1/JKJmgUd+fX5yladp3nKqlf1S8hKwQa9y3j5Ub4E4Zv+lq9xlDPp/GPAzakaqWkh3mXRZPzfJ+Dn/xCpJpKdzGx2jxD16u7+nIaTIjg77PvLZOld6f5jupeAx32FwMd2PS87Fn3wGZZi9c1oDbQFe8qpTzPB/xfgsKo9bL/YSYuqr4UsI9+UwaH6/JRp+XBpfyniyecP0rMqBw/oc6ieJjhPUazD0pzIKL+1nZLhe1xVxCk78lla/L5At6CAJQgM2N0FQxOPVBJVg/iQWXFMJgeLkbJlMwL2i+FQgir7H0sb4InV2ila4ld5C4jbDJSoAshixus9tK1DYZZnIgmE9aiFQRsygIpUjbYlk6bemuJftZzM+jToIET+AHBj/E0ZypwQ9YrSobtPXx4YEefbimdZ6DtauaqisYY9w3qvdtrAiiRiOhWHB3yXalTEkzrECjd06UwE70EYpk5NhZFV1V9q5SXid2v2LTsxhtppdQF+kWa5ZYwzC/Pz6eE/Mvl6IIMvjRGH8qvJGVAhwX0vPjoLTnBlLlvdn/0ZECM0EtCLrfjHFj+C5C8m8VEiTgS7u+xdI/WIJ8Dax1dt3UgxHOtF9RRPsKoRu7iIwO3oDu9W18CPBdCnY0+XM2G585DNxayGuDmujhJLv33AqE+3lOetanvBWTpkIoeXAbRfew5palOV4DMpYehSE1ran1GheO5tog32zjnLYoy86gxXDLq2I55MIL6TGtKdVMqIIouRZ98kCuvRV+L/087YuKbtJd+T6G0+D0CtfRF13DusH2vhQJQP960010rXvhptGZ9U/8KFR7/kYlFZ+JUaqRsFxILB7GVES1Uh6xY5dz60bjT7iC2AjEPgx/Gz54/UEWS+67lQ7Fy5z3iqKlwsFPl6KJ8P3kCd435fDcJucbIPhBkjdUMzi73yNv8MXIw4GGkTRD9YivL9wIQsvXIy4AXmBTd5e7p6A475orZLjrZefqQ8oQVozwONHupu08Kuvx5+kMjZfNv4ZSFbTG8C3tBH8zxugfCa32RerHULF4ta5JMDIWfFJJ4sG+iQALtTponpGaobxF+XlwRD7CxXRQEC0I06DZTt0Mxdp3df2YW7tVpojW62aIhPJw+A9tcJ/N +sidebar_class_name: "post api-method" +info_path: reference/service-api/fastapi +custom_edit_url: null +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import Heading from "@theme/Heading"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + + + + + + + + + + +Feedback Replace + + + + + + +
+ +

+ Body +

+ required + +
+ +
    + + + + + +
    + + + creator + + object + +
    + +
    + + anyOf + + +
    + + + string + + +
    +
    +
    +
    +
    +
    + + + + +
    + + + annotation_ref + + object + +
    + +
    + + anyOf + + +
    + + + string + + +
    +
    +
    +
    +
    +
    +
    + + + runnable_ref + + object + +
    + +
    + + anyOf + + +
    + + + string + + +
    +
    +
    +
    +
    +
    +
    + + + call_ref + + object + +
    + +
    + + anyOf + + +
    + + + string + + +
    +
    +
    +
    +
    +
    +
    + + + trigger_ref + + object + +
    + +
    + + anyOf + + +
    + + + string + + +
    +
    +
    +
    +
    +
    +
    + + + wb_user_id + + object + +
    +
    + + + Do not set directly. Server will automatically populate this field. + + +
    +
    + + anyOf + + +
    + + + string + + +
    +
    +
    +
    +
    +
    + + +
+
+
+
+
+ + +
+ + + Successful Response + + +
+ + + + +
+ + + Schema + +
+ +
    + + + + + + + + + +
+
+
+ + + + +
+
+
+
+
+
+ + + Validation Error + + +
+ + + + +
+ + + Schema + +
+ +
    + +
    + + + + detail + + object[] + + +
    +
  • +
    + Array [ +
    +
  • +
    + + + + loc + + object[] + + + + required + + +
    +
  • +
    + Array [ +
    +
  • + + anyOf + + +
    + + + string + + +
    +
    +
    + + + integer + + +
    +
    +
    +
  • +
    + ] +
    +
  • +
    +
    +
    + + + +
  • +
    + ] +
    +
  • +
    +
    +
    +
+
+
+ + + + +
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/docs/docs/reference/service-api/obj-create-obj-create-post.api.mdx b/docs/docs/reference/service-api/obj-create-obj-create-post.api.mdx index 5d304e055af1..0ef8b4fd96cc 100644 --- a/docs/docs/reference/service-api/obj-create-obj-create-post.api.mdx +++ b/docs/docs/reference/service-api/obj-create-obj-create-post.api.mdx @@ -5,7 +5,7 @@ description: "Obj Create" sidebar_label: "Obj Create" hide_title: true hide_table_of_contents: true -api: eJylVU1PGzEQ/SuRz2mSop5yAwoqUisiCL2gCE28w8Z0d21sLxBF+987Y5uNQ4BI7SW7np15nvfmIxvhoXRieisulw8ovROLodAGLXilm4tCTIVePtxJi+DxLns12nkxFBYfW3T+RBdrMd0IqRuPjedXMKZSMsCMH5xu2ObkCmvgN2P5Eq/Q8Ylw94104ozuVMEnvzZIyThvVVPSxV75ig2z6DWgVLshAx0OiUxTxBNUwTd9+03HjswpNuIlnspiwUplieU3RqzFzj3XgfC5theNI2YHoVmIXYTTIPcVPlJslzt722IwOKMJPEh2NJnwo0AnrTIsPYFct1Kic/dtNbhKznTrP1aqUCWV+zN1v0ePQ0wT0PtkHZMlgG9HR/t8qESqCNkOzqzV9j/IoAcVyq881m7fodJy5ys068t7yv4t+27YWxRlUqIV3WIrAFgL60yinzomyP1Xu/IzNX9R5aBE0YN97BrEGMz56yHxmVe8OvllZdjKG9X9mMb3KN97l726/JjPZ3uAsbYOZWuVXwc52e8EnCK5bxcdZbNbcmqNQewNThv9SvNiSivIgF/RaUyXj+WrE03bE1oXwFtLNRYr742bjsfegsTRMzTFcgRK8GWvqYRpjZXPEuoVZwSGDl50XobvzIUb7Wq7Cc9eoDYV7m62fjFtK5dtq76TCE019zrfSefg/PHsghcMUYqKTEZfRxOuDYtQQ2jzBmp8K9aOjj0Tjy9+bCpQoQWDPpukY9xBNFIRgdRZscxk32yIMN7YquvYTGwtF2/Be88qWHKut9z1K4SCJoCl/4PkIk7jeH4JvRnWZBv66e2o8hjFiGNaWcZ/6rvIOmF2eT0n52X6F6p1wTEWnrnv6XcqWO2gQqhusNF4Q1O2PF1TETFZfWhZhl6qWORhemajT7sgyy+Io+QxBd9Q73EpSKZhotMmU74oPoyfgXPP2hZZvEkm3ipd9xe4Y6Kg +api: eJytVU1v2zAM/SuGzlmSFjvl1k+swIYGbbpLEASKzSbqHEuV6LZB4P8+UlIduWmbYdsltmjqkXx8ZLYC5dKJ0VRcLx4gRydmPaENWIlKV1eFGAm9eJjnFiTCPHk12qHoCQuPNTg81cVGjLYi1xVChfwqjSlV7mEGD05XbHP5CtaS34zlIKjA8Ylw94104ozmquATbgxQMg6tqpYUGBWWbBgHr4xSbXoMdPhKqDTeeJKl943fftKRrItalaiqecTLS+l8TrLaXN8TW2/Bm15rqeqSIGa7cKcBK4thzzwWxXCA84V08F+C3AJmpwTWjdITBRgL1AUgRtDW0FDgiBHCxh4qyx7TlPSUzcDTrMPhrW/mpbZXlaOuiUPQ3OQuwpmX0g080t0mdfaZssEZTeCelePhkB8FuNwqw7Lisus8B+fu6zK7ic4U9S9VWKglSfkz5ZwHj0OVRqD3i3VcLAF8PT7er4fkpwqfbXZhrbb/UAygVF7aCmHt9h1KnXe+/oHqFGWyBEvC2xEgrZWbhKLvOiTICl+75Wds/qDOySWIFuxjV09GNuGvh8jnukLo6Je0YUdvYPfjMs4Dfe8Fe3X5NpmM9wBDbx3ktVW48XSyH42mIrqnM57ZbstJGlnQBqcNuNK8dON6NRJXdBpQ8EH+6kTT9gTWefDaUo/FCtG40WCAVubQf5ZVsehL5RfEayp+WkPnk4RaxhmBob0XnRf+O9fCQrvZbfmLF7k2JXS3drt0d51LNvHO+P5abZVG0VR1r9N9fCkdnoyveAFRyYGxYf+oP+TeMUlr6cegkmt4S2aH57ZShBccmFIqL1HP3zbyHHYUjVxAIPZW3Aayb7e8qe9s2TRsJjYsN3fGe9EqueBcpzwVK5AFTQi35heQizgL4/vFa9ev0drr7e0o85iFGye00gx+6jtLlDK+vp0wtfEfeK0LvmPlM88F/Y4Ed8Oz4LvvbTT+slrWPH0jETCZfVkzDS1VQQS9+ExWA+2KJD9PjspP6PIdaZNbQTT1Yjl1NKWL5MP7YxLEs7ZFct9EE2+dpvkNPJj7Iw== sidebar_class_name: "post api-method" info_path: reference/service-api/fastapi custom_edit_url: null @@ -146,6 +146,96 @@ Obj Create schema={{"title":"Val"}} > +
+
+ + + builtin_object_class + + object + +
+ +
+ + anyOf + + +
+ + + string + + +
+
+
+
+
+
+
+ + + set_base_object_class + + object + +
+ +
+ + anyOf + + +
+ + + string + + +
+
+
+
+
diff --git a/docs/docs/reference/service-api/obj-read-obj-read-post.api.mdx b/docs/docs/reference/service-api/obj-read-obj-read-post.api.mdx index 836ded38da2d..4f0d9dc27b43 100644 --- a/docs/docs/reference/service-api/obj-read-obj-read-post.api.mdx +++ b/docs/docs/reference/service-api/obj-read-obj-read-post.api.mdx @@ -379,7 +379,7 @@ Obj Read value={"Example (from schema)"} > diff --git a/docs/docs/reference/service-api/objs-query-objs-query-post.api.mdx b/docs/docs/reference/service-api/objs-query-objs-query-post.api.mdx index 2e316d3b9954..661681d81a72 100644 --- a/docs/docs/reference/service-api/objs-query-objs-query-post.api.mdx +++ b/docs/docs/reference/service-api/objs-query-objs-query-post.api.mdx @@ -888,7 +888,7 @@ Objs Query value={"Example (from schema)"} > diff --git a/docs/docs/reference/service-api/sidebar.ts b/docs/docs/reference/service-api/sidebar.ts index 0040af11b1bd..ef65dfb0b498 100644 --- a/docs/docs/reference/service-api/sidebar.ts +++ b/docs/docs/reference/service-api/sidebar.ts @@ -216,6 +216,12 @@ const sidebar: SidebarsConfig = { label: "Feedback Purge", className: "api-method post", }, + { + type: "doc", + id: "reference/service-api/feedback-replace-feedback-replace-post", + label: "Feedback Replace", + className: "api-method post", + }, ], }, ], diff --git a/docs/scripts/screenshot_spec.json b/docs/scripts/screenshot_spec.json index ec937d60dc55..fb8b6653b49c 100644 --- a/docs/scripts/screenshot_spec.json +++ b/docs/scripts/screenshot_spec.json @@ -5,7 +5,7 @@ "output_path": "./static/img/screenshots/basic_call.png", "selector": "body", "viewport_size": [1920, 1080], - "clicks": ["#onetrust-reject-all-handler", "[data-testid='KeyboardArrowRightIcon']", "[data-testid='KeyboardArrowRightIcon']", "body"], + "clicks": ["#onetrust-reject-all-handler", "span[data-testid='KeyboardArrowRightIcon']", "span[data-testid='KeyboardArrowRightIcon']", "body"], "delay": 5, "local_storage": { "weaveflow-tracetree-width-number": 345 diff --git a/docs/static/img/screenshots/basic_call.png b/docs/static/img/screenshots/basic_call.png index be6a2ec2d9acf32cbd6487ffc86f59b043baceaf..04a4b6e6936de0e9a38d2af7ccf149c480adefa7 100644 GIT binary patch literal 200779 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

liIqSW&F82cCpWN2wyR%HL0cj| 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

k3fPpLpYVLqtm%UGTyy^^x~2^y7< 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 literal 147506 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

Q0%_U+C5F-Sqfu< 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 z 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 T9B{8cI4i4*uuoLpQx;3Ec00$u=^PnBS9a{*Rk z&?^7J)Cn%X&CT>&TuQ#(|4Yo&q$5BL^8(i8|CgKjE=_;ms#~}pn?NCb_QQ+tB|$*2 z!iOQRN`yze?AhVbrRn0g{_lTMI4_*ek0S#QH_mp>Xk&d(4qjhi<(fPwlZIi|YY#HC z6m%zBeSM1l9Q^1N7K>7=N}&&<4nu5%Ifw@^p4HTV3=K|Z!6sTjo-NX}1}6w3BO|c9 zSY3Sxes{r=%4%wh>+8D6P_Xook7aXkbc~X{3qIWOk37qxqN1v*PQZU{+uaq;97@V0 z*J*bdCK3;KckqA91fl~Yqwh{D8BuTsSam^S47>v@L@2e;;qpK_f-b59PMFZXqqbfX zJG(9L|DKJJWrXkrF8#Xbm%z4$?Pohddw=Is4vJn1y6j_*Aa~0O_?h<#OtgIOguACA2$9-1#?XYpUps(jk!z+2me3kLZ zqo7Wgl2U|U8io7OGirpN2SLHXvN;-}wQTnjOG1dr#rhgcEJVvIVjf!eHn(idOj`OQ z9!`iqD?e`fTr4*gkC-*HtK+>_Ry;-;FxbUXMzsVfs-ApKZ2{i;yh3PWwPrk~;MjEj z*W|&`$D@^^k36+>JCV}(MO-(p_^C3vO%0m#EUpdKRVRdCRQ7$|{T7VX%eK2hI6ii{ zqL5;azyIFu?!t6ys#z`eZPV{~FDc)LhMvzyh*pCHa@f*A4oG%c;7;W8uJ9=X@Z_6w z`VaoFmBZ|nTcusb#o%ls==gV5yMn6yDkkP!oYSx!I~$wv11)aG5g07cmIwU2(o!Bl zK_C!Z3fz1L3T7AJr23SDTo;y642L?n;N!;fz`g;)2^atK%SeZ|E!qV%&ERDBb$viGR=#5~m;(PoDi<_GpNcdH{9C2Nl$~it* z;Eo9lZ}0{I|D2A+UCcggEG(>ZI#$*-P$hvaMZ2PdA18?Lo0}gu_=4KFtgH+$C7;#5 ze`8}}-d^di#Aydn12D$HKqE;Y4k$6sSKt`&aC7?vN%$3pYfcKTUGMTy1s@cG%>N5YeVSMfb|sbSG7 zHHhe6oVu+fOP?Q4Md9lhNUPhLsy~zMZ;YkBiIvD*;(Wo=#4qlli|ae< zeRyND&}FXd!-Wt?qQt}|+9LboB9y}w)<1*4DmlZ(aRtH1ZE=xmzn!>9^GByJJqNgD zddd(H$VKmyUh4^!6z~YAA6RdeqGS$msM@&wU=#hykC7Yb@BLBrd-df zlLu9wRo@_Th}KD(HWYZLRshaNCM%kyXx2*D6S$15G^ z5t=$WaWOF#JQT0LY6?U^8AgTmHzan^-xwwqjwd;7p8H8fdLF+$2v*`0KlvGFOx$3I#{n=U0p&>%U@<}jg0&W0M~thy|)4{P*YjCyn2lw>(Lr() zPV*>);D=N~(hD1#N5(%tAkUXXPs3oZRaTdVgYTb~7I{}OkHWkM1#o~X^TLvnCLlM1 zips!!F-GQL9O@v2Cor}>uZu6<^B6DGu=CW?IV|4P^u=>gCPoN+h~05@NJz99+1N&V zR$g#3tKshDh1u#AhE&ByI^ddpr zf7!96)!YtilmW_+#l=M+e8b#WiZDzv=c@>)IRRbQ<&T}OWYs933y=<{I)RumS9bX^ zD(Z&e8(8Qd{4kS}y4qD-t(HL`0Wo>H)I#OSlWY1u`73vnAgYXwjj?s{@p0*LW4Jap zIq20{P#wY$8d?#r%FB3owRJED18JsoIw%-womM_>K6)r1kY~_9(~$n-hlKwQ5O+XQ zLQYK`Hj`7}4}?Q$X}uoX_!pSN3dOJGzXlR;-j(VbWdL@o&!WbUovfd#jwI{1vVm9P^n;p--D5 z?7DgGPq|Hq2=wpUV7^*ilukH<;a9l%N%*91>l#Yt;GdtD*F82yep^*p`PIegL6$2I zcoPHJbI!g5qSiqV*b7H}{Aj;{m+%xe^4~vyUYeOzm~`Eo+=V1CoSYjo;y&Ph00CqI zRXQL*_*a!M%!2_IC5?c+7(at4g)aIr8Cv} zr(`nKuP5fk3_Q(zCDmOwxw+;`S;^knK0Rh)8~8t50Lv!7>B@dbJIb!Hz~1w%@r^$8 zx`Q+MfbP}e3Xnw##f{eD?pnP2qbWM{WbN{tL%YDi7 zi8IBA3Gzp^H`{ok%_qlnALd6a745H!P`WTqaoYBlw&Io?9Vlhp`2(W6LL*|vLni}4 zHbk83aesrNq0a#PG;*`I;3o2}xi41>V_|ih>mF^=N95+q;Xg+^FGsI;0f@Iz1M;bc z!HEvC&1@U#EnAc8GfX-Ah0v=H}j`E(^8u#dRj1Bh9~CtS^T>i! zL;`Wi-}pNr?gI<~CeMK3uR|6E7$bB#yd@;ieO6GmUcSh>f_Ez*k+qkaatU5SR>{gK zb?ewEF1p1+Bi}@eos!u5ygNZfo4o+L=TFQv!nDv9=`!9jCExXqj>`P!Own>x5?Z;> zf5yPS%!QF11$VP&2TpwD#43`GxglqSavo$0puKW}$+h?HLE(o{(Qr6!W!C!%P=GPm z-axi40~EN-w8fAMYzL~?NN@~1Rx%+E1v{*Y$%ruX3Sdu1 z11>{Ev6myqPz&z-hD|t3SJTr3IRB zgP#;X*KLm#Z?jLh`j)dzwvKV#HK&_yjjFpM)^k42BjC2sxAvn!i#(j*U?=c;EZYUc z>Gt$iJ+kWSR{^i#T?pERp($R1n+twTsY*2!u4}6zMu+F$`&0Qw)Mws zr8cH_+9tL_eVw~m(`DWwkJ_7M(%M65PX461_h>OOvkFx>MpZ2$C+hm9^7jxaS+Obg z(eWRBIM;fR+<8wg+~gK;lCfBgio}f=J07#o+4&?4<*sE7G)a}=c-BQ<{y&89-!D$; zp_7(ras#uluu?sBu@cWP{nguFvzhR3+v)?dp`V!&uYv9wp6tuY>@rRj=fx8_1eXwL&8-ok-(pyMKXtJubR5gyAA548wrL{)c z*o)urteA|?)z#bXhh9F(r=-P_xPJXQ)M}xjms)rg-@eHK9De~N*@|5*QZ-+_ge~{| zOc^&Bhdv?s6UjTNVsys066Z@F`%9EkuuCcN0C&g4`0mNVAZM+&m!t%Ak#mP*W7LL6 zhCV%VoSS<)=qTLD86DqMTKe>HT<$HztQ$xV!I4i<6d5pV$x8vP1JzEeMPLNoroB+U zg49V-0fYfu$Y6lZOPcBrg{mwd8iIxsbI6=P0qDJq+A(b>EI+8{wyMG4kSF2upgMrM z^nemf(7<%nF?{&%r!JUesKi79DX7g~;cF-)ZE{lAb$dSK{MZ03?ZDW~Y;Dw@5qs_} zSX|6Foi7;x@f`358ENU&STD{0G=t!Oas-_NC{$5NHu$lmcps7@V9Kc}bS6;FC=jMa zV5lxg$`hVK_!d`Eg~zK`yWn#SW)!|KWDLMs5TSt#AAd&98NLq+3IeB!`8%E{o1>>s zaqC~4fLk6kAk~;ipg^pyse!ib5&M40ZJH>bpphTvDO)n6G0r>WdOz%pP+Ecpp<3*h z4fPQp)bvD^p2)za%=M3qjPZPU_{R1}cCWqwDW$06DzeJO=Mym&R@{y`{Oo6UFEA@x zeAf{OC?wQI7UWy2)w6YL+}B&iT(cB>cD-L>zW&QV;ht>9)LE}DPEK{^aNlN@j+^*e zDtW`m9QFZ7>#j$9=6AE0`q@NZ%|oSM${RUk$MgTP?W@RqXgq-v{>hxy{0kfNJkeo_ zuXr8xWI+Q`54O^Z@8!p6SA3aIb=0~Cad%qaFZjYmu88>qcb;eDOJ-3>ho;d>X4ogR zt+wb2gVk?`D3ani9zGr92}jq^&_F^b3j#~?J6^8__;pxMzK?(+zlg}p!CoO3U7 zW3#WKF9#3x5OIaMy`c!VWULTV@S+2o`RyOCg%!I<%Roz6R9^1BlF0>TmVlNtkhmUh z=0|H#4c)C6Vuf1%w z8nQ1ITNuu%{+<}#!=?Pqa*@SmYP^%GZ+AUe&+~7uXT;JU@nbEGFn_lZcD?F-FlL3+ zeRZ;GZ!r1#zm8k}J%0YUC3j9v&Wo;J&}89y@Sqbq2Cr0(PuB`nl$AlHqh6q!({KX9 zS&ahS;Oku8;4BWFIw+O5k^k@UaTFqo8YpgWuUX?_bG?pz?&|Ohn;V~!bsH{r9(=js z5*MjPw#COJ7-rzTuE)dw-1)Mb>mqv~@Mun8v`;i(bZ7{?6urWjcxO zCA(fwD}CS=r99$AlV=GsrS2>|_nQwb;_{Q@QC*`6KDowo46+~`9F9r)3XAYxrJpSL zO1teWEKD*l<=EL>!#gL1xcEbGdP&5M-@}M4f%&8M|3ln+$8+7k|KBfrCLtLSLNd!L zdlcC#E4%Ey_Y5f{A=xWg*?W@|A$w&D*?VSRhtBi!{eFMn>-X37&*j$byq%=?dX4At zJdVfX{%E4qBaFBtv{6{taNyImkhr5muv6XbF5I6f2jiEcm7izNGWsfr!cdvJCpt4S zM=b|Zn`iZJyL!2&6gX4kSr9&?gX^eV6&)n9r1PmV+jC=#3Al1r85dboC`~(aV?z!~ z@=@+14^&Mx-#_g%?qLP!`dqYz!gUd8yUO6Aynt96Ls|2%vUf&vUKMfgoMV(?N+d9} zI16H{c4NB<1zlMlKYz}{iH|b9I0x*yjv||<6E&{qm7gj6jAI$qQ6>W8JWDR1(b+f< z{c*dV?EXudSGfFp^=}V-@}Sj%WXo}w52UI#VzlB#7uXkwjl|pYMG~KHoIsVLqoVDLTb0WO4i+9$dQZm_I~&h_^^ceG>A@4vKo|@meDfs@yQaM3TDr?8NH%(Uc%w{*+w=a zm0w5O`xqSqUAhNd47s!PO)w&MD(7*}fcfLou`**ao2w5(KFHxW7qNDnR!ZlKzq*Jx z82DaYRV9_t2jjEWAD1NDhrLeB#B1ToavI}77xj{ffr$X#RWFUk};$@cPsE!$~n+@6UWNZ_uy zMb_v$6Q)@_BMW*;9+V-gj$`CUO9SKBA4`om22W_-Fl=>w+;ZX;Lvp!^(C>)8T^p@f zBcgzNj>b8!^+RzK1O;Jjj+fPzQR%|(bigqWda4;@9Cz)aSqX1>xgG0btvl8{d6vA4`)^qtVg z4hFSgCIT4*ct8cIZDGoa5MIA77diK<`6W1wF3|I^=In@leP$0+Ar%!BAZ^brEDQtZ zoBy0F)l{d^{!vDs>Yb)hEz-W68jOx{{=f`R`*&11oQ@&Y<5#hBgI6k=2B9WM(VM6$ zO{})dkR%$9^^?S=y%2ZzMci_nYg-l|479-1IR0@5zgY<%4MCUYM0t*aFB^r9!g>dx z2%+&SFDc&N-NwheM8)IrI;xaQEK((3hRWz!VSo=VN^&on{?e@9RVD| zMKnDO+~Lk&B?f?NK(_-c9q!y`Q|G7pz>z^j*<%0?>jCpfkUy<}+@%D1NgR4s!d>9K zKY}vzV!GMYwGL&i^Vwa|ZZJL^%o2?!RKKs~nUz-8_MKWz`MqWywNO{F7~KPnO0d`lQaT#73+23X~o;K8Cf`7ahoS{wDYELya4~nr9X=((<-?lepp7 zX`iI!<)NJ2qr!mnppeFH9g^U0K#yP|**f&{zeR%+NfWGrdHF}jZ3GqD?|nl<>B0|! zOL((eZs^iP=+X!wy%++XkJ8pze%p%={#^toIX-59SmE#z0A&>lhr=kxriVl&vC|~k zcz6c;iO-K7EQ&C*38iOli(m%Of*WIEqJC9H8kDLq$EmK4o(Roc0)h?{VUHfQf?%Qn za$le@PZ4mnfmZg*msrxmj-F-;3U8E{%F5YH%U$aAQX(RLLCjFG3x&n&0SjjaFpj&T z3}e<9DjEDP?cVz%9r-R&4~t5w2$kaEGMB&9+{4;Ygx}o5{Q!(UNYl+H4qv|Fw6*0x z-|t|5AI#u%Flm%Bcy6reZ=^}%hl0Fk@LOp_K@iph5x5ZJO~`^wWQJ}Ukp&qS|MQsH z&w<*ir>FPZ1{O9Cz4q|dSsvTTx?Sw%JA%}O;}7@*L@KL`G+E~@GJ1X6kIHlB>uRSn zO1k%QZI1K}|MR-!xxi8(NZmGjg}VvO02>qgEO0A|jFjyCuXv|-s{B#(D6GwP_4nY# z`C%ZAT5&HT6+ru~gb!8>`F@g^fK2lslOiktoL;=m?1zTZLcov*Wm0mm%Jgem?hQ#|}P z(>x@TENI^1!^-jRi$p5yG_78cLja0oHSM_)&(r_B0o_Qtd1dr(sCVceAZ?uJ9Yvx= zg48LkXr$PYNF>`*xpJRLClo4ei2{|G_Nz1&+!*jJU^Y4Qw zp#|EmUObl4A1`5v!J)8lFCRmhZuLt~K)?0x^ISZH5*h;uF6B}aCH6lD)41^2f9`qyd9H>FirNrzoY!qoZ|i!YAnfBo&JYk%*9 z|NSFXmOKA^g#YG6NJ2tx8K6?6d5HFxH5sHbg&2>- z^D~MOdI{^(6K%QG!8b>jpOW<~e>Omm!ZD*j{94hTBM-&j%1nzCF>?I#Dzb6Fm&4jI zG(9znownSJ&Mod7mT4X)`FK`@;K_TQI5`pt2$uRGmL8L?`dkZ*G$o4r689w!Atp5g z1~keQ54_9&zEftb(r#=XQO$uMC0#Bu{PKg@x5nV|SCYkgB>y(pe_T*0hpn_bqnI^& z;B5jH<0l0}z|CH~v9y@Li#mx0K3UaarcW-VZsp!y15U9_-#L)<9F?dr#_t@Tum5{l zz(3KGiLz*lh=}vv{}TO3`gSJgZKCIXQ+-+PDSA)WZP@onsKgm8j!!kc8n3AVib%S4 zLFR)w6Eo_qRxNy-|2i!4vi;JcrbZ^V#SdTS5Z}du zvpH2YI^SD;Dj3c0brMz{+6hYP$XxGxPjdNG)j>UxMHsV3(gUpQ$4$8XL5xyELqoY! z3ogKTUUn~plXGRRhjW2g3>vR*uJdtnaBKiaTffNQc~X+@Z&!U_@kd7wUPM4;xaGe1 zz~oQ!!+McCD2-h5^Z7x{rT50Ajt;uIi774xSpcLLBXqvO%zRC+sfD1>!0@F8;l;a= zSLruzvWL&2>9n~P6Dzv&udsWS;yQPg@1GGojpds)@vW%4WA=-Mk8;XA-d|Rf@F8|j zS66&a_z4Ri%_8jE&nPOanQLD8b;K)YEoKRyc@ewx^SN6B1e)u)LrC+0iVom0+d!Wf zr_$=XQGdWF7po+jm8%K8Q!z1=12+iYgCb*4M1g@kOfo*R`u!FFe^P(eq$5kT-D{8aAKj$|F8EYEh-`-gM(|O zy_J~yxgtDLWtsWIXmoCGl49F;RZGh~)+@p0_UG`Oq@Fzi@dSYppU~uAo z$93)we{~JdG@KV-;O4k)4^{|h2dpLKK7(QhD5v}fe;}3e#S66)6V0Rh(MAQvFbke4 zF%AutO|P+kX{^RPxWjAV%%Ag6Wm_{Hwj4udmIqkm9_DTslmd1BVN`lzaKy5o1M>kw zq8rl9s+f10%=vN5qJo(#_p7-hlr$@ZoCd8LPid?=gtIny!$%$Iii^mQmJIz8B&f}N*6YADUK66%Slb^#}PmH@Ke?H=RlkE7%rN8Y_&Z*0FRKJXc0t~A^ zr^O{FUtS74afjy$@A|&Jvm(~$T#L{=O7}b!4cuvGYp`_n@jPVgEJ5ty?Gpf)CmS=fMc+qh2oOD*3FUxxCLGxbNNIq|u-%B+oR^4_@_5v;5Og&c7c3)V z5Tzh!3|*(ZE1{T%IReZYbgJy0Q|d!83~EKh019T9f^&Dwk#Rdoa-6XBN zQ7UpSsirqT8SKQNm@d_*XD@Ghep7xz#yLluY-r`^+CH3t~ zcT5d6)VGB+^BgnY`p4Ro%7<~T`N1KbY-ES6!K5zR8NX=pJKmhk{s|5osHR2H71TL% zWwiMHI{``MBr|lxQ>F%Yj+=WhPP|5IUOpdvcJI#X-Rwv{&6uhCx9 z)-u9wH<{QYqyqa#tAd`XMq1m?9h#-e!np%7nK(F!K^L;M{^NOEcqwd`VZ;cndwB9}*cfI6a4<8+a~ih;cJ?CU3Z#b)J1C!xI2q{a z?aW_c;E}>oa0@zFDR&KnAjIBv4n(?uq@;zb3MP_36}me(pOHgPE!}R^2NFXs^l-rp6hsJNNsqBD_}iACI_7LhSTW~OEN0acgE*CQh) z;Gxde3C^0<+VzR^olW*A)RUQQ+)jBmL90A=d8!>TvzLX(FXGAOe>RiE8~fJzR3^lX zwLGnFTaS;L0)>d#cX&?qq>H9GAepKY>$gK+x$4w74p6jPZvAJ7H z@S3)+ccQb!2oX{i@C{h8kieXf03xNt7+5#ff51@T_Xrl{#l z-Gdt_e&tH3S&Pj$IRR&a<-gaP`NJuA9E>T@9pzK_w(uI>=x;hN$&(ADtbI{VIDO$R zs0UNrGuTW*%nBqx&Cj=lf%$!JW9l3Z4njypwYI!G`auFO)cXR*4O{xuR2pC3bI|`e zEf2Iob{C8u;YcmCzpt;aZw;foMTm__aQ!E=N8q$`5U8*iw1Dj{*q<(Pd;ux4KQa~v z1VMMfWcdBuTo&m_5IiJ8@DM~ZNYM4d6gf63s+sBr!tc5+2%*mlY-CI^9Uw*R?_1?X zbNP=Jpbwh!0K}59<@Y(Mdik;yvIZW~DT8+e!qGb>PQi$Q8IT4NQy4i>UgtED($tLA zWQC4;1=v~uLig$DdEs5wq6!Dfe05XSs7u4<&P3*INwXCB>deuIpDJCi+2+|6Ci?&7 z{ON5PTsjsLA`p~P^*UcEYc^#z8|a`-F)=>9zJ|~oo6nkTo7W6YH4z{V+@odBqMv8h zR>hPZQxkMiJpPlBmIu6y2eQNQx1(QimyC>CUx0aYM zA-mfSp7$MB&y>AQoi+ssrylYrq#u2#Irjg(2Sw!yGb!Q+dA(G84s#b;TFEeGA>pTA z&C~nS-CDdgGVaD@ zNghtKF0@AMEpqDyQa3kbeEAzgp?T&Badbz23of!Qq$_i*XVVZS#dIz7BdRcB7iV@f z;^Rm!7OVK{cIEt)uL0FjyD44sXP5SN3Qk6Pci^MWc=8@0d>h!=FFfzgFVrkv+$43E z6|rg{-Y~x@z~!?Ut3JsXkK#uca5rBwKRr88JVV?@ZHfbxhqumj@~(rgVcE7q-eJzv zr*9d@Vlk7d>+3x1_wV1oeR~PI`XCs%Ei?&Dx~R5Ya9eSicHvXCU0E^e4BL^CwL_v4XVUs{&5PVQ-&(EH)f`%GEi8laL4Z!e=V6kstYl6#b zc76SflOu!liMBRye(s!&v5y;l_~S(#vogHAE1m{S&#uX?p{7X%I#SDGufpg5YgNCU zqmIhYKR-XPv{8nK>;0>7PsFyMI(B91G|?a9Nlr`b}M5+U%LBfMR}Ry-a3_c?Dd)T8EcJ5zplZ>iU}V(ZejPmXzd~KCPMueuUb9J zeKdwmuKwtp|$0!G9L4tKgI>~&&n$r=*8+hx1Tvl zD(L9_iuhw>RjGXQh{v@u=9QN9ctZN1qS-7O;yD|6%DeuUQaCkL#y z7eibNpP-B3Lxu_@9$v&^4u?U$D{O6GjaBGZGw@ zenJ-&zc7X5W?l9Bb#B-g5I5+uVrzMx}BXIwZ=<#`W%OU>|}_a z4LmS)D6gsL+8=wg&$VD}EPgg>>3Y`I1qTk6)oHpY)Xz1vLVMixi@R4zX?{)^w`Tiz zl_VbE#E)qyuJw3~tzq3FR^d>fqMARPITFB0Y4ja`dygPFxoCq#ns9dPuwe08i!<@r zowDYd71vv<0(MO#R&>M|-)!}Jr4dOs(7Hif0=pnoyJxqmh_>O}@q+XU&zkFm{r!sbu6M6?w(;Z`KS}yXrpNpL zkFzRGOGQc3ikkvOl$CTuQ#;~!hEBWl?i_i9)csV&a4iBt9^nx_cb5u>w9P4%{Jd42 zM_2;Fjfpop&pQ?A{k;`RU$vWEBk|Z!CqeSg-5qzsw6D&^RBM^rI1GOLn0Ze_bwJy3 z;RcqsHuna_b=9WC+}=teqQ{eDBA@*EqGNIgi&^h?(31uz^qET1>)XWkGz>x!Sjxli zY8mJ5)l+a2=TIVe=az{2r-?jc(vE|xl&>*ED(<^I;iI7Xc4wc+{<(r}aho2UkDmU# zT=|d|QxTEy>o*c7U{P&avy)s@1)A@kGAj(mQwFvcq^~DHb@x{c7|I-Pp4_UcDmW5w zH9I>w<&9n;3uJoK<7ByYlDyaoow_Pazh=d67dEx|F$KXTGmC}FhHunqW1)ab|5e#!&Ei#Jcn$@ z%CxtnVtrgYPgP6%$?y4VFrbBl+9lS_CO1;P(DQLv(qZK7gI2{*i7#TO9%_8N15&r6 zWe_IMmjxpn+P;=!nQ8|GN!3|TMye?*PtV%?`TVzudgM2Vr6EiaV0?mE%eIk@&Ye28 zVT+WNKf*gwyk^y-6;-9ZJziLk?^7b^7!_>VSk`waY$vLHw|5W8AKw}pAZH`$yowJF zt6Ob-BMXuC2(nppJL`F&4n2BrsNpo{fUl5DlJ9opw@jV@Pkf6fJ|4ZDpAx^m>~xf& z$Z!AnNvH#lOpRJhbtNpN{d(g*!JByONOTtR?17Bdc<2Vfasb^grj4(k)?2C@?~XDS zg;if^ZOk*;i}W@j1J26=c+;pLvn;x_d%Rr%!g+JQynzGcRG`j8qE35^k6h(`O&a>` znZ3jTH{{NT{^02-fkA>5{ru%C;jLVzDJY-Ym*Z@wouj-lkt792%?&*E(jN@zD>1bR9niw;)~j;Z-gS>^b09bS+a*1OA5Ki@EZ;9eVXGgl zeHX=oV>7Q~Lsx~1S+4rEyIEyOGN5}QK`v8E$Y+h}Iu8}^kii|l-tEV|C6gomO33e1 z6Ll<5wJ|Ct!+<&lsJnT3sAhhvtE;R;?U&wbvVJv&ryi`lQ)tCRJ)p{2$icFpf6 z(qCShYY9)`UszuKc{^L^0uOmz$eod+vFF=}{ag6Q}kqaT(p7VZ?IherrsKkwbQ5r(K?|*b^Eu>{EYMRWPoQk+8!aB!wF!$HY zKV<7yoXzKN+Bw^M7#pOp3GBM&){rS+B7IYRQQ#P<6tBOi_73J+$!{eeyWQ(nID zc#@)kkH{U9uQawV7NS?~9Z>P#b<_$gcg*JalZy`>|Js|A26qOmD1dS$oWemAtXEOW zcCbxTp zJqia>S;d0u-Ze{>+sMzKnh9e%F8EesEmPN!(Q+H-)0U(o@2lBj<|`YNDQ|x^QpO0)Zh!t?eMX~$yXXyy<5|4TT zyTY>wrnRl8uXAOzXr5?(TIr|O8xc?X8TkbGvIpX`SALf<&hH$yaJtfuX=?NF|LlzA zPb+vb#?wnZwPn@tWUiaQ^MdJEv<;Ozm$sNXSqpqaHm%=>`^5CV~6wNtXl17 zD$K~oOjG)dkM;r9C)&bo?ZIKP(~P&(mOb40c<}xmzyFjgC|L035TtSDK4NBMb+ky$sW>Y~42DYZhql+2@Hz4e0Mo^3} z|5S^Byk{|{mi|*6rk2x>&Yb?Kk&30P=`O0_^E$qxmVE03ACJj7*c<7ccf9wk`~a!y zG8P_=FHECdA7MX{`tO#b8F1fx~Grw2nD;;$>7J}bFv5Oh}(5m<*UaIP+ zk1D}_Q$4vaVG;liv2Tu_&M5o^T=Cb(@AA)^z>9|Eu!_~Onk(IQJmgI^pXt1|n((#% zo*aso2hzMM88I!Owe=1Rh{uMJgGbYlMB!DYgq|_A@X^pTJ zA?Q!}@W*Qw(UrRjSP|uQOn3mbAZMbB&B^1wSfanPV)1BkyPT(Pj1wnv`_(^&BD1WP z^0)}k6>g?FCC9t*zi=}V{&#w54*J=g4MK{tb}z4gXXo+sGZOAkZB|O-%uw6ub5d+* zWJK8O|1JgqveWLj1GRV|2_8EPo)$U3*m4db%VzHs^Vvu5bybAng=wADw7;=$&ZT@2}Ng+$lVr~Q*J2{q6GeTS-Iq)UR z(1(^FV^A$tS&eW42*%QK1sEuu-5hWQMRZt0k&$nmcRPe=^AJ@yWo}E2Il9-ZsIs)X zqubT4=w2KXs87bn1=B=R2QA#a^i&51d($N|GO|vcw+ovd1R0qam+x-zd9DM_X|}3# z@SsED?;B#!i^YC`Jy?H@K6UuKM51sQM63IY)T27T)Lg_BY?7M{Hh1lOb4r)@jy}%4 zrDoALZ#(|h9@h86t{3$0u_%YOKD-kVkJX>BlkYn5mSm1% z)7<<8G=rtZX{ORh$a?$M`t7Cjip$B*VwnB(a3@74u@Pe1OjVc84zGbtugZ(hVR^vZ zqkg?DO0HZhDkY^G)p2cf@aJ){0=okKw<6XDgkL+@4F2l=;4D7B%ONFte%9KMR*3() z+TL+Zu`%z=#l4$)f|c>QutQyH(dI11M*YB(*%{&nonnWn8v=U527wepFv6c5G39y> z4vhd+=KQlX<`MS*rB+;gSDeS6)+fnJCio@i9%J2-;Q97hWl1&SP0nH`=6hpD^YVC} zzoN#;djS-9LoHD4k4mye)NLJ6R#Z5kq@3TO6{8`9#D|xVoSwrvwB$7LrAC=s2$B}T zFXOZ_DetI8NlFR{1?>wvSP(`Dk$aw=0wI|xf?aRh=^2R!OHHdT4%Y6w4r}xHH{szL zZnx=Gq`ez8|Gg(!ROuzkEDqnQd)!Jem9JN7bJ~(DRI@f-Z+dXU^H6Y7pmfT`$?j)~ z_q7hr+qcbSMNZweB7X-;CVCNTne7cx<+7Bv6Qc3JITvguio^NOQIA`wwByU+w81 zNut^~QEm}#Y9DcL^t1c`@o>DUSa!Tc;Yqd48(Zn=&zp(vnO^>>gOo6s6Z{n9Wn((5k?E&j z(iu{Gt*x!2W8eKKVU>=gm)>*}%up#eKJN1O{{qvnz`(C(-p!BjDLLJsBiD@S`)6|e zC)So$zDv7yDZn0OGDxw}(NVmFQ)IP$%N9#3thG3_YkqchRkRn<-{kU~t(d|*xP0T@ z(bZlqyeYs!{V%nOl6?B}3~m{=D)(Vm`s|VtCbf|+%9V75Z-NS_ezC2=NkUpq`Va<|J7SX4_%1#dG=?r5#XpOl0^zD4 z?6F|DdT!_U?~nt8;Rn-cBNLMgfuA$EXjDtPQ3+)5GvYBe=r)B!y+*}X2*4*;2DTN7Fy%+~+=*sc8p;+)!vT2nu2@2LVpowLp^seY{ z8Y_TGuKx?CuirlhNFjr$$Mw9rapUu^Gw&}b21_MZ1uD+O`&H+nb9Ic1wenH?&|bcY zech5z>6^H-j=FwOL~h&2H=BP?pPbL;d+J%|)nu^or?BZsDU+mhi+Il`YNh`spe7yt z9o>Xx(s??)**j~ikgWP!!{NUrIJIi@Bn}B(dR5ykf0WgPWt*E&cc<*l#58+S-EI2DSV76h9`y6}Ge_C4x~PS< zTf2BK7liX)-8}WrH#BwK|KsZ3CMY?J&Pn~2hk6i3YGA)cra`a^ab6D9*O3aFiFRk+ z!ma+e3Fscfm>IOrKb$4E~qbd>ftT2FeDa$A>#6j%;ZQ^_6zbE&24)sG=L2 z$+ynk$*ZhA|D zo~G(R@q<*otQ+^8ZGL8N`AQ__gu5vRi))!i7{*t)HYfI=knVLk zieuSO33z&|K3o!eZ;WTIYyEH!^5U;w*iwHrgGLqZS<}=4_wNt1RLg(~Z)bmhzNA|# zfB#3^(cv7_I))dD`;pnw+?#se!c zb94xh_4Q7I^$A^79oEX?U+wK(iTru0IjdIIm(Qwmt2E86t-l$U<^C}G(C#u>L_>tz zQSq`Mey#F`Rh_*EZDV%rhmlVx6IwspS~mnFN`Fii2cQ^?yjb)u4!7y1P$YWTs=xo* zdW@6*=CQa;P)hnl=2P!c{xP)AKhhVlQR%(Tl8M!?=9 zgnIPTp(|R=NU#LbvlSzhvI`OJcfEaA({&9oy}XWa5fD(V9cPc-V!X6dRLo2{my}lr zbBRgLy6#qA{Wc|wnT7h~^j>efWtE4|YINwmY9EhbJQWl4uZle~S`Wsv#N1n4TZ_mV zJUHB&eyw1=5QM(_vqB^-^-r)2F-W9fYVmsapgJz@cv3%R-DIKMzU16qs_>1C0_k(z zB;ldqhGlQnvjm@Ns>-u@v}C||6W1?;Fu5JeT z$wCgzwU<>VAJW+B-n(387EsaHDnZX>FyrZ{ycJT28>+bVhXgibDIA0)?UW}2*VBGp z@ypn?XsHnR&41~YZ^E+89~3675@uQO8M7Q~ZldERH-WukNQ&7N|W z%tGei>)wc4xlvN*a1oc^@cENQ6|S-IA1y#?ssV6^`ZMKcF~Q%q-+WmFn6!HJ9v6_8 zjFm1h6OgiMzKx8WSzfMzbS{`@IPL&E2C@SwuU|g_{3Q52;KGJkg(4tyVa3s@aasb8 zeVa2aj9EOuNCgRDMHi7^e?V7xft}f$7NZV#1!dUsR%V zD-`FMhv9SruQjUQ1>MtTf}f7=*+91M#z)YUfv`i+W0&b5%o|3Ldlak}yJ@9nwdlk` zzT+PeQuLg0Fd!Cx4&R(^wHT*#TK#s|k?$0w?(V9fe|$S;OqJ_cr?q5Y)b))%w!Q0! zkclW4OI*GtIwJkzoAe7A8}UpT;sou_rxC|Al?F@ImYmNG^kV$5sxb=Jjzgb5L8RE! ztsBTGqvA?w@@_Vl6yA6x#iEY#Im@)5;8k5Oh-ZuU+WR{(shw+0bXB z-t@jYoP{6mW=)9bbbZJ4>%M9G#ww$V+k6pQ|Jy>uJro+=LMh7+>iY!blYJ{*S|-&u zodX84u-D~@S~^K4Z`^91>RcfA19#Vx3B&lzK;AAv%WEq1G!k^QPmE;#kjI)5b*>EO zpB;5DKtP)Zwa~HL!9r}SG--La&SQf0ro^7-I);l2YkKzph)@PubR3N*7x0n`Rg4|n znE~kvOEwQ3-4}y9Cm?prSb$r032+xd0t8w`U=C5ne9VQ)yA zTOJDo<3ex-A>)l_N0ty``<`7F7XeWr)Wi~S{s8w4#*Uo~si7eu>y!0(2-FfV6xXSC z0#hTX-L_kA_*#usu<`PeBJX5=gOKqMRw{Vn7ePVl*Nx0!beRm0G1mtNu-64r64)dg zFA~gwUhxDT0gCP-xb)$Qp$zM;b5{a6P((zN5HA@%Oe<%o0opnZKAmbX#lrmaI#t4a zO~h4}wrj+QD4{4K_D=8?_PTUip31DED@}6dhZHJW)*Hm6I|(7#+1a*@r~7ctqKnz- zUqLou{9fNM7nA^67!nc^JKG&rtuiyXHC^M-b8>Og+x!4pV9k)#0RjD^|R zW+9k;D#*&R2>pT!3l_?j78CINz`f&V1Lj4`X3?D)vUr)v(7fi`A^rWrUhnJtp%F3Zhs&80ek#Mo2Dhq{O`JMPGxO!-jf;f;MjHI4qlsIt=G}Y_= zewJst8L8KV*l}bTTqxFdU6YB&&*~f54+Ta$@o*5oLXK}{@&gBGwY5(=bd35M1PCVD ze_YygD#ymJXT27Oj_^(d-+I0{JWhqEgbv>Hx{CC)>z!%z86srUYm=SL8Ef;Wg8ujS zMpGRgEu&fznHAzDYN37uXBvGGD}wh$lIkcoJf6%&FgGow!`%Ke5sR;M0#P<{+Qd(bWZ)4LLP+1Dq{!Tp%5&k7AV9 zs<0Zlps6Qw#B>0(5Dym@iu|0_Ng!zi;t=z@tYRau%>07$%pFd90P#TBH*oKlmvIq5 z3?b9dFsRoZg+c}BJ#WbF&Ol-#2qQfJp{1nM1E*jW?tS3;!dJ)#07YEIm4Ls2^AHh* zZUih#V9!LD3AWwIf}S*ZRjV>n!FC8%oWox)ZvZ+4zSx0o4o|)`u=EX_y$**^NPF(D zwmA!(anNChd;khk;qZ#kxR8^Fwer*A`g$P=WqRpXUuQsP`9@3(C!88EXkn6_3p)Y+ z{K7to>{nzR932^ma5_pt=0i?SP~qf@JN#%p=Ay{S`B5b&D<Q0HAWe*o zQ6lpIWAQn0dvBaFOe920+cZ2Jqb*Si!cf=s@g|9%N{>}^bnp>%bp}^*Ep2VbnoZ5m09t!+K6*cl0dQtXcqWR0CauqL^B}urS`XTR4y-@K{L{Vi?@t~Q^N>&m^;k|z| zNkJ`7gVa3w1%Gr12Pxi&c!~MEX?%QN=e>d~5vZ*LB=)PFf@&s#pP8%5TyS(z$wDy! zHvMT(XMnMB$^86y>KtHhLx81*su!rg_B)+zX4K(XN=zy$dPU5la5n-T2FwB=z^(?i zGUVja{Z4?Dh#4GQ*@Jr-Ij_}Es0PZlto8J$D}jtn9OLct^eqQ{6ey>C6MlaG?XX_n z*aNp+sB*56lI{cUB2I2ksaS6V+uuO5#fTFZ!#{VpKo7D<0gT;yw--3jUa^~ZpchCt z^DdZ^;TA)ZFjd;%GPQ^TmY=0Yp>B;=oXN;)V&Y0~FRLt5XeeAvZ6%wX_gH{CB`5H2)W(|a|WvUEVr30dG5r)mEZP=J_shOouMuq#Omsy9j@0Yk*o zF-wz`H%{&%%oG3|pi+-}`_@32?w{G;eN7Zy2~fjM;#!n$wVZ;etbw2+#c6~7DmFEX z?3q-0iX)z$oFoClWM$3TlAdDZINOQ$g!I zWLnSW%s?OG;IkzCyHE)glp9Eu9Czm(Qq#LBUmn|Z-hAb`A-C&8AyTN!qhMZirr^%G zFcAG)NZ|IRmYX={&EEAjo;B336x|04-5)x%kTuRDZ_|cGgC$PmYZuJ+L>^ADxPDY9 zLf6%_C}uA}l$v9AQSUZBvCR28q--`TgKhOBHRpq>wNIX3n%}KYxtmJHIM|arpJEpR z3Cb4#SVg4GyA=LLSfKvQfaVC^HFj3lTsg*LFb{y_0$SH4u!3EfXbTDo;84xufX-US z@(u3p>c|dYmmzm`73x6PlmX%#fUVFY0lW&zbnQmN_Ihy%#aa_Xc+Og%-4zR#lL zN!ZZXnCH%XC*&N1em7c*9{xW!1EFB`r=fo)EhUAG^yWC48a#hW9!a0VF8JMLg_Myb zBnV1bvrU77=VW4pk0-rKjiSZ;ryp#SpW2 zOeB&X%1>Y}r<@ygdtbC$)2@9+f2KCxeOr_8%AsZs!JggksE?BmQAA_2EM+1rI`V(Q z8n)g*sqb+Xy_?raopI(cJK6iPjdq=V(uDzMTqn#1v|o>AqcrrZjoC=>x71#_)oF~C z38rkjIS=IPy3STky}`4yx7wId;tetxQb+9W3oq#@G(;2(tZhEkvk`XTrTnn57Uo@c z^2|w2vg_l1KDJ-iI=ffo$)3V^@ypw`)JL_u?CV1%EK70sxEy!Nj)q5%BGI?j+d_NE z`M^f>XeKJbn10InBzn9h zya@;1RL;k<1t`DY3|tvPSTRJ=EK!HhUlW*75u&#dlNetm$;is?+c4+)P`-4JJ5Jhb zWB3V?ZL7_zuNmq==!i|6*v{k7)t#g4$4Nq7%s=ZJAmrK$wk}ZiBL>_QKnjwzJ%xQu zm}Gi%w3?fnn~e=Sa-lW75F0MP`ztn-13lumyVc7TA3sJW4+A&{&eJPbuB4@vxZG3=EL_|MLi4Z*^A)%xErOyaWE(f^Kp=|^t9>%C8P+iYs%Kz0OB5ocYn3$Lj z<_EwO2g6IRqOTrMCiehaKR*lIg`4c`1tx~M`t)G=9lgNg3A!zQ4UWn^x83W#`3P*( zE`Pp9fbX{t|0b!dR3uF3>C#@cg5g*Yx}ntIt91$;K9rEK4*)GCTo90~I|fcHkk-XpFx)@lpoFdn z@W&7u5Vrx!A6CHe?ilz5htqiIKmtcyq2CGGcM$vp*v=IJqrYcrQ1+6lC?2|3Krhp$ zqQg|sI$~Q)Gc1@pUkP3k(Wys6(vk}{TrSN~2&Kr#CAjbEJi3?lO-O(P98`k(%yWuD zPK+A4mMd0`-bNxjQ>L7>zH8+I=SB--vR`W@FWW^(qZmxQP4hs9RlnApz3>fix(F2k&;0Vt420%HLB;+)Atg5UC%Er{sP*0$ zHZL5}GHh>_rl;?K)d|Sp0LhtwjV--&(2Ezk0K>Li2N+HzH1p+?1>+I~-M8mp>z*X& z-ZwN<;k>dvwxvO66lMlJ0Juea?k@hCo-Tr?gg$^h3o&eGjsXb(sZS&l))O^X5!gYM zL((^N{%dP%(Lf)GH8V2KqNnT?IUms->tvHiizq8Boc{??&7EGj)c zJ<9Om!$2LIu?Agj|KGTA)!#5>*YNNso#0}e^*gTink9g zYmz1!6NQT1TH?AH$#GB4Y|3J`XmW%iskZ!wps?9+MBvGXuZK}LSO#r|I44W_zCH`+ z740R(;$V4{o=(=HN5|f?#Kt=!`?Y(eBQa-43lBs6i>U=!G-mp%ZsILgS7l21YON%3 z8|yBIOqRiYq6oPj8W|eOo1s^&EFKu2odNzAFa}rUfLm_dLe{`6lem8+L-o@RH$U3! z{2I16OAujfS^O>g9Mp)O(Y6qda?GeMDPH0~zQ}(4b0&8zhJCSnXL%0Xy;#M(WrQBj+k!6l{NWx-nxg!VB*#Qsu4sujEzf&k{ zYJvxbZP^a$J`iNOi%F~}gdZlLNhqIpPkOiVIM@3kzBY`sqS#zkC|7S)5#GB`xbjum zwAbHREq|zYDZ6~=xzAw5Okss{H>t)qlp$-XSE0BeO!W98D5%ok>l#JaTi()q;G`Gc zh$-adJD8g!CXy6B7+(OTi7vXny1EHq4rRDBe>?DnenXE;6*rDVr;$SSqsQ^D$y$*? zaG)jg7Jbk33JQXbLjP8j2r>E{^ZT&DFE3IsN)&amu~kk~LgIxgGmo3$MXR@j69}`q z9p6H)!5Iy>?w7FO_x1H%Wl@KE#u4m7VRwxJmzCio01o&1m`<9KlC!xJ6(l-?ZO8}D z!xJWuo%xxHzSy+H?<3-L9nS&?Ega+)c2pWaQ;)fzOW9FO6A2S_Hi`W>{v5um&KC{c_cK>?y-L{k2Z6$TAF=Ccm0bYIs&;zJpbd#ZxG( z=TvehaTg0wUtP}P)*_P_v>CiaHb||eRi<~KZ+o1XQ=KHscI};D?GHk?_-ZG1!|ZZ$ zfsv~?TIKJ*DV6fcQOKu9$9%^NA!j=#<`t5jk)RvOEbk6uFCfR&_Db>5@Lrv(LGXn_)=E~lD(y9>0zUOlPJ%9Bde_t_5`>n!8x&Zb(7e1P z@DI#^vBgQ4qxwFd!sQgVv%d0vQ;tun76JKkjOo=HrAxnvbrY{sx*4D)0Q9kp%jUq< zC7T!92Q47p^W%?vb7mHgEbu1)_NMT-urUd(^YuJ`-{@1CCWBrwD#3)*_9;mb=(;sIgX#|FnK(KBALiaWoXa=-8^1|JMpv@QNIMgLx^Hh~ zwR{#wv_LH=SObpIJ8NUH9&f~GG|Q}_^YhmrwrSYrH#Dq>AxzG}eGZh$9i5%H1O(t) z&<1BPoM#@tS3z;m!(O+4otqmJW;rl|D29(0D#CUI5{uHY~ z1opam&HG;sV>CutHl_{aCJP2Nf88PDrl%tzU14X*)^Si0^Z??o~3PlH;vZSP>5UvD2fH2aGBkp0Q zocsQ-H1Oa2NplK`I^cyPn{pFIh1)wjAK}e`;tPgR_anj7wH7q9Fk*!40a%c*I?6rw zY;#N1^Nzvg7qpZhuQ-q105kk-D^I9jjf#iIP=6>8myJnb<7Qk}S65&?fnhCFGE4dO z+81j1LkTZgVK@mKPt@-RG#F+N1P<7cPp9HN{klh)V8~@YI-lEtQ^uYYt$4}*T3ARl zuM*M2ID#lCvX2d1=Eq_O2Oa?!k2LM)Bi9T#!+v6PY(;tS2l5q z0f^@l0~8Wzzd$2QOB*eTe~pq7n!da|Yw*>CND+{eLUIo(-ODcs&_;l5;A}`!T3lRg zomVfQ|GBotN{kamU~X*uP+c7pnF19U1SvfC^E=vE+TI;9xQKzCrsM{eh#+iM7T#1b z?ytPPB7Q+FqRoWoDbi&!XvM>ptAiexA#5MQz2%T!@?2F}lK(BnM5v*5kLFW>g(PjT z&KgQfxlE)sW}u?t=bO8xWIS$jN$RY!Nn?-_^;5WFS|@+_p&RD0eSMq)0;8$5PzwS5 zAUGldrB4nD3aYQKKN$oOKJ234NyNyQ_3qvEFsZwGvx%{>8r!l)7kf;}G|4}DyNp*>%sR1WoX#224SP@sY= zYU<^DPx4wn{DmJv+bYr>?|4bclUb_vX-R9iG^TC^J~2NQzB>MShYYpBWw)hsEIP&( z45%IABCz#AY7LMW`=c|#Km>UOUYKv+UO?bebGEl{?e5MJ04J&xI+fN^J@)HOdO*u zt-#$F%nW6+`XE{%_Lf#;O3Eo*WFidO*Y~w6Y=!No#d5b{5bF2*d3#64*hkB|tR$_5 zw_%dI1r_c!@KC@08r9r_R|30WjCx+}(}OLTyis1emI6BkDq!vE9V34wCQA4YS51}q zc&mdw2#-QNND&r+#HSC73pG+q?KVYfN|!yTU);M6+jKJ(%JeFv;$*v-FW6ga9*@vB zdrZ<4XwG0hq<2ltzvqbI2IrW`7Ih>Yh?EbW)`5(sK=~Fa5k|wpc1{h<073t%B_`%8 z$52{U#yx!3+q*6!gFdLyeZH8BTprX3`OckLP;HcwFY{^W z)T9UEd_Ut9UZ@qjgDBHC|5t6aX!mJkA`k88Y0zlcMHO>Ym&?w{L~66<_-JIPsKwpY z(^4JXXENDc`|nqi|K}}XAlR2@F0Wi4g0_kM#*N0V31MN@d_RMr+1|*$ECsMTkke-C zYVCXx5n;{|hkTyfe1ii#6R!i<$6>1Lygq)gIoCha7?>O!HotxFdgVIr>CQv=uzgRC zjpt?|M+QuR4M;=gAydg?XR+D4{NHQXS^t8ZU44ci44TyJ>=$%xfU7>9s!M9TLx6(= z^6K~LpM#|?0Y$?}z^mbT_gK00SV=}V=(pjJ%u&gKvlNU#ApD9=PO)M}XJevbXkudS zOTb0b`T4Q(12EX)8euInWmBhekKr)axnNOvRCC|0l#>9&H%H9M#Y;q#8lm*yBr*97TB<$gcj&|za`XJL<($yi@sx3si`5Au`ywiz_d8&fqK zD+>uRF@u@%6kxsu#)BXyb8u{gBEL3^gQN7$sd($xY1}i?a~wJJAF1w+b^#K1>?VcY zX70ZGj|;%b`7KvXv}oAIx^DOPnxKRPW;Gbb5y#pbn07FxJT)@6UitCE#MIJ#db&Y6 zLgi&h6UuGAv+XJj;Z<+0**tb#8$F(G@BzaK>w)$x*bQNmtcAS;5IM9|@aPLW*8Qh( zSWF81yA0*jm*>DKXa$O)e61RurFtyebzAzTCKxMNkCm@UQwO-axvh@W1a%qZspTrC zOJ`*W!$TU7hn4?q8GsYJ+@;)y>d>*_%X#oLx}FAHv>O~895Ck<5vck|o(_WXDh7l+Jb!!S!dhnj(rg&3!|*AGi={ z>*^*(M)qdPTU(3RwZ2Nj74YjaBY`|uQ}Zh%BzDrC^OJ&ww>DpLr(U+Q06dC0da$no_*uGa6+C2IaH9%TEtg2FJ(!BZ z5Fh?ti5_U`7XgQdMqjrkA+aodR72|bmDNrh)E%8x9RQEwk@5)7!e35NPr<4t+CB?^ zFYr|kn4#{v&IZxR1V|_=3QA{6i|3|f<6PvL=l;Yf6M3uWji@pS^L^*WaQrj@qhIR` zzFlUu-iLB^!^(Ypt`Yx8>>K_9EDcXsW)${6ju5Qt57~tt)=$|@)YZ&YusS;v`^))i z>($@X_u8P2!#$s)pb?z&oT89!D7RP5NHG&H;q$0`Hg@Z4>quFk9QSuAcweR@3cSgo zoN*4j|Bcz!fiX7CGmMg|^Aml~pPBOhd(Q0N%fiyXHpYwV2-2dGqFkY^VziWqZolno z%t6*w8^3#Tb!PU*u;H9|w)U>xUS>}JfOr_&Lp_y_ow#?`x#N~2f6CPyQW8rz-;mE; zTWP(XO&Le?>;vI#B8;nl-qWRIee+OD!n--Z$TZ%+22u zm={w^9kjPft+;@I^Jo~@G|@5E{Z`2k-SD0!t)e7VB8NEm z9xx4|U=fQzAvpzpUiIrGx|q|(1zaNSBLpgG&dUTl@4 zIn{(uSXVwc-=|!Ef`$lskIhbH^yyF)U@oxh9ntV*C;05T^CmRC<4LM_Vzv3xdPpJV zM~n8{m0G7ieJ=IqZe{rRm*KqMy5BTv1%{?*!T442+^9spYCS#eie>+9C0l|1m}p{# zb!au!O3jn+zX{BppX?5DlUil`{+uziM2Ic`v7OF97KVA_ihas0QWg;Q6Q_x;^}$x z<@uLC&z~yV*%9X1E#_=jB&z3uz`?nU*MBlujsfKj1R+=#o}<`FhK8x)Skbb(z@DNM z^-fgCa$Ol@<>2TYAOG|kGvx0*?J|w^+Z=9C3?e zpcJ&a-{mE6SSIZC+o%>ly@B}t{FQ)_sHa}byG&0MIl&^ge}(oE!o)r5KmG+DpXX<1 zyIq_4e92B^$v1RCPE5U_d@=RcdJJpR7CLt?N|Y&ocun!fDtO;IPrL^gNpT@qS{@Wy z_DJ+*mX9&z;F)%tdRbU#=j|;LeIrrOwV*iYVOT8QEl$pDXwA!}x`FZmz`0h| zUF+H8Zj(BP`4ZVQo0*C6(NXf$tq=K9>1lmS$Zhbb&E>=fARHzv7-;CySTxA}=c9L_ zA*2z{tH-DPQbFlKU^Dq??h+ZY2650oPDkSh4u*F*U(89BUvfYM95E8o@XSgN} z&yI*mJv+gGuKEXz%P9?ddg{VAOAztPR^aX=9#mtmS!VN_Ibm|Laxqc_g3&XDT1dJ6I9JcTx~P>*WK*_wSFOK3`QPN5Y<@fk?Iqfq^IsvELAE8MT?a^jpjrbnWrd*O1Bx0z3yoo6dV;$61^FB;x0gLuJ8c^BWbMh7tVOiS9Q!~w_xYp*3Rl!x(?t2-HUKVh?p#n3-W@yNzNRBqa1L?GT9UPhb1=G`42P&~x4DZ{dfF!!!P99NZ?oL8=wCXK%L z3`1;NBE|Gkk(dzMAufqrh-`;M9}$J_bhf%R<`46*DIpZH7CghNKZ?nyY@mk%yOe#<7AU`Y4C;J+7r5U zsQT3&M5bXWCd-m^EiF?_FYm8at-L;+MDyhc;HVPQ%~Vz1bai-EDaMTD3xq4HkE5jJ zgM9)Ok1ef}9?V-)@*2~|5V?v7Kh>P=lQSU6kkp6I1#DT z)bQ!P<=a1+OnT3(7W{4t_p3ofZ|w)x-Jz>ow&K|_%&p7=DMTf`xK_dsCHb={V5>{R zxm&+Fvzz~dv6gxk^a|kgBiF`cQ5~#t!Y^~{?WC#~I9&(>96516g$RJD> z=ys2Xi=N?-#j@%&8{SS#OpIYSz(;_Q2{>!n2`yaUTEm9t;K{WN_Xte)0SJO+qzkd2{`6$y)En{&0FYV|4QXw? z|KLFfoPrK#NYe=uW`MdUhqOEV-HPM*8MkFpz>NAH&XHN|!{|uNn4--4=1x`nTT0VT z&gGPMR=gSUbOv&MJWbTK5^46}rUUGC7~}T9%p&_CDlG}_5qPOJPv)e6oCO2N&?yHf zEL3|EfdU*8b%%emzCS?$A)&V|=LPfByUl$S_QfU@!Vo z-*Q&>>1VQOIPkW{=jp}taQ%pRKtdiSm+_lu7;neL$Mh7I*g84CZ@j@DA8Z0D64Hv| z3N%E6C4^-r9qn_N`5jsTo}b0`Qn4=eUm=*xb(H4=JMxA_4gQJY%8Q(na>~*uq9A2% zGO3Eq6Mm86`dA&eph0fxV?R==db|xRWQfCYwsbq@_oe~qA^}3M)s$d2UYJ(5oprLd zkW$s#9xhsu$Bz7QqZiLqvBO=OH)(VJ5x+O(wQ8#%?#lbD;j>bbo60RR`)Q}tnuiZ4 zsE{{IZxV%}9DcN-au==&x&4Ao*h%n?EkJ*8 z2Q7g{1^f9Te23{4ps)~qh~ks``(vO;1Dh}?LQ5TerksWu(gcyx{gbG>~{ zDVBYiYw(*uWv)H}T*OIWqPaP6Iih+CY*Sblah_cLA`yc znR7q`A1kxQLI50oaR2@y4BF)67``k+*U`0VWu>DYr#n#s}zx2;j2; z0g~z7^gTxfA3qW!P8)Y2%`;arNFZVhJ|c)1qZam1%^RTNvrql6v{T4SKn_i#lH?r@ zIT5Ez!*-PYo=r{r6MNM1Hd9-%4bQ53YX{y5pN1|Qw_y2xav&pN>Pt4q%eOf|Ua?1; zzKOZX6^~qz&INOf8_0XoXr<#CKEY4otz#V%!PT3U+4m|GA$ar2pE+BHwrxV{!Z+Hg z?*^^BD(dzdtCbkCY(I^BR>F(l&Zm0Hk=tDt)$)+Dd7o=+*C02LE>^z^4~bIH6%r8` zuFNP73XQ*gJWH_|r}(a*1s^Xk!b02^Se?d-axUu@DldfQU$xtzW`l?2E) zxyTu!4wkVVJ}C|U*-@yvmT&;W@BW*l%Qivxt^;b(>+=S{eb^~%ZP)9eF8D4@P0z>( z;|0MxcV06S!ob_P?>^e+j*bT!In9%k`l4QJtgK0#=HU`)U|M0C@zCEY;!uk-yRP*~I4rrEc|5hzh$19IKd=$02pHAEg$pB^LflHG@=`Q?5~0pA^K z4i(mh&BoT=OFq%i8P@ih$SdWKilfiLy}`v^g~3iMNR0@6$j2SE6YfYKO=7KbdhYh? zlY*0q_hqDV`&O8%WWW&lnzioAf|)5ALV)v9#9~H#qR6P!&CG^bI4ja3Ox@a^c!GA^ zEe3w`w&%Nr?ajW;#z)s~zR|FdVNzon(2f+pG3$t9(>WZji;w;J-FL+BRcxMb2Q3;t zohaVkW39)qjkM4$vL`hCvD|wF$S5WWKW_V7&fq}7nIF^BuOf~3x_n@_fRhWxU0A*- z<<~JSP+WI)FwoJ;Y-#D)*}H+w0RRhk4+xATY0>epKR)2hT$|GNDfn`a52FRa}8{$&P*;JB3H^ z>F8>amS`_O4sAI*)62rwe~D zvanCdwth?LucJrnX=-{cp1xLn%Jj4N*PQX`qUhJANKaPI1qB81v=2tQW29Wq_g8o3 zbw&;%a6(QMWO$b%#_$#jrI$p;-gQLh$}qB>xE)g=y6vrNbqn`89{ZG)%y><&;UFSB zpVZ3-4fH>qM?|L-3d+x?jdI?|eV>BaflL0rTY1PB1)x`4g%bzZgp71_Q13*?dr1X+ zH!7}#^Bl2wVMyZ_|bS#eScNXTH3gBX6%gD;Y|DG`^QBA~iXvd#xe*hMnLPA1Uaize!6^gaj zz-5B0uG~s_h|Sy$gu^Z@B!mK7Ps>`Yh6*OYQ+2G=bZawZB((9#KXwWyt& zZ0yT<*D;gsQCaKZLKW1&C*)#3{JoUuov|gxojSdcfpZ>+FMUW=k!MiK91-Ka7Vn`7 zmNL@ork1Ivp+r}zPkt}#d7Z0UnlL?Ge8r!|wmbRcEpl~a)YHV;?%`?A#3d1%`GZF+ zipMccXln~jwyYY~Hl6yq(W?uFH{!V!>Jw09kcqf)v?Ys^tLPdP;pUKf?qR8TxBrK% zQ`b40*@YE6s!63A=b=_?ZEXcE+2+9?*a)DCIo#jx1VS{lYfxlB9mK`fv&m6jUJlJJ z9v&VjMMOMyvJ1X_hE5E)zEBKcpg&W|83+H{7ng6q+?Je@5>g^^=qh+JguoLr6lP@L zr%Wm2)&tvCd%G1ZZ#f1>0NG*71TV-U*^Fhlz#z!c=P3d}^7MGa2bh=;BZl(&{ol}9 zqIR6p6j%(R;uBFiwm;k5zkmOx;I##93%tDZzVM?BG?d^32zG*qJ;aRzpsOc&K1ve( z()8@?JL_Mz`n%T@RM&J9n6!9Dv^2C2h4&>F!H*Qk5niCQ1A@T&z9m?Xs#WI46}s>` zQBW@orBFG?s;|Q!^bwdYpu%u<-GjRoKB}mex!|T*z%puYWf|YT+V6upR8fv$fYSCS zkfur90cUkZk%RX>rzeELbQ~O!xlP63M+?z2YE~!@MF5~-#pkNzK(HMHP)`UjKKUW>mJ^PQ#ABEG}-C zP5coY>{)2eugOsicr+(H*!Bv?#32#`i>)Q~`{XCtiwi;dM57hsJRj_mRo9IUW?A_x zHl}hU=@l2`zeTz>~8t#OvUX(*nmUEkhFc@}= zWly@riT7x0cTMX~x=&#tUiNvMG{UOsbI4gnJd-tnwT#t=A^y>fzh`P4J$@)-zzXVK z*y)zKeWW0qBa&`vdd~y6!DV$R;x#Hcx0soG*}-CnxyfjAOrx5Knc3*}Rm`dAgM$Mg zIviHHl$`_NHeeWsk`AC}WMySF_x;9u0A}MxI z{aE+=bks&}@^VPXOPsOBxSd@v5MrG3$l?%NcX#)~rrROw;u=7+we3ok}7*KXD|J)vcdMB~n}vZgGigsONqpou5>nVhYO`8uED{ zH(qkm-G;P(HbRp*O=SBX*TxQspL~MoqHwnR?&iBFN$!USABG2fI?Hdr%$>-kxScEf zJUf9%lzX-Q#3fwr+%*dqF573BxrB`E+7yD zbBC;Ux9Q`yO2p!tjL3*HOp7(0Rm?{Q%i}p@VLvG&111^oeqPi5vqLwbWHwWt7oT=F zN~}IE>gIR7dF{ua0bcV^hvJ8&_K|(; zJ7_Ogm(zai{jQFBI~Du+ZMN|br!k)Nb9N^F@fg6WJ+5gMckB|4Lrp?W$bWXHP*YKf zKxi#ElimVt6R=(nb%6JX+DU*s1&MJm>;eF77aAg~PYrdB%M89eOm%72Hmw0zz%2tP zLda)nbgA@;8gp5LIz!a=@w}0pU%_k&W%2JH24V8J+HF{vkFRg6Dm}jR2NRQf?|xj! zL#+e|ngYOb+4*$0!qJ2S1GmFLg?32YorPT0ho?F1&iPQQ7)i;+ByOwz?5!;a(hy06 zHcF<8FYyXzY6@1%0S;>v%`mQ19x1C>{-AGse~;{&RN6LXw2x1EFH;~A~je!C;!FtJQsTU+sFm3~RU^-0QW7YNb7PVGEo_(<0Eec5NME0E50@sdd{{>osq;K;MadKu8gY9QjGVmAr zkRNOnEPq=lj)zh^f4R!hLhcM2JlM^ap%n*8UBA^b4-gQ-zLQ-cw7|Ih^O4B6FyU`q zHi-!%e7wKicwH0)c@}d`m2cbrO?JY2kfVx<@q}Iz21z+NIbcKrBGv#17__&yhe1_H z)63vs>{h?g;fw^=Qw;Ap} zeoFk5ZUTIKxF`9LahOfeTypcIV3UtPQs2M#*A9PcWNE3TqGHrz4mLo5cPv7cprXv%f$yYt2A?FN*CG3tcp&pY|l7Xw5nN7d0!w~;3k~&P@Hyj zu&}Y&!hVd<5aU3(OHQbwCI7vlLHzpb+i_}{WFy1FZ=$1>I~F0zglyG^<;Jzm|F{4! z8v?cb1SooqjE(Q`c##3?I7cqg3c?WlB{$a3% zApg@|9ts2NF?RxJP)#V z554+EnAis5l6^7ZICy#jQwNYwy$lJ-QJJ`a3L(FQj-;OJ3jg-F`A3Bj|3`DdGWcu6 z&t<%|wx}zYq8v2{t}G%cQ~92}z{*jFd&+j8I#56o0}1(kIKvV6mxZ*r=CnGz2@j6E zdi4q=3AZ`|Fa&NKXm00VbpUPgeXd8Kzdz`?nwpzcVn32EbR1$5P8{>9O67*pA|&k0s^hY)q}xWCD>IWts`k{0U7xA25WRcsz2PU}FZD7BYLQ zs%El8{U;xi#f@y3p8zr*%5rg~#%yLkb{cQnH8#~-d>fxCt}Re&_m;3 zpp)Yj(iNbapXCU)-n;x2;$)g;uQPlA<(TJiuDr>izzV3f^Y%b=1 zU)mw>HP0>b0|vlA%NhL~ysWH<#4jB_bLi5%6;l8t*RJkv15i#w3aRhXHp^v4RNXhBl%Wx21p6~-6&rk&9ZFIj2Aun3IF zmxc;cV8OyA2Xy|uOw^=93RI<_Cd0pQL9^P)@){mdnw8;S%1zY6#{#;JCUVfcv@&>; z#JF!G}GXjRYQo+X5uyv&wld!gN} z&VV4AT(`5t<7BPd`V%nZ)tCIv&;TXlJJ|=mN>NH<$l-qQLu}V|4-YrFtGw}zGyU7y zxr~It~sPrYnbsypn;~$$jB~v!|OB=Tk(7kst?sp|&v=g809aGdIt=+=yBDXI+Qc zOXQlT%k=c?XXgTSYrIPN0hQ4EBNJ8t_xw<*vrrM3V3 zDmY3MHtC@$RVB^+O~w>_avrnBOoQc9%QM};8PyNISy{jzA~_m9goFAUy!15y3W>l{_4h(A>ea^s@Gr}Rxp z0;B0VpT7wo?eaDqJ3ebONfvUkkRA3v^ojpliv4>&a_xL{3s1qCyGP}Ahg0$XW3F{N zRRZ%*a?i(75D$0s_5zFwjI^bRJgf-wfh>)^A3+h>K~MQS{NZp_agg=)7XSKjB)0G* zPl;)l*Xy=D64ge@XVPD`vblSJad!F7K2P|@9j-m#Tjz3|Sytv;QJ{B-`Mb`2r5sGs zpUAW|N=JBU^Au()ac$ezc(Om~%${-Gpy%1PAM!EeB;Xa9@))AlS#qjY&!d-_VBQkD z^i}axC(3?da{Rymm-ja3 z%RCgB(b^>amU29@N>=)lZIz68c5(U=C`pg80`aLG=9kOr8XDb%^6cuh7pF3!Z2NMC zOKbKhX)L(p{&Vd;dyZDR%ZH_r*6J$S?WH9Ua#{@^!AEV@pvJWIm>5}j04r)uw&)VA zTMSW_J!j)_0KOz2hqDoz!W+w*SGp`w2pn(dIL|gP)axgM6=-X_zeJF>rz&N}^HcOf z+*|D~-%QPIw?o$voAQ&1*oySc4(drvgd(8b|jwF6Wb)I4CiRXP}2+BEAY(3`E1XZZ9DD>MVo*mZ8!dya*Hv z6&PuszEHvGP9A@zr*OV1{P2FHYL2Q^S$xO55oVZv#CzQK48vc^{T5>B&tBrZdh_i3 zl@GTl9=rWpVyc3gR)lG;mlUk-W~bdGekq`s;tY=fG_;S7CeKx^n3()a92$4DsAVLy z_=$<1%TA>J7efgKIDM$GE}ndT!4xq>o=3<9$>K>GDdk!XXyrV=e#h)D&ldGe9;^&% z&u<7aZv4rxR_yg>PJiLwX2P{+HOO8R6cS~8BMd)Hc9-|K>e25AIcXUg)2apSUW?TC z7^`c`PwxMFsc@&WW)g{+FF=A;@u}Z*YH@mCk=8B0e4LD}_2c)@!zvP_ydVQM?X< zZtIQ*$I{5F+JzSxb}Wc}vQYakWm%H@?aMh-PN2*H>6y4O)X!jL0OAxlnL&`SGFNG5 z4EP-pqXI4--s9D0C;p2Da{2vGLL-qyzf?Vp;vrtUeU$H8qnA~x#?Hw zcbRZpcy95DHl6twiOurgFI0ZWD;bU?}G`LVgaYiO25#vO_A;6@HqedLM^>k zx;O>AMMldnAW5@c@B3c37RB}GZdkTA$r(3_f4;;+Sa!TGR5~D#h){Wgxj;#TG*;!5 z7$~0U{5!WQVGkznXlJ!57>GsMb2l{ZsOplhLy4=q7t*8y*)DV zElOHzzpUh!^}LX~>OyHv2O+ianAiJuV;Mq|t;4JRfR{!<+{~Z-Cont%Evs?`*hsF- zX*!>0Oj7fs>u7J+FIQ%WO>pFkuE=lzF=EaKZ=cs`LxF{c4};FWXi(dbT=)`34|DWr z-+!-oQ@bzr_syyxSE;WZ%@}0mF)LM>msi(@0x>l zz1Qf}LI?}1B!X)@1D08Z$ub?x4|A{2oucqc?-a)`=Fg54RlK}q z@4quzxzqCPvF!cjlI{JRthg}Vr~O?>@AHMVc<_*#GMnrahF1 z5d63U5@J|})y=>)Ks$%&1h$2nvrQ$rDW3x*W`MW^eF_J#8vyEEJ_O=X5ip*>auLw3 zG;(ktJAoONas^!HI+HfSWtV&RzCr{P6rS)~B~K3=CQeR4>koc5kT?!-NL%jFa7tpL zknK1h{EMER9>BtL;n_l9@Gw^A5n^E}(++!(Rrm0J?FUPDl8|cJ`Iru~lu!KwO;4s4pM4|M zwdUkO-jl>;l03-9=Qr*BfqsX(_Sd6lZU+Ggx(trCz8j6`o0W^4s<&C0S&xnt93&J@ z-ccoeq&xWjx-ztv1JQI?Z(h!;@T;B3a@tp}gX!X0a@$9} zn`q`WcCL2b%*gr;g-6k9p&c8dy~pX=P6_(Ie+52){TjMEl+;}GWIz4hbu{1o{e8e8 zU`ualYJw9DxM-5~K44h{?d`u z>uyz4S@~AhGv|Wm|G~d0FsR2zfPn*IH!_i@Zcm^70Us}2O-+m2-@tjhsHg~7bpX2_=q#8g8V{t41P?4}^oT_Mn}@rFt71TLDuvFk(f`4n;+MU>E=+5$GVVgfvNq zQ=*|MP0X+r29^facM`g^AFUe)u3k_V|{%i>Bb=>x^FA0P-&&OYheM4@StHde^J#AZjcp4a>4S5dq|pf9ORZ&7iORk(bZn5bHbR zgvu!pRrAEXAf*fk!Zco$OYwohFq zKOyy|&rUq0@oW|hYYv)^$*J~pd_14iXpd|zxa>YQwkw^pEs@KZyxPk$Ja(L*p9Cnd zYl`CYLA=m#jr4kv2Rxkl?{6KxE}9EBCP=R5<)E9NS<}fReL$L6gN?-8G7Hdl6jI|_ z>>d^+q+X#KJN>+*65wzz#N)%caJeYu>z4CFQm%rg-y?2@c=u1esm-z?32)B!_ylk_ zpq-yTi#-#wU-)(n83vLH%v#1LCi3(18Rg?mZfAk(YDQKTWYpN5{XvF-5{|Oha$f#w zRtiG6w<#$wGd0*2M`cSE=m|n#9b8Lg$2c&xUs_%!zkC^_4X}5BO$aU(AraBs(h|SR zswP7e86jbBsk!3B&N8gXZ}Hq6gM%(G`U5DlxistU-MdG-D+@n=4gysOCZ&*72^1O_ zY+EG)`GX^F71&3JJq-P6?*{hhs|42oGW6`(GbmQtOnNOof*Z)tsYg9O;eG4mXgLNA z@}%rn9X}|y+gVyNIO3}Kv5-!F${gbEceQu__deBt9LoP?&m6TjW>HbNN>Yk4da7v= zjBcwAwuBQP?%fM{y~!ICO`51!)qWSt!v1%JW$G(%rXE*M9c_qUA_3jzIzXVgG{0i&?fT`eqBmbrlJMz9 zKW^@w)(K08nx8306-T@*g{o<|POct8b09A{Qrwt!q??z#ww(|aR8g^T>UOL@hesXv zyyUAiw` zC#r;a2ymhr8}BkbZOTQe3A@2yTEGIp8C%8yLL3w|uDS-k0Rsoq6GE%MTa~Hg%m}Fxb8(?C}OC6{fO>C3j%+fn-C_8QucoJk5nU%h6qMsL|T~@Un>>LzSQ9 zW}%XOXJOcdE>4ZpZsI7zPcQ_-9|@s3s!rs+2K7YEJyvfU8vt z&zLPE>&u$aFN23G`bk}JowsD>pVP+Y=6NpBnJk?14JwNkKgu_ESFI_fk5#xtkUSKu z(9VvIxaxCX)Ok2lCZ%)yEO-9@PkeD?IEQ4@X+JERqzt2R3bLQm>cyUISPf3@Zc+4U z`ysfaUDE#kCoU%TE5>NvIW46J_zXWow%>1Ed}nT}uFJxccQ5T$3=0NnV!u%^RyR80 zpD|yhq9rY@BOrcz>Fr7S(7mjcZX*|L3i_%Pn;DHb4hmwwm~q8|pEDcC|7b}yYN9*l z3p9(3;0OmA!ZGN+fMyJltYDqsd~IuME4!D{hDV33aIL8Wrd@yn6r}ly(YS5>2;Nj) z{tBQ4+&ge47+2{|!gxH^If2_+9fCW7_=q+QL^fyVogtVDE32y)DAh4tf$onCSAe9X z;|Iwt(!Rk!#mCHSY|%2NLdi4i()};~*WGcm0ojzNn-96tq}LVs#?_VNw#7%BXmZ4( z65F5N)Ms2C2#Ze)j9z-5TE|s^7lU{0@$}cZodUM-9^W2!H0<$NJb%*nxlD}YPMcbk^> z88cyId_4J;E4(JHuc|%T!PXFlt~vl;ZSI((!gGsdZ;|p^58@)=;-)CF?gPE@VAm*Q+L`pwQ8nd;jb4hmPcw*z-u7uI;y+PY${a(NDU%w7Q>E{p?+i zal99H@qgWvxP5VG&;f$XD?#lcw@H8s$nhH!Nm0xw1`J8n1QpWg>x;n99sB@b;qr>(91Ek)D^=&^th!wwDlB<{uO_4PV1 zPXdbbmYYzqCJLbhqWI8EY4YtyU*JLO_h&Eq{f2)9qOU)|DuT6@!teMK02E3}N|d=~ zuG)OCKh$_oD}wANC@>KHGyKQ{jmDGNdjP~BV2daQ6lst=T*HqxHfuI39q3kk-EQjO z=~)9uEekV*MH}q=cuPVWtj6q|^e0@(`TYN0LeHPd6hr3cnOfC8pV7+`pX%|<#D@f* z7V^XKN@w2PoZF!75+GA~CZ`ZNt;Bu8@~UmEEAOMd_pm^kSI6VV!=EzqY%#ieN2#?w zS)|cINxb|IRMt(}xHaqGxKz#N#xHCq-Og|*Q@3usL)5{7%QIr%sjnW(pQUToW~5z| z+xZ9x&^DM!kDW}ts#MfyqC9`yawf^+q@U-ZHmx=GDzv(j4NiYlPmZzT)4#dS@7XA>3sEt`FU&%^y=>s>|s*C z#kz6n!qw0#)UCjq(7XjP4wy+zM#bLq^YLn`sz7Yi8M9(jOtUB(1!jb_wDg>EZ3Y-e z18N2rx34(?RP&Jk08SMMu&X2KfZ5_51atgjYW#mpj2Zjo75^Bi^qWk#2>As1`yfcV zQKKja_2o%mApZKk$){d+iACYpe@%Ck(yww^^nm{c2{G|b%n=!wet_O2Cs=%gppRc> zlD((}M1*Lm=>|G;?md4ePT(5@4lG%5yOdk4S;<)HMe_^FeyhDmx5z_>$^FsFYmnr4xmDcNbM*-DJi=* z->InQ-nC)XfjzW8uIpW07V+ycmJf8)&uhCpNK=Z|3S?q#L{k+PyClAO`LZPSd2uiO zOBivI7$YUbCWXBvyr!;7QhTzcjvMZ$m5(nh6~*8))ps9>yd6(W^z3B_@ZRp&c+oV$ zV>20FQpcSCYx{15VpiXfZgrRynm1O8%l@^eqcg4`j(*jYt(*?l#?R~bheW_}ll4)! z=JCU8EFSUwDadHcnBz|CBP{%ujZx25ladL{_&K_;a};4z{GBahr7>3qON$Ly6f1gL z1i5}Oab75RJ{fjgsQ6iBFe~uh^*eEL+yXvb^5M$_SR_|*4L^D@j}8isy>ggVYA(;t zCIuJf#|_WV7lMOc2fIf1f}2&8E}L=k`#sj4`hcm1tZRQ?C=BwzX|jxD5BHv8o%wc` zp9hKRft#nghG&@7$H(_a#uShD0)A;5T=cjOi?MV>_pW4*|E0JOgiYHQ(0rqae*BP_ zpYkx(vUkY+%BOlm-xI8p^*!?oG?XRxn}_@G>-`i3|KN+P{St)mp_Wjr8Vdi}ELz~PtSu~502m0UBIr&yz}+&_#+KHGUQGhp{Imta`Y+ zVBiVV6%RPI;pi6E?FA=*jTLYMgtPTzR7e~w3@;H8IYM0qiiDE|(bMA6(!P~lXsE$j z1Hh=?57=wDU~>cmRpdo*a2)Kiu2WuE$jVS*J-kqO0@U4q{rX3G9W2xk514g8z{B$W zJ1^4tV}&wghg}~i5V@V5rXpC$V*6485@lhgS{W*BPjq+dRwOUX@G0b|s(W^8soFgu zw0B0coIk93zz;u+Py9D8&K-k0n47!{UL_F9`#)%L77teexem~O15n3+$)S=7ELQ81xM19^Zdl00QdUhMz&= zBMlybNlC2XK-}hc`$dBQcFjmnkK)D7YMg+BGY&p}L1*W@FnoSj>1kB4G-Fsx@3O$> z80A|-L7ba*|J=OVJQ4bD+0{?a{vklzGhn?6j|amC7bnyosJAeDflCRk@smDhAD>g$ zaG*`C2D3lk*w`zyKfo*+#ZamB;HG^K=rat~L}8W!vlghdKp)~GaUb3(IPvEwF`-O$ zp;H9_dU#|6C_gs+*~%bZc^Mu~dURP48YCvB`{VaBftv!ir6(Bq0SN|VE%a22=Bv@czj*@^G*-XHqe*5++a^d2| z($x|a`x!XFlnA&J>U-@D07-`|tQp3R9>7qdxN&!%z%N>pAb-*@TS*^rI*OH@!LAHop=l!SR!`_jkef(Pw?^-|f}H@VVhTc5ZeG$e^}gv65!LMeyDGBZ3li(&6O4@7zO?S+!cR7O$S6C zlmHX$^VpamBV*8ld$F;(lvJRmp^mnjTV;F zVbuaX6o z6|MynUg!himHYu`o{%}{ASYAB{a}MY^VQDR2W_7(+PQX}&R4W|!95)dDpVk~jUJ*4 zHNlVoNc5mShnwEv$Nf0t>o;z|me%Cb4PI%rjtk+t@<2G*-P?=3PX|6#`~XwH>i`U! zh2PP=`x)bH5=?8rZL4*BdQ*ii7h3T_i`!IYkjYY8wfcqMEo6OoseQ~67CuK|d!7+I{;ecclm_8L zAqVb5Gkwdxh7pfWU@t;_33);Hu3xsc%fBm=aPSx$OylDCL4q&hb!d3_r%;vQMhp-) zsy;E8mAm5$#oa#R@BG_J7jv#$zWg2ZtT2oQ+6`!Ae0_a^eU}-zCoe0DN@8jJ@+DI- zMZdA*UN_}mip4*e*kf5HqZjy)kf`|lIXW;}VoX_lrhqHd($X^YW4Whv#S$kKvd33E zurCa-?8pCGNZ>OQm+R~)mi<#m9*xWPZJ-kO7kMze*?s$b&KIa%sR)MeB?Jc%OZ%a6 zM_b4j{XA0@krFyaYhzM;h#jUC8O=9re{_0D#bvWTuswP6MF1OKP_~GBJYd%FuF~3R z?#U(R_nKc1>=0|BxcP>z>-|2PQ7Y~mQUe+S#v+q%VoaAEtt6W4$2gFGcUVUzaCrAY_rmONGW7E} z{wmYwjd(U0YDd7arC%~&S;DzaJD-h-iAm{7?m)mnz`;SlGP=C-YpJ{;vM{OI2E*Ir zJ5qj=hFr_?Qs=sBs<=4#4@pTg`S`fH+hsqj1f4lf!1E{;EEA-5Ckqah%O|{yIAf3w zB+f>f76$}YcGKvnG<4n}ro(08vyVZB&uwNl<)=`)_%p=(80~dGCx(2v_|?Shqh#j0 z)#r&=aZ3bS9Gs;ke#<+>|40EnL~F(9iy0lpvH35~`??xSg?pHr#7Q@Yr?~wd=U=&T z_L*|$x>1NTt?$Um{>J;r6_AM-B`icHJP6k!w*Jwvh-7^nlm9~Rqhaz}!3yiK!_JXy^X?>_kA{&b z4ZJ#}E(~BMFTmk9Vp9;{2wsfgbDA;v0g$AcjP~{S^|G55417YFx`*=BOu|8?1tCcpl2K-1($( z0Z3-|7^2iP{y)0j0xHTb>K`3Skr0#yDG`wFkQN1$ZjeSA1*BmB0SSXv8Y$_P?h=s( zX=$Y!>4v-U{l0tu_pWu9F4im*X6BjmoU`}-Rbba{onlsAbPjXNOa6o&^8iU-GN;7f z58LOQrQWD0DKK=RA!M{4{8=Z<;mI@d%~`{^ySMeu19MIECo9wZEiTp6!2|P3%ZoN+(>T$;Yc4kURo=?&F#U$8 zImk#D9(%LlIPln=U}5-;SfW-fmn_Ho+)d(lKO3c4>p$mc?BcHF$4S@+>#5#Wpeit7 zK%mFUJbz(-?HZ}1>|M*I6N{@0m&zz>ZEda3fs$$w3cAczwD!3yqw>-g&%8=0nRg}x)JrP!&=9_g>* ze2n;)D8m}PUm3b|ipq7fUWkKlu)AAvRpqtfm0u4r@iR?Xi>=2VzHIwn0#}JQ zOFE3P=QBrzN8vq!g~9IQkO!6VdW0t=FpZ9qrEjx$t`BGYsKMO*qWr1h8Dq9gx^NfO zg_l8)tC-`q6RM;S@!=GHtv%sPU#{?5v%!ZG`dIIWFaIZi89q9V>vVS6DvD+Su}uhAgq`J-dB+x*XBM=_j3Cvn|mRFUjV1eP~}+*$mcA#*1VU1~`xe zZXgtA>Zclvl}`hG=Y;l4s8R^zSInJz_Wc?hmu|Ljf(E4QPDf{FXJ4Nkm@q^wUAYf| zQz1DKk%qzx))o>&&p-3?yij_@3kTpn#D@~pab+L_N;mI=F^h7S>8y9!ner(2F*aJU z`}p=3Yo*a7V$yfL3(wNdDMU+4g7owg=N$qPB^k6jZ>Zhj5Aq-oTfbp*JQvXvhfr3% zV=$U`vb2h|+HTn(1uou-&4kURP1$eCwr1&%4^J}v z91K;XHj=kO)Qxp_>P=h*A$8PU-SA5=LiQsDUF|sJe+@Pm|Nb!gL+2*D{4dHKZ|Wj9 zo0q47c$G2T#Jrm+rg>?8YF5zAz(EaTXwnwKzDr26x$4=V`OruLG0@0f8)`R%ELJu= zfW{n*dFEzkUk&!|a7L@gs(Ou}ec?b25Ji}2OXox~5#FTQe2GL>)Ys2-u`i`h@7g#V?h5j|Od-Jn8VZwU^wPu^~Y(-mzoF6yg|P+6pd z-ct5~e-tm)(82<-sxSF|=K3CMr^ifv0`sS_7axXjJt-=z=d_AGB)P zNh~alk!GE7qUX`NvpXH?XL2DTxU!Xo`&zI6<;7~x`^q5dcQl^ve;+qZ8rFMjb6KDI ziqt<8nReMe33*>By(PFTvXn^k1{;Nm8 z5!*#i>E^RCm$mYH2*FdDycg@#iZg8QwHsE}{qhH}YvY30d@jqkl=On9t2~AZt5j-d zFBEIA5iKrvZWl?PRm_L_85>QgaKGJ0D?pf1}^|c%}T-$Lm49VgvKWV>^bhmZGB)K^?ieNlSD8cJPQ6 z?0-}Q(=7~M#P34{i5b=le{T*0G2a>n2D1y$r2^|{*x|}6r~>B{OlwCAbS=EvfRF?f z5eRTwgQgt3jKMuJI^n;`)*uXwV6>x}H~ir`0RaKnDcvC_7lIMLT)Rwo=)Y!av;oDGXtGKzzPVTH? zo2iq=REHGX{?_s0?ZKU~Mp4_19fit5M(QcYo$=}k_c3yOpHC${I{Y?6-`REo4*o!> z+(|&tisN>s|31r0wsU0v+CJFPybBGz(nmm~Ny-80w7OUmkStP!+*=4?>1|Q$Irz8KUp%a=jd04Dcmrd1Qpdt zC3HOi$=ksB0~HEu*Hwsa(mC(H-Z7VbpV6mKVMS{E@KR{9zs<2HB?)&uO3{G~ac_YL z{(eBC%I16jtoph8pW*yTxC4|OCjGyL=RK?T6F6tPHkgC4YGy&8B;I}|_@zK%CBb{W zS}g^l2@k20iCi;f!e@kSl6Aco7AX>fE;Bs%SX^fd=_+@zGNmi<_MJSqQfLuQ`*xhU z`q*zBR*lOU9G`1$HaQFXeWq*-UcIj@^lHjb*e)}4i}d!$Psi~K|E;h@3`BWzY-|)u z^kh6bEfRY6yBj0=f_VzIdh0!suFl3ps_glOX20cGBwttc=0)b2hkn6ihrqjiPrLk z2q1z!3dElI#VJ9|c+up+z+(ONEs^Ze#!U(HY}Pz$U-Cxl{LS z^>=fw2pL&hyQwO}jMFX&KGltQlHN=EMFGR1acdR#y|4zZS0}a~6^bm1nclh?>tz`{ zH(B1<1bY|fRYGcN$i@1{Hsxs0)?=Cha|oChWCB-)YZLS&FqJa$YJ*`IOdooZL{FiC z$7%5d^;&cS99uk4Z|tv)Zp}1`)6zbiY}hKOoF)e#20nD~EE9(5O7T$5*RQX@bNZT} zF$_mR@o`1;5^MoJ0Nk91Km>&W6Nt<2Ja9;^r3_Nm%B4{_*8?7)uNSK_soe%6l$60y>Ztr?H?yxV_ryEdV~1gDlv0|@=+&t zij-IU5eMbpZ(lVP!e$i2-8oF2YcG>b3FW`eu#m$Wb#LQPf7NDBsdGy*zV?CAGU?9e zTDkS=#|0f{-t{$mm^-KWa<#PqQcJQQQrNIfiZ|zG)HH0XVOB)6Zr z#>8~Kc zh-GAU0Cy2ex0KXMCHBDJezoiIWFGHU;CA!a=Y$ya7?S&ctWAuU4Y~Vekfk~$=HRS# zqZZC9rnN$|$$Dfl>jX^Zz!4up$92K|-NPfO4NUMMb*C6)R|rAp)ktt%R}Q!7H~@?c z6%`c#X;9iWdSAYlBmN6+JLRx%!eBx~M32?w0*(scml=RpXXqT<6T>h;0+{;4RirJP zD%x6FqX2L6adD}z&RiQ9Seb!twW zL0Ids+L8f{dE@>iEe&R}^A5+byMskMa3;{Nq<&y^&P9p?w|#{zGjmKASmT>=$3Y}0 z@G%jgb8ri?C@Cq0&M}t`S)iaiXHsJD=fp97On?0y(fh~WIB~kTxdXbVn|pf=px%u< zz`8Dz@hK=*g&^6S?fmoSg(+m&#?Kt9Q7YPp&Frm?x?2j`hLNx9U)_PENkN$X=I7_b zY^|zFuz$Yd~^}i?pI6RPs`~XxL zbjoh-?i%KcI|d4v!(}jZLjYbzQk1LCy!|fVsCNOhRRF0jffxYNlZABtrFsASRCuum zr%^%uT|1T!9`Wlj#-Qh|L~*} zTeU~pwb_LYfvw4I7EhbC*NE`am#PgladIIs$pk6++hUmLK1^dSL8uu5AVjvStUuVj$Y{PM>_9@e6p(izC2d5Rq8CMk8J>scd*SfFfu}c9-#b(tW2ZK}4?Ef3rqNO7#oPpFrSpN$L;Yvfbu zH+UYyr%rL}78hUyu+!V?Rog99)z(5b1|qwgDe0DfDuVDn!Z`mmPXEWUSTS-6T|=)b zFJt@Q^X2dKqfE5X9>aO)HG69q2+-C-Joe8rE49+Gms2x8Zu4ekWJJAI!bAxD|6(hI zr*&H9i`<3^e7iqyA^qY0K)@T~@`JYv{z@Zg^A6P=rt!c|NlTjp#`_hm2^glpP_NPD zzM6IYB)~#jW{&^KHJ`}e$M(Q+VNTRuK`$}W#mb`1-W5B@TWPNA7;}2XBM$L4eF8tmf)zs1{o}L)7XYyjQX-;=Pbh1;hvl z9{C>T!J%6L#%MNYN84BdSG72i$b2WqKG{Q37?3j|@Nf`j2y}$%ZN4D!w(pHQ-xFd# z`Vsmd=q0{4mmPi8XqSJoZMZv&p*kb31Q8~ifG+~P3HbB|Y>a@6XS9LmVt0Z-(Vl&d zIyo`13*@GNL_07rP#Rcz!%dGgV!V-sQpBqZoUdgN7HC8&+Z%3kjr z9$vY9xKklW1Fc5#$KXBv55B-$kaXFp{;1G&@pT>JCiHh%fd;n&`xCkm_|}+`JZ!U(hDm7KrG}6{Y%iQXwkzm1;i6nas27+aFGDj|P(%GW-KO@9v(cdHU@0W>mhR!RnO2#MU?q=N2M;wXG{vi=2m-_L zTqqwnbL{H4OdqUu?B~wrZFWDf&lwv~NM)(ub#cM>kU(pq9#s?Kf8|p&+3^v+Og9LW|S2khQd!m61Kj z{$eX}ATzOFo1GP9lG{CV=OE>JiRUlJ%q1VBX; zdPv1>+76i4)xINL#t-Qx5=?w?@_>8gRz0o(Y!PsAG3eobv711v0_S#tktl?CK)TOU zO-*71WZK8}RGf|hhm94w8R%eOd+dT!5mH{Dc07UudTk$Bd}`CW3&ui^*7u7cG6_iC zaJnYQGuT(Mz+=#@K<=^Z>y=IsDZnoQpgjKA$QlY77_U>8u6oS^9cL2BppyUP0>DV5 zv-^^eX|u68l6S%g{TssA=PN30B&WnX9u*u>7?tJ%73SxeIck zNLpvyP@U@N=>dxvjU07`PdRmkvw$4~>HK-^65!%Gm7O8M!QiEk2Z1n;@4_Ik3pzOt zgE~?wDua&yR;}XY5O4EVV z1eeRhzd6lp3EityC*z)mJP;ZFYWKTH5Qi;lJtGjMNT8B)>>A z(0KCUdKI&2*U4i8ufyRXdq1s%4Q6BOxeWxCe@qoh@{Jl^122NI%7?BbI2ghHbL)}J zTGyj$-%bw8ERJaZxs~GJY^;FSl$&W#z%Jyu_p92G1m*XS9^JQLR0MZj|}UM3Qg z=3l$TD6+PuFBXmr5}u4VEY4`f3fg}$Lz8&%{~*6{hc&PMNP_&<%}uaxH`#ONDaP*U z@$otMMqGI=_ouZ1_pF%_fWXv+{PAft75G@$K0ob{ zQXMc%6MT`0Ks*;wK;Oosg_V!MkPKqUd9R@xip&MP9N05J{5S(jlKQj-1~^ZEgWMH& z2TD0$Y?OkWCOQH9Zjit*e)kTucuE2MF^h_dw0p1iW{<1AS?ug@3yfpx;4%Pwy9i_` zj)PgSncoL@;qNH_rAQj7s}F$@NtS%vn}w_7EbDkU{w;ZD&5AXQ^ouZ4WoebVUiUEN zScRNYSa=Kf5FGUNBQ<(eOBLGRRN1lB=oJiJ2GQ3DQjhpQU`jyrZro~O3P5tXu5rCx@<&6b?IRF^|qv}$QQ*l&U) zlk!S&ck~E%c22m(?+@grf3Dw)Aparhr@~-tmcOC@AvhC${fvs)igu!=_WYOdVS^5v zdXrK=1qJ+CVokt=hG%9P-=F|0lo5L4w)2~_UdF|5-@d#I>7{YIUgbMvK=b)&UbQz{ z)TgH!n+LariDI3kGf_r8xvNC*(vK)3zvqpbNQYG>+0KneHQ?H;X|vUyr^L7Ty&8_S zI^VtAo0{OFAPKp#Wt_+d!+5U~+kq-Y(E{C9_>yljs9sXmdp}cF#wR0l|J{TF=yyVb zf!m*eE6xuqt9;&YO-=N6bHo7p!zW5ghkJXba_7q|pEUD8Ua<#8BWG`b!UCG@9=QSY zq^mXC+Hp|mf?c(|aXv#1J=O{`s<2|Wi6} z`J2C2{3*pC@~{k7WlNQ_Wv_nkV?%vYma5t>QUCn1Oh!{Py0+G%)npG@51wE1*nbUs z^rrJ}r0RqxCT`5n-(zAz#jgzyN<5T;2qox`Mr3}@$tft5@4b=16n(LoK9whUnR5uV zlD8lS0%9_16A*PkC`mz1j)ef@4v5s5IX^##QDr3vdcdR|(FDXSVDh{qQ*#GW$i?2E z642JI*X@Ut!2B&W`+hz!@Kkdmn={M9a>Yec43~+E?;W@zED6RX8OqN^e;V;7)xI(t zoqm)iqd9Rg#Q)F{<2qBu?Z9Hiyoq7eQL&FpRtr0S;DF-G+y|PtgAN7`6Xk-6V|66v}<(& z)I|PZa?(U|sukDsxc}-ojtK0X4U_NceUrhn_)&IMW=n2$^oL)RN?fq^l`+Rod~9`{ z7J+1W(;`RWz{AqFZ)G+L;T~5Owct-^RYXP(Ksj10*lo(q22u1tU7PLg16mt7P%J6z z>WoDf4Y|leqAi~T+YM6hb1dkYhS?uHa0iJOY>dzVL0Nc3=j!o+HWpZYhSd%M_}nl8 zzM2__YMxvnVP#>JO8@}gyc0T8ei+_iI+6J4|75{_zF{rf_v3YeNLRb8(Emw;&CZS_ z5>*DjT~8JG(D~#Bz%Q7PaQ%xyHW#d`ED< zqBr~FcZv0ZZwV}9`DB#eQ1rtnqM;`?7j#vphg;t38l&DoMEwKNi*IqrZc|VQn{`G) z!99*cD(v#|zv#Uo>-{UjjAfis_Q~KIwA3t&zFqQ=%s>OAKR!gc#l1$=ux?gi?@U0T zqekNUs-pNH=+IQ75age#bWE-Q=EC=y)+B0(->M0iWhevKN*lUzWfgvf!d`jE!_1B3_U#=YF&-ZsfvV*dbmP9~G<`J!Jtb2Iv~ z`8(d-^Kn$+jKb|W$|IynUYW7S^OA8p)YsSD-z9Zyh34}_N6u44R5BR!DW&`g;C-wn6 zR0A~=K=x}+H9!_OJ}$j4E$;{)p;Xe2_&`EucO0TekuC`v3f zw<*#MXOZP_1Vj)AnGD~l= z*<(f{jZT7-RG$|(*hg>|pJg2p7h}bX=nSzQyk>}u?2VV}F}S0JruiR1FSRW^I(l() z)3)BmZTKD|V^9GGjY4y4%+;u` z!4JTOtp>lMy2;B%9Dv_;JTUwWIkO5^TvRDbHcAxr#D}4=k)Y9oaHEdI%+~ zNFSPyK@rSWNhYGSk4{e^u#XD|4FO}{-u8C4GdoK!)mH6hQ*PYlQH$YKXVxwtZlm}p zX30IRADj!gkB4{2pIUIc$N&wYgm<`9DKi0Z`DAlc!REL0bhm%X5gu0_Q^c@pPnpUC?t-=g)<;vY@wr-_5JvklN6 zLHX2S3Y-)0>Tnxgd>olr7siTko&p~|YJF~-6%z{!*ftY2&MXLsFS=s#Pft%Hz5*5tY}@yuN?@5EdglQu z0{YLt+uQce&IM~4;tz8TCP;_*9DaB=CUCF#p*qtd?h|6+xmK1gakwFC7!B&DGaMP$ znxQb?*x1PO=5Kw;ZxW_;h3F5nuF=HZra?sNU?njT3ItS4i+^3m8Q-Bsm3X+0r7!aC z!_(KAKq11u+S9rT5HI9C1TZp(0i4(j3Jcb z?puWg+cy{`AL-bfnXGM0bX+EKZ7di2D`oZkcBjpMG(o-O>9M*u#?cU8?K-N7sB+!9 zIKs=abVf3@6?`~vJ?$I8X8guRX~lwRkSFkUn=vZDTnR@4`LmD zCUis`Axr8l$!wvF%*>OMSvzk`(KIN1J@|L2la@+LO1|4%qkh|O+1=4`Yt503CuZ{* z4&rcY#_nf|uiFDr(J8Qi1#iSUACxP1gZC^K19?E_+mz6sa0|IN#HElzmw>_ygYKya6 z!zWL<|8b)HS4WaWJywx7vZ;{qsLPNXRbzlExsTP5`R|td_eD7b{>d^bLFtMGc=9OG zD{TMAD4}HbYjT0FK@z^G8K@ZeFA{?)>+f$CKJ?|hI)IEYjWKC)IQ?mHT1s#pVYYDN zJR%J=#x#BwXh!zle?joQd}oL0XZ6m`1@2IjjL%R5h@~~;t;xWP-^aTAZ2-@7b&L%! z0x9|5J7u2x9!Ej%6`wH6+!uzS{PwY=EWHD(8?<-4wm+pQ1a$i2E z_Ax=;MQi+>ZlZl?@=f_U#|M_*2X3hVlkM4)WWbq)BY0y*bC0fdA@$TbG z`rf9ARJEs;)ZzZdY{x!bACAh@(DUZQt@0yk`^;JS|Kl}L|L<%1@L{hNg$F;>BqjY8 zueLwuHaCXAFwRE&p{nc>9Lx9=k|MC|w>h^F-Yl6!M^0*1kF z_oOBGiZT5X%Fs_8FS*GTuBG*x^2W($*1WE|y4rB*_vWv1TGiQo|KChq(r7Q#Q6GHd zYWqUTCWq57g#)^*0z;f42LeA3gcgMN+t5yF@FKbWKGmoBbxs>R#Y{CvbM-D7tK`6! z{>p4!v4X~iiHaGi>igjo?*qyIF3~77_{3Kcsi?Pt{db0i+2~o#(jz&Cxf7apg%S&O zGIMbNdf`tX!U}M{IK7wuhm01%cH0TbNsd8)2dG@r6Eek{svgqKMnNchWnA&{i0|FI zbz|~5=xz`1MydJ=B{b2|K5K6uJgs_yy*Gebz@95*5H3u&Apd@?{IE~RTB5(MsMj)@ z(;xraS60RdxLP+@xDpg_x}Io9zrsf7CY6v>Z{7^9vAG+tI+lVsu}mc==IPfOu*Yu(c=j`7L- zUsB(k9`YoNV@Va?l;WH}ynaT+I69p3H>_o(SHAxm9fq0`b-J5CQl23Vva%gsx!5~o zB0dJAW)-wKw(TRBWPHgnU)-aqPhP5=wY-Q#A!l;l3Fl!BjOe0QefasUF{$LcBSseE zr%$&mWSMTE-#ysMUc3Gu>6}&dKb3%}Bjj?hQ2D@0EDyo_5ucP?veTBF^--V0bo@o{ zVi!&_bG-{q*0D%E?{6+8=DagBcj_cf<(r-^U!{uDle8m$*y`qqmft@C(uCh z=bnTQEe`zgKXe{!*!{9L+4$={UEF7$p*#ZEd_;EmsaTACQE6N4JZ>RmeeeU7L99SC zG=?ViZ>5GEwb9_vs-IqMP3L=t(ur@JZP7dL1-B>QIiD8%H>fh1CxIalY}~-PK9A zNxD<|)qIyQ{HEJG9@IBC?bi9J=CCt!lMqfT)G|grWy)afdZnt!{)s|CTDCbYRc<<@ zwoaFTL3s2fHyVQ89|52?nKbjKwKAQD_=2I1%HuhFI-w@zNIzMtHhfj}^zFYd^hU!- z|GV$}la%+FeV|U0e;k|zlgHI)o zQT_^^HS*K!#~p7mv6Y`r=xI18z8JC+Zm%v!H10+qD`S7P+n6oBCyP6a(QDyXE|*-E zt#v!NgUB}^pUAa&fpB}FE+3LqNN%=^5hb52WsYBRjA}QM!9WtA4C=inSzJU`xI$@( z_4>9hRP?_U&>#NhBWFVhKFHbG#bQzs7W!pjvCv*_tsfyxcZ<+PwzR{NGwudTb2n&r z)|_;-v|`TAJSE>vDi-!z?<4E`EhA;`nSXj(G~7ir{5O^0e>UdaBAEUsMnqJ*Y@B3g z7xwqpgF#&ngja%EZFRhS4Vsu>F!37>-jV2$!XWq4N*fnUR59^(4^=9ax7@kSiTDwO z;5ITlCUduNxg^?_CHx!kd#E=}iuiMK)K<;s@drbbIik`8bqBKu(0!H02PZG?2}(UQzT1A|>usZZ40N@w+sV@kQ+i%QMh(}c zkbe0n6XEp{aUDWTsEJka+TDyM;s~Ecr8`7Lfn_#yni7{4POb30*wW>!ctNXjd>>*= z@-@1p&FN6l>Y{R`-%3Sw77waszfZR(iyf~-9gg$jl-yy(=e-&H(LLCPs;ktoi(2Mz z1I=ebz^=;O4U9ujn(*YJQ8Ch*l{c~otb%yQp2ZP`9WQuauJu>iDVLh_aaH368e{G5 z_9cn*H;oD$Llll~#gMY#1#5dx&+ax?0){Wwu1KGnEH+&Nzn<&eQV+QbU!Ja#Ykm>N z?;hK{x>(ce-=mdnX5BQfEc&SGi=~e5hC-_O?Y87QJqEt`Zf>S5&Af7<`pUPp{&Q}= zuJ+Ca;@dnv9hQWad`@Njals;ndFLtkxi^rBn?W6)3Jt4q5NeHa&ra&eKJ^QFAGp?5 z+L>rq*l7RS+gcp@?ve3t+f%ANA&|&QPnVWCEOhI3?8BfIa!RkzR4;WXtEnnG1=u!S zy3c|0*fu-HBP0nGMZ&@NBuQtYc|zfb*m|J{FPmsaN_JGO;|rxxR6njqX#`;&%tWCj zj2YjhRbqeV3b%hnMVQ!e(8nb(E#+&JA@C8}SiwC>Ng zr%Bs8Qu1p0gyXVeFmZhZ#hRm>fw;QZ;z#XZ}|>st+nCsyW%OJ~25#DL)tB@c@avK$KI5@y=C}dtsx_@bPtMs5wzr|b zn4(6|qB*o*iL=>EL)|Eq{PmAz3d!7-p_HxM^RU8hFWX*j>$^L#Yu z{Zn_0KVs8{GS1fX^M5x(>qRn((U7Q3hc_%L3>&@Nj$Yu<_7#oqsg|acuEcFy9a7W^ z_H2w5R3~5~%zV~I2WE5|8LL!5;zP&5%fr;y8@~H6YT1(p& ziIrjl53g?C>6y_Pz|K+fCob)dTdtU9H{Lg%{uVzC?e$D`OixxSRJ`|%E z)$pQ{VSyz51#bk4fc(ZJZOzlBfZ%+q>vKh>i@c7GN$1aFl$Bf)0yf;|q9iQZtdFt8 zg^80JEB>x)C}qr=8#MdU_M<2=ZyyzVkWmyexZ?e_+E@|d`SY#6%qi4Z6)Pyy8H;kN z#(kLB#G`7nsE8RsM+-$rm%Y zT#LVcxVd1yM4GGfQ+D6|V0G6#ZLP-ySX0Bxd*%UtykEky1~g8<@+wgB)7TTr#O@A8 z#YsiaS1f-E)^aO~Ch}0;udW@7n|=T%L4}&)w_Qi(8vy{ zdDTcnd%1I^@ub)CSQOVO$wsay>*ZFYPMZb;a2geO*e^FPBZjFZwAR-<2)evan8Y~_ z%PZgFk#VVtRCzD;W{CH&sphrRK7K7S$Ff#aderhZ*o$QUf4Kmm)DP~)u()jfVu*M} z_ak)Ua(r!eJIJC}u)6B3!gQO&v0=&m^=LHPWuh=1LX1juHAE#%lS3c5F^~Z_QJa^D zRH3pwl5z21e{DwbT;15>aCen2R8cWQ$(qMPJLX9jIqRo3YBAoe2|K>{FAP0?S=~pu zzC~Ll$Krf@yS2c5|5NXw6Ik*3^3&xJzjdV3uJj}E#wG>@ysfF-!TdP)2i0~5Yp2hh z_S)^Ybg9PS=P-C}KfhZ3*^hR;;*QWuUh>PseJu;cJFX56Nq<+=xpoZpyErJciatK6 zx_RpswfBQZI)C1_tubQ3;4x{MYBOmQVZ@Kk+J&mD`Hk$Y3(qZtB<3Sbd|Axv=pRlk z!)GtiWHGm2#k{xY#lWJs8-M3Pdi#Dg#(jx;tP~#VbZ-&lkVc-CZ?lnh?ek;bM%M*% zi^Em%-vx(11Rn?oal}Q;O&k6_2QSbv^Nr!InAd04KN9EXUH&BQ3DpZu?BOvUkaMPV zVRN81rMo`=g4{>0>^CDg*LJO@fTK$?ox{zuw6qZQ`Xik>_QiCCbMKc{#Ls-GAh>d2 z>k|{F8NSiFxYt^!8;e5EP4bQ^`*!OuQwjge8jds5O@7BrrwrHz->MSME!4XsDbK!j^*?@hGkEe)3b zaJ6Jp7FsMi2QC@n_e2`wQj#FaaQ2@B+GgFt8RS;cxiWX(5L%n+4mM*zxy_$Hd=<`=Zc=}>cxA`sbj@epbASGv(S>ow@uOU;l1tzJo8qo}w%9B7 zn#;76dPCE8qssa;@tY17ms#M@wbALF>ive99%Edr(Jp%F6vF#T&aUp$td4)fh1@#k zRde*r+lZgoouhuEqum<4OgP^r8Kkm63C;<}B>$1_==i0XRyIns-jQ}tImLXB{CeE< zRL}Z`&HcJv8m{`HtWL9%zhiG$RBm<3R7iWC@x5EndMrL>iZIV*mhQ9=I5Um zF->#XeqUtZ{P?W?UV=g2bG4h>lJeSk#avGAu0@n^&|kV-ykX*LFyQoXiO|7CEGZ@G z?akp`>eiecHoAZ}#jgNy-7pT-yvxb5{9fc_Iq^w2T&k=XSDQusvJzldE-^dIMEi<|0? zTyxRaeuzT!F#W^*H|k8Zq`7@;mJ{(sa-m3OThW`l-3A~tk>dMth?ikhwC>} z&KcLm$(UsKg{Xq-b6JhRryLt|IOef+KrQ07ut-h+bo}g`9AP=p&~hGjj*EEy z7AJA%cUf#GrTE!S-YJ#)&~XmY;)2&+GDhY8dbLZNU6O&pZc@UO5QF)e?<0=x%h5&y zWNN$769vVKlOXyoftNa!j-&6k=j>Yd$PkD!_FfH*V2C{b*`itlb@I$PmS%j|3GJ`yKF59sXc_;bi0W%6|%U9=nA9Ft}t~f~`p;=fy=E z)gZ|{i^(^gGQl#}qJjBy2kX`8jftqhYL5z=7o){$`l0#hzt}l;GEaBHb>EGd4v-L* zSr1BAQw-OX&#~!8B*x|J?(J>wpS#ZmetQ4@opwvazpBvInNVWp-K0aBMzq4mAwFKW z{@7HMnirnqn@Nfr(UV*!QO)O>F1E?(9I^u>OcT0CZs#I4or7MreH7#`<~-XnoXEDj z=CVxaTExi(&h}}~saMCXlyrUsNS@;9_)<~L%s963oFgB*c_>)V5F-MmWPa>#uByFQ zIgG6+5Tg?Jv|c)RujLSCwj|o0H6e#~dS*Af+}rGXDU8gGrnESy3*j1J=cFlg9Swbm zlBbj`@N__z?t0ie+XsvlhfxDNYVH{91O!u-w3*Tbiy4C-W=lSipc|R!$e=c@>%Zk7 zin%DzJ&pXLx`4_Sbsd!k;R#yyybUDz!@@ZuQme)%JMG${5D8irMyFq0MQ*MfM{lw;*D)KwNBG zJYg?LCVF|aS^IX5%I+4?!rGSi;oizyZ`X~lLz()gwVU2ekFtU&xy$;RP_DadXjbG6 z$CE7f;N8S6s4*H6H}BbW(;Z!|;Hp1qOOhACLNwE+zPXQ%ek~yIEziU3mGtsEYJcX| zT({Ss<+Tpj{iKn}IPkB{#Gw{u7rf^*?|*|aj6o>u@aKxB=lKx1f~8wkWms5Of6d{h z<6+s#1qwW^$!beZnA_1$8L_1D+UW@Y`t{qJv+R+A zusb5lq$2x&WRUx7TMHZYr=vEvA|miEYyze8HinBDO^AAa(LM^J62n1w-w|?Ksz1zR zV4TPw!M5l{4@7?(_;z%meYl}LVHW$5?F0JOR>bcG8$;L8uC}bI>~?nvMPO{6t!0p4 z?d~+5tq(p66C2Q?mX7RP)v;q_!2PpszW(Hc#Dkci^hAt>Esrn)RkOo}^FOEjsGMA-jq4`oxS8>e zUqRl&j*Wnoe&lZbXQ!Ni++m)?>$pc=+w#$u3ArI*4SICQx5I0M2*ibm%j}=37wQtp zBFH-3t)%_etAW2KJ?Gp;=;@Iz1|dHmq}np)&*Bbp&`9L?^gfXjcHH@XqA`PtxO=#l zyHQIccu&2EL*4c|#`RHk!fy1_XJ=@rot?6IH~(A5+ZO|7$qlCm`Ymr28@4XIyOEk5 zIh0DBjk8aOBj~2Oo+z;}F}*e&NbJ;40H-DGZ@Oh}r=@){o_{a0w(3OZRxB8%9qp#V z*7@<>Q=5G-bwZ@^(aUA$HF;tlEG_@pcyXVNKblfabD=hVNBva)Z_6l)_xRTao70;gO?e23 zg{}!3e0UbaQE98IK#`o}b-K8;IKMD|k4nf1?r@U6L{aDU9^D{(~wn3rk&xMQ(TH~mTAj!Pl@RtJ#)Sk<8YlrP~VKWchenti3w8_Q%YZL{Q z5ng_?NLQ~a-K-*|L@yINPkEn9$KrY?YYj~)3iRs0u-}w@9cVt9uM5jxwmI&g&~)}O zPEM$qu6s(cMLEz7WW}pX-6%49O_{u}7V6j_A)cwgf)La)`rB{mSx%lPi-C~6z2P9? z%ViKjEq&q^6ioSf+sEYMiv-c$zLCXvR8}Rm4rjj7`_>xzm7Vm1f-jzR2k92Bn0u!@ zO4RA4GCIW1E*{X&1>HDE{`FQmph(bp+u>sWV*^xLBBgW08H2My4898>v#`x2+FAtV( zH-4m6UF9m=&z6aMu-_gN7G*Hmzrb&3UQSfZuhZ9r{Olu{V{1^A9+P&fE%9(XLDHa< zudPP{{b6qE2Y2&z?U>L$_8a9T9%xEm6(zrYyM{w?Fu%(&WcD{IIG8p~MquY@qExwU z{j#@QDG$%3-9agpP@<#KQllWXZ}DZp@pJ~50kr>wEl26hem*KI*>;S%MrNjA-=W4l zfb7Eu2%9S#dLD(Z68+LTD2wuVb@euEbhbL-1zO zsLbPwPdYzMesVT9xgu`3HJ#Sy;|sfAq{H@`flu}9GKDKriccQx{#-%z^W(_MblDui zMGUB^=}*hirRfln5OtK`Ams7KT`avf_mT-E2(F+Gb!Rny%%0w3)N=}txuVFZ!xy(Q zZ=;vqLy>4CHYTIb$h#0}T>rJ=Z1L%H8+G-^QWn0swNDn6S?RFT*(_MtMd}&x7KwRX zj7FASG9>MdWVcm>jJ%tj59PYfUC62^QoXs}%9q74Nql>VK0W@3^;;V@qJlmvk>#iE zg3xg6K^RWZ!LI)6+3qkB)#)&CzD(a6fL)GS^NfZM`I7!6Y?2xf3EV4DTuYPZmGT7@W7ClkjKZ}&%>rB zcEsfP2O`mB13Us37!XHnd|k}D#wrH`2`l=~k#Dc#J}Y-_5)jWIj5^|zKEXjCEKwp6 zrVxK%ey2{;+vt$w-Vr6R3k^~1_!g!)Ht+QL{&em~x@2lmbW7Tsl`dhH^`5d~Qv z5B7Ujz3EQky4-4Y8=qXzHhUHIiciy+=sScx{hT6FnRS^eUEE`HC`_N8sI`TTiv8|0 zVMOlb6yQ1$3}8kfl@5bn){6WQXw#3`b9et{CrURlQsSXT#$!kJ8`}?(@kvXA^1<^g$=Uz*Shfy|Q|5MX)s*lxROw=MfhmL6nqo_njXzBKFot#RYlOX~gjmdl(oj z#FwM?WhOUn2v=Op3--b$&aBjFL$gHRn(^*F=R+gJ{XAZsg12uKm#oTVUyDuuG5!<5 zMyD%Pc@r0#C+^O9a>2pDPxHL7mt1k((rLw$+P3_0^3rP0p1H^MYa7_I3Xpdxn5XS@ zSu%65*sW$weEonE=#xTYM@^kD9RIcPq*dz_kILb}{y?gi2MW!~S#@_;3?*LcO|lxV zuIP5ne&(p$%ipvzz;`=bN|vqMtGQD>PV#^@#AGt@6Mx~wO@u1D-V-rb+vR00#4Dr2 zLO+iKgoLG=+l(*Th}UiiYu9mgHA!F6+GM$|no``=Hal-VFGd7`FrC)r*47(=5E-hG zi*)M@VAxIizX&_as4CYkTrWaEB^8iPMMOf7Zlt88JER3^5NX6h8l+oFkdp3Dx?7|{ zQo4~obGi5a&KT#<*~1@Oz{ML+%xBJf-d8Dh<|{{-4@&!+7>J`6Ruy+y=8q{)-QTLFce|k?)L643H=0Voi@V`LqxfmVhjej47sU4F3az<} zyVJ~5^c6~~>OUdMUskULr+a#3xo(u6>>nrP#8e2s)VyrpwpN@F&pbIPa8Nog7O-7Y zd{yMZU*=(=#SDd27+ zZTaGZHTOf`4;vGT&u5}JRvK(i(F&}yW~OLQ3J&wTBi4TpkDEPDXy0>Cbs=J#rAa#M zns^_7NBa&I)2HwYD*RX(?A_vI)Liv)Qb}b5K1yt=O0H0yr=O>ba6Qu&VxTGI)xxJ9 z(Fvki3a09k$f)Qfp#zH_i`a}!b>f|Q zN4dspmx#ow<({FO_s{QWiXx&EN7FyXu>A}ePCEBcl$x{hiFJ>AUEDY;ei^&7tJ=q^ zxBL5GGxssCeOMO-UteEO@JvO6&FPD$EOfT(Pk0*9IHf92NDt$ROj4%)wCr>f#>iS^ z9=8U(nK=}x={GxSjelm-s+64Q!gs!PG(}EIWX3_3;=QxTe)BFr9=_z!j@yLAawYPW@^E0+dG8$8#AFBanO=4&`O3}kWTig+#C;3X+WJf~(o{ldCT z`M~*Sv667T#lrSCda3%ett%rT$~kIwUWdmCY;|AFrtoN=&P@vor+A$!h#6dX>|H2n zUn%nXtk@(KisCzTSJCre%%Vc6N}yKqI^t)!o9gb{z4^_=47F|V3J-Mmw(C%~A`?cXx^Q!HWYt{K(K7?5(kN^`u%Yms*mq32RLsCT8Ddn1`*C~kAbduWomD4}w)@aOa%{cTpJzG#_&#~T_wmx+=p>e1Mk%_+d2>78$2ah($pad19h$klKmgw2RqoB@Sl#v*cN`S$f}<8B~?k@tGV3i zjfPDoq;G0!!^?xB(u|+R<#4Y0;XODWr;rtqmKL^cud#ffW2W8P)q#5rH>d6! zCxYbKb#<$#(83fGxo|POMhNZ`Q{I~R-j?CcRo5n!=t47eoH#sbbhk=3V4=-r=(nS7t&-`tkz=0?F*qS!2Lh_EAx!1h4 zQ0JWjWf`3$9eh(;CXPk&jKg%63pC2#4-utX!wyXaHa=ctY1vda(ySAlXacB5tV1$2q->6P3mm`fQd?rc7*UaZt(8k9|%zC^(Vb*oG8CU&8_-JLwdZd_0 z)*APYtFYVtO9hnu=o!}^qnx(Bh;F5AreB(cZ}+W8OD@OWcHQ)LVtu7Y8MO{+t~D`2lH%?f&0_&ZCuiD~||U{M-47Y&AhAi>5ch z!*|yec2T}a*M`k%e@3S<^Rj20I<2Pf+R?*N(sq3ob*@=7lJNgp0b37JlRRUsO4pZ? zeHNw&O@T-BboO|7usOHe9Mp`j_T;dV7C|$Wfe(ge487(l-Q5g_%36tBj2_5=1Pjn3 z`riqyJpZGj`a;1`t~or;iT?u}PpzqVfBHHYV?SHDr)qgO55 z4zqeaOa7o*VK}@&DK|zuT*_D8R7+QNw88rfL$Gr8=`;2#er+647-~A#eMc&4KFvlZ z#xcGz|AH38ROCzUG$4H!v(31vw#h%JYaImj!W+w)~!51$0pV$ypK{XYM58XEECVmtG` zPjT}+mDRs!ay{p+!0Dryxuf_EBiHN%>%T%1PN&Twzt>?)ezdntRhuYN0{Klx4Gi}& zbnJ)SHLgA}_YHE8z-<)W7p)AJUy5hpO=OSkH#aZ8@lCIhq%)po8w*ugH>OaOa(TA( zInA=H`_)yQnjBPGd7|w4PYoK6$h2oxh?$hj%;xc4iM>jrL6lU?BC^!j4RK;WIeyj4 z!Phy?h)8FbZV{D0U*JxN>f%_wk(OaIRp*dGP5Y*j&+404dw!6PJ^nB6$T<+_@X-Qa zYO}Ky{{Dr6wtcfUUTzuZ5h0d8LL)cIDWnm-G=`HNTsj2Y>1ZDKUPVP{brVaJ$`sQ) zSir*OWK#e1ZFX(`z6|%ru}OaZ&QvyxR|%ag?ft6D(A_PqUEC3II~}JgDA?=wU%M69 zBI7^mGFs5S(YsZqGxcY#P$&OI)x?5RCDEVj)AfFuq&#uotQNURc@h3Jmgr@embF)= z6v|dePAlnu_@Pi zE$(NgO)Mcsh+fh{Mn-J>F(Z{Gi&#=Sx`d+;H01~yI=aq&`RcfTZLc4HOhv@ws|bk^ zy6`9Um|G`eX@Qtz#7Zo0cy7)-wu$8tV(I?N6TiEhl9;z1ty0p_`HnsRrH6sQ=(Ku` z{fc%Oig(-z=>BAQEC?+d4m3h^2CTHkSl{k;GX%bb7=G-C)sPh@MK}tXSufwRzkz{{ zGCqDdJ(^{si`mtGMs!A1I`R_e#R$vNewNlL*uCR}XGJMtiY+gde!Gj#7eN$=k2+65 zPxrmByhn6FQHV3vsjgv<4SH|YZEdsOa3^%q)!K-=|IU#~KSo~$c;fywViJg~ zQSvY+Li7dy5UwlA_d+$Qom12G$naymg2g<31tEe^e%_*0D@Q@tvvw7C^P$=!LWceR zVIbo_vXVmKM1JOEunLO)6RmbWj$W}RvI(S)r|BVtI#r)0)r`$cHN_sbu4fK(8<6xc zp;|6b5bz1op}F<%f)=lgP(bGSUDMxmx*Z=Ub_G2&lF!Z#l*09GClJdqDDY3C zWar>8Y9z6j#^~{7ZzU0zz`*8R_NNF(YsWhL6aV*PkRjIp?n<=R?dhvzr(Rx6BO1m) zd^#FBOo@f4z|gr!MA!g8kh-xYYkYmT*$`_7q*E( zz_;vn?SO$K=R3T}zd_UL5a!?M)>SUqbz7_~hTi9Yeux{O$t(n~0pB5&Zo8 z)j6L<{ZFCQ^Yhj{csa!tE*ks-hOTcN7rmH>>GIyzJ;Q`q>mHGuJUy(6lsY}GBZzlL z{reno8u@so+Ps!$tiLB}+;(=}vZsjV7ykD$+Fg*t7IU9}U)J(-jgR!R8&?O{kT^S6oWqz#iqmzltbi66DDJk^=&*6CXo4D%w z!h`>`0Ni%df>y)rLl%A6>Q>ND0v>b)`p|ziK9V|0E#U15Z8I9V2Q^#uHBP^pr#uc@ zTMrGv4_)YJvWu@_qnuSIn3zPx8W(x*$Tvo*{x?(9JVgr~I7GK@*^KSZr%7&63lfGR zu3wZO5E=z~Zn`lA7JZ4w;INL;X!M}l%{C*KDNn*wVwf;&0CDaZ(m(23}-Zv2TD|#jxyoeTI|9PS~Q;aEDl?) z^qzNM>=L)~ZFt&`L3H?ob6EtZ^oo`Uek{VhPFVP2+kcKeP%c2H!j_zX>To4Jv;ZuP z+WTq4!&wFghXhLPX0lw?X2Zf>pPSm-9WZ0%U=}lj)e%pB1(iv6S6418 zsk6H~&=8%)yI*k%@TojQDcs@eAh}Ll`(0f)SeWgRtzOiq(@1P(HA_2md`(r!Ez54D zMPWi;pa=AbvVJxR;;@8gt^~#j%F6pg)U*}ZU8LHPm-xTTv$KQ4AhoDPw)q{8PKP-f zgP+$ygg7$7=E||7HcO$5M0ZRV{DnA@%=N{aGnbHC+_}ZiX>vKjP+r695Aeh4wZ_pP z^N$)@UUDEx`FGUD5^NFd1*3F&}{F-;09z%L3t6>Z=v_vE9UK&52 z^o9kD=e#C&RCzO8XhqIBQ9;rbEKt7nRV&|STw-}~={hP}E5}2Q+PXRb{Q|Wh4w+HC zD<3=iX-IweNr^RO;(rtJ&L$9}&6Zj9i%t%U=rP?#XqMnPvuc-h;Iwb0Be?=J_sj8pbr4EfuLE8#gBOZ6&FC3oFn?ynVYQ67u zxVM+!KBMM=X|dQziMGf=MRzOK^5b(vszz?E0JFv|86FR4k&Fe$0ie|uSQi3AB2@Tf zrRA0(HWrrU*BpXDQ&?xA30bwz4|$gvq)sVR{WV9F)n4oVDCh3#3MnX}xdYfMqib-- zFSZ1R2}^Q)upTTW^fWMh=2_7;_~|`6g(gkDPxvOR^)4FQ>|(F(jfbk{1-ht+t}PF% zV=two_`QqW(_~cNP3pSX*tlPU#lA6JjpUZbg<$2SByx_9@S`ClBD!I{G!XDBu8%l%L8J{wV^jOlKof zm>z-lPSZ})wQ;G}s%*Nk&61f|PEj#r#L6aC2JSLQ%0y3Z5}JN7amZlO*2lj)2cJGz zM5Y1eJKy`)jyq$_J_W<fEs$RWTx*r5QRA!IsJOBZy4HyXu*pj>e0)BC)<=`o-O2 zRPooze!~lC^}J=3YE|cJncXR>9P#c_&0Zv?ALUv(ou(o_V}>~8xO%(K{#iT{D&zHj zzb7TZ*`D<-`IAQO1|Sc>--PT$0_U40=jM1>?tmhXakD>|#e5x59L44vy;mcV%QejQ zP^0Q;Y1e>%F4+FV(_&%{5`HQ**>g9=^Vh}(SY03qIAbLiuwZCXnsCG+SwO&6sm2gT zuCyvQkFKWLaOaGVTUh7>XIXiykeBQ>SBV+s<7xj{oU-F1yV7uU zKH$|s7J`MSYtTCFeU*NccYbH3&g^x)jt_%UVUXLe&q7MJQxBI%&sl`Erguuz$$Q7G zv27CjWdR+J{T^MAoDV%V2VY6}Ij@fR?ucTm zyKWqxQ%@tfd`uTZPTW=7`ZQ2P4XS?61q(d7KMOQC%xpDesjU1*|*@e~%?~xC8eh02D zcFAFzuSEt6TwZi}FK$*?L@b{xX0BvRNAAdq+-3`zxmfTm^3rWpqs-y_rA1+w^QFt| z=$$<{F0HJrfDIX=$fez6H6Y-8Ddhmh5*p(5w+H_)BLLgv z2o8H?B0J#g5CWe9Hdmn{7cT)jT&!F;Dzejj6N&c_e7OyfN?-zS)&5w4O~IlkK64Vu z-+1)s`#&}j0zMa>%O9o!`opON2A4az2HGihI7(b+?A<4Kur#V1teg9xGuUhP6(%^H zutT?ebF+jQ{qh;oTvPC+J@jPmS_!^bk2NTS-q_l)=Nk1-d2Gfx?WSv?cNlpY;MT5i zE{Ij-0N#No6EhbW2xRa8sBG}${1O5-FLSUs(b3Vx8~goT>3d$EqW1^i13_SS-|30; zJ1^I*O5$mQ3o0E%r72^*DWfumX-srV&**)T?BuRd7=N>w8hrs9-mHd~jVFdtM*MY^ z`&}j$H%s;mD25a0g=-z!76HBfr$PVy44=L8bNSqcqs`(&`9X2=b#P{7H5Bof*n+H| z=KI490%E~x1vvx>@f2M_pH2Pv>POdf1^$G>l-+YSb`HTGY)%wfhn2dd&!!4=_ zj`aimoj_bFG+&j#gXi`2!&a)lwn~mq&Kz$de`bxSS&Pqmt^)_{+Odm_1OOo7*DkRq-~+w2T;G#bT3#rZxum}NumMeIafh%KgS69t^hyd6vd7te_*BLZ8%uB^k zf}LIzAvOYlFKMG|D2?VNur%jES8PYboy+4spK0&YjfjXFnQB$g^$N!iJI{@&g z&4JaR77C8z;17?)1cB86s|BFZ+kspX4G>0?Hr&9L-Q(pH0jdCh|5yWg!#a;@3lI`Wi`6YNV316P=8G0XQW?3YGZ!u8HYEMD$f=6u&NSc|;3)efR-fQ_4 z5QrXv+pGQD_rbwI@Od!Etge0|E+f+c9_mpO(4ucwckly@vKru$V9d3&wOzh#cw>&6 zi_sDyunum^x7ZjKmzGRT&4KiiDB{Wrwh(gn?t$&_qvqPP+Ah+Vqs=L33{Qeb66ws& zcW=z9Ov6xeBP$>vfXZzl9Jo?E&}owMIXRx)?)a<&Cb*z)w&K zx&M4#o{@2T@rI(U?Ir+bgaCd9lXm=hxwU~a?Lw9rN8Gh**T&0jawlzuvV!M(e$dj= z&Vk1RTkW>r-W~bB!QwAJ)D`k@RSny4vvh@30;;o_4^6L~N426&bw+V#rXL;}(i>B+ zPVacW`Zh3}mRWdoL3$)C@^yK_1Y?|c#+_Y3>g=pN=UYBqv?AGYiZYt{;VN=38}sxS za1QI8U;h0OCQI(y(9t@5V}z0OM7H*M%_yPheOo)~y63yuzo+;qdb{}|q67rW+sKs;vl*10e;*Y5>|i`hIPQ*F+x>u4 z%9}UGSd*5hEz-BVx2wye;G-_a3|+8)u`dgzGP5@#v1I zy?C^`MLH%jEpYg0!Z>-{yI)G=Fl_Bbourw*B1DQw? zMqeJh2Jk?@0nQR&=)&oxS6`y{9>cSrf}uFq^dA0$Z(t+fp$oub1yL5Dp4ASY`DL1Vt_HYM;R)@BIhj0BCKP}42mt^wL0(>7FvA544KU{b zaUC$IkbwpOvs8y}Bl%$f);idn(#;(KV(N7`TXo*7h2e^X4XNZ{;88s<(vp>vvv$ks z6FSlZ7X}k!V=zLS&DNOr@fA*V7tJ>!Ks6l!S?qp+Gk6Ec0vInmu}VC{CxUz zhX-WA$j}WQq~(W4$gvqVp0oPkUF9k%)$YKXPj;I^yFDFyLp3gc&O+vrSI6rk9!WAy zumf_=u`5Xb5p5)kenX$|RQer?sLIoDj(WSmCwNh7p>Cs` z8Byo-uWnrrq-aC;{n`GtFeHVAW7K6QH{(0qhrLa?0u5ARk_|5-yXVFd4jf9C9Rm+( z`9r%0cY_8U5r4MZpIzN4Nw;_?+i5Tr^QU*a9)X`R)Jxgl#N2UTNq^FV&qHo-@wRw} zSAr{w?|ViACZ-LN$BWAg7<@c4ybgHCp%V4OZvpTqP z_8LzZTn~^|?2r}!LK$G>2uVrD00x$oz=1r)w<`p|a>SYIbJTFOTD-p!cgvN+l6v8C zHB30!%EkP{`Df;;cSH*}OLh@7<1?dXr_`E`Q5!6twGyq0n)@GwKWbtj^3OcKP|5yP z5#7;JuAfHO^EYfC9u9Qk80NS3iRWf4%idtoWX&KVaZ04??2|TK-+wqXq1J6knC(|j zv(~_qU&wb#IRVA6=mUl>uqo9`52t@|^^ls3 z$Tl)#%xL*n|@nv5d>jm!Ao%#$pn%P-~6rsaKLWx*^NP8XMTO~ z2LeaWYS%4Xq-Fl!At8smU2IXSRZ;gf6_W+W+`jHTy{iyk3ig+o_#R+yn79X_^Lpcg|D*?m~AmEx-Zb$o?|c_%!ne;B^La#uzW2WUi-JB5a7GD zu!;5-3R^YIRj&0;@xaI$bn^tKP_WOGEs4*_$N-pyd?GIa0)mwv;8YKcIv-fd;Qwq_ zk8ccqWl&14wHjf{Jnn`QCfMg+M?e-~vd)7CA)g|AzIbh5VBjNzf}>}^+rQ}%UZ<36 zaIa=XI%VcXY1`b&(C>yY&Hk_@b5Q$P{Z2zu17t?(yEcQl zhSs>fPWF)`55tCfI1C~K^o`d@7Z^x3g3(qF7$|~oWyr?2Z{KEoF3+tC>!MRqF2R~b zF`iTA+2jCta~(~4*ukpcI^_ahRO9-tQ$%3IZeVZ$=^{oGLfD#Ir`?tT;|Q@n@N4%W zhCYH}qz}fK5H7=LrS@27U*@Z%;0A0g1TjFy@vnTjV+`>Hf&|R7fnP5CXBI7A11xkV zz*r8T8XKbrX4>V?wIRNU(+3;?lBd`gyqFDQ|8cVH+CuD98eSbYR^KvTxiuCj6>wshc5APvJ zh=F(AY{%V{{k=V~CA6#Ek%HfdFappocpJ{tc~n659pZv~B=Ay+}tXfV! zZ47%(iTqMcA(1M>rd!r#k;a9XtmmvsBgYMkX^?W zWkn*#tdTD}tZ{7W8aEPc$0>Pw%*(G~5gB=9wN%Z~qe)NW>oY7_6!VS2AtXeZ+?`=z z={A~(MURvBrBb(iT$OFdN3>S{7!g>il4IR||9&-}`1)C^mW4w0%bPyFQqhZmFh|wrUAW#!Lf z{j`jXW_G0t<(=Jf%x3>s`|{hHCa;Swn7@4PR(RWgo$pI>jxG}1KN63s>=D_i3O zlX|6y;Zc0UXT`R}i#c=KQj9HF7j;T4KTR$rE-x&+dHa^nU;zlF*w?Qofa~mS82|)) z2n^J%c76udNAb>`Z#eV7iW4ZUZMxYl#>)J{TnDw2dXP6)Q?n5{CwMgZb1^7ye2@Ck zaFTK7)%u zuz2Na*L5o8zT!W#$d7n(8J{TZG2tEaUbxC@<;{zcwm^dEk!Iq0F3!sRf*b16>O4_xeQS5Q^aX5Ritg=$iGQrO#nGN5wUE0^yt}hG$ zaR!#(6PuH~ycCUt_TKwI`2C{u1I_vO0RV$^y51z=9=27UT3SSva0{i4tK|9)xYk z(jw5%(LGu?Z;sH#EDFBX)6vV?+cxS}7TnO-st(!LKE`kWW)oN^Ad@x36cl;;YyFm- zWz64Y{5_r+Y~vCN{jGZGu|a;3p8h*k3cJ@)z4(OpgmsAwYv`AeFE4C#MTAYTS0;~S6BqnefLCE1Z>V{nVyx+C}*!l5(vn0IaI^%hm%5#KD_ zS8@J*p%|S3OJoXtU3uRA1sFIWcY6mHY1%iF)svsEVAA%yW$prCG|qm08_6Dc!OHPUvhey}$y7_2e&?do zLWmfaf1Zvz%u)S)06mhM63&KdZkp1ThOff-Hg#>vooUSc<*$(tcLHQ zQ8K@SR-x|?8yzU4eV%Losc>H8d-B#F5W@KyH8vZ9vnhU(aTWqqmYgXiZFTr8UrR{3^@J@_+&BQH#{#oNg{|JiCVK zJlQ`bDXg4;H1tRDzKj8*Wxgb|I1*iI8^hoJ7M_ZjQrL-^Un(!-3^MbzwPBOqRFg-% zLts~_9qwuHv1wxA-10gdEAYpyNg3UKTlbFXV2zwwO` z470Q`_{OR!*{|;r_UhTAwoV zf9i*{Z-zrqp{7Mk!+;|fH5$_{hfNgulWc@cO?J+E%{zUUd5Zr+<>pKpHywvi>J*qqpp$LnE%~j;9dj&D++gp za|zt-%1b+z8hKBl`?XW*zpLW$`+FyEfYW0?Hc%6%KBci162&j_zv{NYwN#``!7(tq zpy{27**9y9ZZ(qsD(R!3cYGB4PqDf=zyF938Q}l(ke)s1x#tUB!M3aS@P7%z4)WV0 z0RLCPt}32=h<`f)FXlo!fmukRQ(QW8S0a6k@={`#-cmcCBW|KoZ&i0yP&Ws2yN!ZqIWVxW5wQryhekmtSnXl2 z&T%mT9)yAwL`!#zL>!|%&XJ~7@1~`)k)Ke2?doUn-}-y4JZ%5m;4fQ}2d~&!Y3w~P za8SizZ@&svIebzMG0~79lxy%oo!ICMG}1S{sAZ+y3NDgyl!Yj&z>S>JrOpEVi2_>U+ka`oQ zGTD3(a9Wi~!I_CmCrT=R0Js}vQn~8Z!wTol|0+cmmL&fz+~ZV4$woXc8_xqVnN``( z=iIrbMV%T63emTlrRprCADCF;?xrTaE zLOJo}s@{;W;lFRJ>e+wg{&bC80%iOtT+$#EM^lRMF1?5<=B|ilK514b2_w{-%IL2g z&_xjv@GaUj6VgWv_7V~c#ms?eG%~0+(UtKf;7?Ib%71#T$=d%^8#!3Xq`nBOcF6@j z4eyR(H3D&ZM?`BZ0u@W1P;7w)g+uhi>l?gis1IgQEf^UcN+V>^&@yW{O**l7)b9SL z1yJ~J=#G5)tD4b{w&6~=EfZ|d8YP>lkt@k``}UjR_W@^dC}?+Bqr=m?`Id{j&9r4c z@zHTG_{$rmG1AOqllc46E&KZV>*c)1K;R-MNDv%|)2$$OjU9o1hj7>`JdMXU!_3Bv ziylX0ERY@ev1h5|z>(a`tg@InK|af!Pfh=E#BG@f#n0*3)iUjkIK??Zx;>U9pRf^D z4DJugDpIfFyU<}N2#Gx^2rVv6RY?e;~LQ=O#Km!jmHyj{~7u){c}iRo#lj@y2{q?5;Umm6T|k|;GIpz zZ9 z!OUp(SdzhDuLT2vR0DMO-^kn@TEOh0Kj5z1kaE20`tzyDyFG`RC0TPq-&d+YL>{?u}$= zl0gRG!-R^>3HPdKXR1tzy-SrSVP$bVjdZW_QZe&AIRZyg5NCp)fCl~m>`O|5q{(EYL0w@;kt`h+GABv2A8dmG%u;bu(vAvq7SF! zcX$CoSk`G{K&!W3?8EW#Bvj~-zwbABO)yp#6M>b8M)TMVQJ!i!)2Ok5u5|gt_SG(R zP^S2R&y&{*@6OaoRg@`*EZ*WQV&`Nh@mJE`m3(|Iif%x_e}AM8mm{W11=WVl&zzC| zv7R|2+DATVTk#HzMEYeTy8~=2q^uGpoc@~Z4IG?PZ^eI?PuoV&s^+avX5QDB5q{Bp zek4C^#mO3~llNo(ZXYw~6n035?!9JM!1%eBKJJ`~#+r zj=gPGl-ADTgYh31YQ!&xI>TjiUrcLJGzhWp-9X$n&)T;k9jY*!fP%IwmC>(qik#B9 z6EVYjPi_1+(JZ?B3*&1BacIB$qdI)r9tJXOT&@DWG zi~|9^)LF|sGWY|#Y7p_u3iSkrWtnm(KyuWI^ofSX(#FP=|HHr5x6jNA3We5soj=!S{zx<&(xE_N3)xCkx-}v_E81~9U7qA zESyIpelwZ)|7sw-s(YE;fW$Q=(=u|!S`|X|EsP@NRUeZ5E`m!yS%i-q>^;BF}gy#pQ)PCkHNy{G5dV5S@-XCd3N$zg=d zm@jpYfulUsN04YUhIj_#_R-$c>xF8Wpzx*qa4b$EJ!hQiq%}{_!M0y>O`O=aHgH+Qq{n<5)-j%&$$ z4V!j5-*!V%^2hCe7?@bjdtM~J;imSX+_~7TWU0Y14=k=bx@A3@q~Lw_SqMI0B05nR z)H{d=K1z>{?pSlkb$&@&=t%V2l>2cO9tD<63X~$cR}gNCS?_r^vGn)VPn8mSdv-6KVOy}!}9JtA`7L|8#^h<8uIsF(z!+|d>~Hk`zmu5hAt`pE{i%U)lY zG!=igxmdiu@I7*fv~94?qc(#x;KiTa+`^*`kyyhgmY{O8=*`eEs~waKY}uJep?FYk z*A@GPK1zxLDu|=S9_M82#?4SBi<}TS-yiz=w27huY~v-{zC!ZI3kVv$0>nf_bwFT( z^ej05+<=jZA{xC2YASFP7Aq<$0tLr|gpEh8CI?uFv} z&FCdi(@zi9kcdL*mPye6>>{h$`-5^oj&YPA0dMEi?Iyga2_)G7vV&QZNMmgHF_lx* z$B!S!g4_d8O3QsIcAR7=M)1?{UE?4d_}azUF`S2&|6E#Z)z9Z<4_>|!S?=!6|9$ly zI@WFc0K%M4^n?1MPc*OSqr2wcfANAv#Ox@yIJaO%zk#Vb%@{K>i}4!7wHY$u29Hp` z?Yldzbtmqf&Ue>URb2%Smk)iX2Y!>?Lg3yaziN?unt1i50hqW*324S}=`UCJx-e9W z25R(US6cq=M!~{23UX=s>Q(AYX@busV}H2AYcen zVhL^ATg@#raO&X#R)_m$)v~Ny@ckh`_nm^q#jg5yR)THyRfIR(8nOTjFCy7vlK>Ch z7gPjxP^A9_K!g%B!*USJ{DGIgTD7dxkcDrB3aE{EArEe7T^%cd3i8@$As*?hGe0mi zQ4pl0q##8LuIuMShQLp*kGP|*WJPNJKG}cV|!$|>wW{> zcRi2YO_j2yw|9o33lsuF5`9K!T8~RJ4GV)(^6S+Mr#a8{>^WqZ=All;v?z)T+KGqdi^vvKj3UBa$wGU$ffItJExGTan3-v z!V6-ZU^8hB5n<<5AE|wh=k{BQ;d5y&&r<&U9ILBgu6waxrmq48KjV|7ESbV!>Ig#f z)6Bs;t<759KI=mVQ4Zoucv};ks&^y~<2+JMfA?24wK;|+??)%1^`K1R6dMNy$jg_s zd~TI?Ss{&%AegXuX&g$}H+MO2Ri-lbwy?HzcIx$Oge|#-|5c@e2^V^rnbhg4pQ<)W5bh8|5PBzm<^l zY;`2}Xk!8s@#PDWU=5N!pjqh`8MnY7tTFAl5$<<|skqKy3zFq1H23a3gP8{Hx;0xD z^VFC4A9Nu}5AvrA;BkoT_lwi1cJ=ikbuZqFQJTn#@{1b%^$f`QBQ-FUbzsL1dXa$b zUkP^gK<>^ty(f4y=>&4YZGd0_rjXI96=EY+VFu8bRW3&B0)y%Vf{3XX6E?xF#jF-V z4oT!|*c?fL^{gKmf=-7L$L6IBy|$)&;t$^Inze8)x_&gjxHuutQb=~{>T&J9XsX5B z^jZ(cq^i42u30*pE5z%ibQGU3TkIJuT^zIfy{t?iQf6&>-tN7g*fkcdFI(9TB}J8Ir((~>(s4l`yjlberAk4|ydI9=VY zybKiGlMNVKKFl@<9aYZazviq-dN=Z?3hy^Nju`qV&9xq~$wlo+gGw*`$IHR|RMTH? z%aDOK0p^Zk62DoQ4xkm94?(>EBh(A_D8yILgf%xemzI8s*Z^|0EtHF(Dg`jWt5>hW zx{Kxu#4{h*>Yxe<1w|kRvvMM+aMli#}A4j$rbxd0&GwixH3*LAe3KoLU%ev-iNq z3qWpw5r%3y0l|Q%Mb_JaSSVaX@&-ne4-6=Sk0(^_Cd*DgcXu;CN|ke8e$)I%4DA#; zT6avOsfAu3XRHffl2ElvNo>z&MYB7tch&flgxsBL(mX1Tm4sjPCHd5D{LrQL`r}

2o;{ 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

C^*zBlky@)U1Xu1q_rOOD zkM`4;aAUbNn~V~i^E8EFDQn1#$7zaIAdQ0e6(* zW;2Ds&cJJKeTBjo5N$23#p?V_vDD&o@arzI3;b`f(82-zTd}wlkuG2I;Ij$=Pnx3B z>@%fzy;gQs4`i^!!c}O=VHogUE-tl_G=cT5O@j8iwe3vak}?1J>5N0xnUT%$;x^_! zHgwB>Djwel`1W{PLyi`%EJ8F15G1=&U4H&6fEj}uyfs-}TUb~KqD1i{HqxabKws6g z%hwQ=)TfZZbD3B#zq*i7sBlEtY;V1W?BK_EG7|UH51%CE@M$0G?0t(|A^ykARJbu%f0#Un4%a zyE549(#LOa3VT$Uu0CF7yyX0JYqz|(p@AD+G9GYSf378~FeZkVSlft_aK7#wdcKv` zjizd1@~*fR6_?!H?5^c~>~KKRRlH^{5wDndk80-SEJ;GXC5{LAK-JD-bxm`9k#HXS zBRSeR`3MP^^TQ1BrUe@+m{?OhVtS`rkJ**&vU#j?9Sl{rjfDhlFY#U;@0c%LG1MF!mlC>Uwi=^E{w#NMIXyf_XYQajg5C zY)yz>P7iBV>201}dV3or%#Znti7Jhm)M$_FcX;k)k}zcV5-SwFz*$dz@?NorJ=#^k zWVWGHysL3vBM;v3m<&1EnEWCOW2L3I z{Y>-0SQ&T7@%kb6%^#RQ>-#s&I`K(L%Synhd(vmU&t8LtTliL0Uw?j94WJMSk7?5s zt8^RL$Zl${(qUBp-SWJqiz zr{+mcKT4OZzVG`FO_tgKVTEmDxJZ`V>-)1=bwYfEnqS5xIrG_j%Ut?h28B|h7UnmN z1iU(F^MIX2{m5DmZ!!T?egT$8drDZxlX3z7*4EQx#4Z)!>So@DP}nzqd#NrZh4}pE zd@!KAoMhk>8K*KaSGgYT~;0P>9&O z6s$I_Y0?+}zV{!KjN!q}a6okEj^Ux9Mu;O}zj4uU9=oYH$;Fp%f&SOP zAwai?6cR{tvZ+r<%J&UaicB_*X%OLecD zjtf_T+-BKU9wQipBVJY@Q{WYlrs3VgBxhrtJ)vWfS#P_5WR!o2*dpKRdG*H5zqF<8 zXKUl(#TyfY6cReAuK}(<=(7C}9{%4P)cnjJ9!tifL%9P;i9QI5I9B zZ3YPzzlExWz{`s{&`C^68HDq~Ni8oAG-8LtnzlE|XB#+^pPy0i*hQvt^4o}ub+
  • Cx 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⁡Y^-s13Z57D+@$a}zi6Q(3ze$Sj(D2W7jTAaZ%S8s z{Z_yFfzuV^Uva_Onzig1L$RZSiIXf}dnLL{y;hThjTld69kD%BN+}Vrw?E&mLJxF0 z3#GoQE4c1S_yVsS)$5Jogl>DM9uqKwJ3eS}U8 zafL&qT8b=kZEzMmf5DNVTkl-9<4kQjP3^hGuWC#AfSq-Hh)Gqso6e?)j|Ska#FKI~ z;XIBhD$wg4S-wf04AWEo6)ERI(cy$zl}pJmk;?c~{bK8f8@AMaGrri$tRUxh{ku1b z+Fb?)TiupQl8s{dm@E%YIOHI*Uv-%J`JPx`|3QT^2dD0C zi;rLEy($=m5ds~B;rYv-Ix;pPn zY%Yvbx|)?h#E zxMquwW|}N77I5ZOy)ho-3Z?Nyl84FlXB$G5`|G_`KQcKUFbFZQe2q+q3?tji05Ky^ z5&SL8GY{lXn&-QiSKb#FKT-Ymk{vUUOcVr3N^^$>F|a!!1;+1hg}CMHWu~XW@V(Z6 zg=kH&0CD>FSa-#15ZD5qWKX|-F_=DiRX9!-{}RuzGD(Q?Z#03?GaFJrXK&6YboX0X z-W3c*=8j79n5&fKrBvGSXkJ&}owf1{urImBk zYu^3Ig1iNt!TN4v^U}jBEtL4m1_Ab&`&nI`QWgshIqq*xwlJ2$>R|MMhGVKr88v_0gj&zp+{Hv$@5&@)WlfxJoE{?2+rE#U zoWBQmWRg1@+0onz@p#FO0)@dzXJz`Zqb{)v@!ufXRk=IupVsL0CFny?Q-b>e^JaAs z1OU5gQH?*7FnL^uG!r-9UkJJ%-W;5??jY(s&MeT)uin0cz)DSv7ugOk({etBFyhO~ z6Y|5e4QZ51zjxW>|vrnGq ze-BjZYrK`5smykF*~=M0_c|;`);P$6SpCytl)@D_PInkr_m6_pU zsx9)l_}C%~yYQM%_N40uoFR?DJi<0i^LZM}&bM6s{cn$iv^pIB+$F*;L<-Bk+q8aEY=cLJ zFzPEuaDw~EWl+RXom0PaF;Rjc?1}1$2(_!*<=&JIadxhSH|}(-pI^IGot5?AtYYMP zQ{owNv)yTatUIOJV=}CXsxH02mKZ{BY05Gc&O5{v$LK;X`y&@WQJrO%akTBz&8n3J zwf1Fmu!|CZ#@ihhBF!qgX?Cc5a|vhQlx*u8omivHSF7oJx>XLF8+g}H@K{u5l;VH6 zH3sbyWetKkJIQnxngsOPH^SZ-SbpjMqCakMz<#aKE&SG-*-sqh0CkO%uE+oB$@%d^ z&T<>chZPx`FU-OPy1P;WDV1`a4Qas3d0g1RLiz5g(&0{`2ic zwyNzcCBAAaMPhn`#ko}0_LbM{RtK3V%#XtJ5o()Nby>;u`QLu3cy#;@;>lxow%izm zR0r71rUh>T;0_9Y&8m~+^wV@m$)cmV`}^-rwl=qq$3`u5C$v)f4m8uh(%*U#uR&)(Mg~z=^o0Fmj zvJ?B-`KjoS>*A8wZdGELf8R+ztsz5u67a>p*yDB|l~b8^tw`l$@m_Iy=u=vY55G&z z)CS$RQ_f9=4W3Fk2|gT8p`d-ZXHCak{QN}w;Tnd#;H{xfw`v<2v0eiRhCXe^6MJ%nhS@RL=s_o(GL&&Ut#%5aIwC=aOwE43z;_^ ze-|(PS(ijK+8{_@Oz(*tjm}$zZgxgTzn7s?dp0+Fx!1zBtWyJ-A%|BVSvPxH2A|8= z(IG{OOy1BgPqzr?SVRd0CkV#4e*9;o(TPsCW)5yQ2s1 z=qp7DiPoo&Bc3y^BzGH3)~x-Gq&TNzPGyR5$Bl_9N)-&`pW|~f3VoNae7w^e3R@B= zE8*p&_!7;1qxqwyo#<_{qL{EaN3`~uzS_8fS3b|g@%@r0{N9TaqKC|tI>TUIB};az+E zqTk%kmwosF?QUaL0&Ydh*Bs9^8AK+TwF_8;|$c+DG zu|et;M!D0}U%Iy2>?*ZJEkC{eiyI!U#jz$(i*di-zv4z78T-a5I^&IEV#mhwqO>wP zBBN*5*H1LP$fBPr|8^l1F!$=(v~+oAE*8$nO-b=L(~qexXRU9L!Eydoq`sqkLXZ9E zM@jkDsMXXna~@S!bEkZ&2YSIJV*AdLP0{tM`z{wpax?#Ig^j3c^6=s}NqKVNK>iiJ zyVtT}R&IOQ`q6&$$X4U*fnjG$3ODVH+#dPq;sh@c#xb6>QzX=qn-?OdK zOdDN()e-)F@kN!)CdkD$8%JePUY3*HhsxZftQa~R1a2^=!B<5+)87QP3j>2Jtb?XL z7=vfD&m*%42;_`n?&FAI{ijwfwPT%+fD$2Bo4b~AED{lE_Se29uwPGQVyM zJC9`ZB9_rk$}f{(ivzu@ZnqSkZN%n7bkCY?7~*$7KcOY7$Qc-=J*k?YzeQ2MMnL$ZnyqM4;## zW8G_u)`^2D%efPn=Fh_y!W?T(%rs9Y_nhNPKZR$Gl6}nw#*8z?TH_)DovsjYk59!VJ<fS zf}s7c{R5KF!?kW91;v}{zfB06Ii~O^ou)ke^2jPJzWLQ>D%brhWiY<#s(=>rX*^;| zaN2zNtQ~h+UeHgc*zoEj-S!kG{?UhPHw&FyFl2-NKZ)>v&G=#HrH0TU-ia#S6tlWE z*ZeiQ4$bq&BRsP#qFlpiToN;Bs z=LW%WJ<`Sn8MVSfFGN5<0LI!K<=>a*CVGbw|E&WSu9JOJ;&2y@vyoA1=PtEoonsXz zWrL>I)wZekI9Na7KT7FLSZnMzGZ}|TjM`2tu=pZe=---2;)RWuiuQ~>T z)<=ib4GISmH#8D^EF~x&)r$)8l9VQ^wSuY@^~_fsa9mLptlA#dQNA z{vONVuu$WJLu+%hCz>v8968rjz`H^{A_uh64RJJW+PCwjm(B61RP28)1T$G)MV`q= zTNJ@DwSX^r4fH|-l068y7IC_>xMHdPj-3(8WBuZtZC<;HCH`Xr8|y!9@|+^&e~RP+ z?)u!#&g8)Hwzl|4Q>^k#r!kNSa5tKA;F z9{#?6>!UE@vN0~d+poZGT5?-Qxl4XErBC`iF>MxkD-lK}e$Pbazcho(7scPG%xc7H z|4v>sw`tUgXV)L|ndhyIeU4VqhFeGH<#mQ<|EI``Sn1;NRqdNETIBL;qANC65;&X5 z%|88mZ;k(XS<;C$S_cFzU7-6n3p#+a{GTu@m@rJWx0Rf#DxA8p06F z{Z65cD|-5>OARspO2=cfI}-mYyHdGZsN50%o(KLRe`JW|g+CM2RmXc!t_$Lh@g!JS zbfDf1lKjV)%E^vn1uPya%V9zwv<`47&`P?BfrF)}_&~F8Zb&y&Q4y4ywWtIP+Q;&1 zsUNTX00>T;^MZGLzA)55JWKg|L|2l%~X9&+20?QIa|3EkR{{8zd zhb#Nt{xq**50YoLhX{K9UE2I3|79(BpROksSwW`UY^Jdh!qZ<$ctL9MMd@7BQajUS zZ{hxprojppgENuC$qTFY?k1%{AK3A0D7*!+e4k7C)VVN*prER}$sanCAmO>c79AVq z_?tj-&JJXXTWVZdBQD_{`#ck*0uE*%R{Gd-q}qOU0E9O~sJUaTHzs5-gsrArpMUKrGsLC&>owOu~qFi1x$Dwvm^aXe~*sV5uuq((gZ(N&%p zVnWqGrT(^FUz5us`{!yV#WQA#A>10h3J=1bKaX=2{2;l#RB1tqVc35EE$1EU4SB&} z>r+hyi%YZd9COIl1k-l$0k3o4Lw_3n)M4(L5AX6GJ5G3EU)VjXqNJh|NL`lUUUNjP ze-;w^PW`XqAxS>V|J221bmtp9=BFC<6sp#N@XC=&2qs3$^~2$GggN_S9GY(I3+dk8 z-jr@5T72y|eSL#?yB;awy1D{t6BFdWcNZA8z46y{AXj9u{ow;GWb-#vV%JIKgV2Ca zB*v?x2jh$j@ph>oIHI%D*gM&EX57nVvOZP{|Bt;StVUm5qvn#aeMgsUtT<&$xVE7 zJ8cRc3mjij1pX=VU_+22J$v)&(dL){r_`P6flSiq#HpDdhWbf9eAf_)^vfvCD7Yrk z9XX(?niaAV?&2I^S3orX-Tit2MhHpTi|6z~W{*_vw6Pv0?4qp0m%p+mKaxtV>pB(Y z=Ch6BjIQ_`y(x6)c;kkbm)Fefta)+Dqtvvt60_k)K*5V!e>|dbtWja3-x0%2JaSLr z*Pe?z*wG(9(s2J#5JtbRR<}G%hFB!Lf;s|Cl{X| zHiBaLAx|xna2ROLdq7sx<8gG+%pLt!^tEp5ozIT$gncD-{Z5PD@?svOr2C6g7n$h= z>$eg|I;g0C#xh`B(4OG?N?k9U> zTt;&5-p%wn4jFMp?xvZxXmg~drjmv zuTJTooD|{ZE$?ygZ)NA?wEg9U4rmETqSg)udDdSh??Hqfq`=uPNhC;AwNmyt=#mf*vtQ!d6wyGInLUIIlfyHlM5&5*F6X=>1Zl zG*9K-9!DM9yC~Tt&iU?Rl$6f?&7jkcLr~e^@ViuYk(;kaR9;yFMSQ^DczAdK25|az zU{@TU?aAKq*#zi_nsSl9xQDHyfvaTzvX+1eP%U^T0X=no zeh#CoeUwS+1}^Rf2(khP3iQdxLGXD(7(hVYn0U3o0E55Jcok1B;J}KwhKXs)6%!E= zaZBL1i3SM*4IrA1e(l=P>FL!c&z?0x?0FRA6+vnpJdx%?90W+0_84)6g@v8XmOM+j zj*WfQGmJs9v9U3M*IG2C8}J512;d<+H0jHP_YVc=0gTr_0wlL@8=g*{i%2*)9Q6I< znRIs)zOde$Nc0jpEzT0~HNg^cO+B$yco*D1WT+Y8J&CoFHSL=utu{^qOG$6JwJr?} z4eH|wh=|t!V_j7G%64Xzc#ZOZSsAqbL_si}K$P-0_VFP=N)ACP9+Vm`p&rQWVjDPo z0F8Kul|Ew_ACc%>w+IP=P0%7ub`1k#=dd4yph1Mc)^T$JGKyGE-_!6~eM4TL&O)Va zY#v$mnUsM1ILND;f?y^WdC0SrFxETdAprqjxlKvxgq(NgVEV}<2v&&sAqtui8}@y>CQGef;s2QA~y_@%zS z2%q0R(99_3)q%9OC|$Udz(Aegw6u&r%)ceY#i3R`BQ;fAar0{w4rt$H&Lx4~tk+$=6G2DsVC=xDxX%}95* zHSp=qcEs8~a)TJ#twjHr*_|}${F^i*MW=1O=@_8HyWPk>knfsiDYEe-zqj*t|7xYWE%TOwg$x3hN8z8QuD3WaB?DmgEdiP49uDo)(hwO8BP z-Uc!8TXpdL>1NP z0IW%kDhGF1G+31L&HzYeV`JlVHV7hepsMN&1|%sd2{cpvoq+`~HVgnT05`mf<1K(` zkX@q=+UhW%0ZPH=u=e$r_7RArw>vt!xUgwd5+O=0#!q0v?e>1g#l;2ZeH>I@FYgW5 zu07QIfb;_8<3hM!Ks7uz9asZpZM?2piP4ngM)>#ST5u6hzLFB@T&+&0C5FE8`xlwI;IB0 zur>87Emu)h7tk5ULBA#@CK?(V&iLk*K@YeFXl|g&TbG=i3_v1K?`8C;h1(S(ARvHI zEetbBDO;n+AS6GZ{bK7UjfRQI3Wy5#0Y?Pd_v_2_rUbjE%?{MAIFA}HEi1H9Wkto8 z8YLzwZ(p5%K-skLZLMmVEw&hC^;Uei@LeZ z`C?BqzXF@dwc(NT;(OuHqXyD{)8&hl{6~E`m7boS;Agr|pFRb;2NYi(56y!?Z_N)K zFewoMz7^b5438x)f|{E8%tcLBwhI#KeEt1HsRSOgvgUwgf%jaPe*X6DTRS^0t%?4A zZZ59A&Q4qe1`g>D*d%O>SA~*uXRXzoo}TU=e+Nph4L~me))3@BaybC1or|3N9IT;S ztPy0)fx5tNJtK~|Bnp8#E%fKi!h#YEewYOl@KP9AN>pM;kVVPIt|Y_z0%`_ zTn)B9CDlPOnvKm4%$Xj=%133Vx z{81ZIfIY2)fuZ0wxrTu8bh)Lu#At2ak|+Svb4Hbbe~XIBeZKVzNC;>3uiVyjqT}Fz z?A5wU9$;Yn*+$jol`B_{PFJd(cRgVFX^UcaTp!s#SRVz8rF54F3^6Au4u5=Se}74_ zB)?%NCF<^_GBPpoek)6U#OYx0{kH&Z^Y_QBTVGpaZ7Y10k*!fx>WpS+xcDlbe|@qJ z2@_Dv565^QM+N+m0V8LO5zybxULsoP6|kCm^7)R;vry`r2=WjEaM%Dp5CaH7SS(%l zS70JNKrDfPE*LXduyP07K`5Dv{3ZgjQMUYPJTf!c==M@!Tw9Emf+)8|U#2|t2%Br} z3qcGr{MWCsSBJhcAXX<*FfXc`NN0PoUxZ5~$q7y#In(C+aN=S>XmgO~V7~dBeDfV2 z?&aQanEE4F{7ZyrIFmF`CV?_Ih>lGn=&)e=^zKsKXUP?8FSC|xV75<{IMU|BeR`M$YB4gRY~eR^Lx9ze2DC6 zuV|TB>6_s{O_TX6P45%PUeHH6D9b6!V6t1b?G4{gVso{ppp%$vTNPGUPA9?aq6+R2?l|eGsctYxLFIcG4wRgn z%0bq>*1f7lFKb2jFF(1#0!bqxz_}QW4&g%p8{To#u+-k8){H7mxdn^Jj`@zuUobk>up~J+I9ORt-L~F+>J^!dFWO$UwYNtku?^Il z1%8SJ1eH+Qg~bT(!oFw0EQ;!AK`*5n3jwm(FJ)vxLP7$ALZ~>b@DZ@%$XUyw;PF5n zZPDo$tJo%fjOQmNBFcg6NAF+w)E?Cy?qxP>H|P)u*W_Z>lwTQSTv6{!voNV{ITw3J zmG!TD>F;GWFf>#~)i(hnK+3{mBT393i*6H= z{7GMhNJ2CIr=VXRFCJcKaWU6!DD0%p+^e8*q$61&Boz!aMzBH0>2mvv^Yi-DsWgOy zz2BZ*&8~}u1!&<-G`Ho18|v&BYHWMx; zEz$zKB#8P=FJgr}(*^M1eC656#@DZ;2mlcLfwza)ASw#)<0VN0B90GkmyWG{q7wtq zStI5{F3AJ?&Q?ZqiP97BX?~7C!#e z%E}4g5{8C{71tj&V?K^WCO@iiV_{!&Qd;WH$(1ZBrS2GWVHDVVJ}|(bk|bFq8mi|@ z-GVC=UbFxFU?3$rsi{ybRL`IKI6HoFf+WG6{k!Kmck4Cjrwp*tWIme0TFOZ4Hvup1 zl8uZo8qA|gyk`n+3Q$srdFa5+!&faq!nP(QE-LkXwP7|~3|Wkhj#|R} zyqqfr9k;IO01OV8>(mHdety_k`1$%mc*qof>lR680frdJ0hf3?7`~w7zC9nM1;`&K zh$Z;od#v*r{3U+3F}j=aGTs8*mSgo$XCdwORkQ^fnf7b{|ZcCF}wqpzuOg7PgCnFsbUX9l5|F!DC#` zahAa3|6_u5b8bw7#j{?)cDTXl1A@oL3QPJ+f0W~xaL~aw71`A=)1Y&7m(=bH3 zFE=RQ1v|Nr5)f=dW@RXi2sO(+MP6m)L5PEWq!y}F%2kCf>P?rKWkz^;d+V!M4CD-d zAZ9V>h_Q#gJOHdpR67idSgm2vM4N*5JMBWEimYd!!D>KGezNBdy|l}m=+*<<`b!H0 zq(QjYr2__@Vxe9O5F)Q3z{%AB8v}q+Dk>@=LBUFgb#fx2y}eV3W)g6oB9XZ-1TfH0 zL^a0t=*Tx?%(Er8lYq!NWSBGh(U{g1#u@@>JibG_iSU4nF;|neEp?Sc@k_U zn3y|8KSM5~UwQ(+AK7JgChHQ$@@(JNeV;~?tHy=&i_fao-Ntz~E1Bp~v-7 zTR#|@elV-MQ2ZX^=;#P`sAk~7gPDm`)`S)ke*755ToJ4p;3Sv5h_>gC?=~tPak3^O zBZHiY@^YfY-QR!yq!n|~J$TRot!(ns%)%n?McQlPQ++s*Hq_I5t6BUNlo_iW%qcBT zxr$XD=Lf1Z{i&doPBK(eRgF>2Rr;=Q!`BOcN1WN`HKRsloN0eE;bP`**Xku(aHp~h zx)5?&b~|zktID?%DYD{xdGDn`xR|MS*ucO5oL80FK{x>4nilgwyCM6~Nh;))EFpL% znf)fh$`r`LcBaq|jzcy@&r;;G`&Cgjq`*#rbz`MJo4L(KL7@+PEqVrq#3dPC5s}2Y zS4W{B^-H9t4^^)&E)T#H_7OG|-U2z<{gAP|f9R+v0K(T7bpw}+fe7xv5xgI&F@ zTT|~V4sNG$F){fLV$ME*wLY+_>J)-{j8ZOJQ%|+EryzvYW=leulm*d|A91FN^$(lB z@);W-eB>(~BwH64oS7axM+}|Gugu}-DxvLWr6Ar@m210vLVMzg#&VxZW{qn7IsuWF z+tgK8o48?dBx5T8;U$M%uycQQkHM#f61;R3~1nk94q6owrt; zSq@q}-u0+WKCmF>it27AC6p*|8khCB^X<3GH>F*oFMh}?9|Hp3mYPNPYk)DIElCKn zwPi_q`(vJUA`;?IitX}f%C}Lo1Xmsl-BdWQmHTGWBsLw_hJ(Hrc18HltN{zIS7A&> zm)lA0j_g$?EK%c(6Lk%ZAj{!L@8s?h>9=DV?N4aVP+0yy*4{cStF3GMUZkX=fP_dW zaS=+3BCUX2B8`M}gMk9l9V(4BxcYb5xUC;B~??3PHdhBCw zH(asSTr8^rtXEylZhWJY~|IEP^U$)rUFH)SUVA z`^8~m7R6tM$wmqJo-^2S=2|6=cj{uWdAQ#t+R%Fa8ka5S577#y+$DYuyvYxGGh~-H z;E0~+=kj7Fy}S+~d?6X8%4fg^G+9O7tM(YV&oDqsPJOY2y=dy5zq$IUlJtz)#*6tF zSUX^b0J&*nV*_llW|?c(9x=*jXpX|J5tdEc;nFOS+FT(DVZ=Q3(QQ+Dj;cNOAtI$_ z_p7a+W}*2*LVL(+G*(t{ab|bTwaUjbAY4UiHc+9ou%oN8*XIV&<*Rwr@yh#nVz-Eo ze`qIZS57DVdlj{MiFGF<7>+Wcgf^n5DC!IHnpG z6D3u?SdfGr55ZxH}b-5^3O(U{fL>OukH#h3+?%Wr@pJgPJ8U(#`yRnMBDxyG? z$8q`gVfz{3B+Z25{`nLvlO^^V%>D-w9b55yGWY~1w_2^_vcCBpn|!0u*mbQ?vu2~9 z`1I{yPu7PQPfOCo{N%HJqsB;xhNcH|HX2B1k06#MNGXg>QT~a_)T+wm!DB6oRm^ep z>zyBh?J$8>%F#-`?V1i0(z(AR&Ox&tlD!-{@p6f*r0;#d`J|PFz{!{(Z7K)$tYSkG zJoIB#*cuQ}UV6@7r}z~Zwtl@Oe}M@7`Q_U}sc9c)&83+g9TBql?UYlexhtNR(xdaV z|2>>zrD)ef-@k6ABmDlwX~AagURHnn8>+wWmD8Fo-B7q-|J`!q#?f~~gia7y{e3w_ z{*$057@C6bd$WZ;g?vvc=yCK{KKsUt9tAX||KoK{CQUqcrUik%ObL0f`&|DTB%ZWV z=u6RW7B>5ocp=JMO~XBNOMm+G?ZT7jHRZM&AxEnT{Cyxo^Xy@K?VsGQ-tOjgNzbrpXl}lYZ2s6t3A>Eh(AN{LL6VtdFW3 zT@+_#bbEALsUl~lKon<|Kn(o9DhV8~nWvc7Nt+cd(Ckg!rFw&h_=WbCZDopI{?5re z?@Q#-TfMacU-gfRUJF;z=J%s$qGf6DMv#-~G7jN8 zM-(C;<4r8(jYJU>T{nuxIf;WYCBru=d>HIc!F+w|E+QmP^tTO5FOa37`(d=*>2)^d zZgUAH@XIAA(wT>7O(29JI6pHJ>2Q1~Btl?&C`~0BfFa579aDLhk*mT*MUthKu7RP( zX36Afz}%VDu9U8puK`V+S6Zf?AFa9n@Mx?3-uU0olSp`uRpAo-Eje&{h3FO8qf`ZG z%`@9rZ^DUBkvs~KJgQi8omlIM!vtH^X4(s1X;~0-IFkgla#CerxbRgeo-qggNSm+B z-&jV6N3O+twD+TZ!9V|GmRcJv<#huVKMJGhlkK!Id93O>v21~A?YW9{c;_gd2QpK% zBeZbFj!H9;X{Q)D%SnuB2tQXxDTXAHl|q_=K$;5vDcG4f`sgSB@zKvS#uE^t25;5p zs$8pwaprlLCl(>N0Ps*qF=r5+BOs>5VOJgZ5#&Q~HPZZv#loiZgeb-bvWO={j+*x# zA)b}LN|g#0{1n!ve59ZU ztF-5Kl5|LPKqtpJ?~C|9V?HI#idCe3=hrS1>7Ts!;elrN(5O`?W(C+N`#iDMvxoa81F6f~-X56ZI8dMl-+U ze1s%2wEan8qmaeelI`!$upo1~g{5d5&AvmK#j=!9w-mpqdIS{~a9no9yeN3(2d$;j z)k2bK*^J3ljG&9*%!*bP!mN@dwhQ3N#CJYxB|495%&d|YO&mf@MTFN5g911Dln+q| ze-kZ2@p|uS_}|fUuTYMlN1-i`L)q}{8A?k51#_Nk4X#8N$uU@m$;G~NmpBo{C`Ov= zKky`w>t--D5>jASuya(C^dQv7PLZ=ukDU?-=ii+%U%z>sB6?1eD|8UY%HYQ>1;QG_ z3)05&l*h5{UxJ>PdW#LW4!3h|`gD>hVk1gPa`QsWX-((s9$XX@(s(=coPM1KA0A-7 z1QC)d5rM;pr85mtYsX}U@UyS#GRO|RAc(+c_hwcjjO4i)jg3}orzMahJtm508bYjc zS%HPmlXQ!Amdo=sI)d|;ZIs+2qF+?=JB)aH9%Rasm8$2pYxfxm9XS4(Ztl6S&K~-a zj9&9f-Kh4&Tp68d+TfXFhO_rd9!YyzrIrWW*koCK8O_7_LQGnRRD)6KR^$h@1+mk1i2`&bbQTH0EHPBKE!uWeWSmI6K#xp zH0_V%Um0$M2!e2Jb+NB^vE=60JPr4fs2twf<(<1ReOLXl=8^66uMI;hyFd8Wd{Dx# zIypocfQRs{6=~tf8E+{fHs&R}vmt!#TPH$D8n%wfhNPqOk=Y$#j*|ijFH5;? zwM(FrT%-=A;3AC*cXdpwVq)Z4Db~=T0BIz=H+i@7aJxdO58Wvt`KIB(0 z97vX9i|~G zL+CnMX=^CE1~;#=!EYsyKt_1&%3$dn{|(M8DvW6~zfSBnmA}B0X?lX*mZ8oM`;+ab zViZfwG9rE22-y`>G??kNjbppKOPa`WvqF|l`lx6#D;UY(tO|%B>~Uwk1e!tf`^hzV z$As?oE4^(vfqKY+W>!ZAU+%Z`Cjxc$cmba|p9F7(&X*#SGyGVaflBp3yVqssu~$oO zpS`L>L%ww5^v1}*{9V6#+P$yw=UbFCzQ31>;G}siU+=0kx_(P#@Zk2(WO$a)PK>8q zI!mAP$8u_Ee>FD;4g%DfjJ0BKw@)vw;Nai@oohY{*JAkv34TnK{r9E>79CIKs1g(0Q z3!+54!h5X>BeY6;tv=YZ14Z-tH>FXz{AhQ&xOadtEYWf^*UC_yy3=#GL^QmM|hKKPyA6-*IMy^ z#9vx@#Kpx0R%C3jBnX`G)zaL&bSQG#qpf$&0h}{43yT$|P(nYK1i)Ufvn+V$h#wfW zXA+1i#F0cEk7tbM!ThE@U;WhX*LOvI8}|n*-$UF)PI=ZX4p~U3=3c0L{b=<|zh$?i zd%Q6pEqD6+T%oG9=VM+sCVQ>*cOEa<=(;NyJUh?2VntV=#S??2rlV`K&B@MQxm=#u zfuc1hihmh+S5`W~lc2wJj|d?qCI;v4j^^fU>c#)Y*@R2%%)+6cqFx8?+S)^))od9Z zo*Lx3uWk>#51g0{&S~rO^E5o#D%9bnX8z-Q7P-H~H)zFxzTvIkvqJ@&neMygU!n1} z{_tZu6k`(vL(|&6c{Zar!#?AG779(C2+LA%q=Cv@%$8T>wWA~ZRs&{ zcNO7(2XNdC;D-WhIx#aNV%{DNf;$3$)AZV0|8^Z%i~uvZQ;dNs0J2rKQu43)`Ku-$ zo`EsFWPbXh-dj*=skv`E{2uBZ8#{!v#cTB=UyhHDqwvLS&%}49G2vsueuU(r&P(HN zi*+;e^KJn0fOCo~_3+_qxlAA&I7^~X?_Dml%JGk`l$3XUy(H5;VUUF#!9)Bta2L#M zcLz8~ISyPqWp_}#h3Ri;Yttej3|9m|=K=klK6HAvHxqdXS~I{6vE@z%hD z(FYepb*~C9=vB%(h2IWc_i}Gk4A;{==!$D(@_PH`RCQ2$wq>}6R~R;=gnqX(*ly{J zw7zgHpMy1YDARq**~+tU>W1fEk3x8HV!IbHMdY==M`e z5!;5NY0n6P=FD%3jBk#40gLz+FdS%^uE(+#pI*59xIV$gOUa=m#8d$qwb94piy?j)BOv&A}@pszhbXUsZm$kg8QD>)5g<5-VWPNM)b`Cak zKUeK?!g${eH5GZ*(Ikp2jt|Bn>CtThQEWQRf43%=p5UzYgDj1np9(l1oV32Uu(0s^ zcPBJ5E9(*zgX@FIeOt=^zYs)TiHcb4R~T&|g97>1PMaj|cImJa#M`gnl>n0u+|)Gq zA}Cli5)u|>P;pPk-F**!s#|dnd}a}37PtTylTlIXf%~85*8vUk@$m_z7f!tDbTLZ^ zC;<39SddmD6@NfNE(KK?Y3=9;4h#F#)itHL1Xm^~Ab=QwQxM&UI;8mc&TeiwSy`cH zuYMUF^@Q;q78Zt*e{oE@jv?W-*OY%X9Hbs@)_d5`bfsSMc%t?G3DSVMKTtZ*s+w89 z#r4v#{s2*dXTSJvtit3YRz#%o&1a2wA;H1(vx9iC7Y-k8yr_!l*Zk2F@n-j3g9oR} z+@0k2cL|2C7&#L~N^5+jBVA+n8%^sFnCqL|yC;X=xa=bLp?!|l^&I;~Yu0kCX3F*- za1n0Dh_q|hnLLI$s40N7Hf6dSdNI%nOR#R%Fo`-m%fTz>gux0EsvF!)Q&SThwrNzuK^k*`g{5(1Bx&qH-%ABG zwMcUpI>c%qKc?zK70?@!sro;3vxG0*8&XMELA>kg>YhG*x^3Uuzculcsn9?-14H8b z8q81VZp|M*{uwTN%1cK>Q)$%b3!~I+b-D{q<%P~f3r@&XM;th*!1G;urwGdjP#^>d z$oU|=0*g5DbO}a209iUI7vdZhS=O|}#R;K>{(mr(rW+YHI?m@J!;j9J58hT+zs%0s z-KjWW`!yIJe_1B2N?Fk9M5WT%k>Naz{oRd&RmZjEpB$^JE4t-Y#itc)7 zklmGjLHEr=2Zx~Wa7l;RagMtZ2c9FxnNn%CB7Zj5!I6%YhF-`+2fMyAYaC%`^~-iL zT~=vA824S-9Acie>vp+*v1vBk@K{;=Y@##r=PW*w-F@DLop;9dJoT@cXVE9t?_L%9 z#eqpNN>tI%U>Vkvwg{Z?Sc5SWi}#cyl|+F@Pk?~kg4CfERI6XMb_ zm}|VYr)U5$$i8*>YXepWUcI*z)YO_V9e_Ux%n4ot^rV^x-$fxNL!5y+2X3s|dD#S{ zoqiiwV2+IC`h)diV3Y8q;FlK--`)FE4v`j$zx~Ccm?RIN^`gH_fGfIM=^%5%!C?(r z{oUb#o6HSx`0u>2TJGSjUt1hYwe^DaHg?`|;oBAHnQUxuk{&v@RtMXxjqVzF62xHIx2V`9ubNnRu;o9ld;a{!zC z5-*?o))K5@A6r^rw)|e}5|yfS@e#NR7rLdcUcG8*ZZ7UoIn$M7x!$M76$7MPND0v9 zFvGrp6(9B=lcZpSy#r!FtRhjt-|n9*z{bi-qL_<-mvNHvjm_V~t8lGo z!G>JsGE6Bb*K<8t~ji{jf%=tiW_{J9w(Fc(zULETUx!aFAN=0BTdMTb=}sFV4z5# zl7BZ`wIDPN#GIEeUyd%RWu^)foq5y-7OYE}UhO{23v!ty0A$qG!M}iRFDWT;-v--b zFEpYO0=qpqzyZdxU4B9{b+)x}&N!NwnnJ5v9aJkB77VPM@hUcLRb-Y)iu<}Zmfclm zL3mcwIZZbBbibbkepkE#k&CHbL*UPrE}XSdkKM5ZN#4o%;?ul3U#sln)K6LxNN>68 zFFk+%l$*o5!emB}?Ql~u@{sZdyGqrU`Sn*Grt{e2x%6tMO5Uh;LI4Q6^&&1i?U<*x zzd9T3f;U|O19oU=Xwbl|t5lqs*$7w>xM%>lF-$oYr_Y?3hhv`TxMv+ii*DaNo`<4P z9d;%rCcwY(kbeG>r`}Qvs8z614)-XNh=_=%{tXwfIn6CC>vw(??8!&9nWYruZwa5X zDX#`^8hA`0S~3VTA3uC}*=gYgHVa@L2k_8lu04GG_(I7@ZaetZD+R$@r2l}iAXM1j z+XHa$3-F)N*_O`fv%S(Z$%OB$dO>RI^yrbx&V#tEJ`!^BeSl&;+})v;UigCwcTEmf zR_zo@fq4M&Y;0_>*mhWhVEywtgqLXnfa$p}S|3p$cIV>Hc$wULFrA|V4Td#f;j%zO z14{s&G=v_S&SWbJ$4KX|;u%Zf7_}DA2P7xAVRBw(e<{8*)Bo78?#eQGdFIdePrtf8 zp2z%&uGwU?TI~xiWv!`x%RqjD>05njonK~DrmhBNG;um1s@T5x&R~{fQO{z<)D%rT zw{(X9I6k0<0SbiZ=?0moa9&xfdxdniZ^a-LHl30`^{;t@1vOj?Af>>0vP5<|>T zY*@cAKfen(ED#4Rz$9P$*50LJ?_~>>j0JQmG)W|f^4@6eHf*sZ_t*Lx8XCC72wnEb zLimkB_;Igi-?Jaubg6Q2^;3<# z7YD5b*xA`RsY$N7xz+XNYH;1DTWa!odpSYv&$SB_>_9w(2yp$wjT&j{S+WLd+7c*Q zh+`n#Wsi~rd1E^!!O#B)*6lm6(E-YAY6bEa0LexvXGjG23bibbKP=b%19}b0qeFNN zPXaiT0*!nhykme@J^1>@8bw}#ZaL!0E(CA-SW>`LUgNQQDOGsB1ZbVHT-D6Qce@J^ z{u#P2e}ugN0C!46Fx7-&f?%IbeBwl^h;7Og7x2{RScGqZ%_D$TL@clmtAjZoR$5q2 z!tB3kMK64JgAjIY?z?)@bAE>*K4hz&d<+h@yxW6xt#*q{5Qs!Zp7P7S<=p&{oUoPnK{ys4N)78Q(~r z1uce#sw?*iS3=a%4QnciE~CK5moiQ*-hb=-jVrQ3x2_3JJ0hd)d1KwLTW+KCeI3wj zubsIZSh;RnuE5@9Zeig7^uJ|FYanvCS^fe<^CRUxDV1eBE+Ed#(RrWTt~B5gPg zCDL#P;hBiojsh_%l%NQn;8yEAkZ7Znyu8K5^#_TE)|mT|+GRlPK-S?ptdcC&7IIYk*sIPp1fIes54MD&+nhIDJzXq?-vj(>+54mkzfL8JTfs>$%h{y z^yeSnz0ly{SkGKd#Mv%pDig(Q&?jV4a2I5**_*?C)V9xCV z6j2|rfu%!Y_qU+^gZc4slv0{W^{RgRw$QL1tw@Z#hAGCc@wMx^O>;c#<^d19Ug8hg zYPGcxd%-h(1#knbYsidi{cQ&I*`F1Qqm*i3of@?cW@KVWL$y!Be~`Mshj*VpqMEb8v)c{BWo%k3$_+`ETuHSZF>WTl#aVL0U?#KqrSN-Lx+tN*by=(y%H zXw5k1fEF~GMK_ticijF1OE~O1Q-FSlj;hG64pRf9u~mXd2MBsC2u36UO(P?2FwrZ2 zehM272yC))a!_gw==uq1ZAh?kTbosd$q0UPR@^n3R|ozMK^4rL=w<>SOLAgjm)$>= zPQQmH78YPr-pz(2B+#n2cL<$uZjdWt+ zVL5_k0FMkBm7WYO6R^Z>gw-qfAcsK7+wOza)I$*WdX4z}VcRt8L&hk!1$hd8zSmUx z`CWs2A=~fOn(lOvSAb?TCJ21&>gpO9+5JdkC^R+z+fvv~t-Sv-GIEuTEene2x?hIX z0|rvcY`jeC?~<1B|Bcmko7|q@Z>7Z}3>ia^1Fb}asa%l=M{Ny{0_>jn!)QuE@LG}W zyW)sUkVIiwQw=QvySMkYAOyDl_d>r2ty0V^FI46Z$m<$E~lQJUQo9Sz>8|S`qQv8h1I;k*Z~r}z-ia~9hZ=rn)>{?u}iNB z0O&9~a;N;A4jT^hfLUQ~9=vwQHM>X&uAfbGq=gQ+xuY;lTTHkSg|-NdFmlV32T z+L0bI08eI9uA8OCNky_U=+tSa@Z4d}?v>_wZ$L#spnxV91$c2 z%>Mb!rmIZ;J%TyYA>I$B_fh=Kac)-Y)09_@V_CxHDs{P2L0VOaTys1o=wrRXiXhI% zk?k89D{DUgjf1o29<{m>T*+3hd!PE<&@9QA7nMvyc8(91y-~HypA=J@_~ew?NfE8W z!K@X>kd&~eO;_URNM_FyxCga#-3E$EGpjqg4^sVLs6k=Qv^Q&2A2ut0JQiyQy4Ga+ zjxNQ$b&G?Sbb53Lqt_^8d-cv5K!U@L-X1v=rr1Z6bn}rH@ubeR+j=p{`_hHGS94s{@rJ(2D7A)7i2DL+9cGWOcFav!!g&xVp zMQJVt+>2T>ZFqzW8+rP}%YrP?PrKc71-o;JDPVdc2_O)?tfn33x8$A3*MtxeAV&VZ zrPaRZ61n!-Mv3@1as#U*?y}SLJ^r$K!lM+mJgez__f!L3k)^^ART-j~TPRWRF7)_y znTBD7B21pc7A2=8aTv){w#)5{*4T#+3EA0h=-mF9c5{*$bB0Ur_YwmNV40oClshg+ zi>_csv~xgsA;cJ;sQ)KYOoHb zA%daGV2uIxURD*ul{S;R_ut4kr=tOiqlXp@~OPz4yH8xw#Ly&|gdn72JcEsr%XZN*8q z&Fy+Eql3r8&S+A*Jk@T+TFlePXB*e&SabDckDV;!_=Y|%m5*Gal%2s+QBBev(?p45 zJoyND?Fu1hP;_vg7kh=T_Yf@8;vg( znI$FjRW*@2A7!qSjhh(|kQP{F@#e~tOO^xEbVM#SDh_z^|FT5oh+=}7i2y@Gn;dRE zJ<)dZnNJ7~j+~jqt6@D&Kfty4nMMZka1VWo=Z2?E$a#k}jB1nrn8 zIyht1e9w!F)-)tgAoufeuJY=zr!`W*R1rw4P)IZTVu*a1pZTf?jWC~tLJLjwjJUiM z`-O_waP*QbY5q;!h2Dq+KiIt8@;s|Rra)PfpcOWdtbvFE*B6oUR-w4ALjkrrpj3#@ z;kE116!`1{@aew9SVpyAYJTIRL>(16^hux-08zTl^&i9z#zb8hJR@LwF3@i%a^fNF z7*l^-V|;uZ48b{yCV63XxerZ|-64ZZMk+$LSU7oTyAHUB|3RJq2U2Jvpb#wp-!&V zC)f7DtofLvpd4wLc{@HyEsnR=1NKu}}sQ%vFY{HX-%P?v*qKGuVFp$yTHfrW4Ay zbFC|B>bDeZmMRv3$!f^vSZ;Piu0#jzd(sDDv4PW;bf$V5qwz;sJx3p&dr#Q%R1-i; zWV174S(%2zFrg0RY3PgYkk8I|t*iyK|2iv^1=tz+Q1QWtys+P=Xq8WE37MTQ1=)s5 zQDpRQE9Mge8}1>({;7NO;|ed3)IVTpxwAo(ZddYsX{LQxA|D4D(p+m4^E_~RCNc7U z|3Bbbc>4f_Fo*Z0gqJO09u??q>2m=oc|c6tN?=!Q-ciya`H}UzsN;4HxtrwI*PEG6 z?_7T-7mr?spZu6V-8x5RcIGh;RCEv&q(n&mTPc|_(PZAD?{YQV^^lVf?r^ru)%DE; zR)yF@R~Hp*(ZO$l=2KDqU6tf=lph5x28bp6x<%ayQy*`U9pRPDC^;obXA05&BM?k3 zeeVD(q<(w)Ows}_i^ety>jmx&kM*IcI(`K&CAa&%Zw60$2&~p9TX?qkSr>eyH6@7r zB6s%Af3FNfNA_f;G7ba961Hr&0v)wHMUyWI3$I&OsQC0TTClTA3Q4Zv*0EgKf39`Y zz-P4a-BRZxgLe`W(z=dH52zieVsKL%EzkbFVzf7Em>MDalvd?mVRyf_wr0n(yO|6d z5O5Nqh|Lc$>oPMuOWM=nFoW~wd0%F~Tw>zPsyD1pfxz5As(4Udc0V#gg&^~KuVB~p zqWZ#1cY6fb=T0L_hj#l{L!T+^lsOaXyRVZ#U_JBm=g;~1yYpvO zUpBSLv@2eH*1BPkGODV7SvLP7?^t<-`U3-LwvFTBjQ^{FEgJr>s zT%C*7*|}+H%&o>(9#$l{jEynzz92fOdbxDXeX*;1LVU5a_Wi@@7pt9u-EP|}=A)L7 z5f1w{IH#c!93UDxx@|yCmK|kPAx$4;MnGqI2ii9ni?#c6IjJC>ZGz1H1p-14z`^x6 zg}@6T5j`f7DUD|m%pa#)kiZP9?AYo*q9!khbl@u> z5zn8Wq^2&1^O6woEUmyfhglnP3?bsgLqNx1x^zz)vg4kR(b+-vUCpuB2yeCursg?A zPZ#T7(E|ks{WV(3PH(rP!sFgup4-lpKi&bAX4={+cO(X2k1l+;`7J(+$rC|z5)!WtYg&($&9cC50p%i^f~~& zs~+kLd+x;X)Z4kYe@9EXXCT?Lk<(h3X7%tOdOe_I#bL z)xb6qY&-){%~P+~TQuU*1LXtFP2dd$P>-CXDz z(~FE+ZNGnqCl=ICC_$440wgpx{K5JJ%9)y&WGf~#F@>KIS%9Yi@4O4#0f;vpwMI7- zwp`tG1d42Y3@xOU;%*lA<09sr51e+kojZbjSF>+pobkD@iuuNzWt2u|M@@2C?~6sS z!GT(Hbs%=2#0eRhP*PW|gSCmtxy6XYM0y$;I7T@vIQUMfSzx0PT4+vB?;C7eT|%IA zeG*uxApL!V3!yUwlcw(R{Aq*-vKqHnreHz>Luw3^D6lNIMSuSI0k3z0>xKL|5$nE} z@MTC3$aJ%_Rv<5)Yngj^88+y!l{W;-17sFeEEob_kjM!YUf$drUV%QXUv5KrS+COc8>ASQ4a5Ez$7t}A?YjflmN#>PDPG2QRz0W#;2hwq zXY+DW06UQfs|Pd}P~MK#6M&Cf?EUa^sC1%VFi;Iis|u0dZi0_i6KoDn7LVTBB}ic%1;q=5uC17l z@`_XhWo;2D&pkHP9iK+E+(MWKEe7YyeWer$@v;{+|7+g^LnW@mymACoUK9j`+G;;` zPtfv>LkXuBFgAd=dxc8Pzcfb~si@w7%I3BAlc~6NB`5;}hg_;?J_axjeyab*su%7e z)nz&X`drJ$kIM%z^F!)y5}&b*ii!%T31Aek??AOBAy=gOcx+EU zLkw_7n4U5`o*rLsYC^_81pb6Q>LWw_3&CsAAD49jgi!`Z|GPxS%rh%ru zFkExkmo)|n^`r>y$wbM~y{G3TFWL6~82Mg}ZvWYS=OTT1AS;P4Zf>Y!>9u?tZOgQ>{o>_+8rj ziFiRvCCIu0y3Mw1_#4NJFVs;}eZ3?a7ZHJq{RZTwaQm)x2L>b98#jnxq6TZS1&TqK zV5!-Ff~&-1Y<;Dkb9|8jvZVi1j^*dOZY>$t88DqXrPeuG<)w9Ef0t8Snj(KUaZy{K zE%h9SQQ6fH!n5^^5qF);bnT-e`vnAwl;U_goDZD|eC1!4zCW)$JaH1OK&V3PjWa92 z2ha@sfl5PApZYInpP%4d8|&;|oJLwkOERVHKg0?bYW<)DkGt(J*>` zta!0J{Tz^zHG^%oe48sP0!dwjem-L#x+FiH*7K+MF?t>~{sBV7q}H{Ylc`v))d+{hjcW_=G<%_$3>1Dsi))_@m_(;)Cy0lEHe)hL-lSIP5)r)GvTypT>w&;jR?r>$`v&ZO zN(B>#B1vRds$k3o`2Ei@m&G2Fc7iMHqY31_x5Cxoq(Kbso?Qr6#314B3{gK6W^jXp z(&L~U*MhAOy=7;-afvq2_ghdSsODz{p`S4fQdoUzz#xPP8cIasi~|_uAes!cvPnp} zRqqd=pD+T$7lecyfKP=vJv1sr{^)6y0 zkN|O7J(xqBfUPE7`U4$gK^DMxQGlZ0>Y$H!tW356vAhiH2fxFtiVRWxCWC2@xk=N9 z8ToL!d56nTmeVCTym&G4L@XS38L#N_T%t&6b4+-?w6wI-La^J5Mi%^^SRg}y{aB?v zEyHFOkw3-N=ANNZIr``6Z}IJ^_TtfZj;rT*YkF(;$7|+oDP+jhgmZJ{!WgyzUPFuH zK$iyF?&7;uK;v^16VMnEYI>Zm{XDa{Snskr4ILKcaB2B7V9?Y)l!s?H>N1lI-TDN> zWj+=bV~8vvN^k4x@__o%E=;c=6oC5&XccRBdhf_PFoFCGm;Ce|t#tu~ zHjJUYxAl2oc%xM};LvTSE@#tA@1Jtrtuwd% zlyaN>eVH~-NC|XQ8XF$%3@QY=5KMm!s56?CMP0k<3Y!#IOaVKET?{c15mW}K&@H+c zSJ2bG7@Lyv3KLXZYzs9V(sO{$UZlQt0}h~ES^4pZyb_A}LD|W=`8eycVc6PVlacvG zT@V!&1tX5+LKx#Sw*H?1ItAN_;&sFt3m^i3Fn_xshBc64MT*AXZqh7ig^yB;K8xNU zar~+F(sNbK0h{ujot@Y;UKK1%Jwal_a6TGZSVf|GPjzn~O!I+URbVXQP=yF5m9qE*R4%25R}!NaY>)3f#gpa$yr~izcL=z5f{bP_{o7A0gq<~`%4wM&*0Idh^OhAX) zRY)jua%IwNiazgGZRhiuc;RvZ{Xq=3>PZ)b;#qTH-qeJ2dQ*tpPgsRhAdG+gnh#C` zxChf$j0t0tFPUpH<_8s33@szNRvMWV(c#)`uZqS%qUmZ6>2nG`H@d9$)2T8i(uLSAUk(s0v@=myNfY+%EzDyh zj`!4*a83v_vEfFg!*}xqa`qx&QG6e_!u{Px#NY^#6xH@Yfi{b4DOSDSZ&a18uq6DNkCu$k&!CtF|D^Xa#@_Rp&U161408H8J4!p|?5bZ}jO&<# zB~z*9`@+M^49DeN7B8Z~TK?su$ASJ;gAIZ$*K^Fp?VawmDi>AC?0u{E3KZk~{9iLONl8iE)1vB_vQY!D5bc5i!z;}FW>Z%x?+>yz<{JEQ>US` zj`9@)iAhO!%SQB-axyStR}yoi3qsU1v$&FBXXCQSf7EIM|Ium!kAC>W3h}gG0Y75^ z?yN|uAPPLW>qTqgdOFORIqvZTwGbu z74kD$OQB+>+GtHMjDd8n<9Pop6rte*8{h3?_|GyhLFXp$Wzc@)52dtX5aSR5C`uux z2|K~)d|&3={MNy1oaPO*;c9|%dHJnD%&M9!%#`CDr7PdH(4nj8K?`nM3{lqSDLc-f z9ij?0g^b$;)c7w>9Ygz`mn>nXG!>gPg|o0F)R3T6c4oh>lE_!e;%3Uf~qg!~BUA_^?oY30hfHhvep>uQizi1!!RTy3#&>W;(Vc*)b2h21^2EWz-|gl8KP>xt ztX}RIKX!9mWH`mJMI`@JrI$*xe0r$8c8Ae)Jd#>RwbP)vuO;oKwu|57UiPCDww1@b z+xs$Q;ns5|J>l8kj@j7@u&K7aQLl=Z2q_T~=6HJLuEIM}wX9KTv?~Q&i)K{?8#dzl zb0XXm=c4u)ESsID1Y9aPbaabkK{12pF^DLFr2ZBA3IvcIgClC&GZ|M0RN z>+9p0Oii{?emRsi$z)YHK9iq9%9kg<@db1*jR|F`UQ1d*_#RzA+hExnl)? zbIs3}nJA-ymM>NWkEPx+j0jf+%lW#t){0Py7AmYDa-3NqClSr8ZE2f!XltmtQgv4z z?}TF9=E6~&7*rsdB?hfp*d6u!>_|D6#10uET2x_LbK4^&L~IL6un3F#FDTp&x;a$5 zHGfEX>oM0Cq?t%H;l=uFMKJb)Y8#L7T0&GpVy>C19s00)3~5eCk@_OI#ssHgIW>WY z%+BZ1)WmA$+i9p$X=-w2ksJ>1vxbZG?_HmhJl7*;ooMnm*DvMv?5L|3SQ`nL01W zIFuW8Ulr0KQ1-Z62b{5*np$Hli13i6d*c49psI%xO;B#`Wxn=}v*NYj7I3j=lU*E; z1iJ^_`3Ik5(IA9Hh`+nN^tXfP&9@rQLmg}C9Pm1?X||j81o719UBqg_5+-|_N>-IB zt|N=9Gy?;7>E&WgE~|Q7n$N|B_&Oh|zwkqKP}R&QXTMf14$QZqS;IC1K`WnU_ug2M zkO>||50loK9LT;_Gc7298VT+vN6DyVaLUs&}8(y%uw{ zZIo-)exiG6?9C$71}}s?CADG)9KRC>5~KK=Dgjh?v^x|492PwlVRiZz@+>&m4bV0*d-=rRO-=K*8JsVvc~m3bC8^7Tx6JGD zp*L~}@&Mtn!9x84M`yns*nrRXlw1QoG=)yWeJO$k2ge7D57X2$n+{_VpqN+>QLSlwt1oKlu#Y1^N8b!u+&UG#o%RrIv7#_96@+t{N4`L z8DSUwDEtBLBVgE-6l<5aes)16zZ(7v7yh)zynXFz>?18LHaESuZHR}5cXuFP-}Ah= z|M0WK_b+W&xo;=c$w!+RA=e{?bYu6+9L~qg?&HM&Xf^gcX*YhEnSQgW;7g&hVztYR zQg#0vSG~Se#I?hs2ne8y;3Uc!L8V=qMC1Q@sjYAH{A8!Ysr zzvz6q+_!A_9!T++MO7)NH4d&9Tmu0T7#NtNoO*HbBujXiZV}{jI#ublXY%YD;`&Fd zFyhL9Yse2;I&6q9S@jsf!+~h#1r*|MJPz{iK8o^!aE;JH(lVHrav`*;lWLo~128Ps zzS(!fe%%B%2B6!2dtjoR?qr&)Ho`4$5zCG0ci4_63X)4rPA`2N9a>5k-;cNRhDf{=egFs-8jE(#1ykmm~Es0J|K@et@uAE73=k7Ny`x8>$y zQa)_1^(*s268eu1fsjr}D`3_Nx}Hlah^JjC;=4taqc+eFp~wLwezc5G%j%SxDZu#} zAkghX3b%#%RM)Q!_ykbvcgqJ2?m{hCNF@hpgBXD%u)v@oEEEl}i$E(ZKqW-bF`(Km z)Y!#g78mybp&c3)>fr7I4&dV02R0&9yoVgGZH{%Q-3mSx(g3Ao!6gS$ANqZ{WjE9; z1>X`Fap>Kb%vvL0i#R6!+TS0)`*5Kktsl|_`aW|OXzk}X6{l3LhEH=a@p?S!Ta^!I zh&87}N(BTDCG0+okj{h$F_zq)r&~oDTi7>KTZqTSFh*|3Xj`!JNULjFJ@=|T2j+XBF3ReWkHa)y^%@r7u847 zYh!npOQGh(Hk#4U0$Ss5Fn4yBAxrz)_tO9(!sgkR6cmVe5Qsx342GhJHI5gM-25Fl zJQ1>$Oj458p&9Vn@Yp88L8%h}XZ^q##y-64f+r2QFlglw=utpa4qBAqzyT@lg68d1 za1tXN8Sp827hrbCm+*jc-Hcan=k9^zWC#8+U?t{nKTS?f{(pqM2Rzq(`#$`&B_tyw ziI7#4QDlph%BDzYh$td^la{RPky&P`q=>AvjEu6&ND|7P$@(83*L~l=`+1(<>-qP( zUe#6d{fzhfe4poe9OrSU`I$1_9Ej3U8bMDJmr95%-o5+UD+~ZJM*M+?VcuVsw2am` z+FQ0*NYE#&V*imEHb2qyYS0QwDC2QsU=W}mVpuK1zL=;sTv37HO*EaQFLg#RNnZHK zv5<5JA<(WlEr8(qO5+I+q~_c)%d2@0kee96FZRdiJ>q9?smnuYimYRUgZuICo$-YW zy?$%T4~;LcIW3_J3pM}-#!Bb5wp)}iyR9xiL0y&I0hx?~BP~0xQE&3N&?$B9eaKj^ zB08yIr%PRrYiq}zCW@W6?|GKyx}T&%68h}B;1lLPbAux-Sy-8wM=PhQn=_Zjh)jmI zhlV=ss2HN-T!)1NZWe7%1jdF7QWB>VvBgeuQn!d6ETrerj6+W!@n-Vtrj3jt*1hR8ZFw%gk0({e&rj2% z5KB&GAOZZCnd^|xI-WYUyfNyaT^qT7=vHOx5TC`i{ZE<_Ub#=n1Dxx>^2n^DtjR!U zexk#=xoS0YxzS+9vG&d|JBnXNE6#BBd1f?jMDDFxTYID=F(&f+Q-R#rJG%y+i7m#> zzO*oz6FM0%Yi;OQ<0l@W|FllZuM8(ddfnD{yUdHgYJd>RUUQw9B!>!*@3)2Az3>c( zIK{IKcr8Rqu_nY`enZpj>eZ`+?GEr;OstSq0ZGOZoCT=ti=k!2LQf#n9!)_(LAdn> z$OKnnSQ0ZZN*G2YU|<5&1|a45^CPG4P6Ytyz+?9TfWfJYrtkEFB2fR`4i&YGlsOI3 z5oSkC$@1)^_9qr=7`aT+>;^0e@NVj7l7n{AzR(Y?gfue#2iW>Fro?s{n6J8{*NYUQ zVLSYNzJUeuP5LskwTWxS0VIfa- zzg9E)jH@;u);S9OKPGVby$H?cpde5~W>Nqf;~eu|9E<~07?qG9hnqtOosc`g#ssyZ z-v>h^crKL0=s%w15?cF?EJj<1Yg=)^ z+_b*2>31*xv#Z&S&;p9IGRchAr>^3#{8xg1T~Jm_3?11)r>?PiD2e+H1vQV#@>uS!-|+H3n6&t|AX}p2tvqtq!5q| zh%}5__dWWPuX*Uuv{o8{RN=Z;7n}U1)8=ss<53SZeyR9M=s@F*-&hCvV?U^lx-KEd z1nSy9F`*311(Q(E0jM=sHNOE6`DdwS^R@%7kJz_RlVIG^)YzCJw_-&)S$^R(o{vNC zvF|$9+crj>e*C<(HP!b(3D)}J#@@ykgN;4|E^eg>LriHIzjx}A^ZxL=e5Q&+*5Q@Y zw&Ew9*S7A}+HfoKyR(*O`Hc%Xf9A3zg-?19od3?ovu=EH{U_h7upTR>8!G@(;BjH( z2XjEZ<3mFWFf4-CNe4I_%K)SBxT@c*am*8%*idTu)hdFtcKh~Jn7fhwAeT`7^X(dF zWu!kHm8&wARsQ>X-4EXXG-*SSD9F-4ob_A!+J|68LBf`VP1OVW$BLK`y8mf-Xo!8= zHo||xI@M?1oPv>-_FFbY0l)-8Y6qc`wasb-n+f0T7w}Xb@A}3YWHVaUHPlmR-F$R>9kY><5gdZ6r+0 z;#6-Y{MpPN!+fYcNAKF2Pp@0UyRs}MQFDmx$ESH5{x=t3N!n&#l93TwV^k9yD3Gu} zF|9m=;15wE3!GZ(+b7V3_d=nZlvJTK#m^4j4SbX;Y&DBBmFAUqX`@TdciA^l@$QVO z?Y|P=(ECEo&g81omtwo26Acpkg@nY!#Ds;1KXw&r-;`Q4EfZ`xTmQl&-Hj!4I!(*t|C;adp&>ezV=%8n4fA*{ehwWNF+j& z{?k2UC_tP_%y6>&7{gE9pu2f{D@@=to4H9lje{vg`4%AP-_B3G3CaJyqJI+}{thVl z+<8~MU7@>5SCwG+6}myd>LBP2U$b>A0%#kyJFKR**=3c9KZ_S~2^KY+D$xx}lo$@__=9GuO#=X?xu7o5HGri-^2jpFTp$&}nlGkQ??bj<>gP8F_VfE4i!Dh*(6D;I)HB= zU|Iao*VqSqtMsVol&ghB-)H)hdaP=YZ-ta8LeODs0-ujcn&B&*8G{4Qj%pt*XJKbQ zA@$(Gv5)D`pUVTFLuAPe*{j7_yHS+o{mI^q343e&Gzz_0>m7(b;qcumk~1e*e4_+g z0njb6ecmdI#Uz^4o||daPJRL#x`ujA{4v!6yv~ z4|h=US3Y-){~{?3JSn8B6r>}O?oP*%Ja;U+wV^gIwHw+Gp57LXg40X$rz-z^$8!%< zf!q+fAN*zI<%&wiKPh!dw3D?h3FNJeL9`h=S1#nWB%YhB;2&`gk(3iU)iP?d(?(HA zVD{Ury1^dOX`95?YM+J%3%tJExWQ)Heg6%3U_D58ab)8A-wBi%C)z6Yl9fF#o7Ht7 zuYf7!XS-%bElHE$sU#dj-TgDW85hf<=6+%Jn%1#nKZY(RYrFNGVsPh~#aTpmU2a@( z$Byq{Wg(qIHYt;E44Lr0qy}^XtX^%Tjd_nu9@+47pC#AAt}>AF)|Q8q-4-tPmdQz& zncp&gI0h0bI9*6kI?&BPA+Q}90?1r3xqqa6Iqiu^P&azQ_ByS#G2aFYMxM6K#0>cPdbE)l~S<&{LPU zC5}0l`oj6*!=@6W!5d338 zKnmG85O^lO2Ppb7go(5bnj9_JIub7rLvM)qWH60GLP9`SU{ON_MNGe;fEfK+ylLpA zgqTp+_O-7O0gC*uuHWnkAN@o@Ds>H=oSPf#x}PMd=u=e{Kx&>X_<(~@{%6aPi(U*>FU=Knc2w2{I) z@%4`1m(V#Zo&Hmy#&=O-lf?<%Ae3-I3JS~PcA~KTbcekNK?)nzGRKo5r=TF1p1yoz zNSXP9W`B1$ybERv&e-!Fe`T^O7NHEqqDd^$L$mX#$cQ1QXgOF`T$|5TS$79UY{B0$Uedv7g zJ1F=ryW7|dm&b}e+pC~Z1_tBuxiuuX7>oWXzIE=3A-bM`?*N@>94Se@7r~So8ylMd zkSgZgw5`ocsRR#MIf>PKC)h&wzW1N(wzdrUshP^z@Oy(ta>2jOUIv`KRs|=)BAx~p zZF$VWkLbU^i|4~eMFdS}FmK?iGk8a$;^foHPd4|!PzKLM51k#T>-B9bmf@iPhkF|M z?krr1a-rr(Dg%#~;Ln4pidPCA1d8FE!5ZCTJjh(&8i_rlUMJBQ7N{f+S~Xs;5Ehj>B*NOVvyKvtsy ztaOIn$`i&rk9n_tI43keF8|VYj!P*f^dH{M`0D&plTsfmE9=MKAAM(Qr+sM7GQQ&m zBc2~de}8v-T2H+`cr$#NW9jEIRrq&L(%tjtPSlh1Eu?Oa_@T6g*Uy4mf#Kdg(Jet#}rWS&qBsBblD{%7f=4{lI#|{0ky*fw*!^dMHQ|dG6Eg>isF_^@@T!}< zBj`{**Ny{)hJmXUPXbDK5DXqNN6(v;3uUq6a1J+Ht?f7Glfgyi615o6Z*Od7lSTR8E1Vh91eL^JzbVHk5IqV`Gi4 zDCI!FPkLQyk z7*q4lP4nj;TVyp{II5!~;ogD~{%43&6oSkdYP%A6BsxtSil1-zBqvv*@m&9A;&ZXz z)0;nKKUR8>ZyY%iI(OiMNM3WusV&KIszaA4spp^5AHQE|mn31SzLxfNZdx+N>4)Do zeB8PRjaKB33ajEEeO9}~M1vehk5Qf!x`sPS#S9E$(M$9svWycEhW7ibAxx&BuFkFC z9$``N>TAzXF)WykjKBobs))g<=k}|01nhdon+LO7*bekqoj(uvp6=7vgyBKcwEDsC zn2t`IK(3|9ubcBsud3{%1%-rYC@G9XZORkj{r@s$e?=>Db|79K;Qh?r) zWNvsXdS1M|bmV+~W$$zoPdrc1;X5p{WWXamu=vsAwN+$XzuDxBif?m*9>5SVFTlRg zm*Kx}Xt2|>`hTTA<&vHLztEooKUurUOI&qa*de$pyGoht!`rtXG2_r|fZiKCY$lA? z$xj;_zn_lyWV4IaTV$~3x^SgHD$*X2Ky%t{-wpVK51XofCiDN+A}KT%qBzA$DP-$& z`2gSXf}Sm9q57eXkLZ#w=cVx0-g|S;^>4O%^{Y1x*EuMUduXJJWa52Jl+9>^r8v&! zBR;)6-~8ee=Q)k{-Vg|v`AN^7Uy4Y4?A5F%gesCvE_d- zd$WC({`5uUd^1I(QrSz#Ss(pbb(<-*w>-8SM|9JxSZW8&eG<1_zafYS->1>_5l% zq%R$`8bdv!th_Gc@Do8^x+eoE(kmr*y$;ZAGsvu_0aL6gjKd5pzTwx0Gi>H14{(c{ z=+*6kuZ@ksktZFo1RfqKAgXob>bd%0ftc4ddbK0B3@rvyGfqx4cYB>q5(xUUG0W-E z5fWcumV)l1i?Y*mKbg373l_)^)_8Jf$PX6{m^ zDqVJ67jp31U?hr(UqQj!8F96`z4wK~V5Y*lbiZ$yzjw#?xipHZ==3jmwy)2dM;|<> zuK3A)gQ@Z-UbX%W3;0+*!y;BAHd=mB+6)z1GOZ1c)++3@d)B5Zm4%e0+(xX;DHF*W z9&Tz7ep01sq$OfBQSSVlHNP}0T8AY@EA8HG|bL^(glzyLnNc?M{ z-&@xxQ)L5RkbVGW7}9T%MJz}ERL+zeYEYz|)I4sJGD|Sqn{UK6mk_l<;{tEc~z$M zlLPix2EBxojc~)={S;?u6k5BuOs=KE~mPyi0oGIRF3p4$~Jn1?Xw{sti&* zNQskwq-r-xuIX7(aO|nRqso5o=^lq*)%PmAZ|g7R{X9`#>L&xvsNWh1#+dhC^NMLL zjtUT0vMTvsL@L_*^t5YnQzU7=pn|d>8=f;eJp}h1UX_g49-b9M8wtLkC%Rm}f1i3{ z-*W>qhBnPrP?XiPb?dym?^T0+;oui2xLmzll=%93JGncr_OFM`8TKNu_RR*I?(35>uf+# zMa9!kI_zGU>aosYF|uJKfYA#~U^fOza?tC>$?M= zUdKWiptI*N3}dR{@11wg>c!y`@aDq!iYzo{U^qY~Z2#FYep-p@Dp8eh{8V92D<4_SA9kSB30sIoFW*m&Pzo z;Bvlc`cUJl7Tfi`mY{1OXsKeWCow`G9+zbVuEDvQM8RA7C8U?xu1D>_z4tLA}3N_ts~%-r2o2!$cwen0!LT{^;p%3 z|Clu#3QG>DFcfxyI0*<|+#-xWh&J%s(7@@QrZ|H4mBH%|fec>SK!GDWB_yJ11?b4F zj@`A2Ysu{R#sA7B^R)bo7NA9=T zN=F)F6-#Fb*h+t9N%o3c;33l49MLzV|CmGZdJHCT^3w~0qM>%HUPS1$PPEmaR(IRI z(MziQl37fL4By|%lcWwJt+A6hD0nBA7VjXXepTFMSD)3epT&V$)w1f2Cu`19h~PhL znlt}9hp>P1rH#bq&dKm7dp96z1vb!+Q?;a!A5()p}@N{$;XK^XsLeAiF6|#uXJ2D&7zhA1V5xv?=L(q!o$up4_f| zc4|(KRq##Z-MjXDq>~iu?ouf?uyN~BGx8X39yMk)c1>OT7jOCq>(R=6arG`uLpd8M zMI`RtI6!4x7O_&8=tW_et!+o+_3Ws@o$CrsvoCngt}_k!HUIBS!@^IaZ1%lVgB^^o z4)Ri}SW^1y6E{Mc-LoNR4+%y_fBr1)bLg6G&9x|Xo$y^AcFe9%h->?ZDYxgQ#$eE>}@!YVV~o-5Q)`H_9o zc=EwOitYWwOrnWIMsteuMvC0~DnYSl8S&*Inc=E^_ot~@F0)?`DL-a$LPklOQZ;J+ z`g<2f|DQWg>l!v+mnJ)+$>JuKctJnEUxjDa)%j1+ODgu-SpuR7uA=NMH}}S7{rs`V zdUx#!&Ae85!lTa65uGxf><+3wC*lN-#IPMwA?XHqB$QLCjcU`79lAxLrz8g{*|qL9 z8CkJ?uT!lyug8=%c@R^xt&Ga8(MYNQ5+8eG^5yoj1i>Ds>65$20;dQ)B3eaqBOz}h zZ3EwbNr7|mV??%#>E*qO$>JTDYcS6LD%)Rjm*d)@!N&e8F&?vBq5tA83K@&%xXmWm z-FDh0$tYSI{DY02%b}T?EQalRrdfs2?)`W6MkZ@Lr0M3BzInShg@am@MLX*)1R$>r zRE!#i#qFMxZrejm#4?ZSigK?F{)Zldr4w0`EkLOT&Nk`0Qz`9c4y?Ekltq54Bi1Jd z9!q;Xx-EPwIFDJ4yxOp82!!4 z!`xncnWMVz!0;=mdv{6K>DN#0SRV?kQ$dPaJuD?8C8JmS=*iT=k2E3(SBlrg*9&$y zbXJX86%GD;f4btWungz%kUeoN8c_Rz0a|2C!c@!D0R6Y&O_~DvSr?<;L%LXGs`R@) zDaZT?#d|{|Hkln{)&41Rb1Y5a)T%k0`YpB%A`?FAUUqCJT*#YGJQh@t`Y{r@;L!HH zU}FBAJ1Cejw}w8aD!%f~qI>Kf!A7DEA+N9e8r3y88uaL^30Ja+yr9uU3`5Wlfm6?2 zyd8g)(usk+d)nh1Ixz-EI!NCPKerX7_k&Bh6YxyuYwbbScftRdCrN7h(~^_%b_@*6 zm{O9_?)C84TW2PojhL=t2-`hMO41G{OL!;$sbRc1>eNR6IKiENGwHdhBJ?%cZq@j2 zIA$4yT}VwGm2Mi!4bOY9w_Sk(W;ur%b(VwPiwc246Yxms$I z=+gEq9oIaRmzNWwr)oz!$dEA;^U=3tXzdNFrpG2OHdQLmn?JW)l8bS6>27BuJ$3Ee z2$ta$`!8Pjg+yvlj&~Ftv3;H5X7iY?^&rJ7urKkW>#>xK%nS6M_a%*`cM#(Ifd1k} z(s+7-24noa=hfF#&tJLm9A(v}s&d?$uI}7LwAsg8mkx$LtR@`2Z*AtU^J2}R6J3?D zDgJ8o;?`0C&x&0HlcfsDUmr)fs3;i|)u*rZ>LM|x>6oCRv>`+IRuIH-aX7{kt;yuU zD+la*%0y_@nQm!kXI2r`Q)hT#T}R0?5S#4uSZ3+-L}grU{CY|JzpH z+PG*YvmKnXo9>+|`*Gj*+D*SoH^0R(>OlIo#?^a5%J#p5(UxPcb4zIzu^oHL9{XW@ zcV`Vpy{;nL7}{7wJE`6^Ib<)=yF{6jySChUr=KV@3h`kumBbskx>+?uBz3<#mBeRH zCMY}x&!gV#Vr&nPWASCqs;m9bg<{-0rbjNpM` zInVag1oONFne{Y#shZ?$WLa<$w7HhgpA|}DK%|2B$-DbWD)v)T9g)l|cP^d@IlVl# z|3ttOosfc~alSg*6>~O+YW#)O7$VkE%jLuGC9B zS<-QJg3=vA4O9kVR~vSVHAu(pXtChhJ)RZ5l=w2^My~L@u&A&wMNP#=-=>LhsSy4o zR(f9FzNVRH{a50ou1tKKEE)3ENzbY47|IS%+MdIe6TtFFSa30%{$g?AOv^a?1Gu(b zRa|`HwNG_B%j+-R8-M#QkNg-Z4Ck@3mFC#nnngZ!JJs*}$Ns5pUN7c$4cMC*-{P12 zd4=j>hZo^K0hte@qAP%1-hN-o{WQZbFYg6z1tds-z1)umzoKZCys@z{`wqCZ_sd?? zeQgDw2dMluhy#MC0nol#mVjN6syiP@~}7*B<9^(lvP z7Z8{}Z#$}`^=!GR!nY1%tbU_jQWw0<%#YgJk0-4x`EFkvdo^)GQ!~{vbi1GQwbeZw^LDbq}fFkBi_T0wv8$-=l3jkbC*$E_BkNCf8y6v zM)=?Nws~F|&I=lLfp>8;4^8??V&(DX={#%oVOR3O_8aR-+>`VZUs ze3vdGE}$E_20!8YE9rQGK=QZl zyJWdrE7J*T2rxGQQc4K81NG5xL?a(vtaBS-13};|p5?xvUqc&p{}`cX0y@@3Xyrim z{CJEaa3i)YTiW5dgg2loywASd<_jo;e&s*_Ec{lC(sjYXk`xoO1FxJ=mKcmV5i4QQ zX#VgfJts3aw*vSxot-C(h+qg+41;;uy?YA)xnwcGs>%nRa9CQuzJgf)@WfH&F35|3 z*7p>*2C_;yJXKtld73L7(f0=|3_ly+tN*x?AY9Jqf{}A*rjwMRprfS*5qtN-x>L{2>fRc1Xk|nL^ zmOhpOuf}95?4Mxd0a(}p8|_jOz6)TKmsn#sr%ZvO)YIv0WKSbQ?FaFf&8&jii#@f-8YDAGr#`pN8J- z+#JKEO$#$Kz$(B7%{jJ{kW~r|Z2)tsbL{5NZ8Ou;d9V8pmOt|ZUvqZU%9q0Db}VrH zDTT_vUu!zdf3Nfu+npSkW)p+d)TyY29+ndJiz^T7e3U#EhrAb)^12n870AnP#GSlo zWSe{_zqaYqVD{EvCy{>Hq@B@|GVS{fJr4X;XP}u8Z5nk%{AZ5YFM6^k!#!n4)*gr% zNc-AaT9R#N@w4f(^R?J3YZLGpfb`H-s1U%tZUKk7mL9K=gI<~AbdOt}?Ux_!wu=T>1Iec^n$QIy6BJP1NteV}jg3v*j1VE+*)=Uvm zQG_W9u2df56A0f(6?`YZk-g%s;UW1Sy1%!Qa}c)!sTd5_(_JS5yde3)y?X?D3l(hQ z?+{Heai31*yE{i8qRK#QI?sWG167izn@Bss(xsxJ0(&DFx?c$7q9-4g9fBdnmQ(fT zCE>^OL&)L&B72=eb-h9kz}*Yh*8350Fbm-2wFHx?!ZedyLqdBE)O$iV1!!g;`gGG_ zGi7CEAlw1xv%_LTswC-h4zUrTFZkB2obN5FO(oeW*G8%43A_$0ZYot;28R5et9w?o zBR${BN>2NXe0>wNpZbWomqG7u2BqiO=|?-u8+%q6M>s2evJW*~E**I}6VM@^x!@P0 zv?P@{>eu?i^2S8Kc`tb{>yho*-8U+Snis~X%ln*17mE677EF(?JZPIW$+vEBP+TiC zzEd%2I%{>!z?$6LozG}OKj!f|(^`>@y4i>r0B*B25^Vz*{s)ptat96=mwAIM2bC!~ zP+su9fXfawZaddL(BBUiwlEM?Ccswz^m~pl{NSKRQb8yFATofzoj}CpEfXPVe;|I514|Q=bxVdX`V8_?uJ5FsG+6*df*98aMXC9JGRQahr}_=MhI0(;-fcyF(d^AqO`#-AObO<6c$BY5|igu>^;oMu;fGRzvDA*5k_%uG)H!S*9nH8n{n zD0F}Ma$x`d4otRO_JEQ^){-70w`_Bz-`eM-M2yl{TBcQ2`oRUGOQjK^5m_@*ci4pk z^cGW6GPm8Q`WQ?%Gx6dVFXkpEBWlk-GM_=c17+y^{CtAB1(QqnNz2>n88A_B9(e{T zaIoJ_tl#n0+^Aza31uyF^OTD<`wDSzfN+4%I4lqeuKMcALf@_{nlcg)9G|5oTmklQ zOwXjc&)I`FfmMw}vIPeeL5NrMd|vh<aNy-4kdqFtN31Mq67OP8{4H zuHU$kBJajX!dXuwmY|MaeDMY0;Z;eAhr7Gsm3v18BEkDEef8?70CPL@_U&unk7Goj z;(PdhTE#YlCRNfOM1I0Y4FuTorSVtB#>Owa7=J2wK8XGDvZPc_E1x?#dFzD-4+R_b7>EAvfFU?aIkDiVpOiI36D@yl#F!_BOlZ6rjdSh$GB!>*$_V~h$j=9p~* zZzHKmy2p%blmTZR`_E&(oSx3WynJemRs_E|DsTCKEANzIeJwH9LmcPEkloh@I zSazK_n&l^1=zJ$G&h5v7GPlB&s`{3Vw7FyATTQ4!#7bk22m8{LGd>6t@3~Opt!3<_ z;t~-wIT(62rSr&U&Z{rgHNuz&(*ACFM^2GavP0CPma&m*;&P&%I)v>qS7)xMqa1hW* zTI5&twwh0$?)IFfBw^fJp{ejx)-kZ7@PjN3vV@RTLFn`XLA1{7;m1QXG&ifO)mqx8 zXJ#Oh|IfO!V$4HE2(=TDm^zU6;1u%;g#m2g^x?Jn>deEyf$p}pwq<^GOwg;V2jMvJ zIixmh;q^^O8aTi5pB+e4Dqst%?wN_(pL_loHkuQ(g`t}H!^-*}_@ z(!(zlU$=k$EGJ~mr({k~`_gmq?EXTjZA8DfMh%9+)My28VZ;nGDF_;)*t!Ta zC1!*)TSdLCSlkwNb{Y~&4DrGqLdmKpdC0>cc^DKgauxhbEr;NhGseAPb*;z`i;f#_ z`ittOsHn)*)peJm^%3XW@+=$pvQ87zKtoXI3{U)Z>D%_3ZB{>O^l*~jzU>yp%wjRo zll^fEX}Gf>3iOLt2j3{Ko~O2}t*>wS^&Bn>_dm6^%aATssjtMG(^raPqDa3UbCRM> ziSuqeP4lHhRfA!(9X??pa^3AMPu~8LX){3bI7v*{jCWtOwk`&xoH&_Fi-Zf8;9)3D~r>H1u(D4fCLl2Zr#8imeDIKL=&N zl<2g3fsRY=vc1Q1)61Top0^iR;ai1s9z~&H#iklHI1+*t+{n{c?o|v{JX@JV#bouy zOB}ulb}?PUgM%(>t3KCWSIv}}<{OK~^!E0~y6=dQ%Xy%G5z!6P5ghF7?A+YMu}6$3 zf?ZJ)!NzkDgfkSLT|-=WXlQ6y*eV3&2+uPFBLja(KD@wjfWsX5 zZsYs+ge8i8?sL2(q*e&d1Tza?OytnWa6bE7adV^b=hqCwvnc$?S*!&gv(Vz=1>#`C z362s8ij52$d;FQ0Sy|uC5KcgN{;N!8_805?JgL6 z@YCYiMe6!Tg`1O{tj8Ab3+@okl9e zY$4%Rje`y>vlF$)@&18}I$&ND&zB(Uu6*eP^9++6u_faWXM>taeO{n|fB=jLALyhi zkpRR!M1KtQp=9l1upnoQn3pq~;K0iQiv&Ou#N3K0vjGJy3{%m_E>Tq26{M6KD%5)U2Q2Gsr z{cLB!IjRpH7r~;&tf42W1#pGIzCCw4`&!C&9Yva!~g&+FG$7TGJp9#8ge@ z8$w8eM_BdKqL{3!I{>jt6c(My9Yja*dJ3Tcg`}&hstSBnl#%hV#YIIRQ-(uF6R0;z zfBU+fKb#hkkrMMRaDi zdkM^1X;2q&b>49I!mODr_? z48GNV64tf4@+YkPW8u%5_&0*Vs)c*2!@M;#Zsv7>;yQ(T4ZHlbcpPDziF)MmW!ZX<25kjM8>ZsPurM*f$qR0* z-%%hJ?%1l8`58{pMhe0cvJ#;^uDrC>2$)Kk(`s&Rw#^j_OwqxnfovZpkl^nVmzekk z5f?~B+qj%Cdk|}wow~*bf6}*OZ_RiYi{`Z=lm!0LCrs*}YpPTg?I)3hp>{)I`6fXl zIc(@wK=6*tBI<2As?C9o?dDI6>T_!Jm}HgO-f0*|B=N_Pt_1p@iv(uHci!Z!f^$wi zGqXYBqNnlGs%43agq0})v5Qt8zF&O)MWSNWzJK&$+voB}k1#s`W7OM+W^AG41m*y$ z5717}pFa=P_4qHEAslz(qa`d2RKk#Hx;6MmXc~&&U%Le4Rtj0!~1>$VjsR2(jJhDe&qB= zhmF-RFXe{#Qr2qqSEt;4D||zbPBy)|Vdz*{RJ6~iyLyISQL*RC7gNy~xf8NylF z*-4ezq$(7n#|4vwGx4^Or9#?QYhP}g?bfXWi$=P-ym9r%U)47>$mo33lleU2?BU_@ z^QH+(E1doEXJ7znYnw+rW4E@?b}=1?MULy}STAUp7>-;E-X;f*Y^0aOgsf&whNuz^ z^quihV`F1Sqh+4NT-`Hn`Y1k0j78*DG?#N)i$Qr<%Wnqiy?trfjN0N26v5K7XT&qP z_j2SM&edjR*kR49uI-%fGd6Kg?xB)%jaKH1PrqgJ!-5T)Hfw2UXA2n`jyUUI`}3{A z_w<{a%RDQV(_hE(dWU|wO!O*(F7joZN-f7#L1s;rR`KeuCfeaF-{ayIp%a~tjRfN= zy=5wLEuwyX@w%N>5_m{Uq-jPllDxgK&MewIbCz4g>TIe%6bvAHs{8#Ewu|M9l%pU( ziS?Z9HJfQ~Zx>t@Eo$BdwC(BaHv6SqYx`x9Amt{iTMowOpKV&q(*U6?E zs^y*GuQT$pgi=l@cX2l1xWR?n4NlxA=4Lrbjj75Gc6RmeFP4^;(go@s_!v`rKI`vM ztN8~Xoz}4H2X|ZiEq~*^F(`uhNt;4b(&wSiPZr~qPKBxO5OIu87%~gwjrOpNHb>t_ z?J&cGCMzDp(VE=l*9N_gVG$Ze-i*@<7H*BN!C}HNkT`~oT>Am_Kqul8<@pzf9uYgv-4TfdZ3>s-T$*;>BxdGsb4l_KrUcF zHjIC{L~3v7BU%3g?Ca8IIZC<8WX|FC$sL!wDM|T(7J2U6&ksE;_m)}x_G#Gh{>^qv z8Zr`wg-ik(nK2MrM<2L$9b@DeCb#Wkh19BQ^RL-0Jr#rd%*hL!u6X*;=+c$ZA6~(# z<8j}>c)N7hOc$-#PQJ1@|Ap$fGiZK;Fpm~H=3{&&zXhnJb6|r1vKt)~ex!cB@7qtJ zW%@>I&BQ=1aVsNWfGUhBY=A`Dbd~#q9xpfFj?5tPez|hyk)8**s|X<&@<`f3uV} zOnuZOvX`;+n3MK*LD`f2GB>7CG+umRYTU3LpYk`G%VYlz6^0#y9*pWtl)Wkmoz^GH>C!fP9@?PbV8{Pt%-m32H0IY_USi)x zhKbDup3RRfqb}>R-7=MFE6CtxuCBlJHa6ki`_Y&ED8#e557`7rtRwLQa(GBio8|lL>8pv3#S^QgB5hR zq@Pld%C&_i%Rbi8`QOS=eb}=3E;-p<{V;zkYkq>81bIMENIAJbn4GGIom)f5wJnt9 zqA^a~)X6Wd(KKE!cI+=$-9V5C1MxkhyTd$wQj8Fmi+U#?Iquv8$5DXhR=SK+uUh(jhij^TA?CeTFXT_-j)mApR0P! zvs-w&i39z+%uT!w;`j3 zjDzGa6huza6?LjIF)`885)9-$EP!{zM2e_?r18m;NrbF=3LnRN7dDP0retl2!s=UzZ-?T2?sya=Z1DHyt#pE*OuM@c(b_O|`8s=4+S4q?7;KYpkO1ZOl_GA)dC9VF>*&(giC zPsgn(%oh|W+&*8p&Xn=F8TV=(Pr`e$zdQNXGR=@Rz=`#i4U-4XI7-sBoNN-M?7pwO zO^%fQOltlwAvI8Rm3__sr(}tY5N%i(V}|fAmy9Y$1u`{%eD{8juu1Mg+J4y`-%^8! zCHia^H`#w)&@EL~lh@XyZy|-0%$tRo&hhJt>Tee2a6X_Wn=(XCP4VF>71g4feUId@ zOSFC%#VPqydaTeKx)MZ_LP)n|s>p5@rg_U7Oy1Nn52g?p(~6qIQj)(N)y@V-OSQU6 z;4Z@IK7Nd@J+Ge|-LNx=1tA$PF5&0EfWg<(Dzt53L2sikRHVFsUz)CqXY3)B0ZpbL zCed(oe2a==wK4;F|M9C*Y*D{U{+Wd9+?A=493bx(=U^fnVJpZlJJlb7d!z zLc_~&*IH-t;bKxKqT@B*Q~Hzhg&+JG>9Lne%U?Hblunw8WNUVdgPlYkotWA7b8Q_a zFkx+!T}R%DbxV6RRYdn({4xJ{eJizK8X0BnjN4OwRqeddg7wkQLYefr&ulF|7?L1k zxi0vZ&gK6f*R3|bpCe9=Xvb*|IG#Oraq2`X$B8KBu^&^1ZM8ZVZjT(@^OXnyK@n7h zS08c7I3Erk8+q#Zw6N>#R90f+bN5|^BNi`Ak85nE?bdoZGC0_9H83W|P&|ra_hYi- z+i!MK))|$}V)?HZd)RS`p)T*j(=+vN<2A2|s9v}&Nn+EutDk3> zwYpMSX(Y;~8^&d0)*S=vOE--xxlwvoA{ULu);p@_$cfc~TjKu@vzT#joBz&P$4?A1 zw<+%&v>jLu8amtfXHjMj21!%%{j!Z+wVWhqYSe9>Mz7=f?DIHt@7qtGm%5+3K&7}R zXq{beMZ}@?yT#*uxMXH#eoajL)znKS8j;7eE5b9I$!O_pMdIoO0xgd{2;gw$Qa!5? za6tYQfKs3$^01{XefjLTp0IX_BcmGe+)Q}Zz0guDNqfJhi88&g&1=!4ARVTa;AcLi z{i~+l<5AE0mvs+}P=;FQoqP82hC_@0BTN*Uv=#fT4$%?+?qR zwGJsWZybsGkP*h^+!`T~7jwg#z486Qrw_{+iN)2l!IWEpMJu<<(n^c=%tY&f^4^Aq z)8d7q;tj8ZU3DAse@n~Vt!Pc8YNtF5|B!<*1*gs)rmkJr$MV0FsQmo^y&$+<*F)WxK-RZE1hi4$dK= zGrlsAYnUOf7l*!9_4+jTGs?oLM!_s@>DZsVDzc1f2VZ^q@FLwL@tBKAxO2xUtAdX( zDP5(@-&zee;v)KYStY2WnT)AQ-IdlC2;atB<*wJ;g__EH#U6n|sdM_XmZ;U8702oB zNw?ldcYFB^#gi*C$d+9EmU4U#w+|Ug`dq;4d(?DM)Un`vHXcp-5c|VCRpGXsJ-b8x zl0AA<#T)oq-7WM*j#wINc5IWn|ciNb0_D=Kj|FXdw4@k-EGwqe~pDi z3tn(e9t>65Pb?xu>t8w~pC$Xx--`bl`Ysy3me{7ib-9*@&rl>bWtA#BPE{wfbtrE2 zsxX~_&+dDxO*cbjn4z89^ud#O))7>!>@~c+Sz-)BP0j4rE@nl( zN<9|9be5a`vQ68T$8RG7&1{=zJZ0Ei3>{von>|V#?yIN>4ZXCF(cz~6btR9$8egh! zgKR1vA9&Fj3lk<^b+!;udCqKQLz>G0pLa3)wVp<5iHWme$2L(=+zNlIHWS+!Eq`~f z<`>VumpP|+}_gH`seU2XR56{vPYdqG0u*D2g($rXZORE66LOD z0ZbQkHDtrsD<-HrA%^y=HS3tU*Vqfd(>JbPHyYTd$5y~uRk!q5JDWx0Q(ax2BwE;T z>-;hOSJ(9-`cH)IHNa}ySNu5@xqrBqHSJ7hxgYGZ+!;+?VB4ns$1y4QkJR4wHvbPT ztoo*A8P~|G^hrBdHfT1`s8IN`9=^ThJ>BnhX^EQZU6EXAT!%!qp+azeZbjpao+5$0 z6%UKUU{T_0T82(o)b_%arQ6BoyZ82boE3U^LzQL6xv=>C`dWnyq8nW<0U*SQLq!T3 zz+k7i*-OjxZAKaxZ#6YFJ^eNMw(-MEcNXu3~|NLK$sq{BkSUY8X%<)=cos^@&a+I${; z9iVYJ?)hA@G)Ejwta+=BWJVrJQRCN1KXdNL!Fh*s>FGj!%?38ZBGQ+3Nl!;hPsd8n zZ{hMfs^B9K>O*O5(fcXx>g*8rikznMyuaJ@z_t~4A?3zTscy4FCim|v4-KDs*Goh# zS|fUj;lI3)gF!=>pZ`sUmmI`%&@0?sy76s}VO~ArfbqkIth4~(Df%04 zpX<@_2LHUDEy8p!U|q$1%S|$88FY?6fUyP`{2?%xo=U&%B)rI-$M*D=RzNl4x*A{b z4ib=KAxX(;0L+^h8415TOnbkJO+arHBj6Y&ZUr+D#V(X%p1GEr6FPAKT%KS4>iRx} zGb^V6J#{qF2tPLPh#)Bg3jjJ2xO%$6tbjm1YWKc$gtN9;xu=YR!o8lbWXN$@)kUM5 z=k~k(G9DQ9H8K)bWty(=*|TRmKiHw|4z>%4a78(GOu=rrLPaDXy}3y z)7O}hJ?gegM5K0FdC5~4?3=X;ALx{|PK5SCx9K$(z_Y&LnJ+Ml(n$`c_AeZ2tdMg5 z_J}j}W8ze;&er{{u5q6Vj~`FXS>;Z0Dt_B(Z5(|~F~0N2Yr2DR#ifGXa6J0(L5P>v zzdU0V;$W%X(?>wBglHy+hlCm>u=!&t3X3qX7c>T~ZuQ%>O`sDlKxHyT!GoC)N%{)~ z!<*&2YiM^{_{_19)HO9FPCm5+?t)!L$G`xXNbFRP<(^#@6=mr4V?2HD;Ku(qql|6a zHfToun0BQhf%ZbE*v9WY2RTc5;58W;JK9sCqGn(__S~*R9F!<`Gm{#uGd;05YchPg( zyx9=~07a9aC>*nr1`zM^{q2UL>);`wQw(o1-hKOGeTv`K{(l*COeFM-pI&I-YB}nd zpL#9pN4&0BHnpo`0hDnjTPMdW1po3NYMFBP3>>bx7hEuTINuBs?fe?6FSh# zi*czP-mfmSWc8tUKKhiSd5$Id+Nu%GeffKkgz&65luqXjmRFDk9F49Sq&c&1= z)&iWF#=Zh${rcrgY?lriqL4X&o`=K#;qAS{x$gV_|F^v|%BZA5$Sy0CtcdKDl~OVa zCE1Y(71FfJj_f@`p&>$%$V!xqgd`;Mdw)5v>$8r}?~mVce2;I}b)08s;r)KUUeDL_ z`53py{qFJ;W+$PkP)z8CK-o<$c`yvoSYMsswMfY@c;MklNlp$pnyRCz+1S!T8Gy|s zJQYKcXw^d8EG98g5zaAjI_0)+Hf`JX0C%pa@a5Cf=zGa5_+~1JuX((AeB{2oo6_9b z_HRbcqNIn49y3F?Gw813<9@DmGb1IZjtvgVEhJ1+F(^Hd^xz~ZT#A&iStxAFPk4EK zL)FFMi|3T+W<}o{2K|l6$nBYxLxd38w2eLYJRKPs8POQJ4fY$Yof+tFpg(co;6cEf zp8;t=iSPI02;9*QEza>mi4D-i z@A>&vn7u%=Q~~ZIo*sL#pJB~Ix#=(PQ?JS1`b}7TsPf~Yc0pw$wCcv*?BhTraL!H?!6*p3XEzP$e&Rvj6X3WYdx%X#5lR|_ z#K~vNVVO%1kiJSHNyfE+RGyXpW-antuI0@eh!C~FNE0>Iog5tVc$dYuMQ~i;PvP-Y zTv36(rvyWMl-4j*P?)#xf0aKrF;H8JB?PVxRqHDdyf}UO^lqKly_aUsc+O?w2^)V6 z6a-((wsE6jJvxYPXod)-<0r;~zI^cDSiMtcxBS8rCuL-k#wcqfoEV*)JjWl^+uIFq zlLPzr@03}lmzZtmAS-G&X0Uxz+m@j+!Hbkqk+3PxC{z3iKxb$9b}>3Cuo&atPe zvKo&~&GJR=TYf}(W$-pr=|0QH=-F9!_}Ca_5jwx<%{&$#D6m%YyzhY)7397=f%0Id zAPcyDou+!A98E0N3&AS1P_c)uuJmN2QYV*v?Xcj|R?7g&Obt&Ya_gFn?8yL6(5g^hu?2JG- zfF^?KL*w%a^}ZRC}!eJ<93z-!W!kcfxPT zX676R+~^OVNi^sR1KS6E6$+x-3`d`y3xqP?b|wE$ennuxpiDqz3cCWq_W3 z(0L*xx4?)&LedrAi*3pI3ocy9_3I_)Jf}YW#X8252P6_l5DkPDHKF+nF)0|4S~)xCK3o4)UG4k*vBf2^`Nh`HXZEkRY3c&So`e zVeEf|fEPj|C+S*pFl{mS?;FpZk5Oa-lh6hFMlNMHI`uD zKt;j(1qHjGa8r@aZ2fdEkC_c45}exF_rET-JKsALCbT~0D$1mxY(@xcOXCm(oQ^>B zEC4;>PUDfGuX01JpWr@Bf{~obi6uOwD81rXusGm*2U5B<8|dj5H}eph!#xz`+kZzu z_XM@|qZbeSi$pUhg`PYk4~&$uwHofc0q)`K;<9%9o8=PqeC;w96$!F)-@yw3^n}oq z#fgt8hZ!W2Ise+Vi&&jD$P+heeJH2-OToL6_p8w?}>5s0VR$*!RL!4g|C zXdm1cq+f^`uo@(+Yj7yRtqBnZkmv)|4@1Y<(C_#3+W6qYy-^>}=EyfV^I%+$LxVUt zaQf$2*VYhRKYHbYqN390#IW3+KTjF&7r)E}@&=CB*S3#hYJ+Hgt$azrngC&?l|F;` z7Dp}YWDpaz!=J2&@fg9zy-yF0s1N~CN6$U zo!YM47qUIo)xQ;7vRN+^vi)bUWqsEzQfg`HGmL}5SY!E{aTUU@6OZJ(cY5M6C4DD* zC}&45>t-$_)8OOrCPm&YRtRJis`=bFTs`v7d721?A^PA zzhU8xj9@eGua0@e`~BRpa=>aA=Hh=Ms2TzATDHR1R-$&8Z^TZzTRJF1vWC>r!T9>_Byc5lG zI?+Au>+9R3|Ej;gzpJa_Yd9BLXJBH2$~mEP3oC1R+eQ}8;@H-+52K@B zE8dTcj*SJ%*xu680%`qHwR*SU)vT~ql|0h}Hm_(S4&Mg_zi#A&ZCu?jci8O?$K%)b zL6LN1^sjkZ9(nWZJIW)$^dO_&n2nr8D^tRDpRQVC&0G5&kDU35e3pmdWm{o3p}gh& z%O>5Z2Y!t6p{yh*=mGXA#(4x)*t6J4N17X6zdo#?u?ELYfXPlh#pyzIZ=0G3k4mI} zNVFUXoqi%&!52eApI|_~D;D-u+y)?pC6$nG#CjDX?yvj$mY{&w z1NZ>M2aKkncc4s*XXUGpKMrQ#8*7kJYccyZJxyE%{7g_=*tN82<1mc|{0xB3W%vzT zeYrdPP4!QvT8xF>E^ON-`}I1L?`9I>*BZy+Fub9stBW}RcBljHzkk27H2=M~GEGuu zE@3)_)FvYhy~ghIJje5ohgWlK{xh1iS)@oLm_%}x&-xqV9RFPMhx4n9PZqwbXF@fr zUX6Qbz=0790l4Ua`Qnxg_YdFQiO~Y2Gax`v2O%&ij(3fXCy$<_@u?JHkm{$Y&B+-8rCUlLj`*@qbg$P2>whD}gxJEstl_XIc_XHCy$YJ0KQ>_;rr7t-d596Kus|#J z67(4%kB-xuyzXDz8`BbE1|WjS@E^Ba#smoyr}P-+K(&t?!E4^;Ph`5}Z{o*v$=COa zkto>r_wRpUh@hyrIJ@5MPDpb-D`oMiHnsq^&B68_GB<}Fy&0;%`9`Yn)Vs)YO>9O% zS<%uYNY|v82d(SJ$dGXA9YyShS3{epZtAwZlpV3w5G(_`qTjIL=8YRC)swb5IsL#q zfgDOT+}s4+lR>E>9)n2s7b-|eK|wE3t$=Jh=_CSw&In?fDzY8(ftakiHro8853H>l z>HsLS-v&T}QM1sc;%2`4Z;JQzNr5@2z5N#1RQm_#JC{st+4O*t+u z4$cO4G1Q>64q{;;zeng~l4n|QygItmI)8bpY1^RaT}=Y9Mt*}$3wtPPc?q3u1+lRE z6b!>j3w8dpxN?y5#2wM~P{5LPcpG0obq9L@m55S5BCdj(#caF;sSrAPc>3emZM1ZC zk5^tKWEmIW#zs_wQYCSRuKAr)}Wl$D>G~dZGe=`fb^84XWDW z*k6FL;R%6Ab76V8eb?@FSe#@Ifm_1j6WiEXY0l<|%@|-qpgV_I3B{!esl-v=x$*j@ zgT$VML2U31zcFY5WDrp?c4h^*J($`a$}&OLRJ23^stp4x$PByzGeNx#vHP>-nP$7G z@VBD^|110@QfsQ45LB-&cQZ?Z%CRXLFoVy&os%t+4q7^8Zev4Qtp--pJ*BZluWn_< zx<{=$pz)ZH+3eWgVMiA#^w#g7i22FY%>yl~-uI$Pi%Q9+9)OHl*EwgFxU>AT-43-OoWdgKd$|#1?4`=yz*DC zwNF#bLK;X5ntX$U1}AcnbHAICmUSW8Ksc$4lv?09($b>y`vHfsu`$6U<=$GooBMEC z3+$#IlYRkRK%xg`_i*|fWr4L&ZB(k_e$+AQu!UYry7(0aN0~$x*J2hxS%a|eT~ z{M`ZAg4$~Hme(EnG`#o zj-C)w)%PBkH-A&+ILHN0Z0YzO=cgqWu8ezEHfre1C1^itzx|j~`h58CyZWf4x2yDg zRte$BKT-A}`nb=CKJMcYCE64Ry_KzG{T&5whI4+wpey^^OiaOR**Pbp3_c z1l8dH5LD4y-D3O)B;Ilve6@%)-~3@Tp69Nn78eh{{|tZXC;;MuyDUZ&-=+EtzcZ8Y z&_q3*eUWiX(9Mz|SadvV^dx^*cAVQCW!Ll0T#V;7B!ur~lHU1(XdT8YnsVMhV=Tn{ zg2Ul^sYI^7!t7R!b^58X9lf6Zv}2C;$>Ot;EO zDK+GqPu+d7c_@YP2(xf-aBSaxT0b~!bdo6m7|ZaZ=HP^x&d-@X@N zM`(ZYcii{=f*{XHpd=?1t3pFf4H@douC70*oMK)O%dMOmx6d|lN(ic^YWZ@a1tA2eAgQIzwt{OpOzak%*@PSav^TW z7C1xaHWSx3*2&9tLkII}kuA-77E{08GasWWl_ z0XZY1ZQHhOcG#UbnrB z_%|KeZu33^#NwS!52rKlp>madMTaI8kKns$56bRc7v#flQ>yBv z2e|D*OMbb!lE1xbyO;5{K*mMRS5Lwu;sr8%sK4JomeC_qfPn=Jym1E`Z0C<@#?zi|l*LWEWqosLE&a30o<&ve))2n<0@oM0d29T~ zuDZ`Z&e6x|YhL$S~d;sg1o*9uPWSwp;>mk^f8gx`>#f zPc->|eDXgxRiqkR>%U8Bm~*~mAAQe7HUvje?mG5Xam@e&@{{x_LV$y`gfxVPh1lsf z%HJ}$8x~1U#%m+AjBI9^|^iG@w>QqNWnlbQ|b?; zBneJhDJ*UkWLJM5t6pN*#@n2(E*xefrf9r=_nH6mHtv5_5c+4RttV3MfkvzInNkT4 zYST;2awN_j`ts0zRccPLm~F8+b9y7w=_CKJGz6*f@9PLkN4jK7uju6wP1o&br0S?u zOV)}Q3ujt`Vr1M#A_6-46ld6^|>Z^MJu^U}b_c zuU0xwogs%d#RaZ_#!wUKohs`Ol&w7RlZDlZj&M%bHpi3JSL?LXjcyI$cX%~Cwh=y; z8DDI?HEJs~;+Zt!XsNc^l5s>)y5xeUAeZ4sH=~F}Sr0NW6SyC2oy|`rQj$SZ2A-()Iry z2LotTrtgCN6G|)kXZfS^xm1;TX(i)K2LEQe!1OPA>7XIQLy~ADo6JLjyUo?Mf=`*L zBce>GvQ6?{h40&;Z+BwN=CNd4ZrDMMwa9gL^^yLL@coW$hKFi0O*v{N$Wv*9FQf|UZCyHVKe9{f)MV4}kB_;f#l`eL{*DJ{ zeX#bcufDBZI+8pnL)oab zP5zkFu;QK2YvcFlHcfMgmfk?45~Qxg7`V{lYQSpo}#JISt@PE(%xpXA<*E`=VuLCk`42WbILjs6(8WI zuX8}55pLHsiXSqrwSKRd;pJ$G^ts zdbOARl;nZxW(bRKdb_J}fBKR4v~MSsJ4mm}>vCi`<2nD7p7Li(=aY?a>EH{U_AzOz z+wxMmGxdh!rjCoClS1fyJg!t1;aw>eZHIrOy$;_HB5~wcAERvuhG)te& zo7Zi1=a)*BW72KRt4)*5J5CeH8qP}563#2dNXU4GWn;H4%ZK*(wUXx$M>)LD744!f|>fwm{sRblg46?wMb>u z0p!Dhn@G?XVd$(3m2bVMCSYHgb#~KlD{j6$>f-0mh8TA}D>jk|YmbsuO}(YAn( zufO9-U&X}=ulSxr83QSI%pNgp5W+l1mK*Kv-< z%yE4+&Ag8$Rz5ESLd~sQv(5w?sAooJeo(nj=f|PU)5c5Mp?rwpew4*o%ZO;BL{@E; z-pE*UI`V)+MQ$Oj8b9nqfROq*tGKPdFjdkMP0dsO5bbB{)g4}eX-o6vE{c< z$96N%`r1$bwH%C)E=08-+4Oj?<>AAxF{PvJGL3>crltz=pKaNKWX{%>kA#`fGF1AK zlLymHtx@GcolUspvdMM9DE4Qp(SLY_h>|NroO1S7U3@m(dBfni;V=12(;SSh3s*+F zwyHFR*|K$A^%pnL;pYGQ=0)Ys%uY_NKypLjqojwIf6K}R#@5|g`KYR@oxeIWk%x#5XrmtECR;m1w!_SC%YhBQFd7D3sXvGNsj{_cH9{#% zeUjgidvF-=8^{ytaU=7jeEeyp1B9tj>mB0Vnk%SXr5u}aT07UU!ZP$wCiJ7 zSeTKq@loL@l>@E6)3=H2QdC@pz(oF&+gj;1wa2v1#%+uUL)Ak!gx}r0Zx7^zoCxig z;wAONn>KDFxGGd`A$^s za9crgfRY-@M-f#qK%73;UKz-&R=%l~zKCLL*sf@iC)Z~RvM_eBb^P^9 zQBCuv=A^>)7uzkJ5-BKI+B)SRl*m7v{;AcEWohB3hJC{5#+0m8j&kRfzb%yvTerrk ztFQ4dU(eRwvG(bw65n{YZ$AwlH{t&K>|bd^_nST+FUZ9-yGwsn=j)7KfyB#bIHBH{ z*$-!V3hbN%t_Hs2xAxdIyBUL zEa#~%Av1+pO3aONVnPSsm*cg($4>?poFYIgE_sDPcu z2PdI+hJj&p?k~8y{`&I=qr#^zV{rBf%6X{3q5F!G@iLx++~aBQbB|Tz!zf~EY6^p3 zjc?wZn#5u~h(T&JM<%|0y@>WCdRY{8=;UMc!qL$&E(j`Fw{!$xlK~}_>0iH2y)i}i z2E8)~HK9jUVwyu0fT_}E+hU9p&d*s2+(%=Uybfdr3ezxP<+=X`wP0VW{h1HE%%IDC|4sK~J7>fQ3hg#O zD>iOi8*z6kLrVAAYrfzM}fq>8h3e3d?%KI-?66VZ=UIxajaYe`mVTy)B4$Xf7_>XbYNA1aL3Lzqvd;^ZN6|0tc#n={mVdMfoPla|24KTTYtqm0 z@oWP@RDhu$@_Yx1(sOV=l&jy?>9I$F29vEAU{)uHHQcq61DQ_0xE_5QNR|@&TcBKb zxzgFk@6%-xlVFMh{ugPWRjQzHM30@8Qf%PN`=-jd37@sDTy<^wHG4&4lGfjQJH12I z$b%;-?*Ee?xo-)`&&KS4zT#idTy}u$Fj|iKm*}hMgBpMkf=M%t9bmGay1>FH+1!b|IprD?8u#S!q zI~E-oNeC4IRKlb+0|~2=f}FhN?b~Lq$Lsn^&`hjCj|4&(K8g7KB5oGWfKRxZP@6c{ zQ%psI0t>Ov# z1vez)%{6{|;KfT{AD?r}p2if~&DLH&#Y^gYdVB^}2g=Ved$@U_zh@OECKI4}>`s0y zTdyd;%anoUfN;y3kkk!rY;9 zY>q<7@SV)l)ax>7nUv&Y4X!{_0Jm77$>!}X=L8THL(NK%TY>#K{)%i6mO66Y(}M)? zGWAIwEAFo5tIuuS$EMI_fQBTXDS(#DD{bb$-e4^R$`znT3~0rN2Yoq608{26VT6Zs zyP_XF4oeEn&?yEMMcAH#JVMhb2G1f&@1#M30c$`<1071k+LvfZsPVo>a}FIX_^YQl zC4q4PRfyiQtjI5ByOw`Y_`x9D=RI{tr-ef z4M*3MKv?WFG#b8rvkfXFtUS#>N|CyIdy9Yc*ySHRaT*=WU{xNHCf_EM!utQ*S<8KD zc3MyG9ge7ctIBrtXwX}wsH^^2^8=eXJVZG;iSczzrGg1sL9d%Q@bP#jjQ$)%o{T+z z1)U}c7eWTa9ViXane8hVrAubRrgeiGDR433cCS+IeIOF7$*|KGkSwTSocFB-z@)WBA6J}SATOFzf z-Kt6GBjg^hsA-AjRHjU&&VzO8+Y|FORIZF?<_k6n(I`j#<+DEL^4`0&t#s>qHf2`r ztd}Icg-suVQ+rdb{f3%`mPBV;1bA#WjPT?h;k|nX0D5FQ))`hCT-pf@CBiKb8@9W9 zDXv<2Iz-fqz~=zokEf!gX5Qgkn1FW)nAA*^LjgJxctgeWcsvM(Cq91v{{2i_CBMOe zed72^Ud88oZ){0>VQY_XAq&XLItyKgS2jg?d1A*ZX6u@KIk4BzFmY{B^z%M->I?cr zHOn*F{fD3(`2@yTcncxKFLiX&zg?8CF8_lI4mc}>r5ynStfomg!c7kv+<(=aPGL6s6$T10mxOR4;izcYi~HF#{0)8e z0>d?Wyr#Nmr?6zyA4gkjy6&!6gpXHX8;#TG<8lmuopFxZ# zDxRBWlm)!>6DSN44(bMsg>?UwJN1H4$Ml1JA`Ib?n=lgm9N@H)l0mE#$X80p$UypK z66?|n{4)R&C8b(?KA4dTvxOmgDv2DQd1nXdI%F+{5+JE=!dw*{Z=0e8;;x`8eANH= zSm&P?Zf*F4A3ppB`v@><2QDg>p3@&L(a>$Im=mN|=G9NItafD7kfVRJu#-wFkcO1F ziAl1gIO$-s^T(FgKPM&LPCRhqqFEbJ{2}z$P>_u-L^Ucq^F=xNZS%9Wq^kM_p#K{>C4tfz` z$zLT(pMwVv_K;VHTU{9f2@WJL@0%wCc1kV9!W;Ki)oQQx)!lhFy>XXNT|!^QHd#k! zmw{ABTxn{0%Q<{(Is4)B+|2m#6WWYYXIafJh=j8(Q*+AP$lK<-=T50~?zeywD!jac zd%}@{S!i}h1ch-?52vWhJm|)bH;?}VTsfTfzA&-{ITDc574EChaBXR^&1y@BFs;3< zZDHe8MT|YfG!OXxJZSnOdeo<1M*aBQF()Ss9vHp}jB-Hu0e;j2IWNLFwD)rJ@;sPf zsrUq_Kzd0Ogn^-}N6pCj${*6D)E^uW%_b^cIq@eEDB%ZuJ^spM?*@~X_`aTg^@(}` z7TRtx;yb0UIt0sVWd z^kbHmc;+}@CCJ9MMPYNg5l%E~bjk6)@*$dOm$(rPKxZBaiC@@dazAe-6|$UwuQ|kU zW|wvg2=sP$$Hv7K?SwsLz3^pJ_lktMum%5opLQMdEL5Y#tIsSD41n8&QE%kq#|~Cj z4=XCX{=MKXAV`79Blb_IIwnDMi(ob&@MEb!Gsk-0g7fzSgtD{a9^Y-)_=9O)7!K0$ zM3QK|xs~O!KPvj%8z1aw&w#F#@!2DVar_5=6ekOfQKi-kY>LuS7qb4M`Om7Or)cXu z387eM-z|aEMx);iyA{w4bf6<6+2#dv@~nC>+1~Ti+^!s;R$q5FEhYK!gfpi0MNptj zm#x3rH9VQAgPq;^LGBKBd<1lhLqe#+6H7EppC^O{v-FEkOiWOcKSz4wai#e?`B-LH zuxd)}S|(1q9g9PQgnN2xF$^^{8{YIyApvU%(iY6CRzAka`@{{tI7d zNQFg3Z(3TgRCo=4X(Eo()zwAoUc2@=d4P$qho@%^w1|O!&h_6s)eKuQ#V5h0M`M{-FL7rfCyL=!ukQu9Ze)AmEm+Y*4-Eno1v-Ggq z&PkioXG3*{h>onDT)^lTLid`EN-h?bX-uq*4i95Z>x;hjbsw+XoJgFmyK}ZoO-umU ze@YCTBq=_FR@yBh))??LyHnkvwJVOp77~ zb$3sXk>DFQYI;A{j<~KqL4#z{(Zq@M>A*~*y=TmiLcxic#DdsMPL9aZYdR8A8Gt}N zz|M$B5}D7+Dn@QVo8qC_k8l%1f9_;fl~#l+JormM%JnTRxhQbi6vgU3{f!xe9l(S{ zMRT#&;AGizklM4^M@{V&LV0)NUnaP}Z=XLug(?U}4|)J1V(G3dFVpfMB;}x`giJ1C zb%^US&zTjKl|6&{7!qQXCy*l1@c{6N2o0^oD`TnB`3L3+ynk=DTmOUHZ_MKmPPQkjHQcc5JtR&s^f&fQktSfKP9TCAx9LH4jLsVTyK85^{Jx^Zu z?8$=Es5o1+PV+U#SouFz-66VC=Jp8@$b|PHMOyL=D9G?w%7>J$>bBxH0TlOg%h&leng2Puq8Pci?& zg9*B|roV35V&8xiu}#cy6W5lUtuOW$4nCR6-ofB|{HeEL?M-UJ(>xPr4Iv<#(+MmT zm%aU<2Iw8EsUn9*51dUaF30J3;u_@ARo(kM2gc0}AhdWRB4aWKdND zh(;W`DN7nPF^aKi`}Vg?4PeWA{DMe@nC015YYm}E-$_8eLNFi2iX6^6YJVCF6p??BSF+&$4xxkg#$ zmwyw2$&hzfx{^5g3xNr?P^4@rWij(2f6zG*~;K8NpE%xMo7# ztB)aM6BmiIrgNrGK5}YmLU(1cM+;QzOYKLqd z`7S1w~6XP&2~qoyb$r!%|9DX?RZyuD=y#pB5}MZWRM z3w#g43~IMXGt8PZ2n+8wc?Lv1Iw7GS7$Nqs@zui3p=v<%FnUo7U1^N%6k#%gWd78< zNRy9{MT0n}ne}BmgB!mSygnb%)599{!p=P>a#GZ?v=Q={&CO1z)?qQ*rH3^QVV=g( zaeR0fWbao=8fp?o0dYvfJ<7Set*0k0YS5uF9TT`fSJNLytYEvif|DOP?5%CGdS3O2 z-B69P!iyuol8kdkA!fod?feoG6BFbSY=x3OfBr10*)XoM=NPo{?n52`qA*u}zm-L< zbBYBx%mKs0hN;laYkH zhba0(f)28TwLZV?=X(W-;y&3)EPpJrm^Zel7o|`nDfDz z_fZiuMwpiU150gCjPTkfcw|goAWtzK330m&Qgs6@Eov2ybOe6S&Dp6qAQnKrN<%|~ z#AN``5L}y8Q!Zc{3{lA}rUnrIpx)E-bt2&lwonYQRdJq)Qi!Ry`Gtp%V8IbA{V+EiJDpZ}wMunI+YHerS-H zZgMCKjg-3X(4lmrBGVi(J@1UVA2SI;(~;R7@v3&G{7;fCi#$jM}gg2EK$V>hY%0X7u0xQs*3-RxFIRRMjxeRSNN;l{MKzmZ{Owh5iU06 zG!rcPdDBjpmgZ*G@cMKY4KYDM1iT%!XC?Ug>#_1qddwPq>#>W8%sb4O*Hm+^7EF)u zQT;;+9{O%RktVrXzD+XsRs_!&bvky8jMzin?Z+-LvA0l$6XjqCQB`f!?vK2aZTQIP z_Xf^Gske$u&X~^j^nZTC{bwsFp0?#&$kEFl&vH>71Huz|e$UEzM6w-@WzUxi_2Pb3 zOhkyw%2r6S{(-=BWMm}1rckz9l4gGPyRqs1BRQQ!M83_GbP{6>*liZ0X6Iy`rnjct zkBbvxqn~S@882_;Wy3`P(1;|ti)Z(44IqFkBj3J_738d?Axd;CV{bhbkgbMM~TK@Eq^`*QSPN8%}O;s@#ol&yrW{IK|l`>tabzUo75~tPWBZEGQA|gLR ztdF~Q-wZ)ewfGo?GQ40eZ(P2Fn3%4aM6OMge2iJ1FV-}+avF4|Fj+?w_W~57pM{#!Fh~6 zgqM|7f<#6V8!odvk!E_fgHx+aLEk6(x7Ezfk8N3p9%SFHyoBCEW3oAi>e$?`7Yod) zneU)bHkRPaBv)}Mt@^qXzpVH7@wo+>P}TweoOo(;A#9mjC2U@ym$adGw{H9_RIa1v zjMWj@Ah?t|V+AAnoVlAPR4nA_(-K311Ip|esglncmMicoC#<~sg{I>!qfq7AITA9qbrjltq}uBTU%2 zW5+5C+dJkjut>Vg?7yb|&?9j4>+n}NlWNck2^$TMvY!a6ddmOpaY5JR{_=$T=Ayim zuLL&bMUTpGiVX`D3~OIZu~2pY#T$O`w?cZUaYM1gRGvD#{l+{9m%H(#MJc+J0U=rZ|z^J+q;-6!g^d|)4Cp{iC1URhBG8hJs;2Umii@T z)=u_oztwn8IX#y3d*-{ZBB$KfWaDD1v}GP|L7gUnFrGRuoO|(M&b_T|olH{6A_ZYv z+eij#GPh-VqTU2WUrgmt6=8k)8Y)Y)TN{Q&uDCr+<{PSf!b!uEoV3~!y-KC5^5^f` z&z(LdJ6nxU4$Efdv(dEv7EiD?$bU9+idtH=K&mC+FhMYW2^#U-Cu3zqk&?|yPsuTo zp_Q(c_ul06mUtExx{ytwPsZOnkXY!cICbsZPUnOh-1wU!(-cg5ESwYV@2!6RK3!0t zijXgfFIac(eP$|1g?5$PtuzH@W$)xVvIb*%g$rDE9_@2!t;)1KYHJh^bx${LN@je~ z_VhDzDWK z<`Z#ujCboT%>Q5xCZ{^iE1j+^wAPw%;9OtX2lWIG54l3hb>i+OBjM${c}VVEhY9K) zjsnb)#b(x?1XdW=9j|-pDtK!o{VfVe2t@MD`#F)~_K_mvHoNwzH zAhVA7_zwcci9#IVJC*btKV+QysrWhgPXB>JQs3f!{h4Ct5W0N%^3c#%{B3cuV|U8w z>ok9M^6@E@R$nTEVUgF*elbx&X<6Byll>ZkECxI9rqC{w6epZRg+qqqLe-4=(r`Ti zAFP!|j(VT8u1i$By#LZftVoQw{Qfco9PC%tY79h$jj|3ZRFMUCL_Us5OTFYXC!ieP zS1~B0i`2rQ9bNxNJTI^9RG2=7K%n8s?E%h%j!XJVQ0M(Nx_Nfn-T+e1GbxigI&;Rc zUjM4~*Bc%0z|oYQ%x)Di=OEc*$q)_O1pQtORXczb3@uq5tATuPjJLudthK zMq$rgP1**TK~5IZ3s)`{DPv<2OBg8A*qKOjcDj&<0mfM-0-IP>Y4L*F_SuFc`y}Gj z+AAfsN1W{K2fWzAJ$X8(rSI$5Y2tr+nLblBC&gc2^Ck__eeq_ZZKW_!l}jBC+!ef= z6l`F5aftP>>j{jOG$#9@#O@!`H z%%D#q`9F@swpRb;$2Haz4#*R@B^L`f`7H|kj`W3=)UZ)iZpLb%(srH(c{Zii)h0F) znh<|wDdM{rl#LTd&nBHnEL-v;of2Zr*OS`^c_F0`{ zhK%ld5orA%1}pz~5EFk()FWZu6o`laKfmDr(jV~TPLcs5yHr1|z{aL}m%hWX&5?{m zNzM{lr?w%(XmGlT|DTt~dk|*8Bi5-HVVYx--NDJ2-dV1zs?5ix#b=YEY;bOydO?sC z)wkiG=T3$>RCyecT8&2oDz{1(W|n>Vj}MWlmt{sa_AS!k@jI)hYkLg=@U-djZ7TP? z^s=kk!R^2UPA)r7eL)2ogf2z*W}&(KL4doFB1qf$RAd+y8ZV4q82WAiaEp)@t+ z&NfTp{*P-Ud2NwZ5hqBw-O|)^3cuHj%rYCpMaC>186Ce}`3!$pmo+3o9pRW@l$AX{ zR>G8?Y?9sb_R;HJvTWH7&c?{in?HH;L~%+Ew`KCY{{+R_FTXt=WTpPSX`7FP7a6zDs0&9zADME= zk=1KXSsizB>ej`h{`q0q$}4XIOmk%Rv|Rq^z{_D~C5-;h2?hmbpTE@S^u3lnT|UQD zN_fTV&$nax}{!Vq)3z z4mCS;Bxp%nw{AtZ1EA@ptWLCUiXA(%W4P?+44kAbpOs!p9A#AW6iU}OYWHYX7nZqg z)^dX1oASqgg{vOhcc>7nv~%0sZqmyBv`D?!y*!fbPw4tlc>4Qi;EGGfal}a~Dk&<7 z%OAGa3Z4J#aiAuxhwqA8jOU2>WW4T-*MXWtuD|n7ZHPA#6qIg%0)#`(zGcgaJ#{P3 zX?CI~u;r{5`~BwOi3NWjNc{Pfgvi=Z&gj^|ZOw@)6wuCWf6%~4Y) z|DdR}+QH5a>!I@<&(JiThj0kssrDn9-V5J;onC=h!|YJQuGJb(-L88{NnVqd?pB`; zk{~ZbN5|ZwgyQ+OLx(*~@19bYvKxI~?!*x_)$RERXzXLBBRZN}_PMu({2qOm zDE7`x$>;0BE3el(7l%-6WaydgUuIr&`EvEPK#kPubc&Lr%S0xVk&@ZU-|x2uCIl9X zhM&e(S6#_f|6|~TF<2D!Q28w!1{XB<{ewmY%Cfb)8!`I}Rr<8ruLxc+dj?Ce!I6=2 z^g5A#qE?IxbQyj$SehO$)VKku6yFX&)&KY!DgiBUBZZiN(%Jz1?y5<_s3ts118CSb zG!V`=)cVU9Y{o0$^$;Cd^P|czG(Nr` z6K<%InEXgtxSh)x+g!rldvUy!Ez4vRadJ@S1OV$~+2%{?gLY#DmXBgUF4- zH;X;ovG95AbHZoHd6CSgf4wLiV4C_|qR)HR9et+gBvSS1b8pmj zV1a=iU5OYv2?qgLp%{%pT=djTw*Br^=BJ~47!oHfB~meaD5Qy(LzXOH`KoHDT8rx| z9pU=fXJ+*OW4oq6uT~fVbGi|lnx1fHC}~xMuuJ}vHH?-5E>HqVgGMuoWD4HX0cFsT zf^H#U)3x*R?A^m@03aTj<}flcdcdIvv%P3=Lkj@hh($l86)G(#%QJ7-P+C?-h^T}& z5^6|KNzw#Ugccn}a%XU>kQPHP$P$uoc%mW2b8J7A{s3Gt>3HDL882xUR#NgCR|@48 z0)#-FkLcEAWME#q@8n7Hz(M{iF|?$?#kpEsOTWvPJ;cPgEHU~~zPAEiK%KchZlou! zD=vv$`O7m5S8DHm`Esf%5x41HtR~m?1jn-znTiIV{8T(nhrgS2bQI-gp~Voe{zJK6 zgU>0lOdK5?8hSB@gbF0ld7`L85fLs3sIl4=!tL?`O1UsLf^n9tV~3!utSp95(Sk=w zu&|UsbI{&Lb`YoY5uJAQIZD`(xv{dbp+=R4MURb6BPO6l`riyf+sBX5Lr<_As3|ES z0NDBJ)i)H#b+oll_tB94>Fh`TNkIc64#GT7NNhK0YBM8AhbNQuhUC=$m>tvKjwJgu*~@Y(O%_EsDPZE+D+4apx^EPEg6^FL=Fs z!C%!;-ad&63c?9giBC;BV{ZyvA$)3BS?|Ye&l7KXUY=I#3J0tQ#|~dok6Ul+=jjNz zd3e}SDZ77gT&W1;Nr1@_#sv=@y5hem?K77hMVdxg$o=Q%m%Y80UId4tWJ^+()8pgV zx$?ujt;OQYsU?pes~)pwK-yStSIiDdtTpZMOTBWwWqbeab6ukC1vGhU25~uN)r3JX z(SruG3QfcGfgLO?b=huQa8(9tnQqn*rH4a4B_D#EVeCirb#&Y>F8(o!z`i@xfAora z;^-X18A7uoGyF0G3P&D7(hM*Dqn!+ z(ZZ&xV?&1Qx`_&Q3)3618_LK^?NqQ8JWve6#j$MB!cjP9xczO(wqc=GxLRNqtF57Vk$(dRadI6BU~-;o*N&Ac_a$%Na#QWsnueqp2AN< z#7nSM_zP=KY)9op;dLi?xeV=s{Gv&n2m2;b(Z-pL%71&UcMsUP172EGi%FwnV}y?& zcAIHj5%{O=^EOF00-qGM>X#)J&DbJic_K^J8bzp$bRnW2ldO|5bmGi;O!lm8XK7Ix zba?BQ8muM$$8z@|mOIXAGBmhK!4(Moc1|WSVitL&>q@+rKmxR@S1+NNKh83Jv0GntT7zk@o^vSeuBM_h_ zlr<5Wo4rX*LYEoM7gcp!-vKwKx1m_F?aJ_%9w-{E#Uva^%utAs^V~ps@nYV^ymso# zOB(cM6|Ssuk-EEkZ$bX7X~uTcAXN z*f8%~6;4b*S+>mtp76|9wpoUWfnmt!b8_NgpVYK8i2H%I0IZCjePmA)KCWmi^i5b<_6I+aT@&f@xjMe;P=9CD7oTDe;OXwwot4tLB0#A{Z@{UK z<1x<5o50ZEZ3-Aw*eQK8{>&V47u0bVa0U-R6cf1;`hL~K7J41H0pZAmxCoaR{t6xw-S1EKBdH(& zL}V1$55aLUb9?@7Limn#jOT`q?o`rdI1ZwtK}4QH{HnT74LG` z%>Ue{^>&%;8JiXk*Z2N9amHHZdb+iL$(hfhtgd!$zrswi_jEa1)|@$Cwn1M!##n1^ z7j3R#?Y!WFKEgd5OF~Cq9~Q8kWf1iI|Lo);GnC?LLO^mO z7TQ~(^){|q*7i90!NMSK@L}{1Zpm;UyE*w7k4b|M@Qvd#Fb{pF7u6bb?3@s2Ks}yG;LmA;4Z( zTFMrx2HVCglX&oE^AOhrkn1~zBL+Lgo+Y+bio9t3Bh951PDT_k7mA5|=(3nO% z1^vFbaP7eP$$o z%PwuCMMbXiU5=`HlY#y6ix;UzzqWHczH##=x?OS44`G=g^TYreR#^1;jwtqhCo$K; zBKX(ksPSDz)w;}>z`YXNpP5rI2nv%&og&-$($9gy#_*hal24+(w)PU5j`;){0+S09cv-pI}6HfD-SYBu2}iR5U_N`(PJ)q{d8{Ctz3 z4R$W#%hA*4&K>_;_R=iE#DZkPLMj)j|xA3o+)!D;rM>$stq<9%`M0{Vu(V_ z9oLhvia6n5ew89+@$rce=J>uI9Sn!|?x0fLgT{q<>;vH_;j+WV5vR`ltDK64TGJ-F zlq07bk1C(=uk<)YOXl`}XnXT;D%$)HVwhG9^PuGNzKW zRYaMm+pMT0GnJt-Q<4x7LR5x~>HS>Y&;2~l_kEA|pWooPhl8~DzOL&$*SXgE46DHG z{vY({Pb)R0G~IG-GE>f9S7;FFpAgMxQttY*&g<4*)k~u(EG^!9O_{{Y6dm&1U?bPZ zpEv&9gRFl+f+J(fh#OaQ+@%szzS2Kd;eTG!aLv}Pe}3=J57^iK-9rC&)A|3CA6$L- zbp7`&gxO>FVK^xm8(>D8DlgNGTAE7)RF^%$^ykh0{HG(E${ghu@DE%cl> zQ_a@{#}w-Y;7qY%)9I4wbcxhDaN6vh;6+-}zDetkM+_%)Q$j`Ohz@a%?!VwGyi0}3 zUOrOV?ldjhPsyK0A|8sTDEIe`H(e>zSJC)!&P|4?d80{a9;Rz=eAFz;QJ zDzvRPUsqc}jQCp>cSZj_z$5?m>9XT?!G!|ZRk;mExK6uwNMxzY0-%xyrp_q(0mj8vs(CS_%m_mPL-W{p63O9QIV2GozKIQaL zA)(y&$BPJij7&;ybD{#Blm8(VlMS0FTfBoGJ9;o)cCxpK|6A>VDM@%RU*ydC3!Yr{ zE+=btIOeP+{ZH645bvy4apZ~FgOaNy8oTS8Upv3+(aHS;=gWvYNn8g!vX0D6%ImJ> z%KRjS0|R}tG}%}8Z?BC#I`EdSLV%GHc0%cIHjPm} zP3wQcli7ppq)6Nwf3|BAf*Bx3D_f*2ZqY7&*pd;Y6(se8K@Sq$7KCpRMBayYW}c zn)h0lg$GTm1|;}u?`++oGGo>LXGyB-2fSF1kMz{3PvJsfi^=a4fFo-a{w5<7IrVLq z^^~t8JOcy`>l)-!m?Ozi$WBcTD$lAhb?nX>y5C<%$1*jxrm*MOTSn_YBQnJFNLwFW zPe?ecV#Q0hbL)#^^#y6RnGOr1+?a!jeCFm(XaKJ80oYFTYKW;t9W?_1_xHJwu5hcx%^sw<`0q%u^^yC@p(-Q z#4gWd-yOO2%hRJV+Kpz_+-J?Hyo7@b1C-WME3Ut9t3d!w>m2u zV_fs6|Ag>5LwtV6!i<4>&UIQf1EELNb|H)?|66i@NW!g^g&-_NY8=s$H03qZ57oA2->-R7}WvE+hsY8K>H^j5*02=+qdo%982}$c6ngr14yFK zEGj&4)fyzNvO2DFlNKp@v?MS~8AGphO$k%vmv%0UOe%2{4kK&%YDWqwVb?Erqfs>$ z;vhZT_{S8PdjDSneXoz+cF1wme+dzjZ(Yz<)6>)ATjaemMioBGDsIGbvWcj5^&gTcWTNJqzx7?OP`o$%!pLm3P6OiUF$`~Kml%}UEBU0hDouF5qK z43%k1zL+-P&Pakcykfx0GKgl^Ri`i_cVThy9hkkgn|%kv?(Q>_t?4c6M0*h=Qs-Xz z-rk<8yiECR@dw;L3^g?yy<^zNX_A(nDRbtdywmTM_^(bhS03cH+0zPa5aF~G$l#ma zLMcDKi8vOek{92+(`y1M2wQKE2Gx5Tu&|--BH+d-vgdp&caif);ocS0oQ0Bm4O)hN z2>#**f3Kp`FYwSz%&Dug@USp^c+r!X^FgS4QKMmORb!mYt$pZk3rAbj-eR7lqmymg^R{4V|*TU(6tOapopR_g%ZiKR75y&4n}GBXs>B$ryRh6I-ubPkWY?Y7 z(7Qs@Y?A7M5)V~2%s*kYPS{CzIIil4z7qH#KvTbpyRU6J0dKM=C;$op3LTYJnH22?Ti1yqeD{BYst zQ^=`kOIg&^Ov+v1`t>>G&;w%n$-c&~Jl0oJ8je@k5=wE@vFN;fe0nx6k7)J%Tfyyr z=+Gtq-*E9p=~h-&wwY7J``XL=3B4vX(>nh48WpE(`^_^0;8Eo9~z?jA`^e01`Q{~m?*LOB^$)0S**olXvsx%|9J134IoZ zS_f7%ulg@#JokCL9cTj<=H|q}2M7fos{?F73-r-Yi{g?KdV)?1Xn$dOAbg-*v*!*W zq#0YSoK;%>ovWwt%)MK;&}H`{B?Be=DtPj2;^k6WaaRy@$h188gMGrnpJ~@e(xg~z zz2n?lW@;uaDj~%JezKM}NMzA5aWQenp=@ogs|y~KRUy%m2!EL?%tul#eaUTC{*yIX zB6~Fil>fg&l{6&S4eU_zZ#)3smfDvu3*t-w>!9bwA4Sg8irK==t#sy{Fl(BIjt&8S zHN_DIN7s%Resv-JZf@*q%HWUOt-OU^;RT;Z`nFnHa`+9`RmX&rDXMGeEY*|^m=8Tl zRw@q)vARSueh9uwlvOb;4b7^cw~QJ*o(*ymRZ2Q0o!UI)yI1D@cW`%U>BKZmc1w+U|0k3V8Lhp)Z31vHY$I42AArFLf&!quwjNtDxgJeKG({C*0f40f1a9jw=%;}{ zK_X{hr8IHg2fu^d5z;E5AFJ3tE z5Egso&Z!oOBm^^5{2EE}GW_`~F!%aV_C%%90^7NXwZ}X6y)Uhd&pp8o=!qD`gfR}Y z%hN3*pFcCU0lI0-@`82rrfY*?G9SO2`=gl%-Y*Q+2_UEG&{+U?N#K&BjahWI`yI9f z5{6DuDqsx6qQ^ksAntVNe)<3&75J067j*m0G1g28f+QRsO{4<{5Bi`%r#b@=1V)|F zqo>gSgB@=HqAQdNwIKiUr$QM3oy!d38&rsxY-Qb*Ff)TrC3b9VelJW|ydtE?sL8E%GzAk2RO0whwkn#3{` z@vBYS^lxIpdCr3$Se2a;`e8BDVG=AkbojCb70Q zP&2N}@Jl=PTzFpH&@cF-?w$ z74T^3YCxCxcZczb1Z0&68-(TYXN_a;wjzpR)D|xI+oP8|-gy3k_C%WA8rool!8m|| zuqZhIjUf8UnQ3X!4cD$+gT2iK5L=KDKxo603M2z<+?*$*4{y;s-gd&*?OEU|v~d?9 ztNB(kk_fdEoM)>Ls)40DvkTqil8X>~hi)qxv{DecqrZ)W5pC6R=sTd}ftUa}^hk%; zG{^aQI%q-^=6~`4IEKgm9wwMTt>9Vvu9Vn$O=>kaH1MVFubTH=;7^kOH8XQ~lnvfI*ckp6 zOIb#D71H37fES@ERS&kKjNeB)+m-U;^BP zj1O|nv(nwLN}(j~yAm7>x0RMpt{#&;T}ST7yx@Z(r>rj-BoKz`S4~Z`<~uPl6yOR} zWSHGyjb<+=MoE1zyXPd?4RXW&DniI|6Y~f#I7-QX8IV%L-VF&65$$*^_@>+GDO70R z@D_`98Nutm7arYl8Pp*%nQR7lA3!r=k9Bjeam>r)nFBqIw6XGb^d2SVoH9;YWV6|- z-xEFP2ZQreIa;QDZPO0?wT0SkC(3_*Se|horDmtLc2)3{$_mDYu<56XZs5Ukp69?c zb91acBHrM+$HKM5wf`AVjJpccQX^_9RqR28-3vY*-&1V852GGW9XslsTsm?(5FAkE zGz~!>Z|XZ4c@%=Q%ig;H(e-5b3}VpQb-CLQ~>p<$71CN213*>>Ylzed{(SixI={>RkCJR}F`=GXQx+Z+L-VN=Wz$Y#5om z6GE48!vAVNx*tYbWr!?)8$)3%WVBovGt&m1vCjMe?L^K?LVIA+UtSs#a?aiTD&sJpzB43t8yFY}uLK-@S2k?@ z=sl8veCuAZ(e*G`QXvPNe1I7q#MsJ{zjyKS#_QMtoYc_JxK4+>t4^M?7y2v6axrkH zh-Pk+>w<_k{RgL~c-Js)rNof2cMr-i=Lc72G%WVY1c;E7_HB06ZQA@3CSGR*EC)sP z;J$v5j-DQ)wNqi>`SJHVT3NHUkUqrQwr)S*liou2H1Eu|-e+fKg*x6mhV~I-k1C#MCefh# z(HQ*$gE4S4yTkdO+kgI)fq?<0w)k8^J`tNAdK&uw?p?R!BW~Yr1r~`!239=${QMZ= zffM_3h~>r6bd-m%+Yb`6z3Z}4kWlUm%$)CC6!!m8OTdadKx!1HOG`_-(W1|fY!4KN z6t!&Ri99BJ!I7-|qYSLgj=BpLATa30h!4Rt0NrPg>t~|gv%$MydETvB^a|toG6nb+ zNlQPaSqi`l!j?$FPvl385e{$E%YY*@G4c_o8$xRCvx?Q`l?W+t@|si`!6H~fHAg-^ zzH$5IP;m)ywp~MF@-bo(O14!0svV!Kwmf)WYi|~_E3T<8EA_XST2183ccH0v=^^B* z;#F7=$tpV~%gyl+0W%w62q}uECf#_|w}534JN>6#^CLI;h}2%;o-XoGtW!YcM4&^c zE?M1!(j7-L#znXRCWUAWMH47LO=$f{=*2N1>kpz!n={22I)%RsObe zuTYY5!+HZZCAun2C0_gJ(!g}#s#Po3WqRi)Wcsw?=V`5l|>~~ zPY=ru;rd~8w=JX?mTa+~f)=cSDqzMLG1URFO1ut9&-dno-=b$_8XYXK?pxS!q4C~3 zezcsQnksbey@(v7r=}}DWc?=XhZUQ-^c&;Zz6zALp5To<9eA(w%QpnYn0`l6Xk93jVb9AgQaP{QC;~&9#$AYNkX|>zA}USOIkk|C!KD>fkGH$ zVYep9xFq^41O^6z-)RG<28VVV+>=Qcd(1EdiCodOUl}fGL`v?R3d!pyS6N$Bu#seV zoM3_>S@=HJ_U(QE%=e$D^u<{K8yGk;P4JbSE$I5_zcc}#5$$NvOYR@@PgL}e+?(FeXJEKt*ZyWCE3p|dy4OEexQu|gwtXgVGAV7xr^P~0~4D>oj8Zn6+V-9(I`#OlT|n3R-6 zOge?Ow`Dmh5`%=AbQNX|Y-~Owv=U}K?hBv?5L^&>d2@k6OuHPY4M(=)jmNx+OBP9I zFjV;i@m`pehP4VR$j($0cuGHNwxV5_S@IpaYB{*=AfFP4`$CPx)ze;&Rj|i#-lwAw zK@-atfdiGSU9;9a46hXDdff3iO7r5r84;9GrGOQjbdBz20O#dh`vYTA_NH6H>4?a6 z@i}Og)`9tr;Kw0ugVRw1Q%+WImRD9S&1(T~LzIfiZ%v5kXguJ}ni?ADXlX@9vV`3p zY~j3akB1MjG%?|7`=*yLN)<}$hC~|t*CUpe9}7Dzm)=|7iU~teiIXPN_`XRS_CU9D zS(6i}HFqgbk$@wzfi8hX=ZnwYR3J+-e9m|4IUx&10*{se_8ubL@40~A#w<4vEgp_& zY>Z{!_VUnHiN5jx?oCbaYtM0#vr~Oze_0k*=e~14Z^SBKbh7BoJpE>@YQ?(xXx$95 zrlvxdtVk(!ZKC%|6n`dlT4;_cvng|W;a*?-kI!ivN6`$=pyZ(BvWIc^cJ1fFJ6SUcyD24H8Qgp zhGHN&d1wA-zWw`K91B^K6tnQ{u3gpBskJEakrZ1Q6#H{2#yIm0!QNePG&je2gGtT~o-PWS0_e1hESOoS z^9!khePM5()tNp7L=1^OhHIWv5`&9L|EBex7G4JuCXJ_hddv&vZ|yIglNmWzf*zlI z(rz#u5XvX3p2`XK$#1ZzGfS5eOouJ1g06|BVp(ruQqs4=UGDFsTDBCS7BPEdRg2u` z>-ivFm-s5&ddyNc=x*Bgq@zzHA2uoPo zeqx~1ut@}rgsbPK9&1yZJs^KZJx(ZQZ8D31Ku2YT&;F_wmT`1Da!+ti$C8${EyRDX z3e44+#ekEn=Tc?ozm-+`jh_>#Ix|9nL^`W437=}psG%Gc#WI=KYW z#gtaLAa_Q=U|AIlt3lK8lH!n%kb$st?JyQb#{MWN<5w(|0qy~N2S?&2R!8n5(>3eg zR9U!2qgXp=yMLvJlHP8|+b;Rw!YRKyj4$px^uKm2yqlnS@8@H4-sT0qHzSV^n)0AS zcSD9XVD=|hY>q>$oydu1neFp*!mKws@6?R<1RKwof55#IuM?E^linXA=zlhh@x_^- zLJ%17d}6}T6M84fP@R;rvGlW;eWBS6Zq+DvdcmoJMX_e*;!kx?o=Biq@%z^{wcnP@ zS6;rdHd2{3&iOK(R2pq?LU_xA&|6C4`b1SuI+3He$|HX=fmOs(UG>4%*n0|_K78_+ z{7~_&fg!H0M`3y6`P+?h_sQj1C783zx9)ksAsCxrV;bog2ZG-J8UUfR5mqDcOMWP@8B3Xl#qmYQmBy980odvZk>#NQx^IA56%!Y+; z{J(o&lIse+ntq+^8tc&9R&DF)W-cj~8XU$kGCX8*#nwx9%?O&mSZv-4-j8O-le7;W zM@Yj#w2hhh!j-o<_8irz3maJW@T?)OC|8kBHss6On1Vjvxxr6=y)-{v=goTK9Tq`F zsaKA1X3&uhtCrW6p87n@GXF){h8lF4MzYU*bhBaoP-MTTT%^BB%TJE=7Q6w@*V|q! zvo)V3J>!OnrEEg;mX~g;pCz4h9|^GGymZ2EA!_K=p(@r5Yjy1I^~VS6t9N0Qp)mdISC=`}=fc4CJN#^eYMzNr7dgmc zydqb;tD*X-N)8lLr)pOB$8Qx&r=~h=2-r_MajfQYI7UWXC2^2)m_I9#IyTqkuQE{7 z4oO!2T|c>&6f>KAM*rm9W6}Hx=ZC~^oHL1jD0Y;wD3~tbP&ro|Qro~P5!LY)M|%#TvN z*J?(Hn*{POT+`})?(zKB_*BRl`sS#znRV9NTv*jwBIEd`njb%`udKpL=~eIq5-(07 zWvN7SyQM^5byK1o5J(WR2=`du+IYX}$5LcfdjEk+dowB6x{$Xo7w9q_$0%yn7q z*pruySE$TlhRjF1nXihbM;;=F@8(sHk5=yyjN!IpwTiW(3N(`^*5l=r)s+8z8%33@ zLc?v+m<7}+;Z{{6jWySq#hi_Vjo=e*mGGqFA^%4&_v+$@ER0;hvtPM+>zm$Ift9?Y|)8XQ|?udZbgU;BOF zC(ByPwu8hc2smi0Px{sEQe}948;O*Yg=06a$+pn!DkD`a_>&fX!#JOFv*qiGPw+iO zqvmY~voiAcs>fxx8EOklOY7IHfdi`cn?E1Jyn}VW`OYgRsqW2egTwu&>!Piw?mU`q z&)Ij0T&Yc6SUl@@NR0W-IM=W@del(Wlc>8>glxbgsP_ zIyWj}L3Utk7xl343M(B?sjqzb@%D9GssTSf@xRvIgo8P4t%hr}>>yRlR+@2FMsz<% zrz{iRZ;(Q^==8kj%ofa(Zjcrk5y2FGN|Z01hrvR|qj#^FvLGcbl0w!L2*?*EUaOyz zHkl|UaSIsfw$*dZ2p6l_Qzb;MP{foaJb1aYo1#4^z1bAOFGg$|niB)@Z zg;z~A*s4@g)|$*@Z5}Q6gppcI(Gn0(`y3HY35|5tI84rF9*mc0W*gZZ;?AcT@tNu# z7WwywE%Xj3KW6lJ* zi!d|oI!vy(SWQ^+3b8=B{(ALz{Cn6nk#mTNNNVrpZI((;iwu5yJ(}mWXxe0Cu-e#*ofN8j z_R&mzuLBI%EIKXB1$08)njgeVWH5~eN7!0fba@dAFh}k`ks@P5Gn+Nltr=@I#(fJJ zf4?@mKR!e={R&T-xJG!2Q1#ACeL+5k8@!ZY9*a%Yqmmxm?oh-AVp~Jp>q4RpY7qU> z*BoIWp3(Px#Or=vzwWj0U!uAPFxZ5$j>+^t5qUm#BUZ_A)*EWkZ4x89iy4F5M6PS9 zsfLCyjl_#Rk7iaOAMRvu*xQ@VrkPot?GP{KyjQ@YUNkgR{!Hx2*psR?kp`uC<7tsw zqJtRme!iPlNh%M$VW@WYD)p$K83{Z^6^^wnFqPsFbo%SN%xZ~N#rMrdft;v z_L9O2CnH(Sy|?33&RTJjR;rWTRVQm)6Cx&ZrB13=Lm)zxEIPu}#6&{GtkNPEp5B)oQKfKDIMxlS zs$wB9*_qp$HMuIC`lLepoP9(~^DtR}p_$FCPD4YDlDbY3uQqQodwsJ`f?S#FkH?A? zKJ@G!HLNB}x_3_c(QVt$=|1Ob)2cW6^}OBH%ob;Ic<&_r#+kW}P06LMdlfpO z99Vmb(^N*uo~P?f9d};F+3T6)x58Amhaw7fmu^6@ssf1r4ykuo01JgD(JxDT)ErK}7c=a>9_u6oajpR~#5zB0=T^-kP5mn0R6E)0bMM&wJ9 zC#wQXd2++~y-4Zv_cyO6(lL{bV-s&&B+hM?W~(-~!3YUnv&HkrEyS(j=?+mPtW<3n z?}Vm_kGt*_NEcy1BC%VO$|Ux9(P7o|l^}`c;{F6#aUuz5Gbmko4pm zCXqf2wKwFIf2wV9+*f8GiJaxqp{er5IVVj;Z=2`uW+zfPg-d@O@)|@B!K_mJblb${ zr#GCxILq&!KBJ$!bMnSbjJTJVm6es3FQ+MzLqU$>A9C3OnxYNgGv7~~k83je;9?zMa@!FM{;)=jF|cXrtaz;DiNj2}&w(o64sa*BVzmzIBLKaPMA> z;N06{rl_!PU+hUOws^7TzsA=J)TXfuO5}ya45hGy@2+LLLuPNkO^z@iv!^kSP}daE zYKzvf55|kBn=|cFix(3N&C@*KIhx5iuR~4C(7C zbU>hr7X3|bCCe%kh3uL_vJ*ICAbox9$nD%$)N>AvXd#~w!4(1ibaV_Y!=NN2I2F$- zp7oKtUhZTf4BQ~n`wAOF7zS1Wx)Og^O7k+ALUj{a)48Ve3Xc67YFlF&gWTPBOYBmw zVb`w-aUY0xgY9+y@PQXx3r@Bzs%ft*-W(nTdzNi0^$gXaMx>w!cZziSFv(&&+GM~+ zW}`PQGW0`V-&iQi0h`Fk*dg^Bq^f<7)+WbKedgv(#QIfm^>b-C)$DA`a}(c1 zJ-W!!iJ|W>^>q*ICPr^`^$Hwv*nZG$pavISUzLFV9FS#0`_BHy5LhZ;urHwQ1+Z_T zC=fI~?W8$@UJrp=1KR$LJ|x-!LPq!Zo_)|RJ&SJ%mveLt2?ZKp)r(iZ^+$Qv&wgpM z#-NMJk8}n{@5!$N4)+bJV{~f>85?j|Ca}hp!=!(N+nrPSaascwXyqVRal%ST?)TkCb{eY+X7)>;gwv>2yPC-kIcDnez z81R757=^)NBaqs;FKvU6NK1BmTA*WTi6;xi>m2q8s9DdQs)p_!S40mS9Y$Ud+mKMg z8ef(PH*!C^P5bsesL{cgbR{t{Hz;Y)@E&jbYdzCx8yhWX;^5MWPB`Hp$xyvB70?mf zhVghimMe z-*IN&hdFQQ_}h#P-U=(Xp8p_~6!o4)Pv`vXwXqfg5f1Z{zHu&ErtZ9!B;DbAPfPRD z)6#m}UTz0!JBBG13*=c432(7W4401Qaf;i794zexYH)Oa1u@+m;0HaMXg?m^F5YTU z!d=04{yTsM@c*JioGTZG(Wmp7u)-w*L(taHfdAlU2*?{LB$-~1I}5x4!;S3jkAT+Y z1 zJsblJkPlAHKo?|+q_J+%1B6k(JNosOUZ3*HCJ$h`0W@KW(a|AnrJ?f!H}(UN?oQL( zTKC?Mj5_9@1TtIoR$PpZxN!i z*y98TPDSMfSP1|zoB9Y#HQ-uk=sSW+iCwJVGliMZjfo1~=C){!+FCoj{6KVQPd*DI z%=pptz!jqzTiIB(+F&#G5J5E|z^L(eVIcqnnK3w|tPdnY@i@Ip6^kAvNO6QX^~De z)Dka_WrHDy#|1*ly7lYh(vL#Lc}fJ6loKN&tSohbnu|l*7ZC6ptzWDoDyK{{eFmEQ zvxpWL#XbUpfiYPdl%wUw1DH#XX}?f)djh*ej7|VErKAZ)hPcJtO8&k8p&*O|O0*{x z7fjD7jX}*>HU1wae&Tnqt^n#mkfTYKLj#`>R^mAWo$4S~CI%1j*0;3iYHGf2Xpj&( z22zrZjSXWP+UaSL@GZu(JcE6G@!}%bcVH6WFvKJvgam6#|1VvSV2U6#FKfVk@Tp7H z*^|GWEe)2|K&|335TB=5!L>)Ap^d6qwaWTNu|2X7ll=DPL>PSIzXSI4|<6J4TsJu!@&&LDb_nX??s?^mKQ#)ZL#>;Q!*WXWQX^_ zb^h}h-hq}Fo;|^n!+OGdfMa+ZmS21Mqn%d81BgT8isT(9X&(bYTOS% zONtmJ1bif>Awoh4&QvAl z`?UCo;i+PtJdy-oL~(T1j6XlWbW|4Z&tMcbcH`cIVlWjuOB{&=F#?ezE-I=J5CvrC zg-;5}XQI9<7qme|PNnGW^=R3NUZ~>o=)IERxr@~y11U5Sw zmpDxZ@y7xyk)U=ZvP*(ez8$v?+zIg(5^>2`Nbr#WO0qnn^gAX#eitc=zb#0N1iABwWabhl`#l4{Jv{e?L73CYEC8hR;Y_~NdhN&uAn6Qu z{DmVH==UeEPY|=TRMCnbo_&flGe-2(3moAJh{C|M2qGibtiGP!Lz~wT@P2V$fG-os zpmEd8aG@Ci5Io+V-hk(4`SYXC%$HL}Oug9U5E3u99^M?2@)HVB+$4*+tcd}25SXw$ zfGXbPkO~d?2+}`hCSWyyk@Ysm@C+{A&g4hox0^9DILL`bNa%Ax+?$(%#9M_3%+U>p4R0qTO!&(N{XcQ;> zTn1z%6M%Rahm;^PC=P`d<@M{=!$jkRe-ZJ>S@)SSw&9>lijViLW{`oT_a_c!u*h=d zAUHQZ(e(QDkBjxVHxt>JiM*)*kNt6X2v4Oqqs#bv;HkiB2$yyl1VCu+8INH;RgPgU zyjYxX>OVCRhQRv!GA%rqE4LxS;M5fPv3&7|^*$MyIZ#BwkhG@u0zd{k%xg9}f{8#^ zo&zoA%M)OXr&>9j7-}(SPY2Jy(jp1j$vCHhI4>P*V7R{2a^8 z-^0hpz$NPnkD}879iPhW-+Ck7UH<|M**4j{{1>hYTMW!1TOYurn9vas8|x_2hm^RA zaS8@7&&y9)W{;Kpz=$eBm=fQusjV$VU%mX!uD-ER(q*~u=A~|e3+3`76;C%UfyfZq z1%@(Qs{EI)^Z#ypJfvjyR7@gT4bFaWxMm;)0Lts^GcKP_9`gE!F-KzQz5<iHaYd1R!_lvitS046Rt)4v1m348iGlB+wlIxj3K zeaQ6NEn54Yv_rpaAFPy}i^;gE<3H8rQq{+9^;*eoUc+g8N6@qktFYXi$7Lg73KN?Y z7M~vfb#~SBRq{VFR@M(!p6z&&-VhOgQ@;LS=lvm1_EG*)Pscm{A~*C_6D>$z`c)ol z*`yrbg1xJR8VNNkOwhu%AAHx>*Jr{1w%nww7<3xOW8e{yoo-=X7?sMbQarB8Eq|eP zS=roIe|TF#`*{OiciSkyIkCqY5D(zXfFRK{)1#GIk*8%tE%7>*sk5D@24StoQ<}VV zjyB+3z(-TrnG@B)w~DQ2{N`j6beg@vc#!s6I-Aew4E{8-;p0bYYnj5|e3~DQ%TEe8 z_0*?!U>|Ad)c=ijr5}pS4*hiOlp->@qoxAMyud#|u5kS*c;(=zTi zP1H}B;%9n_e<1O(#7MD!$aScZU}qqc#PSc3>fJW4-FRgYk>+ySTuGzcS%f@d;2+)) zJ~=4Nh|&}HkvOD>KlRIHy0O1BK#7DhKRP`82VyqWcJ*R>%PVKMIloPpU#QT0EBU5) z{G?u)(GTf>fahHyDMe!A!Y<{aw0u!CvpIg zE4uNBQJ}C}gFV5lvYU_3@7HW6PS2m_d~n%9(u2aYslHx(zq8+Pj2(D-e#iqr6TViq3#U$TPNA-u5k-{%5u#q$x826%D0=#v*s@EQ>a8eP*iN5_j7xmd%j8e z+GP2l;*RMf?y=9ej63a4lArqdl)*CmN#~ei2XaM(6dY$Cxy)^Y+mHZtn!7VFO<=ey z&YPj0NV&;*$P+9lhOaK$vaGy)`xXONK*_=y)5Rl0gCM^Bo=*B59dHdalze1gwfDSS zR0)<1&76k`l3BBdCojoKtYSho={5ZJalbxM>FVf6b4LQyF5!L*T2qXJleu{hA!?I$ z#(1~`2TGCXIuXuFPEPk1!gmP>WaGC2K51!s@7}WqY-UVd^&HlJ<@cg)TELD~=+R7O(XGb+I5;AEz~Wi++tpNAB^LEiJ6uEo4OZW~rMz zWW3w|P!F?*JFe5yF@#f4_g#HQzd6^UyT!I`dHJ%+>RsciYN~JV8?pjGl8PMFLM#W*OrVEz^n6VnBOF0#~8_v0utk<4=cnHl2*wH)er-c%R> z%5vQVRYfQrp~2F7h~-%OZXS3hqDonU=t~Bo4oIbN7cC!mqhLe!n+S0L=)JNdxW_)I zqeAwIin`8xX+xnyZ}BAebXt|cHrc@1p?3F+&7nItuLb}$_b`ROif3g#Zr{9Wj4&V5mB04 zr|}KDqHnRc_xurVzsR__aZ}0$UmkgRUu-%s4nc>!j(rLmVu(iPEXFOd2e+Yvf|v~x z*i&e#dV6~#$sUfmPPA#lLxvHI5FtS;YW?II8BqQ`iG`DM302cCY-<0XU3OO)(Y=vw zQ1DS4ip2wmDI88{1yq!_;bE{{gw$nvV<5z>SX+wUpRGpeiWmb1;nGW`m16^yjSD@J z+HuJ3(2_DpjFE2K_!gU#C^s?64WaTN3=+|`F`h|Um8Xbq3~cQr@FPfMA?I7OZrw`X z?_Vc|c3ciV#i)P2%;JsY9?53alxiksuK0UNnGP?k=pY*KmsV11+{qUeK@mug1U$hd zQr#kWKeq0wRZZk>3y$5M&HIAbV_SjM3N~LEI3U6N>qpKJVkd2UDS!A{jxgV>&0z5t zan=jN3&x4@;>|5)A0J)#zp&7dseE^GXis~M)c^{mADRa(LK)wn-a+g{)P#r)&#YVM zbaPXaCmP$F`$e!SI%h#$9&k^*0_~~MJvq#y!$=GvU9?#WFz3%Ipb-fRQ1g}>tQe=e zm4jn(+W?zuLu2#4my~-Gm}^Rm%uPFjJ_gIl#LJx^-$QObWL)~{)vH#? zrZWb%KRQ2cIcUpPhb1F_<8wx4X4z4G7Ozh))|T};Tk@hvTicRwapjB00fy>ls%MRZ z8;0spJNX`NdHs6BrcLL$9}b)NOz-w!KNIyXE0V0ME5q%PL?OdD?J6?s#Mv3&dJD>r z)g>zM^F0q`5boT~$o5aJ!WN}7U_?VE^Wd4qGsB69m&tEN8|&+*E^-*xi(NR`x#{&n zy;L8U;zRya=U=Zlo~u|lZ8`AmW928;vFz?|agV2ZJC}OeuhIl!uCKR#uaY6UHQHN{?MWbAIBZm*3L6A#;Bq zhhZG%`p10cHpVvC8<02fgl4i0#{_P9!;mjWAzS;?5R7pYOcnl8ev2OY4uw51W($?M zE8AHv=i4oG=4TuDYeLj;UES5EP989)M6$+ba$TL;yw*4LWs~J{$xwY}i*2oUzTZvjU1*{Tricm@7=NBvu>Rp5)_;)o zM(wywKSi-zXROVzyP znYUdt1>(|^3*W@UcR=mz7*&NggLl0g=3^dd-OKxN0@lpPtrGJN{h<@2%$APz2_ ztIiPf+MI7ZLiW{lM>lLK4`c2iOl!&g1#tl^t9&q?DBs2|IrLS-eveX*zO#LfZ9z0* zPaiFo#WS_4e%8B~BlN~y`o&|@=#YZ9->o}Fg!hmPR_kO=L)zAj33nI?jgBoO)}Te6 zGKyPOT>ACb=#e_M4Tn^=s)&j(52}J@QwR9OJ)&K&{x(H$)MHeq`m~p9q=AZSm^)9j zp*<^)aI6|F$SD-oX1S3dChK}pkIXmWo|6V969=^O&z|U-d(Ww^ym~p|)EY_US$#hm zdx^^{!)4r?xfO;5C7KINo`4rQ+EMX_MJH($IgL}@+49n@O{#T!W%nxQw$jC?IF>e& zJ~Srle(ACtOg{R#WuKTCTe}@8EB0?jCmOqkk7gA}d1<}JWws8QZw;jrksT?wH&U^x zkz>*)u=8-9^c4EC-cN5CGV{tj?wz!GM5}b8Bh`Ubm6;M-AGMg z-*qFS%gHFMMNh|H>x@ly)ZZ+*gg6^&$H1j13RrT<@lMj58K1A_CY;i!V-|?uU~fN3 zfC zNnZ7Kz0wr=(T1Zxh&7aRoW$T7)qX`eiav`s^-2E+=IGPR!@~_xT**edjh+;d-t_Tx z{OJc1cC&OvwxZ5pxHQdu50_%;8dEj1h=~DZlKJl zk{yg5JA&pgQg8KWW6B!4&=3v5dz4^F`rf~(U;jntag$?ETgN2Oyc?tzO)`@NGkfqU zwsm5A(s}FXv&~BzMzIQ;u{R?oVUs-&n$8?xqMe!i$vhOF9KgETec zw{DAP2Nx^-6q`t|VV4((X#a!f(=enL8Y1~xLwrvZMYWX20(T`sEQ3vg9^5M{8x2#v zlg8vR@|egrJ8IhVkTur3uUw9dq-fq~m&|aWy77-v*;VUB>3c;z{@jj!>;F)_EW8A2 z@r)Wz*6XDS5o9y^>=4;Ip^au-pvEZn%-BX2=Hl$@gAyS z9|=lJ;Uvcnr7>)mBB*1}ivB~yBMWAyQM5Eqiw;SqrKCmH>xHsOnAhJ<<2` z7S3Bs-^&<#GCtfu-Kc2X40 z^7X++zCXVP-==Le_JQ@8oWZ@59;2lcmZ#cvuTmYP;|#Z^zL4G+uwJet@}90`i(2*0 z>YZf?=gtZ2y{!@?^uXs|f8EtE+i2BHwuD_3C^pqcZk3o{WWQl5Z1&f>&Y7`~*_H{f zgx((vj2I0Lk2BW0)K;J=aIVzjUf%lkYj<7_KIb+XnV_v>Y}&9_t;GAYtDXs)X->yM z@MZse&8z%BrXGE89gPe(HE?`_SKfO_Fj~j;=rpNLP<^zwPKOaq%jXG2W!22PdGyX*)R3`{ za<6>$W!^YgaBB16l&I7om5m$ke~=WBk=zu2ySe(-(6{~xi0W);B%{MXn2`!@{y?eeWz#cBCB=_Yq@ zY~4F8Y9U)ULw);RXD6P9G>ump=C>aRpJxB-k@iN-cXVCO!tR%tImT;gWn#ZZY%NGY%bvUQA(jd zMc6R`XZ4*UW>Q2&MK!^J7m70UTM}Sm0Ffv92k7OoY`Qkm7_(JLSV5s;<;-3I0XTEi z178}G8;7EezzM+xS$>FpxcrJmCQa3^8Ka<7{B)cOMfUISOkNduf`_2Bzh>NYt)af2 zXkfPtVwi$~o*qHD!AMASHqf4myn7ckHASvX7}E%pc8qgGoi`jEZSyLBgp>9NT z*a`nTb?OuTMovx+)P4rq!VVoe`+iM6Z?pHn-T>3>MseYd;uxaH}3m zA6s|mf@KJrozk!KM=2g7ywTy273n5LChDX{5Hiz1zGoDEzlJ}ZJMjS{yKbl zkt-7i1jCD4j0k~M3HUk4ZRKc|rs#bEJO;cDa+ppi90!ig;|(8~+|S6cMPCLNx;)SW zNFE;AgsU4KE;pz#a0Wng3_Th2o4WA;fFJyX23fHHR5X1TYYS#U8U?bYMWwb4V_8PArK442>+`dJpcf4W&x>6icFuFybH0}Y0toCiY)}Tc zE2CO<(!Zk3vV7WOuSSlZCI~{*D!Qa+V&p$pg%gLHCXRAvF2#X4koLfk6tBw)T) zb%Cc%3w`lQX8!BA^50@QD8+PG2XAPM5{iD9TO!Rk*09P3X**+%p!6`wJPN8YRts#A>T&#s7N^zu@~f;(4jMEwa8x38$^%;!;mS6`?yA`RLcj*O_H zMJAO*(ig)DS5z?FH0muyne24VXKGjTIth{iT?Jx%P7*hBs}CRI3Cbr(-vi4)ej;W!sO{lS>GDo!1;X zsU&NwJ)Y7KnCLc{P}NiDUw}$Pf12}^qtL%tCnqK4-G52JzzTj7HajqT^e&+H(}jg2 z^h$F&+zhSZWZZ3Tmc_JBWF0HOeukwg{Y%60V7N81GQHO&d2D_l z;(Fn)lbjV8d4PF(-6W|-NJadT-;NkF%Ur`(LgUjt^>cuaj$6C?`%l1yz!V>(uY{*- zq{LY(THZstO>E4?UxGk*-Lewhb8oy!Lw?`WLOKhj%yh0f@GiA$Z_j@ILPwGrFqm?6 z2z2Y!!{A`7beevxN~OY(5P%>i)R$S_vaPYIFO|#CC+wcY1z7Uikpc zH?3xEpw(^gxl+Z933O6Qmt5L2@T2&`<-wNdBExE%k8*3-cmx6r4Yl- rW8r++k^F1b<{b$Qf7KKJ^&^7v!;bgk`iAW5;-(7ncIEbEAG-JlVsJwU diff --git a/weave/trace/op.py b/weave/trace/op.py index a89c7400d8bb..ea3f0c66dc0c 100644 --- a/weave/trace/op.py +++ b/weave/trace/op.py @@ -614,6 +614,7 @@ def op( Example usage: + ```python import weave weave.init("my-project") @@ -629,6 +630,7 @@ async def extract(): await extract() # calls the function and tracks the call in the Weave UI ``` + """ if not isinstance(tracing_sample_rate, (int, float)): raise TypeError("tracing_sample_rate must be a float") From 2fd1196b4260addce21d607f8273eeb667b6f9f4 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 17 Dec 2024 12:38:58 -0500 Subject: [PATCH 21/62] chore(weave): Increase import test time #3272 --- tests/trace/test_import.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/trace/test_import.py b/tests/trace/test_import.py index 0cd63c78c369..085461a0bcd4 100644 --- a/tests/trace/test_import.py +++ b/tests/trace/test_import.py @@ -9,5 +9,5 @@ def test_import_not_slow(monkeypatch): import_time = run_single_import() - # Ideally the import takes < 1s, but in CI it can take up to 3s. - assert import_time < 3, f"Import time was {import_time} seconds" + # Ideally the import takes < 1s, but in CI it can take up to 4s. + assert import_time < 4, f"Import time was {import_time} seconds" From 770d3ddfe0bba2af4dc8035c3fc23d80ce9b34d8 Mon Sep 17 00:00:00 2001 From: Weave Build Bot Date: Tue, 17 Dec 2024 17:50:14 +0000 Subject: [PATCH 22/62] =?UTF-8?q?Release=20version:=200.51.25-dev0=20?= =?UTF-8?q?=E2=86=92=200.51.25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- weave/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f34757b315e8..e8f9b5762df2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -226,7 +226,7 @@ module = "weave_query.*" ignore_errors = true [tool.bumpversion] -current_version = "0.51.25-dev0" +current_version = "0.51.25" parse = """(?x) (?P0|[1-9]\\d*)\\. (?P0|[1-9]\\d*)\\. diff --git a/weave/version.py b/weave/version.py index 70f670abc213..bcc1d5499b2d 100644 --- a/weave/version.py +++ b/weave/version.py @@ -44,4 +44,4 @@ """ -VERSION = "0.51.25-dev0" +VERSION = "0.51.25" From 76bae4593e14bf1cbf79391c6ef29e361c4c76f3 Mon Sep 17 00:00:00 2001 From: Weave Build Bot Date: Tue, 17 Dec 2024 17:50:15 +0000 Subject: [PATCH 23/62] =?UTF-8?q?Release=20version:=200.51.25=20=E2=86=92?= =?UTF-8?q?=200.51.26-dev0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- weave/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e8f9b5762df2..660fab30960f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -226,7 +226,7 @@ module = "weave_query.*" ignore_errors = true [tool.bumpversion] -current_version = "0.51.25" +current_version = "0.51.26-dev0" parse = """(?x) (?P0|[1-9]\\d*)\\. (?P0|[1-9]\\d*)\\. diff --git a/weave/version.py b/weave/version.py index bcc1d5499b2d..15fdd261727d 100644 --- a/weave/version.py +++ b/weave/version.py @@ -44,4 +44,4 @@ """ -VERSION = "0.51.25" +VERSION = "0.51.26-dev0" From efc4068312670254a9ce4a5ad75ba2657e1e1e53 Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Tue, 17 Dec 2024 11:02:49 -0800 Subject: [PATCH 24/62] chore(weave): Refactor and rename code to more appropriately handle `builtin_object_class` not `base_object_class` (#3229) * initial changes * change to BUILTIN_OBJECT_REGISTRY * change to BUILTIN_OBJECT_REGISTRY * change to big change to builtin * wow, this is getting to be a lot * lint * lint * fix generation * i think complete * fixed a few errros * fixed a few names * little touchups * comment --- weave-js/scripts/generate-schemas.sh | 12 ++-- .../humanAnnotationTypes.ts | 2 +- .../StructuredFeedback/tsHumanFeedback.ts | 2 +- .../pages/CallPage/CallScoresViewer.tsx | 6 +- .../LeaderboardListingPage.tsx | 7 ++- .../pages/LeaderboardPage/LeaderboardPage.tsx | 6 +- .../ScorersPage/AnnotationScorerForm.tsx | 4 +- .../pages/ScorersPage/LLMJudgeScorerForm.tsx | 8 +-- ...ses.zod.ts => builtinObjectClasses.zod.ts} | 2 +- ...s => generatedBuiltinObjectClasses.zod.ts} | 10 ++-- ...Query.test.ts => objectClassQuery.test.ts} | 12 ++-- ...bjectClassQuery.ts => objectClassQuery.ts} | 56 +++++++++++-------- .../traceServerClientTypes.ts | 2 +- .../types/leaderboardConfigType.ts | 2 +- 14 files changed, 70 insertions(+), 61 deletions(-) rename weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/{baseObjectClasses.zod.ts => builtinObjectClasses.zod.ts} (90%) rename weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/{generatedBaseObjectClasses.zod.ts => generatedBuiltinObjectClasses.zod.ts} (92%) rename weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/{baseObjectClassQuery.test.ts => objectClassQuery.test.ts} (93%) rename weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/{baseObjectClassQuery.ts => objectClassQuery.ts} (63%) diff --git a/weave-js/scripts/generate-schemas.sh b/weave-js/scripts/generate-schemas.sh index 545d81e17afb..7fb7ddc7ecce 100644 --- a/weave-js/scripts/generate-schemas.sh +++ b/weave-js/scripts/generate-schemas.sh @@ -3,8 +3,8 @@ # Exit on error set -e -SCHEMA_INPUT_PATH="../weave/trace_server/interface/base_object_classes/generated/generated_base_object_class_schemas.json" -SCHEMA_OUTPUT_PATH="./src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBaseObjectClasses.zod.ts" +SCHEMA_INPUT_PATH="../weave/trace_server/interface/builtin_object_classes/generated/generated_builtin_object_class_schemas.json" +SCHEMA_OUTPUT_PATH="./src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBuiltinObjectClasses.zod.ts" echo "Generating schemas..." @@ -13,10 +13,10 @@ yarn quicktype -s schema "$SCHEMA_INPUT_PATH" -o "$SCHEMA_OUTPUT_PATH" --lang ty # Transform the schema to extract the type map sed -i.bak ' - # Find the GeneratedBaseObjectClassesZodSchema definition and capture its contents - /export const GeneratedBaseObjectClassesZodSchema = z.object({/,/});/ { + # Find the GeneratedBuiltinObjectClassesZodSchema definition and capture its contents + /export const GeneratedBuiltinObjectClassesZodSchema = z.object({/,/});/ { # Replace the opening line with typeMap declaration - s/export const GeneratedBaseObjectClassesZodSchema = z.object({/export const baseObjectClassRegistry = ({/ + s/export const GeneratedBuiltinObjectClassesZodSchema = z.object({/export const builtinObjectClassRegistry = ({/ # Store the pattern h # If this is the last line (with closing brace), append the schema definition @@ -27,7 +27,7 @@ sed -i.bak ' s/.*// i\ \ -export const GeneratedBaseObjectClassesZodSchema = z.object(baseObjectClassRegistry) +export const GeneratedBuiltinObjectClassesZodSchema = z.object(builtinObjectClassRegistry) } } ' "$SCHEMA_OUTPUT_PATH" diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts index 8d3a89e9d248..2b675e244dc1 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts @@ -1,4 +1,4 @@ -import {AnnotationSpec} from '../../pages/wfReactInterface/generatedBaseObjectClasses.zod'; +import {AnnotationSpec} from '../../pages/wfReactInterface/generatedBuiltinObjectClasses.zod'; import {Feedback} from '../../pages/wfReactInterface/traceServerClientTypes'; export const HUMAN_ANNOTATION_BASE_TYPE = 'wandb.annotation'; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/tsHumanFeedback.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/tsHumanFeedback.ts index 6460d474b153..09b04378b9dc 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/tsHumanFeedback.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/tsHumanFeedback.ts @@ -1,6 +1,6 @@ import {useEffect, useMemo, useState} from 'react'; -import {useBaseObjectInstances} from '../../pages/wfReactInterface/baseObjectClassQuery'; +import {useBaseObjectInstances} from '../../pages/wfReactInterface/objectClassQuery'; import { TraceObjQueryReq, TraceObjSchema, diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallScoresViewer.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallScoresViewer.tsx index 0b4e9374a269..9ec2f3ff80ec 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallScoresViewer.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallScoresViewer.tsx @@ -12,12 +12,12 @@ import {CellValue} from '../../../Browse2/CellValue'; import {NotApplicable} from '../../../Browse2/NotApplicable'; import {SmallRef} from '../../../Browse2/SmallRef'; import {StyledDataGrid} from '../../StyledDataGrid'; // Import the StyledDataGrid component +import {WEAVE_REF_SCHEME} from '../wfReactInterface/constants'; +import {useWFHooks} from '../wfReactInterface/context'; import { TraceObjSchemaForBaseObjectClass, useBaseObjectInstances, -} from '../wfReactInterface/baseObjectClassQuery'; -import {WEAVE_REF_SCHEME} from '../wfReactInterface/constants'; -import {useWFHooks} from '../wfReactInterface/context'; +} from '../wfReactInterface/objectClassQuery'; import {useGetTraceServerClientContext} from '../wfReactInterface/traceServerClientContext'; import {Feedback} from '../wfReactInterface/traceServerClientTypes'; import {projectIdFromParts} from '../wfReactInterface/tsDataModelHooks'; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardListingPage.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardListingPage.tsx index 52d6795806c8..6d495ec96292 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardListingPage.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardListingPage.tsx @@ -12,8 +12,8 @@ import {SimplePageLayout} from '../common/SimplePageLayout'; import {ObjectVersionsTable} from '../ObjectVersionsPage'; import { useBaseObjectInstances, - useCreateBaseObjectInstance, -} from '../wfReactInterface/baseObjectClassQuery'; + useCreateBuiltinObjectInstance, +} from '../wfReactInterface/objectClassQuery'; import {sanitizeObjectId} from '../wfReactInterface/traceServerDirectClient'; import { convertTraceServerObjectVersionToSchema, @@ -162,7 +162,8 @@ const generateLeaderboardId = () => { }; const useCreateLeaderboard = (entity: string, project: string) => { - const createLeaderboardInstance = useCreateBaseObjectInstance('Leaderboard'); + const createLeaderboardInstance = + useCreateBuiltinObjectInstance('Leaderboard'); const createLeaderboard = async () => { const objectId = sanitizeObjectId(generateLeaderboardId()); diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardPage.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardPage.tsx index 6fac8eaa599f..57a3eee4cd1a 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardPage.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/LeaderboardPage/LeaderboardPage.tsx @@ -26,8 +26,8 @@ import {LeaderboardObjectVal} from '../../views/Leaderboard/types/leaderboardCon import {SimplePageLayout} from '../common/SimplePageLayout'; import { useBaseObjectInstances, - useCreateBaseObjectInstance, -} from '../wfReactInterface/baseObjectClassQuery'; + useCreateBuiltinObjectInstance, +} from '../wfReactInterface/objectClassQuery'; import {projectIdFromParts} from '../wfReactInterface/tsDataModelHooks'; import {LeaderboardConfigEditor} from './LeaderboardConfigEditor'; @@ -131,7 +131,7 @@ const useUpdateLeaderboard = ( project: string, objectId: string ) => { - const createLeaderboard = useCreateBaseObjectInstance('Leaderboard'); + const createLeaderboard = useCreateBuiltinObjectInstance('Leaderboard'); const updateLeaderboard = async (leaderboardVal: LeaderboardObjectVal) => { return await createLeaderboard({ diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/AnnotationScorerForm.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/AnnotationScorerForm.tsx index a478437facbf..77b993e1f0f1 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/AnnotationScorerForm.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/AnnotationScorerForm.tsx @@ -2,7 +2,7 @@ import {Box} from '@material-ui/core'; import React, {FC, useCallback, useEffect, useState} from 'react'; import {z} from 'zod'; -import {createBaseObjectInstance} from '../wfReactInterface/baseObjectClassQuery'; +import {createBuiltinObjectInstance} from '../wfReactInterface/objectClassQuery'; import {TraceServerClient} from '../wfReactInterface/traceServerClient'; import {sanitizeObjectId} from '../wfReactInterface/traceServerDirectClient'; import {projectIdFromParts} from '../wfReactInterface/tsDataModelHooks'; @@ -86,7 +86,7 @@ export const onAnnotationScorerSave = async ( ) => { const jsonSchemaType = convertTypeToJsonSchemaType(data.Type.type); const typeExtras = convertTypeExtrasToJsonSchema(data); - return createBaseObjectInstance(client, 'AnnotationSpec', { + return createBuiltinObjectInstance(client, 'AnnotationSpec', { obj: { project_id: projectIdFromParts({entity, project}), object_id: sanitizeObjectId(data.Name), diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/LLMJudgeScorerForm.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/LLMJudgeScorerForm.tsx index 64823e9d5517..74b9a83860a6 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/LLMJudgeScorerForm.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ScorersPage/LLMJudgeScorerForm.tsx @@ -10,9 +10,9 @@ import _ from 'lodash'; import React, {FC, useCallback, useState} from 'react'; import {z} from 'zod'; -import {LlmJudgeActionSpecSchema} from '../wfReactInterface/baseObjectClasses.zod'; -import {createBaseObjectInstance} from '../wfReactInterface/baseObjectClassQuery'; -import {ActionSpecSchema} from '../wfReactInterface/generatedBaseObjectClasses.zod'; +import {LlmJudgeActionSpecSchema} from '../wfReactInterface/builtinObjectClasses.zod'; +import {ActionSpecSchema} from '../wfReactInterface/generatedBuiltinObjectClasses.zod'; +import {createBuiltinObjectInstance} from '../wfReactInterface/objectClassQuery'; import {TraceServerClient} from '../wfReactInterface/traceServerClient'; import {projectIdFromParts} from '../wfReactInterface/tsDataModelHooks'; import {AutocompleteWithLabel} from './FormComponents'; @@ -185,7 +185,7 @@ export const onLLMJudgeScorerSave = async ( config: judgeAction, }); - return createBaseObjectInstance(client, 'ActionSpec', { + return createBuiltinObjectInstance(client, 'ActionSpec', { obj: { project_id: projectIdFromParts({entity, project}), object_id: objectId, diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClasses.zod.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/builtinObjectClasses.zod.ts similarity index 90% rename from weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClasses.zod.ts rename to weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/builtinObjectClasses.zod.ts index 627e23604f3e..dc714d679cd2 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClasses.zod.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/builtinObjectClasses.zod.ts @@ -1,5 +1,5 @@ /** - * This file contains zod schemas for our baseObjectClasses that are not + * This file contains zod schemas for our builtinObjectClasses that are not * correctly / completely generated by the json-schema to zod converter. */ diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBaseObjectClasses.zod.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBuiltinObjectClasses.zod.ts similarity index 92% rename from weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBaseObjectClasses.zod.ts rename to weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBuiltinObjectClasses.zod.ts index da218f47a85c..5a1c4bbf2327 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBaseObjectClasses.zod.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/generatedBuiltinObjectClasses.zod.ts @@ -71,7 +71,7 @@ export const TestOnlyExampleSchema = z.object({ }); export type TestOnlyExample = z.infer; -export const baseObjectClassRegistry = { +export const builtinObjectClassRegistry = { ActionSpec: ActionSpecSchema, AnnotationSpec: AnnotationSpecSchema, Leaderboard: LeaderboardSchema, @@ -79,10 +79,10 @@ export const baseObjectClassRegistry = { TestOnlyNestedBaseObject: TestOnlyNestedBaseObjectSchema, }; -export const GeneratedBaseObjectClassesZodSchema = z.object( - baseObjectClassRegistry +export const GeneratedBuiltinObjectClassesZodSchema = z.object( + builtinObjectClassRegistry ); -export type GeneratedBaseObjectClassesZod = z.infer< - typeof GeneratedBaseObjectClassesZodSchema +export type GeneratedBuiltinObjectClassesZod = z.infer< + typeof GeneratedBuiltinObjectClassesZodSchema >; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClassQuery.test.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/objectClassQuery.test.ts similarity index 93% rename from weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClassQuery.test.ts rename to weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/objectClassQuery.test.ts index 9918ae7f2857..ebc161e322ab 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClassQuery.test.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/objectClassQuery.test.ts @@ -1,13 +1,13 @@ import {expectType} from 'tsd'; -import { - useBaseObjectInstances, - useCreateBaseObjectInstance, -} from './baseObjectClassQuery'; import { TestOnlyExample, TestOnlyExampleSchema, -} from './generatedBaseObjectClasses.zod'; +} from './generatedBuiltinObjectClasses.zod'; +import { + useBaseObjectInstances, + useCreateBuiltinObjectInstance, +} from './objectClassQuery'; import { TraceObjCreateReq, TraceObjCreateRes, @@ -74,7 +74,7 @@ describe('Type Tests', () => { it('useCreateCollectionObject return type matches expected structure', () => { type CreateCollectionObjectReturn = ReturnType< - typeof useCreateBaseObjectInstance<'TestOnlyExample'> + typeof useCreateBuiltinObjectInstance<'TestOnlyExample'> >; // Define the expected type structure diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClassQuery.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/objectClassQuery.ts similarity index 63% rename from weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClassQuery.ts rename to weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/objectClassQuery.ts index 6ceb39daa706..3782dce79f9f 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/baseObjectClassQuery.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/objectClassQuery.ts @@ -2,7 +2,7 @@ import {useDeepMemo} from '@wandb/weave/hookUtils'; import {useEffect, useRef, useState} from 'react'; import {z} from 'zod'; -import {baseObjectClassRegistry} from './generatedBaseObjectClasses.zod'; +import {builtinObjectClassRegistry} from './generatedBuiltinObjectClasses.zod'; import {TraceServerClient} from './traceServerClient'; import {useGetTraceServerClientContext} from './traceServerClientContext'; import { @@ -13,17 +13,24 @@ import { } from './traceServerClientTypes'; import {Loadable} from './wfDataModelHooksInterface'; -type BaseObjectClassRegistry = typeof baseObjectClassRegistry; -type BaseObjectClassRegistryKeys = keyof BaseObjectClassRegistry; -type BaseObjectClassType = z.infer< - BaseObjectClassRegistry[C] +type BuiltinObjectClassRegistry = typeof builtinObjectClassRegistry; +type BuiltinObjectClassRegistryKeys = keyof BuiltinObjectClassRegistry; +type BaseObjectClassType = z.infer< + BuiltinObjectClassRegistry[C] >; export type TraceObjSchemaForBaseObjectClass< - C extends BaseObjectClassRegistryKeys + C extends BuiltinObjectClassRegistryKeys > = TraceObjSchema, C>; -export const useBaseObjectInstances = ( +// Notice: this is still `base` object class, not `builtin` object class. +// This means we can search by base object class, but not builtin object class today. +// See https://github.com/wandb/weave/pull/3229 for more details. +// base_object_class: this is the name of the first subclass of any subclass of a weave Object class. +// object_class: the string of the actual class. +export const useBaseObjectInstances = < + C extends BuiltinObjectClassRegistryKeys +>( baseObjectClassName: C, req: TraceObjQueryReq ): Loadable>> => { @@ -56,12 +63,12 @@ export const useBaseObjectInstances = ( return {result: objects, loading}; }; -const getBaseObjectInstances = async ( +const getBaseObjectInstances = async ( client: TraceServerClient, baseObjectClassName: C, req: TraceObjQueryReq ): Promise, C>>> => { - const knownObjectClass = baseObjectClassRegistry[baseObjectClassName]; + const knownObjectClass = builtinObjectClassRegistry[baseObjectClassName]; if (!knownObjectClass) { console.warn(`Unknown object class: ${baseObjectClassName}`); return []; @@ -92,41 +99,42 @@ const getBaseObjectInstances = async ( ); }; -export const useCreateBaseObjectInstance = < - C extends BaseObjectClassRegistryKeys, +export const useCreateBuiltinObjectInstance = < + C extends BuiltinObjectClassRegistryKeys, T = BaseObjectClassType >( - baseObjectClassName: C + objectClassName: C ): ((req: TraceObjCreateReq) => Promise) => { const getTsClient = useGetTraceServerClientContext(); const client = getTsClient(); return (req: TraceObjCreateReq) => - createBaseObjectInstance(client, baseObjectClassName, req); + createBuiltinObjectInstance(client, objectClassName, req); }; -export const createBaseObjectInstance = async < - C extends BaseObjectClassRegistryKeys, +export const createBuiltinObjectInstance = async < + C extends BuiltinObjectClassRegistryKeys, T = BaseObjectClassType >( client: TraceServerClient, - baseObjectClassName: C, + builtinObjectClassName: C, req: TraceObjCreateReq ): Promise => { if ( - req.obj.set_base_object_class != null && - req.obj.set_base_object_class !== baseObjectClassName + req.obj.builtin_object_class != null && + req.obj.builtin_object_class !== builtinObjectClassName ) { throw new Error( - `set_base_object_class must match baseObjectClassName: ${baseObjectClassName}` + `object_class must match objectClassName: ${builtinObjectClassName}` ); } - const knownBaseObjectClass = baseObjectClassRegistry[baseObjectClassName]; - if (!knownBaseObjectClass) { - throw new Error(`Unknown object class: ${baseObjectClassName}`); + const knownBuiltinObjectClass = + builtinObjectClassRegistry[builtinObjectClassName]; + if (!knownBuiltinObjectClass) { + throw new Error(`Unknown object class: ${builtinObjectClassName}`); } - const verifiedObject = knownBaseObjectClass.safeParse(req.obj.val); + const verifiedObject = knownBuiltinObjectClass.safeParse(req.obj.val); if (!verifiedObject.success) { throw new Error( @@ -138,7 +146,7 @@ export const createBaseObjectInstance = async < ...req, obj: { ...req.obj, - set_base_object_class: baseObjectClassName, + builtin_object_class: builtinObjectClassName, }, }; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/traceServerClientTypes.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/traceServerClientTypes.ts index c396962f0fb1..2ad7efb25642 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/traceServerClientTypes.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/traceServerClientTypes.ts @@ -243,7 +243,7 @@ export type TraceObjCreateReq = { project_id: string; object_id: string; val: T; - set_base_object_class?: string; + builtin_object_class?: string; }; }; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/views/Leaderboard/types/leaderboardConfigType.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/views/Leaderboard/types/leaderboardConfigType.ts index 5207633ebcaf..4e28bf19d712 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/views/Leaderboard/types/leaderboardConfigType.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/views/Leaderboard/types/leaderboardConfigType.ts @@ -1,4 +1,4 @@ -import {Leaderboard} from '../../../pages/wfReactInterface/generatedBaseObjectClasses.zod'; +import {Leaderboard} from '../../../pages/wfReactInterface/generatedBuiltinObjectClasses.zod'; export const ALL_VALUE = '*'; From 588012f25efa1759a83dff42f815cce87f4c43d5 Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Tue, 17 Dec 2024 11:03:27 -0800 Subject: [PATCH 25/62] chore(weave): Fix notebook docs: OpenAI and model_output #3274 --- docs/intro_notebook.ipynb | 19 ++++++++++++++++--- docs/notebooks/audio_with_weave.ipynb | 13 +++++++++++++ docs/notebooks/chain_of_density.ipynb | 5 ++--- docs/notebooks/codegen.ipynb | 17 +++++++++++++++-- docs/notebooks/dspy_prompt_optimization.ipynb | 5 ++--- docs/notebooks/feedback_prod.ipynb | 14 +++++++++++++- .../multi-agent-structured-output.ipynb | 13 +++++++++++++ .../notebooks/notdiamond_custom_routing.ipynb | 2 +- examples/tutorial_scripts/05_eval_pipeline.py | 4 ++-- .../tutorial_scripts/06_eval_pipeline_all.py | 4 ++-- ...nai_proxy_quickstart_enterprise_mode.ipynb | 13 +++++++++++++ 11 files changed, 92 insertions(+), 17 deletions(-) diff --git a/docs/intro_notebook.ipynb b/docs/intro_notebook.ipynb index d21cc81336fe..ecf9e612ec42 100644 --- a/docs/intro_notebook.ipynb +++ b/docs/intro_notebook.ipynb @@ -11,7 +11,6 @@ "---\n", "docusaurus_head_meta::end -->\n", "\n", - "" ] }, @@ -54,6 +53,20 @@ "!pip install weave openai set-env-colab-kaggle-dotenv" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "5e188ab8", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "# Temporary workaround to fix bug in openai:\n", + "# TypeError: Client.__init__() got an unexpected keyword argument 'proxies'\n", + "# See https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332/15\n", + "!pip install \"httpx<0.28\"" + ] + }, { "cell_type": "code", "execution_count": null, @@ -586,9 +599,9 @@ "\n", "# Define any custom scoring function\n", "@weave.op()\n", - "def exact_match(expected: str, model_output: dict) -> dict:\n", + "def exact_match(expected: str, output: dict) -> dict:\n", " # Here is where you'd define the logic to score the model output\n", - " return {\"match\": expected == model_output}\n", + " return {\"match\": expected == output}\n", "\n", "\n", "# Score your examples using scoring functions\n", diff --git a/docs/notebooks/audio_with_weave.ipynb b/docs/notebooks/audio_with_weave.ipynb index 9cf2526144af..881b39a5d8fe 100644 --- a/docs/notebooks/audio_with_weave.ipynb +++ b/docs/notebooks/audio_with_weave.ipynb @@ -55,6 +55,19 @@ "!pip install set-env-colab-kaggle-dotenv -q # for env var" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "# Temporary workaround to fix bug in openai:\n", + "# TypeError: Client.__init__() got an unexpected keyword argument 'proxies'\n", + "# See https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332/15\n", + "!pip install \"httpx<0.28\"" + ] + }, { "cell_type": "markdown", "metadata": { diff --git a/docs/notebooks/chain_of_density.ipynb b/docs/notebooks/chain_of_density.ipynb index 9b6869d8c3a2..acf969d531b3 100644 --- a/docs/notebooks/chain_of_density.ipynb +++ b/docs/notebooks/chain_of_density.ipynb @@ -10,7 +10,6 @@ "---\n", "docusaurus_head_meta::end -->\n", "\n", - "" ] }, @@ -502,8 +501,8 @@ "source": [ "# Define the scorer function\n", "@weave.op()\n", - "def quality_scorer(instruction: str, model_output: dict) -> dict:\n", - " result = evaluate_summary(model_output[\"final_summary\"], instruction)\n", + "def quality_scorer(instruction: str, output: dict) -> dict:\n", + " result = evaluate_summary(output[\"final_summary\"], instruction)\n", " return result" ] }, diff --git a/docs/notebooks/codegen.ipynb b/docs/notebooks/codegen.ipynb index e354686d5562..90c7239d930f 100644 --- a/docs/notebooks/codegen.ipynb +++ b/docs/notebooks/codegen.ipynb @@ -67,6 +67,19 @@ "!pip install -qU autopep8 autoflake weave isort openai set-env-colab-kaggle-dotenv datasets" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "# Temporary workaround to fix bug in openai:\n", + "# TypeError: Client.__init__() got an unexpected keyword argument 'proxies'\n", + "# See https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332/15\n", + "!pip install \"httpx<0.28\"" + ] + }, { "cell_type": "code", "execution_count": null, @@ -383,8 +396,8 @@ "outputs": [], "source": [ "@weave.op()\n", - "async def score_humaneval_test(test: str, entry_point: str, model_output: str):\n", - " generated_code = model_output\n", + "async def score_humaneval_test(test: str, entry_point: str, output: str):\n", + " generated_code = output\n", "\n", " # Extract test cases from the test string\n", " test_cases = re.findall(r\"assert.*\", test)\n", diff --git a/docs/notebooks/dspy_prompt_optimization.ipynb b/docs/notebooks/dspy_prompt_optimization.ipynb index 74eba9f390f8..14afde3f6345 100644 --- a/docs/notebooks/dspy_prompt_optimization.ipynb +++ b/docs/notebooks/dspy_prompt_optimization.ipynb @@ -10,7 +10,6 @@ "---\n", "docusaurus_head_meta::end -->\n", "\n", - "" ] }, @@ -300,8 +299,8 @@ "outputs": [], "source": [ "@weave.op()\n", - "def weave_evaluation_scorer(answer: str, model_output: Output) -> dict:\n", - " return {\"match\": int(answer.lower() == model_output[\"answer\"].lower())}" + "def weave_evaluation_scorer(answer: str, output: Output) -> dict:\n", + " return {\"match\": int(answer.lower() == output[\"answer\"].lower())}" ] }, { diff --git a/docs/notebooks/feedback_prod.ipynb b/docs/notebooks/feedback_prod.ipynb index fad44ddd310f..7cdcaf716348 100644 --- a/docs/notebooks/feedback_prod.ipynb +++ b/docs/notebooks/feedback_prod.ipynb @@ -10,7 +10,6 @@ "---\n", "docusaurus_head_meta::end -->\n", "\n", - "" ] }, @@ -49,6 +48,19 @@ "!pip install weave openai streamlit" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "# Temporary workaround to fix bug in openai:\n", + "# TypeError: Client.__init__() got an unexpected keyword argument 'proxies'\n", + "# See https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332/15\n", + "!pip install \"httpx<0.28\"" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/docs/notebooks/multi-agent-structured-output.ipynb b/docs/notebooks/multi-agent-structured-output.ipynb index 0db085fead47..41ea08dbd511 100644 --- a/docs/notebooks/multi-agent-structured-output.ipynb +++ b/docs/notebooks/multi-agent-structured-output.ipynb @@ -63,6 +63,19 @@ "!pip install -qU openai weave wandb" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "# Temporary workaround to fix bug in openai:\n", + "# TypeError: Client.__init__() got an unexpected keyword argument 'proxies'\n", + "# See https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332/15\n", + "!pip install \"httpx<0.28\"" + ] + }, { "cell_type": "markdown", "metadata": { diff --git a/docs/notebooks/notdiamond_custom_routing.ipynb b/docs/notebooks/notdiamond_custom_routing.ipynb index 4a6f52a2d899..8ae3041b69aa 100644 --- a/docs/notebooks/notdiamond_custom_routing.ipynb +++ b/docs/notebooks/notdiamond_custom_routing.ipynb @@ -251,7 +251,7 @@ "outputs": [], "source": [ "@weave.op()\n", - "def is_correct(score: int, model_output: dict) -> dict:\n", + "def is_correct(score: int, output: dict) -> dict:\n", " # We hack score, since we already have model responses\n", " return {\"correct\": score}\n", "\n", diff --git a/examples/tutorial_scripts/05_eval_pipeline.py b/examples/tutorial_scripts/05_eval_pipeline.py index 0a6a5baf9ab8..a4f2296b44a8 100644 --- a/examples/tutorial_scripts/05_eval_pipeline.py +++ b/examples/tutorial_scripts/05_eval_pipeline.py @@ -64,8 +64,8 @@ async def predict(self, sentence: str) -> dict: @weave.op() -def fruit_name_score(target: dict, model_output: dict) -> dict: - return {"correct": target["fruit"] == model_output["fruit"]} +def fruit_name_score(target: dict, output: dict) -> dict: + return {"correct": target["fruit"] == output["fruit"]} evaluation = weave.Evaluation( diff --git a/examples/tutorial_scripts/06_eval_pipeline_all.py b/examples/tutorial_scripts/06_eval_pipeline_all.py index 0d5fe8fd3b2e..8d3ccce430f7 100644 --- a/examples/tutorial_scripts/06_eval_pipeline_all.py +++ b/examples/tutorial_scripts/06_eval_pipeline_all.py @@ -65,8 +65,8 @@ async def predict(self, sentence: str) -> dict: # We define a scoring functions to compare our model predictions with a ground truth label. @weave.op() -def fruit_name_score(target: dict, model_output: dict) -> dict: - return {"correct": target["fruit"] == model_output["fruit"]} +def fruit_name_score(target: dict, output: dict) -> dict: + return {"correct": target["fruit"] == output["fruit"]} # Finally, we run an evaluation of this model. diff --git a/weave_query/examples/prompts/llm_monitoring/openai_proxy_quickstart_enterprise_mode.ipynb b/weave_query/examples/prompts/llm_monitoring/openai_proxy_quickstart_enterprise_mode.ipynb index b2c1cda36cb5..e44c24274d7f 100644 --- a/weave_query/examples/prompts/llm_monitoring/openai_proxy_quickstart_enterprise_mode.ipynb +++ b/weave_query/examples/prompts/llm_monitoring/openai_proxy_quickstart_enterprise_mode.ipynb @@ -25,6 +25,19 @@ "!pip install -qqq openai" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "# Temporary workaround to fix bug in openai:\n", + "# TypeError: Client.__init__() got an unexpected keyword argument 'proxies'\n", + "# See https://community.openai.com/t/error-with-openai-1-56-0-client-init-got-an-unexpected-keyword-argument-proxies/1040332/15\n", + "!pip install \"httpx<0.28\"" + ] + }, { "cell_type": "markdown", "metadata": {}, From 33aef16fd5d525a1b056833f82099d91a631c753 Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Tue, 17 Dec 2024 12:38:55 -0800 Subject: [PATCH 26/62] chore(weave): Low hanging fruit for eval compare page performance (#3271) * init * done * lint --- .../tsDataModelHooksEvaluationComparison.ts | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/tsDataModelHooksEvaluationComparison.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/tsDataModelHooksEvaluationComparison.ts index 847421464e36..ba8941a24c5e 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/tsDataModelHooksEvaluationComparison.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/wfReactInterface/tsDataModelHooksEvaluationComparison.ts @@ -176,11 +176,35 @@ const fetchEvaluationComparisonData = async ( }); // Kick off the trace query to get the actual trace data + // Note: we split this into 2 steps to ensure we only get level 2 children + // of the evaluations. This avoids massive overhead of fetching gigantic traces + // for every evaluation. const evalTraceIds = evalRes.calls.map(call => call.trace_id); - const evalTraceResProm = traceServerClient.callsStreamQuery({ - project_id: projectId, - filter: {trace_ids: evalTraceIds}, - }); + // First, get all the children of the evaluations (predictAndScoreCalls + summary) + const evalTraceResProm = traceServerClient + .callsStreamQuery({ + project_id: projectId, + filter: {trace_ids: evalTraceIds, parent_ids: evaluationCallIds}, + }) + .then(predictAndScoreCallRes => { + // Then, get all the children of those calls (predictions + scores) + const predictAndScoreIds = predictAndScoreCallRes.calls.map( + call => call.id + ); + return traceServerClient + .callsStreamQuery({ + project_id: projectId, + filter: {trace_ids: evalTraceIds, parent_ids: predictAndScoreIds}, + }) + .then(predictionsAndScoresCallsRes => { + return { + calls: [ + ...predictAndScoreCallRes.calls, + ...predictionsAndScoresCallsRes.calls, + ], + }; + }); + }); const evaluationCallCache: {[callId: string]: EvaluationEvaluateCallSchema} = Object.fromEntries( From b978a7fbb9f0d2de1d642597f12b7510e5af6cd5 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Tue, 17 Dec 2024 14:53:26 -0800 Subject: [PATCH 27/62] style(weave): LLM dropdown UX improvements (#3276) * LLM dropdown UX improvements * make llm dd wider, capitalize variables --- .../PlaygroundChat/LLMDropdown.tsx | 32 +++++++++++-------- .../pages/PlaygroundPage/llmMaxTokens.ts | 4 +-- .../PlaygroundPage/usePlaygroundState.ts | 7 ++++ 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx index 5dd696d2447b..fb0e280484a0 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx @@ -19,18 +19,22 @@ export const LLMDropdown: React.FC = ({value, onChange}) => { // for each provider, get all the LLMs that are supported by that provider label: LLM_PROVIDER_LABELS[provider], // filtering to the LLMs that are supported by that provider - options: Object.keys(LLM_MAX_TOKENS).reduce< - Array<{group: string; label: string; value: string}> - >((acc, llm) => { - if (LLM_MAX_TOKENS[llm as LLMMaxTokensKey].provider === provider) { - acc.push({ - group: provider, - label: llm, - value: llm, - }); - } - return acc; - }, []), + options: Object.keys(LLM_MAX_TOKENS) + .reduce>( + (acc, llm) => { + if (LLM_MAX_TOKENS[llm as LLMMaxTokensKey].provider === provider) { + acc.push({ + group: provider, + // add provider to the label if the LLM is not already prefixed with it + label: llm.includes(provider) ? llm : provider + '/' + llm, + value: llm, + }); + } + return acc; + }, + [] + ) + .sort((a, b) => a.label.localeCompare(b.label)), })); return ( @@ -40,11 +44,11 @@ export const LLMDropdown: React.FC = ({value, onChange}) => { maxWidth: '100%', '& .MuiOutlinedInput-root': { width: 'max-content', - maxWidth: '200px', + maxWidth: '300px', }, '& > div': { width: 'max-content', - maxWidth: '200px', + maxWidth: '300px', }, '& .MuiAutocomplete-popper, & [class*="-menu"]': { width: '300px !important', diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts index 405d7f021775..123e8f34af24 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts @@ -397,8 +397,8 @@ export const LLM_PROVIDER_LABELS: Record< > = { openai: 'OpenAI', anthropic: 'Anthropic', - gemini: 'Gemini', + gemini: 'Google Gemini', groq: 'Groq', - bedrock: 'Bedrock', + bedrock: 'AWS Bedrock', xai: 'xAI', }; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts index ec50825cc23f..59536222a968 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts @@ -119,6 +119,13 @@ export const usePlaygroundState = () => { if (LLM_MAX_TOKENS_KEYS.includes(inputs.model as LLMMaxTokensKey)) { newState.model = inputs.model as LLMMaxTokensKey; } else { + // Allows for bedrock/us.amazon.nova-micro-v1:0 to map to amazon.nova-micro-v1:0 + // Allows for gpt-4o-mini to map to gpt-4o-mini-2024-07-18 + newState.model = LLM_MAX_TOKENS_KEYS.find( + key => key.includes(inputs.model) || inputs.model.includes(key) + ) as LLMMaxTokensKey; + } + if (newState.model === undefined) { newState.model = DEFAULT_MODEL; } } From b28adb0b89fa3eaafcd6230988e699e5284a09a8 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Tue, 17 Dec 2024 15:04:55 -0800 Subject: [PATCH 28/62] chore(weave): Fix call query on the Playground (#3275) * Fix call query on the Playground * move costs field * pr comments/cleanup --- .../pages/PlaygroundPage/PlaygroundPage.tsx | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx index 57f954e7ea6b..4cadba37db91 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx @@ -50,21 +50,20 @@ export const PlaygroundPageInner = (props: PlaygroundPageProps) => { const {useCall, useCalls} = useWFHooks(); const [settingsTab, setSettingsTab] = useState(0); + const callKey = useMemo(() => { + return props.callId + ? { + entity: props.entity, + project: props.project, + callId: props.callId, + } + : null; + }, [props.entity, props.project, props.callId]); - const call = useCall( - useMemo(() => { - return props.callId - ? { - entity: props.entity, - project: props.project, - callId: props.callId, - } - : null; - }, [props.entity, props.project, props.callId]), - { - includeCosts: true, - } - ); + const call = useCall(callKey); + const callWithCosts = useCall(callKey, { + includeCosts: true, + }); const {result: calls} = useCalls( props.entity, @@ -103,6 +102,18 @@ export const PlaygroundPageInner = (props: PlaygroundPageProps) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [call.loading]); + useEffect(() => { + if (!callWithCosts.loading && callWithCosts.result) { + if (callWithCosts.result.traceCall?.inputs) { + setPlaygroundStateFromTraceCall(callWithCosts.result.traceCall); + } + } + }, [ + callWithCosts.loading, + setPlaygroundStateFromTraceCall, + callWithCosts.result, + ]); + useEffect(() => { setPlaygroundStates(prev => { const newStates = [...prev]; From 929daf5fefcb4152496ea49443ac072cb568bf38 Mon Sep 17 00:00:00 2001 From: Griffin Tarpenning Date: Tue, 17 Dec 2024 15:28:20 -0800 Subject: [PATCH 29/62] chore(weave): refactor objects query into a simple query builder (#3223) --- tests/trace/test_objects_query_builder.py | 291 +++++++++++++++++ .../clickhouse_trace_server_batched.py | 274 ++++------------ weave/trace_server/objects_query_builder.py | 305 ++++++++++++++++++ 3 files changed, 656 insertions(+), 214 deletions(-) create mode 100644 tests/trace/test_objects_query_builder.py create mode 100644 weave/trace_server/objects_query_builder.py diff --git a/tests/trace/test_objects_query_builder.py b/tests/trace/test_objects_query_builder.py new file mode 100644 index 000000000000..77662655b195 --- /dev/null +++ b/tests/trace/test_objects_query_builder.py @@ -0,0 +1,291 @@ +import pytest + +from weave.trace_server import trace_server_interface as tsi +from weave.trace_server.objects_query_builder import ( + ObjectMetadataQueryBuilder, + _make_conditions_part, + _make_limit_part, + _make_object_id_conditions_part, + _make_offset_part, + _make_sort_part, + make_objects_val_query_and_parameters, +) + + +def test_make_limit_part(): + assert _make_limit_part(None) == "" + assert _make_limit_part(10) == "LIMIT 10" + assert _make_limit_part(0) == "LIMIT 0" + + +def test_make_offset_part(): + assert _make_offset_part(None) == "" + assert _make_offset_part(5) == "OFFSET 5" + assert _make_offset_part(0) == "OFFSET 0" + + +def test_make_sort_part(): + assert _make_sort_part(None) == "" + assert _make_sort_part([]) == "" + + sort_by = [tsi.SortBy(field="created_at", direction="asc")] + assert _make_sort_part(sort_by) == "ORDER BY created_at ASC" + + sort_by = [ + tsi.SortBy(field="created_at", direction="desc"), + tsi.SortBy(field="object_id", direction="asc"), + ] + assert _make_sort_part(sort_by) == "ORDER BY created_at DESC, object_id ASC" + + # Invalid sort fields should be ignored + sort_by = [tsi.SortBy(field="invalid_field", direction="asc")] + assert _make_sort_part(sort_by) == "" + + +def test_make_conditions_part(): + assert _make_conditions_part(None) == "" + assert _make_conditions_part([]) == "" + assert _make_conditions_part(["condition1"]) == "WHERE condition1" + assert ( + _make_conditions_part(["condition1", "condition2"]) + == "WHERE ((condition1) AND (condition2))" + ) + + +def test_make_object_id_conditions_part(): + assert _make_object_id_conditions_part(None) == "" + assert _make_object_id_conditions_part([]) == "" + assert _make_object_id_conditions_part(["id = 1"]) == " AND id = 1" + assert ( + _make_object_id_conditions_part(["id = 1", "id = 2"]) + == " AND ((id = 1) AND (id = 2))" + ) + + +def test_object_query_builder_basic(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + assert "project_id = {project_id: String}" in builder.make_metadata_query() + assert builder.parameters["project_id"] == "test_project" + + +def test_object_query_builder_add_digest_condition(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + + # Test latest digest + builder.add_digests_conditions("latest") + assert "is_latest = 1" in builder.conditions_part + + # Test specific digest + builder = ObjectMetadataQueryBuilder(project_id="test_project") + builder.add_digests_conditions("abc123") + assert "digest = {version_digest_0: String}" in builder.conditions_part + assert builder.parameters["version_digest_0"] == "abc123" + + +def test_object_query_builder_add_object_ids_condition(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + + # Test single object ID + builder.add_object_ids_condition(["obj1"]) + assert "object_id = {object_id: String}" in builder.object_id_conditions_part + assert builder.parameters["object_id"] == "obj1" + + # Test multiple object IDs + builder = ObjectMetadataQueryBuilder(project_id="test_project") + builder.add_object_ids_condition(["obj1", "obj2"]) + assert ( + "object_id IN {object_ids: Array(String)}" in builder.object_id_conditions_part + ) + assert builder.parameters["object_ids"] == ["obj1", "obj2"] + + +def test_object_query_builder_add_is_op_condition(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + builder.add_is_op_condition(True) + assert "is_op = 1" in builder.conditions_part + + +def test_object_query_builder_limit_offset(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + assert builder.limit_part == "" + assert builder.offset_part == "" + + builder.set_limit(10) + builder.set_offset(5) + assert builder.limit_part == "LIMIT 10" + assert builder.offset_part == "OFFSET 5" + + # Test invalid values + with pytest.raises(ValueError): + builder.set_limit(-1) + with pytest.raises(ValueError): + builder.set_offset(-1) + with pytest.raises(ValueError): + builder.set_limit(5) # Limit already set + with pytest.raises(ValueError): + builder.set_offset(10) # Offset already set + + +def test_object_query_builder_sort(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + builder.add_order("created_at", "DESC") + assert builder.sort_part == "ORDER BY created_at DESC" + + with pytest.raises(ValueError): + builder.add_order("created_at", "INVALID") + + +STATIC_METADATA_QUERY_PART = """ +SELECT + project_id, + object_id, + created_at, + refs, + kind, + base_object_class, + digest, + version_index, + is_latest, + version_count, + is_op +FROM ( + SELECT + project_id, + object_id, + created_at, + kind, + base_object_class, + refs, + digest, + is_op, + row_number() OVER ( + PARTITION BY project_id, + kind, + object_id + ORDER BY created_at ASC + ) - 1 AS version_index, + count(*) OVER (PARTITION BY project_id, kind, object_id) as version_count, + if(version_index + 1 = version_count, 1, 0) AS is_latest + FROM ( + SELECT + project_id, + object_id, + created_at, + kind, + base_object_class, + refs, + digest, + if (kind = 'op', 1, 0) AS is_op, + row_number() OVER ( + PARTITION BY project_id, + kind, + object_id, + digest + ORDER BY created_at ASC + ) AS rn + FROM object_versions""" + + +def test_object_query_builder_metadata_query_basic(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + builder.add_digests_conditions("latest") + + query = builder.make_metadata_query() + parameters = builder.parameters + + expected_query = f"""{STATIC_METADATA_QUERY_PART} + WHERE project_id = {{project_id: String}} + ) + WHERE rn = 1 +) +WHERE is_latest = 1""" + + assert query == expected_query + assert parameters == {"project_id": "test_project"} + + +def test_object_query_builder_metadata_query_with_limit_offset_sort(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + + limit = 10 + offset = 5 + + builder.set_limit(limit) + builder.set_offset(offset) + builder.add_order("created_at", "desc") + builder.add_object_ids_condition(["object_1"]) + builder.add_digests_conditions("digestttttttttttttttt", "another-one", "v2") + builder.add_base_object_classes_condition(["Model", "Model2"]) + + query = builder.make_metadata_query() + parameters = builder.parameters + + expected_query = f"""{STATIC_METADATA_QUERY_PART} + WHERE project_id = {{project_id: String}} AND object_id = {{object_id: String}} + ) + WHERE rn = 1 +) +WHERE ((((digest = {{version_digest_0: String}}) OR (digest = {{version_digest_1: String}}) OR (version_index = {{version_index_2: Int64}}))) AND (base_object_class IN {{base_object_classes: Array(String)}})) +ORDER BY created_at DESC +LIMIT 10 +OFFSET 5""" + + assert query == expected_query + assert parameters == { + "project_id": "test_project", + "object_id": "object_1", + "version_digest_0": "digestttttttttttttttt", + "version_digest_1": "another-one", + "version_index_2": 2, + "base_object_classes": ["Model", "Model2"], + } + + +def test_objects_query_metadata_op(): + builder = ObjectMetadataQueryBuilder(project_id="test_project") + builder.add_is_op_condition(True) + builder.add_object_ids_condition(["my_op"]) + builder.add_digests_conditions("v3") + + query = builder.make_metadata_query() + parameters = builder.parameters + + expected_query = f"""{STATIC_METADATA_QUERY_PART} + WHERE project_id = {{project_id: String}} AND object_id = {{object_id: String}} + ) + WHERE rn = 1 +) +WHERE ((is_op = 1) AND (version_index = {{version_index_0: Int64}}))""" + + assert query == expected_query + assert parameters == { + "project_id": "test_project", + "object_id": "my_op", + "version_index_0": 3, + } + + +def test_make_objects_val_query_and_parameters(): + project_id = "test_project" + object_ids = ["object_1"] + digests = ["digestttttttttttttttt", "digestttttttttttttttt2"] + + query, parameters = make_objects_val_query_and_parameters( + project_id, object_ids, digests + ) + + expected_query = """ + SELECT object_id, digest, any(val_dump) + FROM object_versions + WHERE project_id = {project_id: String} AND + object_id IN {object_ids: Array(String)} AND + digest IN {digests: Array(String)} + GROUP BY object_id, digest + """ + + assert query == expected_query + assert parameters == { + "project_id": "test_project", + "object_ids": ["object_1"], + "digests": ["digestttttttttttttttt", "digestttttttttttttttt2"], + } diff --git a/weave/trace_server/clickhouse_trace_server_batched.py b/weave/trace_server/clickhouse_trace_server_batched.py index 31e974a30040..973d51080e29 100644 --- a/weave/trace_server/clickhouse_trace_server_batched.py +++ b/weave/trace_server/clickhouse_trace_server_batched.py @@ -81,6 +81,11 @@ read_model_to_provider_info_map, ) from weave.trace_server.object_class_util import process_incoming_object_val +from weave.trace_server.objects_query_builder import ( + ObjectMetadataQueryBuilder, + format_metadata_objects_from_query_result, + make_objects_val_query_and_parameters, +) from weave.trace_server.orm import ParamBuilder, Row from weave.trace_server.secret_fetcher_context import _secret_fetcher_context from weave.trace_server.table_query_builder import ( @@ -97,7 +102,6 @@ from weave.trace_server.trace_server_common import ( DynamicBatchProcessor, LRUCache, - digest_is_version_like, empty_str_to_none, get_nested_key, hydrate_calls_with_feedback, @@ -525,40 +529,29 @@ def op_create(self, req: tsi.OpCreateReq) -> tsi.OpCreateRes: raise NotImplementedError() def op_read(self, req: tsi.OpReadReq) -> tsi.OpReadRes: - conds = [ - "is_op = 1", - "digest = {digest: String}", - ] - object_id_conditions = ["object_id = {object_id: String}"] - parameters = {"name": req.name, "digest": req.digest} - objs = self._select_objs_query( - req.project_id, - conditions=conds, - object_id_conditions=object_id_conditions, - parameters=parameters, - ) + object_query_builder = ObjectMetadataQueryBuilder(req.project_id) + object_query_builder.add_is_op_condition(True) + object_query_builder.add_digests_conditions(req.digest) + object_query_builder.add_object_ids_condition([req.name], "op_name") + + objs = self._select_objs_query(object_query_builder) if len(objs) == 0: raise NotFoundError(f"Obj {req.name}:{req.digest} not found") return tsi.OpReadRes(op_obj=_ch_obj_to_obj_schema(objs[0])) def ops_query(self, req: tsi.OpQueryReq) -> tsi.OpQueryRes: - parameters = {} - conds: list[str] = ["is_op = 1"] - object_id_conditions: list[str] = [] + object_query_builder = ObjectMetadataQueryBuilder(req.project_id) + object_query_builder.add_is_op_condition(True) if req.filter: if req.filter.op_names: - object_id_conditions.append("object_id IN {op_names: Array(String)}") - parameters["op_names"] = req.filter.op_names + object_query_builder.add_object_ids_condition( + req.filter.op_names, "op_names" + ) if req.filter.latest_only: - conds.append("is_latest = 1") + object_query_builder.add_is_latest_condition() - ch_objs = self._select_objs_query( - req.project_id, - conditions=conds, - object_id_conditions=object_id_conditions, - parameters=parameters, - ) + ch_objs = self._select_objs_query(object_query_builder) objs = [_ch_obj_to_obj_schema(call) for call in ch_objs] return tsi.OpQueryRes(op_objs=objs) @@ -588,61 +581,44 @@ def obj_create(self, req: tsi.ObjCreateReq) -> tsi.ObjCreateRes: return tsi.ObjCreateRes(digest=digest) def obj_read(self, req: tsi.ObjReadReq) -> tsi.ObjReadRes: - conds: list[str] = [] - object_id_conditions = ["object_id = {object_id: String}"] - parameters: dict[str, Union[str, int]] = {"object_id": req.object_id} - if req.digest == "latest": - conds.append("is_latest = 1") - else: - (is_version, version_index) = digest_is_version_like(req.digest) - if is_version: - conds.append("version_index = {version_index: UInt64}") - parameters["version_index"] = version_index - else: - conds.append("digest = {version_digest: String}") - parameters["version_digest"] = req.digest - objs = self._select_objs_query( - req.project_id, - conditions=conds, - object_id_conditions=object_id_conditions, - parameters=parameters, - ) + object_query_builder = ObjectMetadataQueryBuilder(req.project_id) + object_query_builder.add_digests_conditions(req.digest) + object_query_builder.add_object_ids_condition([req.object_id]) + + objs = self._select_objs_query(object_query_builder) if len(objs) == 0: raise NotFoundError(f"Obj {req.object_id}:{req.digest} not found") return tsi.ObjReadRes(obj=_ch_obj_to_obj_schema(objs[0])) def objs_query(self, req: tsi.ObjQueryReq) -> tsi.ObjQueryRes: - conds: list[str] = [] - object_id_conditions: list[str] = [] - parameters = {} + object_query_builder = ObjectMetadataQueryBuilder(req.project_id) if req.filter: if req.filter.is_op is not None: if req.filter.is_op: - conds.append("is_op = 1") + object_query_builder.add_is_op_condition(True) else: - conds.append("is_op = 0") + object_query_builder.add_is_op_condition(False) if req.filter.object_ids: - object_id_conditions.append("object_id IN {object_ids: Array(String)}") - parameters["object_ids"] = req.filter.object_ids + object_query_builder.add_object_ids_condition( + req.filter.object_ids, "object_ids" + ) if req.filter.latest_only: - conds.append("is_latest = 1") + object_query_builder.add_is_latest_condition() if req.filter.base_object_classes: - conds.append( - "base_object_class IN {base_object_classes: Array(String)}" + object_query_builder.add_base_object_classes_condition( + req.filter.base_object_classes ) - parameters["base_object_classes"] = req.filter.base_object_classes + if req.limit is not None: + object_query_builder.set_limit(req.limit) + if req.offset is not None: + object_query_builder.set_offset(req.offset) + if req.sort_by: + for sort in req.sort_by: + object_query_builder.add_order(sort.field, sort.direction) + metadata_only = req.metadata_only or False - objs = self._select_objs_query( - req.project_id, - conditions=conds, - object_id_conditions=object_id_conditions, - parameters=parameters, - metadata_only=req.metadata_only, - limit=req.limit, - offset=req.offset, - sort_by=req.sort_by, - ) + objs = self._select_objs_query(object_query_builder, metadata_only) return tsi.ObjQueryRes(objs=[_ch_obj_to_obj_schema(obj) for obj in objs]) @@ -950,7 +926,7 @@ def get_object_refs_root_val( ) -> Any: conds: list[str] = [] object_id_conds: list[str] = [] - parameters = {} + parameters: dict[str, Union[str, int]] = {} for ref_index, ref in enumerate(refs): if ref.version == "latest": @@ -979,12 +955,13 @@ def get_object_refs_root_val( if len(conds) > 0: conditions = [combine_conditions(conds, "OR")] object_id_conditions = [combine_conditions(object_id_conds, "OR")] - objs = self._select_objs_query( + object_query_builder = ObjectMetadataQueryBuilder( project_id=project_id_scope, conditions=conditions, object_id_conditions=object_id_conditions, parameters=parameters, ) + objs = self._select_objs_query(object_query_builder) for obj in objs: root_val_cache[make_obj_cache_key(obj)] = json.loads(obj.val_dump) @@ -1562,14 +1539,8 @@ def _insert_call_batch(self, batch: list) -> None: def _select_objs_query( self, - project_id: str, - conditions: Optional[list[str]] = None, - object_id_conditions: Optional[list[str]] = None, - parameters: Optional[dict[str, Any]] = None, - metadata_only: Optional[bool] = False, - limit: Optional[int] = None, - offset: Optional[int] = None, - sort_by: Optional[list[tsi.SortBy]] = None, + object_query_builder: ObjectMetadataQueryBuilder, + metadata_only: bool = False, ) -> list[SelectableCHObjSchema]: """ Main query for fetching objects. @@ -1587,146 +1558,21 @@ def _select_objs_query( if metadata_only is True, then we return early and dont grab the value. Otherwise, make a second query to grab the val_dump from the db """ - if not conditions: - conditions = ["1 = 1"] - if not object_id_conditions: - object_id_conditions = ["1 = 1"] - - conditions_part = combine_conditions(conditions, "AND") - object_id_conditions_part = combine_conditions(object_id_conditions, "AND") - - limit_part = "" - offset_part = "" - if limit is not None: - limit_part = f"LIMIT {int(limit)}" - if offset is not None: - offset_part = f" OFFSET {int(offset)}" - - sort_part = "" - if sort_by: - valid_sort_fields = {"object_id", "created_at"} - sort_clauses = [] - for sort in sort_by: - if sort.field in valid_sort_fields and sort.direction in { - "asc", - "desc", - }: - sort_clauses.append(f"{sort.field} {sort.direction.upper()}") - if sort_clauses: - sort_part = f"ORDER BY {', '.join(sort_clauses)}" - - if parameters is None: - parameters = {} - - select_without_val_dump_query = f""" - SELECT - project_id, - object_id, - created_at, - kind, - base_object_class, - refs, - digest, - is_op, - version_index, - version_count, - is_latest - FROM ( - SELECT project_id, - object_id, - created_at, - kind, - base_object_class, - refs, - digest, - is_op, - row_number() OVER ( - PARTITION BY project_id, - kind, - object_id - ORDER BY created_at ASC - ) - 1 AS version_index, - count(*) OVER (PARTITION BY project_id, kind, object_id) as version_count, - if(version_index + 1 = version_count, 1, 0) AS is_latest - FROM ( - SELECT project_id, - object_id, - created_at, - kind, - base_object_class, - refs, - digest, - if (kind = 'op', 1, 0) AS is_op, - row_number() OVER ( - PARTITION BY project_id, - kind, - object_id, - digest - ORDER BY created_at ASC - ) AS rn - FROM object_versions - WHERE project_id = {{project_id: String}} AND - {object_id_conditions_part} - ) - WHERE rn = 1 - ) - WHERE {conditions_part} - {sort_part} - {limit_part} - {offset_part} - """ - query_result = self._query_stream( - select_without_val_dump_query, - {"project_id": project_id, **parameters}, - ) - result: list[SelectableCHObjSchema] = [] - for row in query_result: - result.append( - SelectableCHObjSchema.model_validate( - dict( - zip( - [ - "project_id", - "object_id", - "created_at", - "kind", - "base_object_class", - "refs", - "digest", - "is_op", - "version_index", - "version_count", - "is_latest", - "val_dump", - ], - # Add an empty val_dump to the end of the row - list(row) + ["{}"], - ) - ) - ) - ) + obj_metadata_query = object_query_builder.make_metadata_query() + parameters = object_query_builder.parameters or {} + query_result = self._query_stream(obj_metadata_query, parameters) + metadata_result = format_metadata_objects_from_query_result(query_result) # -- Don't make second query for object values if metadata_only -- - if metadata_only: - return result + if metadata_only or len(metadata_result) == 0: + return metadata_result - # now get the val_dump for each object - object_ids = list({row.object_id for row in result}) - digests = list({row.digest for row in result}) - query = """ - SELECT object_id, digest, any(val_dump) - FROM object_versions - WHERE project_id = {project_id: String} AND - object_id IN {object_ids: Array(String)} AND - digest IN {digests: Array(String)} - GROUP BY object_id, digest - """ - parameters = { - "project_id": project_id, - "object_ids": object_ids, - "digests": digests, - } - query_result = self._query_stream(query, parameters) + value_query, value_parameters = make_objects_val_query_and_parameters( + project_id=object_query_builder.project_id, + object_ids=list({row.object_id for row in metadata_result}), + digests=list({row.digest for row in metadata_result}), + ) + query_result = self._query_stream(value_query, value_parameters) # Map (object_id, digest) to val_dump object_values: dict[tuple[str, str], Any] = {} for row in query_result: @@ -1734,9 +1580,9 @@ def _select_objs_query( object_values[(object_id, digest)] = val_dump # update the val_dump for each object - for obj in result: + for obj in metadata_result: obj.val_dump = object_values.get((obj.object_id, obj.digest), "{}") - return result + return metadata_result def _run_migrations(self) -> None: logger.info("Running migrations") diff --git a/weave/trace_server/objects_query_builder.py b/weave/trace_server/objects_query_builder.py new file mode 100644 index 000000000000..a5675c4b5c10 --- /dev/null +++ b/weave/trace_server/objects_query_builder.py @@ -0,0 +1,305 @@ +from collections.abc import Iterator +from typing import Any, Optional + +from weave.trace_server import trace_server_interface as tsi +from weave.trace_server.clickhouse_schema import SelectableCHObjSchema +from weave.trace_server.orm import combine_conditions +from weave.trace_server.trace_server_common import digest_is_version_like + +VALID_OBJECT_SORT_FIELDS = {"created_at", "object_id"} +VALID_SORT_DIRECTIONS = {"asc", "desc"} +OBJECT_METADATA_COLUMNS = [ + "project_id", + "object_id", + "created_at", + "refs", + "kind", + "base_object_class", + "digest", + "version_index", + "is_latest", + # columns not used in SelectableCHObjSchema(): + "version_count", + "is_op", +] + + +def _make_optional_part(query_keyword: str, part: Optional[str]) -> str: + if part is None or part == "": + return "" + return f"{query_keyword} {part}" + + +def _make_limit_part(limit: Optional[int]) -> str: + if limit is None: + return "" + return _make_optional_part("LIMIT", str(limit)) + + +def _make_offset_part(offset: Optional[int]) -> str: + if offset is None: + return "" + return _make_optional_part("OFFSET", str(offset)) + + +def _make_sort_part(sort_by: Optional[list[tsi.SortBy]]) -> str: + if not sort_by: + return "" + + sort_clauses = [] + for sort in sort_by: + if ( + sort.field in VALID_OBJECT_SORT_FIELDS + and sort.direction in VALID_SORT_DIRECTIONS + ): + sort_clause = f"{sort.field} {sort.direction.upper()}" + sort_clauses.append(sort_clause) + return _make_optional_part("ORDER BY", ", ".join(sort_clauses)) + + +def _make_conditions_part(conditions: Optional[list[str]]) -> str: + if not conditions: + return "" + conditions_str = combine_conditions(conditions, "AND") + return _make_optional_part("WHERE", conditions_str) + + +def _make_object_id_conditions_part( + object_id_conditions: Optional[list[str]], add_where_clause: bool = False +) -> str: + """ + Formats object_id_conditions into a query string. In this file is it only + used after the WHERE project_id... clause, but passing add_where_clause=True + adds a WHERE clause to the query string. + """ + if not object_id_conditions: + return "" + conditions_str = combine_conditions(object_id_conditions, "AND") + conditions_str_with_and = " " + _make_optional_part("AND", conditions_str) + if add_where_clause: + return "WHERE " + conditions_str_with_and + return conditions_str_with_and + + +def format_metadata_objects_from_query_result( + query_result: Iterator[tuple[Any, ...]], +) -> list[SelectableCHObjSchema]: + result = [] + for row in query_result: + # Add an empty val_dump to the end of the row + row_with_val_dump = row + ("{}",) + columns_with_val_dump = OBJECT_METADATA_COLUMNS + ["val_dump"] + row_dict = dict(zip(columns_with_val_dump, row_with_val_dump)) + row_model = SelectableCHObjSchema.model_validate(row_dict) + result.append(row_model) + return result + + +class ObjectMetadataQueryBuilder: + def __init__( + self, + project_id: str, + conditions: Optional[list[str]] = None, + object_id_conditions: Optional[list[str]] = None, + parameters: Optional[dict[str, Any]] = None, + ): + self.project_id = project_id + self.parameters: dict[str, Any] = parameters or {} + if not self.parameters.get(project_id): + self.parameters.update({"project_id": project_id}) + + self._conditions: list[str] = conditions or [] + self._object_id_conditions: list[str] = object_id_conditions or [] + self._limit: Optional[int] = None + self._offset: Optional[int] = None + self._sort_by: list[tsi.SortBy] = [] + + @property + def conditions_part(self) -> str: + return _make_conditions_part(self._conditions) + + @property + def object_id_conditions_part(self) -> str: + return _make_object_id_conditions_part(self._object_id_conditions) + + @property + def sort_part(self) -> str: + return _make_sort_part(self._sort_by) + + @property + def limit_part(self) -> str: + return _make_limit_part(self._limit) + + @property + def offset_part(self) -> str: + return _make_offset_part(self._offset) + + def _make_digest_condition( + self, digest: str, param_key: Optional[str] = None, index: Optional[int] = None + ) -> str: + """ + If digest is "latest", return the condition for the latest version. + Otherwise, return the condition for the version with the given digest. + If digest is a version like "v123", return the condition for the version + with the given version index. + If digest is a hash like "sha256" return the hash + Use index to make the param_key unique if there are multiple digests. + """ + if digest == "latest": + return "is_latest = 1" + + (is_version, version_index) = digest_is_version_like(digest) + if is_version: + param_key = param_key or "version_index" + return self._make_version_index_condition(version_index, param_key, index) + else: + param_key = param_key or "version_digest" + return self._make_version_digest_condition(digest, param_key, index) + + def _make_version_digest_condition( + self, digest: str, param_key: str, index: Optional[int] = None + ) -> str: + if index is not None: + param_key = f"{param_key}_{index}" + self.parameters.update({param_key: digest}) + return f"digest = {{{param_key}: String}}" + + def _make_version_index_condition( + self, version_index: int, param_key: str, index: Optional[int] = None + ) -> str: + if index is not None: + param_key = f"{param_key}_{index}" + self.parameters.update({param_key: version_index}) + return f"version_index = {{{param_key}: Int64}}" + + def add_digests_conditions(self, *digests: str) -> None: + digest_conditions = [] + for i, digest in enumerate(digests): + condition = self._make_digest_condition(digest, None, i) + digest_conditions.append(condition) + + digests_condition = combine_conditions(digest_conditions, "OR") + self._conditions.append(digests_condition) + + def add_object_ids_condition( + self, object_ids: list[str], param_key: Optional[str] = None + ) -> None: + if len(object_ids) == 1: + param_key = param_key or "object_id" + self._object_id_conditions.append(f"object_id = {{{param_key}: String}}") + self.parameters.update({param_key: object_ids[0]}) + else: + param_key = param_key or "object_ids" + self._object_id_conditions.append( + f"object_id IN {{{param_key}: Array(String)}}" + ) + self.parameters.update({param_key: object_ids}) + + def add_is_latest_condition(self) -> None: + self._conditions.append("is_latest = 1") + + def add_is_op_condition(self, is_op: bool) -> None: + if is_op: + self._conditions.append("is_op = 1") + else: + self._conditions.append("is_op = 0") + + def add_base_object_classes_condition(self, base_object_classes: list[str]) -> None: + self._conditions.append( + "base_object_class IN {base_object_classes: Array(String)}" + ) + self.parameters.update({"base_object_classes": base_object_classes}) + + def add_order(self, field: str, direction: str) -> None: + direction = direction.lower() + if direction not in ("asc", "desc"): + raise ValueError(f"Direction {direction} is not allowed") + self._sort_by.append(tsi.SortBy(field=field, direction=direction)) + + def set_limit(self, limit: int) -> None: + if limit < 0: + raise ValueError("Limit must be a positive integer") + if self._limit is not None: + raise ValueError("Limit can only be set once") + self._limit = limit + + def set_offset(self, offset: int) -> None: + if offset < 0: + raise ValueError("Offset must be a positive integer") + if self._offset is not None: + raise ValueError("Offset can only be set once") + self._offset = offset + + def make_metadata_query(self) -> str: + columns = ",\n ".join(OBJECT_METADATA_COLUMNS) + query = f""" +SELECT + {columns} +FROM ( + SELECT + project_id, + object_id, + created_at, + kind, + base_object_class, + refs, + digest, + is_op, + row_number() OVER ( + PARTITION BY project_id, + kind, + object_id + ORDER BY created_at ASC + ) - 1 AS version_index, + count(*) OVER (PARTITION BY project_id, kind, object_id) as version_count, + if(version_index + 1 = version_count, 1, 0) AS is_latest + FROM ( + SELECT + project_id, + object_id, + created_at, + kind, + base_object_class, + refs, + digest, + if (kind = 'op', 1, 0) AS is_op, + row_number() OVER ( + PARTITION BY project_id, + kind, + object_id, + digest + ORDER BY created_at ASC + ) AS rn + FROM object_versions + WHERE project_id = {{project_id: String}}{self.object_id_conditions_part} + ) + WHERE rn = 1 +)""" + if self.conditions_part: + query += f"\n{self.conditions_part}" + if self.sort_part: + query += f"\n{self.sort_part}" + if self.limit_part: + query += f"\n{self.limit_part}" + if self.offset_part: + query += f"\n{self.offset_part}" + return query + + +def make_objects_val_query_and_parameters( + project_id: str, object_ids: list[str], digests: list[str] +) -> tuple[str, dict[str, Any]]: + query = """ + SELECT object_id, digest, any(val_dump) + FROM object_versions + WHERE project_id = {project_id: String} AND + object_id IN {object_ids: Array(String)} AND + digest IN {digests: Array(String)} + GROUP BY object_id, digest + """ + parameters = { + "project_id": project_id, + "object_ids": object_ids, + "digests": digests, + } + return query, parameters From 0904899bcfd8dd3651bb1d94deb3dc543a275707 Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen <112953339+jamie-rasmussen@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:00:42 -0600 Subject: [PATCH 30/62] chore(ui): Fix React warning in PopupDropdown (#3277) --- weave-js/src/common/components/PopupDropdown.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/weave-js/src/common/components/PopupDropdown.tsx b/weave-js/src/common/components/PopupDropdown.tsx index 23423506f50b..8efe1468fcdb 100644 --- a/weave-js/src/common/components/PopupDropdown.tsx +++ b/weave-js/src/common/components/PopupDropdown.tsx @@ -56,7 +56,11 @@ const PopupDropdownComp: React.FC = props => { (opts, i: number) => ( { opts.onClick?.(e); handleClose(); From af7e4215f084a079348575e546b4eee22334e7da Mon Sep 17 00:00:00 2001 From: Adrian Swanberg Date: Tue, 17 Dec 2024 17:08:50 -0800 Subject: [PATCH 31/62] fix(weave): Bump feedback payload size limit to 1 MiB (#2926) * fix(weave): Bump feedback payload size limit to 1 MiB * revert conftest lol --- tests/trace/test_client_feedback.py | 2 +- weave/trace_server/clickhouse_trace_server_batched.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/trace/test_client_feedback.py b/tests/trace/test_client_feedback.py index 82d87198e133..c01127370a5a 100644 --- a/tests/trace/test_client_feedback.py +++ b/tests/trace/test_client_feedback.py @@ -228,7 +228,7 @@ def test_feedback_payload(client): def test_feedback_create_too_large(client): project_id = client._project_id() - value = "a" * 10000 + value = "a" * (1 << 21) # > 1 MiB, past the limit req = tsi.FeedbackCreateReq( project_id=project_id, wb_user_id="VXNlcjo0NTI1NDQ=", diff --git a/weave/trace_server/clickhouse_trace_server_batched.py b/weave/trace_server/clickhouse_trace_server_batched.py index 973d51080e29..e97e020b1abe 100644 --- a/weave/trace_server/clickhouse_trace_server_batched.py +++ b/weave/trace_server/clickhouse_trace_server_batched.py @@ -1312,7 +1312,7 @@ def feedback_create(self, req: tsi.FeedbackCreateReq) -> tsi.FeedbackCreateRes: created_at = datetime.datetime.now(ZoneInfo("UTC")) # TODO: Any validation on weave_ref? payload = _dict_value_to_dump(req.payload) - MAX_PAYLOAD = 1024 + MAX_PAYLOAD = 1 << 20 # 1 MiB if len(payload) > MAX_PAYLOAD: raise InvalidRequest("Feedback payload too large") row: Row = { From adb740bec5304df1130b92b0ce4b90bb909f6e34 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Tue, 17 Dec 2024 20:20:45 -0500 Subject: [PATCH 32/62] feat(weave): Support op configuration for autopatched functions for remaining integrations (#3216) --- tests/integrations/litellm/litellm_test.py | 6 +- weave/integrations/anthropic/anthropic_sdk.py | 135 +++-- weave/integrations/cerebras/cerebras_sdk.py | 72 ++- weave/integrations/cohere/__init__.py | 2 +- weave/integrations/cohere/cohere_sdk.py | 198 +++++--- weave/integrations/dspy/dspy_sdk.py | 477 +++++++++++------- .../google_ai_studio/google_ai_studio_sdk.py | 129 +++-- weave/integrations/groq/groq_sdk.py | 77 ++- .../instructor/instructor_iterable_utils.py | 14 +- .../instructor/instructor_partial_utils.py | 7 +- .../integrations/instructor/instructor_sdk.py | 84 ++- weave/integrations/litellm/litellm.py | 73 ++- weave/integrations/mistral/__init__.py | 4 +- weave/integrations/mistral/v0/mistral.py | 124 +++-- weave/integrations/mistral/v1/mistral.py | 112 ++-- weave/integrations/notdiamond/__init__.py | 2 +- weave/integrations/notdiamond/tracing.py | 135 +++-- weave/integrations/vertexai/vertexai_sdk.py | 126 +++-- weave/trace/autopatch.py | 114 ++--- 19 files changed, 1206 insertions(+), 685 deletions(-) diff --git a/tests/integrations/litellm/litellm_test.py b/tests/integrations/litellm/litellm_test.py index 8cc0966c4768..ffd1094e6534 100644 --- a/tests/integrations/litellm/litellm_test.py +++ b/tests/integrations/litellm/litellm_test.py @@ -8,7 +8,7 @@ from packaging.version import parse as version_parse import weave -from weave.integrations.litellm.litellm import litellm_patcher +from weave.integrations.litellm.litellm import get_litellm_patcher # This PR: # https://github.com/BerriAI/litellm/commit/fe2aa706e8ff4edbcd109897e5da6b83ef6ad693 @@ -38,9 +38,9 @@ def patch_litellm(request: Any) -> Generator[None, None, None]: yield return - litellm_patcher.attempt_patch() + get_litellm_patcher().attempt_patch() yield - litellm_patcher.undo_patch() + get_litellm_patcher().undo_patch() @pytest.mark.skip_clickhouse_client # TODO:VCR recording does not seem to allow us to make requests to the clickhouse db in non-recording mode diff --git a/weave/integrations/anthropic/anthropic_sdk.py b/weave/integrations/anthropic/anthropic_sdk.py index 6e33e1a39062..9cd06f532594 100644 --- a/weave/integrations/anthropic/anthropic_sdk.py +++ b/weave/integrations/anthropic/anthropic_sdk.py @@ -1,27 +1,26 @@ +from __future__ import annotations + import importlib from collections.abc import AsyncIterator, Iterator from functools import wraps -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Optional, - Union, -) +from typing import TYPE_CHECKING, Any, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import _IteratorWrapper, add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from anthropic.lib.streaming import MessageStream from anthropic.types import Message, MessageStreamEvent +_anthropic_patcher: MultiPatcher | None = None + def anthropic_accumulator( - acc: Optional["Message"], - value: "MessageStreamEvent", -) -> "Message": + acc: Message | None, + value: MessageStreamEvent, +) -> Message: from anthropic.types import ( ContentBlockDeltaEvent, Message, @@ -73,13 +72,11 @@ def should_use_accumulator(inputs: dict) -> bool: return isinstance(inputs, dict) and bool(inputs.get("stream")) -def create_wrapper_sync( - name: str, -) -> Callable[[Callable], Callable]: +def create_wrapper_sync(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: "We need to do this so we can check if `stream` is used" - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: anthropic_accumulator, @@ -92,9 +89,7 @@ def wrapper(fn: Callable) -> Callable: # Surprisingly, the async `client.chat.completions.create` does not pass # `inspect.iscoroutinefunction`, so we can't dispatch on it and must write # it manually here... -def create_wrapper_async( - name: str, -) -> Callable[[Callable], Callable]: +def create_wrapper_async(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: def _fn_wrapper(fn: Callable) -> Callable: @wraps(fn) @@ -104,8 +99,8 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return _async_wrapper "We need to do this so we can check if `stream` is used" - op = weave.op()(_fn_wrapper(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(_fn_wrapper(fn), **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: anthropic_accumulator, @@ -123,9 +118,9 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: def anthropic_stream_accumulator( - acc: Optional["Message"], - value: "MessageStream", -) -> "Message": + acc: Message | None, + value: MessageStream, +) -> Message: from anthropic.lib.streaming._types import MessageStopEvent if acc is None: @@ -150,7 +145,7 @@ def __getattr__(self, name: str) -> Any: return object.__getattribute__(self, name) return getattr(self._iterator_or_ctx_manager, name) - def __stream_text__(self) -> Union[Iterator[str], AsyncIterator[str]]: + def __stream_text__(self) -> Iterator[str] | AsyncIterator[str]: if isinstance(self._iterator_or_ctx_manager, AsyncIterator): return self.__async_stream_text__() else: @@ -167,16 +162,14 @@ async def __async_stream_text__(self) -> AsyncIterator[str]: # type: ignore yield chunk.delta.text # type: ignore @property - def text_stream(self) -> Union[Iterator[str], AsyncIterator[str]]: + def text_stream(self) -> Iterator[str] | AsyncIterator[str]: return self.__stream_text__() -def create_stream_wrapper( - name: str, -) -> Callable[[Callable], Callable]: +def create_stream_wrapper(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda _: anthropic_stream_accumulator, @@ -187,28 +180,58 @@ def wrapper(fn: Callable) -> Callable: return wrapper -anthropic_patcher = MultiPatcher( - [ - # Patch the sync messages.create method for all messages.create methods - SymbolPatcher( - lambda: importlib.import_module("anthropic.resources.messages"), - "Messages.create", - create_wrapper_sync(name="anthropic.Messages.create"), - ), - SymbolPatcher( - lambda: importlib.import_module("anthropic.resources.messages"), - "AsyncMessages.create", - create_wrapper_async(name="anthropic.AsyncMessages.create"), - ), - SymbolPatcher( - lambda: importlib.import_module("anthropic.resources.messages"), - "Messages.stream", - create_stream_wrapper(name="anthropic.Messages.stream"), - ), - SymbolPatcher( - lambda: importlib.import_module("anthropic.resources.messages"), - "AsyncMessages.stream", - create_stream_wrapper(name="anthropic.AsyncMessages.stream"), - ), - ] -) +def get_anthropic_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _anthropic_patcher + if _anthropic_patcher is not None: + return _anthropic_patcher + + base = settings.op_settings + + messages_create_settings = base.model_copy( + update={"name": base.name or "anthropic.Messages.create"} + ) + async_messages_create_settings = base.model_copy( + update={"name": base.name or "anthropic.AsyncMessages.create"} + ) + stream_settings = base.model_copy( + update={"name": base.name or "anthropic.Messages.stream"} + ) + async_stream_settings = base.model_copy( + update={"name": base.name or "anthropic.AsyncMessages.stream"} + ) + + _anthropic_patcher = MultiPatcher( + [ + # Patch the sync messages.create method for all messages.create methods + SymbolPatcher( + lambda: importlib.import_module("anthropic.resources.messages"), + "Messages.create", + create_wrapper_sync(messages_create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("anthropic.resources.messages"), + "AsyncMessages.create", + create_wrapper_async(async_messages_create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("anthropic.resources.messages"), + "Messages.stream", + create_stream_wrapper(stream_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("anthropic.resources.messages"), + "AsyncMessages.stream", + create_stream_wrapper(async_stream_settings), + ), + ] + ) + + return _anthropic_patcher diff --git a/weave/integrations/cerebras/cerebras_sdk.py b/weave/integrations/cerebras/cerebras_sdk.py index bdce368290e0..a2096a184e79 100644 --- a/weave/integrations/cerebras/cerebras_sdk.py +++ b/weave/integrations/cerebras/cerebras_sdk.py @@ -1,25 +1,26 @@ +from __future__ import annotations + import importlib from functools import wraps from typing import Any, Callable import weave -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.autopatch import IntegrationSettings, OpSettings +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher + +_cerebras_patcher: MultiPatcher | None = None -def create_wrapper_sync( - name: str, -) -> Callable[[Callable], Callable]: +def create_wrapper_sync(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return op return wrapper -def create_wrapper_async( - name: str, -) -> Callable[[Callable], Callable]: +def create_wrapper_async(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: def _fn_wrapper(fn: Callable) -> Callable: @wraps(fn) @@ -28,24 +29,45 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return _async_wrapper - op = weave.op()(_fn_wrapper(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(_fn_wrapper(fn), **op_kwargs) return op return wrapper -cerebras_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("cerebras.cloud.sdk.resources.chat"), - "CompletionsResource.create", - create_wrapper_sync(name="cerebras.chat.completions.create"), - ), - SymbolPatcher( - lambda: importlib.import_module("cerebras.cloud.sdk.resources.chat"), - "AsyncCompletionsResource.create", - create_wrapper_async(name="cerebras.chat.completions.create"), - ), - ] -) +def get_cerebras_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _cerebras_patcher + if _cerebras_patcher is not None: + return _cerebras_patcher + + base = settings.op_settings + + create_settings = base.model_copy( + update={"name": base.name or "cerebras.chat.completions.create"} + ) + + _cerebras_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module("cerebras.cloud.sdk.resources.chat"), + "CompletionsResource.create", + create_wrapper_sync(create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("cerebras.cloud.sdk.resources.chat"), + "AsyncCompletionsResource.create", + create_wrapper_async(create_settings), + ), + ] + ) + + return _cerebras_patcher diff --git a/weave/integrations/cohere/__init__.py b/weave/integrations/cohere/__init__.py index 45f925b6eeac..288cce91aaea 100644 --- a/weave/integrations/cohere/__init__.py +++ b/weave/integrations/cohere/__init__.py @@ -1 +1 @@ -from weave.integrations.cohere.cohere_sdk import cohere_patcher as cohere_patcher +from weave.integrations.cohere.cohere_sdk import get_cohere_patcher # noqa: F401 diff --git a/weave/integrations/cohere/cohere_sdk.py b/weave/integrations/cohere/cohere_sdk.py index b0a5944795b4..a9b216c070b5 100644 --- a/weave/integrations/cohere/cohere_sdk.py +++ b/weave/integrations/cohere/cohere_sdk.py @@ -1,20 +1,23 @@ +from __future__ import annotations + import importlib from functools import wraps -from typing import TYPE_CHECKING, Any, Callable, Optional +from typing import TYPE_CHECKING, Any, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from cohere.types.non_streamed_chat_response import NonStreamedChatResponse from cohere.v2.types.non_streamed_chat_response2 import NonStreamedChatResponse2 -def cohere_accumulator( - acc: Optional[dict], - value: Any, -) -> "NonStreamedChatResponse": +_cohere_patcher: MultiPatcher | None = None + + +def cohere_accumulator(acc: dict | None, value: Any) -> NonStreamedChatResponse: # don't need to accumulate, is build-in by cohere! # https://docs.cohere.com/docs/streaming # A stream-end event is the final event of the stream, and is returned only when streaming is finished. @@ -31,10 +34,7 @@ def cohere_accumulator( return acc -def cohere_accumulator_v2( - acc: Optional[dict], - value: Any, -) -> "NonStreamedChatResponse2": +def cohere_accumulator_v2(acc: dict | None, value: Any) -> NonStreamedChatResponse2: from cohere.v2.types.assistant_message_response import AssistantMessageResponse from cohere.v2.types.non_streamed_chat_response2 import NonStreamedChatResponse2 @@ -86,16 +86,16 @@ def _accumulate_content( return acc -def cohere_wrapper(name: str) -> Callable: +def cohere_wrapper(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: - op = weave.op(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return op return wrapper -def cohere_wrapper_v2(name: str) -> Callable: +def cohere_wrapper_v2(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: def _post_process_response(fn: Callable) -> Any: @wraps(fn) @@ -122,14 +122,14 @@ def _wrapper(*args: Any, **kwargs: Any) -> Any: return _wrapper - op = weave.op(_post_process_response(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(_post_process_response(fn), **op_kwargs) return op return wrapper -def cohere_wrapper_async_v2(name: str) -> Callable: +def cohere_wrapper_async_v2(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: def _post_process_response(fn: Callable) -> Any: @wraps(fn) @@ -156,81 +156,119 @@ async def _wrapper(*args: Any, **kwargs: Any) -> Any: return _wrapper - op = weave.op(_post_process_response(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(_post_process_response(fn), **op_kwargs) return op return wrapper -def cohere_stream_wrapper(name: str) -> Callable: +def cohere_stream_wrapper(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: - op = weave.op(fn) - op.name = name # type: ignore - return add_accumulator(op, lambda inputs: cohere_accumulator) # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) + return add_accumulator(op, lambda inputs: cohere_accumulator) return wrapper -def cohere_stream_wrapper_v2(name: str) -> Callable: +def cohere_stream_wrapper_v2(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: - op = weave.op(fn) - op.name = name # type: ignore - return add_accumulator( - op, make_accumulator=lambda inputs: cohere_accumulator_v2 - ) + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) + return add_accumulator(op, lambda inputs: cohere_accumulator_v2) return wrapper -cohere_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "Client.chat", - cohere_wrapper("cohere.Client.chat"), - ), - # Patch the async chat method - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "AsyncClient.chat", - cohere_wrapper("cohere.AsyncClient.chat"), - ), - # Add patch for chat_stream method - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "Client.chat_stream", - cohere_stream_wrapper("cohere.Client.chat_stream"), - ), - # Add patch for async chat_stream method - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "AsyncClient.chat_stream", - cohere_stream_wrapper("cohere.AsyncClient.chat_stream"), - ), - # Add patch for cohere v2 - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "ClientV2.chat", - cohere_wrapper_v2("cohere.ClientV2.chat"), - ), - # Add patch for cohre v2 async chat method - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "AsyncClientV2.chat", - cohere_wrapper_async_v2("cohere.AsyncClientV2.chat"), - ), - # Add patch for chat_stream method v2 - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "ClientV2.chat_stream", - cohere_stream_wrapper_v2("cohere.ClientV2.chat_stream"), - ), - # Add patch for async chat_stream method v2 - SymbolPatcher( - lambda: importlib.import_module("cohere"), - "AsyncClientV2.chat_stream", - cohere_stream_wrapper_v2("cohere.AsyncClientV2.chat_stream"), - ), - ] -) +def get_cohere_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _cohere_patcher + if _cohere_patcher is not None: + return _cohere_patcher + + base = settings.op_settings + + chat_settings = base.model_copy(update={"name": base.name or "cohere.Client.chat"}) + async_chat_settings = base.model_copy( + update={"name": base.name or "cohere.AsyncClient.chat"} + ) + chat_stream_settings = base.model_copy( + update={"name": base.name or "cohere.Client.chat_stream"} + ) + async_chat_stream_settings = base.model_copy( + update={"name": base.name or "cohere.AsyncClient.chat_stream"} + ) + chat_v2_settings = base.model_copy( + update={"name": base.name or "cohere.ClientV2.chat"} + ) + async_chat_v2_settings = base.model_copy( + update={"name": base.name or "cohere.AsyncClientV2.chat"} + ) + chat_stream_v2_settings = base.model_copy( + update={"name": base.name or "cohere.ClientV2.chat_stream"} + ) + async_chat_stream_v2_settings = base.model_copy( + update={"name": base.name or "cohere.AsyncClientV2.chat_stream"} + ) + + _cohere_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "Client.chat", + cohere_wrapper(chat_settings), + ), + # Patch the async chat method + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "AsyncClient.chat", + cohere_wrapper(async_chat_settings), + ), + # Add patch for chat_stream method + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "Client.chat_stream", + cohere_stream_wrapper(chat_stream_settings), + ), + # Add patch for async chat_stream method + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "AsyncClient.chat_stream", + cohere_stream_wrapper(async_chat_stream_settings), + ), + # Add patch for cohere v2 + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "ClientV2.chat", + cohere_wrapper_v2(chat_v2_settings), + ), + # Add patch for cohre v2 async chat method + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "AsyncClientV2.chat", + cohere_wrapper_async_v2(async_chat_v2_settings), + ), + # Add patch for chat_stream method v2 + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "ClientV2.chat_stream", + cohere_stream_wrapper_v2(chat_stream_v2_settings), + ), + # Add patch for async chat_stream method v2 + SymbolPatcher( + lambda: importlib.import_module("cohere"), + "AsyncClientV2.chat_stream", + cohere_stream_wrapper_v2(async_chat_stream_v2_settings), + ), + ] + ) + + return _cohere_patcher diff --git a/weave/integrations/dspy/dspy_sdk.py b/weave/integrations/dspy/dspy_sdk.py index b205c77a4588..25293b0f4947 100644 --- a/weave/integrations/dspy/dspy_sdk.py +++ b/weave/integrations/dspy/dspy_sdk.py @@ -1,216 +1,331 @@ +from __future__ import annotations + import importlib from typing import Callable import weave -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.autopatch import IntegrationSettings, OpSettings +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher + +_dspy_patcher: MultiPatcher | None = None -def dspy_wrapper(name: str) -> Callable[[Callable], Callable]: +def dspy_wrapper(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return op return wrapper def dspy_get_patched_lm_functions( - base_symbol: str, lm_class_name: str + base_symbol: str, lm_class_name: str, settings: OpSettings ) -> list[SymbolPatcher]: patchable_functional_attributes = [ "basic_request", "request", "__call__", ] + basic_request_settings = settings.model_copy( + update={"name": settings.name or f"{base_symbol}.{lm_class_name}.basic_request"} + ) + request_settings = settings.model_copy( + update={"name": settings.name or f"{base_symbol}.{lm_class_name}.request"} + ) + call_settings = settings.model_copy( + update={"name": settings.name or f"{base_symbol}.{lm_class_name}"} + ) return [ SymbolPatcher( get_base_symbol=lambda: importlib.import_module(base_symbol), attribute_name=f"{lm_class_name}.basic_request", - make_new_value=dspy_wrapper(f"dspy.{lm_class_name}.basic_request"), + make_new_value=dspy_wrapper(basic_request_settings), ), SymbolPatcher( get_base_symbol=lambda: importlib.import_module(base_symbol), attribute_name=f"{lm_class_name}.request", - make_new_value=dspy_wrapper(f"dspy.{lm_class_name}.request"), + make_new_value=dspy_wrapper(request_settings), ), SymbolPatcher( get_base_symbol=lambda: importlib.import_module(base_symbol), attribute_name=f"{lm_class_name}.__call__", - make_new_value=dspy_wrapper(f"dspy.{lm_class_name}"), + make_new_value=dspy_wrapper(call_settings), + ), + ] + + +def get_dspy_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _dspy_patcher + if _dspy_patcher is not None: + return _dspy_patcher + + base = settings.op_settings + + predict_call_settings = base.model_copy( + update={"name": base.name or "dspy.Predict"} + ) + predict_forward_settings = base.model_copy( + update={"name": base.name or "dspy.Predict.forward"} + ) + typed_predictor_call_settings = base.model_copy( + update={"name": base.name or "dspy.TypedPredictor"} + ) + typed_predictor_forward_settings = base.model_copy( + update={"name": base.name or "dspy.TypedPredictor.forward"} + ) + module_call_settings = base.model_copy(update={"name": base.name or "dspy.Module"}) + typed_chain_of_thought_call_settings = base.model_copy( + update={"name": base.name or "dspy.TypedChainOfThought"} + ) + retrieve_call_settings = base.model_copy( + update={"name": base.name or "dspy.Retrieve"} + ) + retrieve_forward_settings = base.model_copy( + update={"name": base.name or "dspy.Retrieve.forward"} + ) + evaluate_call_settings = base.model_copy( + update={"name": base.name or "dspy.evaluate.Evaluate"} + ) + bootstrap_few_shot_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.BootstrapFewShot.compile"} + ) + copro_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.COPRO.compile"} + ) + ensemble_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.Ensemble.compile"} + ) + bootstrap_finetune_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.BootstrapFinetune.compile"} + ) + knn_few_shot_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.KNNFewShot.compile"} + ) + mipro_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.MIPRO.compile"} + ) + bootstrap_few_shot_with_random_search_compile_settings = base.model_copy( + update={ + "name": base.name + or "dspy.teleprompt.BootstrapFewShotWithRandomSearch.compile" + } + ) + signature_optimizer_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.SignatureOptimizer.compile"} + ) + bayesian_signature_optimizer_compile_settings = base.model_copy( + update={ + "name": base.name or "dspy.teleprompt.BayesianSignatureOptimizer.compile" + } + ) + signature_opt_typed_optimize_signature_settings = base.model_copy( + update={ + "name": base.name + or "dspy.teleprompt.signature_opt_typed.optimize_signature" + } + ) + bootstrap_few_shot_with_optuna_compile_settings = base.model_copy( + update={ + "name": base.name or "dspy.teleprompt.BootstrapFewShotWithOptuna.compile" + } + ) + labeled_few_shot_compile_settings = base.model_copy( + update={"name": base.name or "dspy.teleprompt.LabeledFewShot.compile"} + ) + + patched_functions = [ + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Predict.__call__", + make_new_value=dspy_wrapper(predict_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Predict.forward", + make_new_value=dspy_wrapper(predict_forward_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="TypedPredictor.__call__", + make_new_value=dspy_wrapper(typed_predictor_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="TypedPredictor.forward", + make_new_value=dspy_wrapper(typed_predictor_forward_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Module.__call__", + make_new_value=dspy_wrapper(module_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="TypedChainOfThought.__call__", + make_new_value=dspy_wrapper(typed_chain_of_thought_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Retrieve.__call__", + make_new_value=dspy_wrapper(retrieve_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Retrieve.forward", + make_new_value=dspy_wrapper(retrieve_forward_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.evaluate.evaluate"), + attribute_name="Evaluate.__call__", + make_new_value=dspy_wrapper(evaluate_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="BootstrapFewShot.compile", + make_new_value=dspy_wrapper(bootstrap_few_shot_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="COPRO.compile", + make_new_value=dspy_wrapper(copro_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="Ensemble.compile", + make_new_value=dspy_wrapper(ensemble_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="BootstrapFinetune.compile", + make_new_value=dspy_wrapper(bootstrap_finetune_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="KNNFewShot.compile", + make_new_value=dspy_wrapper(knn_few_shot_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="MIPRO.compile", + make_new_value=dspy_wrapper(mipro_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="BootstrapFewShotWithRandomSearch.compile", + make_new_value=dspy_wrapper( + bootstrap_few_shot_with_random_search_compile_settings + ), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="SignatureOptimizer.compile", + make_new_value=dspy_wrapper(signature_optimizer_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="BayesianSignatureOptimizer.compile", + make_new_value=dspy_wrapper(bayesian_signature_optimizer_compile_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module( + "dspy.teleprompt.signature_opt_typed" + ), + attribute_name="optimize_signature", + make_new_value=dspy_wrapper( + signature_opt_typed_optimize_signature_settings + ), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="BootstrapFewShotWithOptuna.compile", + make_new_value=dspy_wrapper( + bootstrap_few_shot_with_optuna_compile_settings + ), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), + attribute_name="LabeledFewShot.compile", + make_new_value=dspy_wrapper(labeled_few_shot_compile_settings), + ), + ] + + # Patch LM classes + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="AzureOpenAI", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="OpenAI", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="Cohere", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="Clarifai", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="Google", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="HFClientTGI", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="HFClientVLLM", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="Anyscale", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="Together", settings=base + ) + patched_functions += dspy_get_patched_lm_functions( + base_symbol="dspy", lm_class_name="OllamaLocal", settings=base + ) + + databricks_basic_request_settings = base.model_copy( + update={"name": base.name or "dspy.Databricks.basic_request"} + ) + databricks_call_settings = base.model_copy( + update={"name": base.name or "dspy.Databricks"} + ) + colbertv2_call_settings = base.model_copy( + update={"name": base.name or "dspy.ColBERTv2"} + ) + pyserini_call_settings = base.model_copy( + update={"name": base.name or "dspy.Pyserini"} + ) + + patched_functions += [ + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Databricks.basic_request", + make_new_value=dspy_wrapper(databricks_basic_request_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Databricks.__call__", + make_new_value=dspy_wrapper(databricks_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="ColBERTv2.__call__", + make_new_value=dspy_wrapper(colbertv2_call_settings), + ), + SymbolPatcher( + get_base_symbol=lambda: importlib.import_module("dspy"), + attribute_name="Pyserini.__call__", + make_new_value=dspy_wrapper(pyserini_call_settings), ), ] + _dspy_patcher = MultiPatcher(patched_functions) -patched_functions = [ - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Predict.__call__", - make_new_value=dspy_wrapper("dspy.Predict"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Predict.forward", - make_new_value=dspy_wrapper("dspy.Predict.forward"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="TypedPredictor.__call__", - make_new_value=dspy_wrapper("dspy.TypedPredictor"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="TypedPredictor.forward", - make_new_value=dspy_wrapper("dspy.TypedPredictor.forward"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Module.__call__", - make_new_value=dspy_wrapper("dspy.Module"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="TypedChainOfThought.__call__", - make_new_value=dspy_wrapper("dspy.TypedChainOfThought"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Retrieve.__call__", - make_new_value=dspy_wrapper("dspy.Retrieve"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Retrieve.forward", - make_new_value=dspy_wrapper("dspy.Retrieve.forward"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.evaluate.evaluate"), - attribute_name="Evaluate.__call__", - make_new_value=dspy_wrapper("dspy.evaluate.Evaluate"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="BootstrapFewShot.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.BootstrapFewShot.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="COPRO.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.COPRO.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="Ensemble.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.Ensemble.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="BootstrapFinetune.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.BootstrapFinetune.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="KNNFewShot.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.KNNFewShot.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="MIPRO.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.MIPRO.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="BootstrapFewShotWithRandomSearch.compile", - make_new_value=dspy_wrapper( - "dspy.teleprompt.BootstrapFewShotWithRandomSearch.compile" - ), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="SignatureOptimizer.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.SignatureOptimizer.compile"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="BayesianSignatureOptimizer.compile", - make_new_value=dspy_wrapper( - "dspy.teleprompt.BayesianSignatureOptimizer.compile" - ), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module( - "dspy.teleprompt.signature_opt_typed" - ), - attribute_name="optimize_signature", - make_new_value=dspy_wrapper( - "dspy.teleprompt.signature_opt_typed.optimize_signature" - ), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="BootstrapFewShotWithOptuna.compile", - make_new_value=dspy_wrapper( - "dspy.teleprompt.BootstrapFewShotWithOptuna.compile" - ), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy.teleprompt"), - attribute_name="LabeledFewShot.compile", - make_new_value=dspy_wrapper("dspy.teleprompt.LabeledFewShot.compile"), - ), -] - -# Patch LM classes -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="AzureOpenAI" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="OpenAI" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="Cohere" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="Clarifai" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="Google" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="HFClientTGI" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="HFClientVLLM" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="Anyscale" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="Together" -) -patched_functions += dspy_get_patched_lm_functions( - base_symbol="dspy", lm_class_name="OllamaLocal" -) -patched_functions += [ - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Databricks.basic_request", - make_new_value=dspy_wrapper("dspy.Databricks.basic_request"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Databricks.__call__", - make_new_value=dspy_wrapper("dspy.Databricks"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="ColBERTv2.__call__", - make_new_value=dspy_wrapper("dspy.ColBERTv2"), - ), - SymbolPatcher( - get_base_symbol=lambda: importlib.import_module("dspy"), - attribute_name="Pyserini.__call__", - make_new_value=dspy_wrapper("dspy.Pyserini"), - ), -] - -dspy_patcher = MultiPatcher(patched_functions) + return _dspy_patcher diff --git a/weave/integrations/google_ai_studio/google_ai_studio_sdk.py b/weave/integrations/google_ai_studio/google_ai_studio_sdk.py index 2cd8a2fe1377..7c4e6d2a7406 100644 --- a/weave/integrations/google_ai_studio/google_ai_studio_sdk.py +++ b/weave/integrations/google_ai_studio/google_ai_studio_sdk.py @@ -1,16 +1,21 @@ +from __future__ import annotations + import importlib from functools import wraps -from typing import TYPE_CHECKING, Any, Callable, Optional +from typing import TYPE_CHECKING, Any, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.serialize import dictify from weave.trace.weave_client import Call if TYPE_CHECKING: from google.generativeai.types.generation_types import GenerateContentResponse +_google_genai_patcher: MultiPatcher | None = None + def gemini_postprocess_inputs(inputs: dict[str, Any]) -> dict[str, Any]: if "self" in inputs: @@ -19,8 +24,8 @@ def gemini_postprocess_inputs(inputs: dict[str, Any]) -> dict[str, Any]: def gemini_accumulator( - acc: Optional["GenerateContentResponse"], value: "GenerateContentResponse" -) -> "GenerateContentResponse": + acc: GenerateContentResponse | None, value: GenerateContentResponse +) -> GenerateContentResponse: if acc is None: return value @@ -64,9 +69,7 @@ def gemini_accumulator( return acc -def gemini_on_finish( - call: Call, output: Any, exception: Optional[BaseException] -) -> None: +def gemini_on_finish(call: Call, output: Any, exception: BaseException | None) -> None: if "model_name" in call.inputs["self"]: original_model_name = call.inputs["self"]["model_name"] elif "model" in call.inputs["self"]: @@ -89,10 +92,13 @@ def gemini_on_finish( call.summary.update(summary_update) -def gemini_wrapper_sync(name: str) -> Callable[[Callable], Callable]: +def gemini_wrapper_sync(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op(postprocess_inputs=gemini_postprocess_inputs)(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + if not op_kwargs.get("postprocess_inputs"): + op_kwargs["postprocess_inputs"] = gemini_postprocess_inputs + + op = weave.op(fn, **op_kwargs) op._set_on_finish_handler(gemini_on_finish) return add_accumulator( op, # type: ignore @@ -104,7 +110,7 @@ def wrapper(fn: Callable) -> Callable: return wrapper -def gemini_wrapper_async(name: str) -> Callable[[Callable], Callable]: +def gemini_wrapper_async(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: def _fn_wrapper(fn: Callable) -> Callable: @wraps(fn) @@ -113,9 +119,11 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return _async_wrapper - "We need to do this so we can check if `stream` is used" - op = weave.op(postprocess_inputs=gemini_postprocess_inputs)(_fn_wrapper(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + if not op_kwargs.get("postprocess_inputs"): + op_kwargs["postprocess_inputs"] = gemini_postprocess_inputs + + op = weave.op(_fn_wrapper(fn), **op_kwargs) op._set_on_finish_handler(gemini_on_finish) return add_accumulator( op, # type: ignore @@ -127,33 +135,72 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return wrapper -google_genai_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("google.generativeai.generative_models"), - "GenerativeModel.generate_content", - gemini_wrapper_sync( - name="google.generativeai.GenerativeModel.generate_content" +def get_google_genai_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _google_genai_patcher + if _google_genai_patcher is not None: + return _google_genai_patcher + + base = settings.op_settings + + generate_content_settings = base.model_copy( + update={ + "name": base.name or "google.generativeai.GenerativeModel.generate_content" + } + ) + generate_content_async_settings = base.model_copy( + update={ + "name": base.name + or "google.generativeai.GenerativeModel.generate_content_async" + } + ) + send_message_settings = base.model_copy( + update={"name": base.name or "google.generativeai.ChatSession.send_message"} + ) + send_message_async_settings = base.model_copy( + update={ + "name": base.name or "google.generativeai.ChatSession.send_message_async" + } + ) + + _google_genai_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module( + "google.generativeai.generative_models" + ), + "GenerativeModel.generate_content", + gemini_wrapper_sync(generate_content_settings), + ), + SymbolPatcher( + lambda: importlib.import_module( + "google.generativeai.generative_models" + ), + "GenerativeModel.generate_content_async", + gemini_wrapper_async(generate_content_async_settings), ), - ), - SymbolPatcher( - lambda: importlib.import_module("google.generativeai.generative_models"), - "GenerativeModel.generate_content_async", - gemini_wrapper_async( - name="google.generativeai.GenerativeModel.generate_content_async" + SymbolPatcher( + lambda: importlib.import_module( + "google.generativeai.generative_models" + ), + "ChatSession.send_message", + gemini_wrapper_sync(send_message_settings), ), - ), - SymbolPatcher( - lambda: importlib.import_module("google.generativeai.generative_models"), - "ChatSession.send_message", - gemini_wrapper_sync(name="google.generativeai.ChatSession.send_message"), - ), - SymbolPatcher( - lambda: importlib.import_module("google.generativeai.generative_models"), - "ChatSession.send_message_async", - gemini_wrapper_async( - name="google.generativeai.ChatSession.send_message_async" + SymbolPatcher( + lambda: importlib.import_module( + "google.generativeai.generative_models" + ), + "ChatSession.send_message_async", + gemini_wrapper_async(send_message_async_settings), ), - ), - ] -) + ] + ) + + return _google_genai_patcher diff --git a/weave/integrations/groq/groq_sdk.py b/weave/integrations/groq/groq_sdk.py index 4f470e6d7437..c5c07fd705f7 100644 --- a/weave/integrations/groq/groq_sdk.py +++ b/weave/integrations/groq/groq_sdk.py @@ -1,17 +1,23 @@ +from __future__ import annotations + import importlib -from typing import TYPE_CHECKING, Callable, Optional +from typing import TYPE_CHECKING, Callable + +import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings +from weave.trace.op_extensions.accumulator import add_accumulator +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from groq.types.chat import ChatCompletion, ChatCompletionChunk -import weave -from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher + +_groq_patcher: MultiPatcher | None = None def groq_accumulator( - acc: Optional["ChatCompletion"], value: "ChatCompletionChunk" -) -> "ChatCompletion": + acc: ChatCompletion | None, value: ChatCompletionChunk +) -> ChatCompletion: from groq.types.chat import ChatCompletion, ChatCompletionMessage from groq.types.chat.chat_completion import Choice from groq.types.chat.chat_completion_chunk import Choice as ChoiceChunk @@ -83,11 +89,10 @@ def should_use_accumulator(inputs: dict) -> bool: return isinstance(inputs, dict) and bool(inputs.get("stream")) -def groq_wrapper(name: str) -> Callable[[Callable], Callable]: +def groq_wrapper(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore - # return op + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: groq_accumulator, @@ -97,17 +102,41 @@ def wrapper(fn: Callable) -> Callable: return wrapper -groq_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("groq.resources.chat.completions"), - "Completions.create", - groq_wrapper(name="groq.chat.completions.create"), - ), - SymbolPatcher( - lambda: importlib.import_module("groq.resources.chat.completions"), - "AsyncCompletions.create", - groq_wrapper(name="groq.async.chat.completions.create"), - ), - ] -) +def get_groq_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _groq_patcher + if _groq_patcher is not None: + return _groq_patcher + + base = settings.op_settings + + chat_completions_settings = base.model_copy( + update={"name": base.name or "groq.chat.completions.create"} + ) + async_chat_completions_settings = base.model_copy( + update={"name": base.name or "groq.async.chat.completions.create"} + ) + + _groq_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module("groq.resources.chat.completions"), + "Completions.create", + groq_wrapper(chat_completions_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("groq.resources.chat.completions"), + "AsyncCompletions.create", + groq_wrapper(async_chat_completions_settings), + ), + ] + ) + + return _groq_patcher diff --git a/weave/integrations/instructor/instructor_iterable_utils.py b/weave/integrations/instructor/instructor_iterable_utils.py index 84d64a103b6b..3b0f128a1320 100644 --- a/weave/integrations/instructor/instructor_iterable_utils.py +++ b/weave/integrations/instructor/instructor_iterable_utils.py @@ -4,6 +4,7 @@ from pydantic import BaseModel import weave +from weave.trace.autopatch import OpSettings from weave.trace.op_extensions.accumulator import add_accumulator @@ -27,10 +28,10 @@ def should_accumulate_iterable(inputs: dict) -> bool: return False -def instructor_wrapper_sync(name: str) -> Callable[[Callable], Callable]: +def instructor_wrapper_sync(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: instructor_iterable_accumulator, @@ -40,7 +41,7 @@ def wrapper(fn: Callable) -> Callable: return wrapper -def instructor_wrapper_async(name: str) -> Callable[[Callable], Callable]: +def instructor_wrapper_async(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: def _fn_wrapper(fn: Callable) -> Callable: @wraps(fn) @@ -49,9 +50,8 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return _async_wrapper - "We need to do this so we can check if `stream` is used" - op = weave.op(_fn_wrapper(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(_fn_wrapper(fn), **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: instructor_iterable_accumulator, diff --git a/weave/integrations/instructor/instructor_partial_utils.py b/weave/integrations/instructor/instructor_partial_utils.py index f90dc7edb17b..8efa84b302f8 100644 --- a/weave/integrations/instructor/instructor_partial_utils.py +++ b/weave/integrations/instructor/instructor_partial_utils.py @@ -3,6 +3,7 @@ from pydantic import BaseModel import weave +from weave.trace.autopatch import OpSettings from weave.trace.op_extensions.accumulator import add_accumulator @@ -14,10 +15,10 @@ def instructor_partial_accumulator( return acc -def instructor_wrapper_partial(name: str) -> Callable[[Callable], Callable]: +def instructor_wrapper_partial(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: instructor_partial_accumulator, diff --git a/weave/integrations/instructor/instructor_sdk.py b/weave/integrations/instructor/instructor_sdk.py index 867e9f2a785e..00dfde029c9c 100644 --- a/weave/integrations/instructor/instructor_sdk.py +++ b/weave/integrations/instructor/instructor_sdk.py @@ -1,31 +1,65 @@ +from __future__ import annotations + import importlib -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.autopatch import IntegrationSettings +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from .instructor_iterable_utils import instructor_wrapper_async, instructor_wrapper_sync from .instructor_partial_utils import instructor_wrapper_partial -instructor_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("instructor.client"), - "Instructor.create", - instructor_wrapper_sync(name="Instructor.create"), - ), - SymbolPatcher( - lambda: importlib.import_module("instructor.client"), - "AsyncInstructor.create", - instructor_wrapper_async(name="AsyncInstructor.create"), - ), - SymbolPatcher( - lambda: importlib.import_module("instructor.client"), - "Instructor.create_partial", - instructor_wrapper_partial(name="Instructor.create_partial"), - ), - SymbolPatcher( - lambda: importlib.import_module("instructor.client"), - "AsyncInstructor.create_partial", - instructor_wrapper_partial(name="AsyncInstructor.create_partial"), - ), - ] -) +_instructor_patcher: MultiPatcher | None = None + + +def get_instructor_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _instructor_patcher + if _instructor_patcher is not None: + return _instructor_patcher + + base = settings.op_settings + + create_settings = base.model_copy(update={"name": base.name or "Instructor.create"}) + async_create_settings = base.model_copy( + update={"name": base.name or "AsyncInstructor.create"} + ) + create_partial_settings = base.model_copy( + update={"name": base.name or "Instructor.create_partial"} + ) + async_create_partial_settings = base.model_copy( + update={"name": base.name or "AsyncInstructor.create_partial"} + ) + + _instructor_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module("instructor.client"), + "Instructor.create", + instructor_wrapper_sync(create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("instructor.client"), + "AsyncInstructor.create", + instructor_wrapper_async(async_create_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("instructor.client"), + "Instructor.create_partial", + instructor_wrapper_partial(create_partial_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("instructor.client"), + "AsyncInstructor.create_partial", + instructor_wrapper_partial(async_create_partial_settings), + ), + ] + ) + + return _instructor_patcher diff --git a/weave/integrations/litellm/litellm.py b/weave/integrations/litellm/litellm.py index c3bf1bf114a2..9ae6e492c84e 100644 --- a/weave/integrations/litellm/litellm.py +++ b/weave/integrations/litellm/litellm.py @@ -1,19 +1,24 @@ +from __future__ import annotations + import importlib -from typing import TYPE_CHECKING, Any, Callable, Optional +from typing import TYPE_CHECKING, Any, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from litellm.utils import ModelResponse +_litellm_patcher: MultiPatcher | None = None + # This accumulator is nearly identical to the mistral accumulator, just with different types. def litellm_accumulator( - acc: Optional["ModelResponse"], - value: "ModelResponse", -) -> "ModelResponse": + acc: ModelResponse | None, + value: ModelResponse, +) -> ModelResponse: # This import should be safe at this point from litellm.utils import Choices, Message, ModelResponse, Usage @@ -82,10 +87,10 @@ def should_use_accumulator(inputs: dict) -> bool: return isinstance(inputs, dict) and bool(inputs.get("stream")) -def make_wrapper(name: str) -> Callable: +def make_wrapper(settings: OpSettings) -> Callable: def litellm_wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return add_accumulator( op, # type: ignore make_accumulator=lambda inputs: litellm_accumulator, @@ -96,17 +101,41 @@ def litellm_wrapper(fn: Callable) -> Callable: return litellm_wrapper -litellm_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("litellm"), - "completion", - make_wrapper("litellm.completion"), - ), - SymbolPatcher( - lambda: importlib.import_module("litellm"), - "acompletion", - make_wrapper("litellm.acompletion"), - ), - ] -) +def get_litellm_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _litellm_patcher + if _litellm_patcher is not None: + return _litellm_patcher + + base = settings.op_settings + + completion_settings = base.model_copy( + update={"name": base.name or "litellm.completion"} + ) + acompletion_settings = base.model_copy( + update={"name": base.name or "litellm.acompletion"} + ) + + _litellm_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module("litellm"), + "completion", + make_wrapper(completion_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("litellm"), + "acompletion", + make_wrapper(acompletion_settings), + ), + ] + ) + + return _litellm_patcher diff --git a/weave/integrations/mistral/__init__.py b/weave/integrations/mistral/__init__.py index 34b40835efcf..d78812d9afa8 100644 --- a/weave/integrations/mistral/__init__.py +++ b/weave/integrations/mistral/__init__.py @@ -8,10 +8,10 @@ mistral_version = "1.0" # we need to return a patching function if version.parse(mistral_version) < version.parse("1.0.0"): - from .v0.mistral import mistral_patcher + from .v0.mistral import get_mistral_patcher # noqa: F401 print( f"Using MistralAI version {mistral_version}. Please consider upgrading to version 1.0.0 or later." ) else: - from .v1.mistral import mistral_patcher # noqa: F401 + from .v1.mistral import get_mistral_patcher # noqa: F401 diff --git a/weave/integrations/mistral/v0/mistral.py b/weave/integrations/mistral/v0/mistral.py index 6d4915eab41b..70a3fa183bb8 100644 --- a/weave/integrations/mistral/v0/mistral.py +++ b/weave/integrations/mistral/v0/mistral.py @@ -1,9 +1,12 @@ +from __future__ import annotations + import importlib -from typing import TYPE_CHECKING, Callable, Optional +from typing import TYPE_CHECKING, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from mistralai.models.chat_completion import ( @@ -11,11 +14,13 @@ ChatCompletionStreamResponse, ) +_mistral_patcher: MultiPatcher | None = None + def mistral_accumulator( - acc: Optional["ChatCompletionResponse"], - value: "ChatCompletionStreamResponse", -) -> "ChatCompletionResponse": + acc: ChatCompletionResponse | None, + value: ChatCompletionStreamResponse, +) -> ChatCompletionResponse: # This import should be safe at this point from mistralai.models.chat_completion import ( ChatCompletionResponse, @@ -72,37 +77,78 @@ def mistral_accumulator( return acc -def mistral_stream_wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - acc_op = add_accumulator(op, lambda inputs: mistral_accumulator) # type: ignore - return acc_op - - -mistral_patcher = MultiPatcher( - [ - # Patch the sync, non-streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.client"), - "MistralClient.chat", - weave.op(), - ), - # Patch the sync, streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.client"), - "MistralClient.chat_stream", - mistral_stream_wrapper, - ), - # Patch the async, non-streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.async_client"), - "MistralAsyncClient.chat", - weave.op(), - ), - # Patch the async, streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.async_client"), - "MistralAsyncClient.chat_stream", - mistral_stream_wrapper, - ), - ] -) +def mistral_stream_wrapper(settings: OpSettings) -> Callable: + def wrapper(fn: Callable) -> Callable: + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) + acc_op = add_accumulator(op, lambda inputs: mistral_accumulator) # type: ignore + return acc_op + + return wrapper + + +def mistral_wrapper(settings: OpSettings) -> Callable: + def wrapper(fn: Callable) -> Callable: + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) + return op + + return wrapper + + +def get_mistral_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _mistral_patcher + if _mistral_patcher is not None: + return _mistral_patcher + + base = settings.op_settings + + chat_settings = base.model_copy(update={"name": base.name or "mistralai.chat"}) + chat_stream_settings = base.model_copy( + update={"name": base.name or "mistralai.chat_stream"} + ) + async_chat_settings = base.model_copy( + update={"name": base.name or "mistralai.async_client.chat"} + ) + async_chat_stream_settings = base.model_copy( + update={"name": base.name or "mistralai.async_client.chat_stream"} + ) + + _mistral_patcher = MultiPatcher( + [ + # Patch the sync, non-streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.client"), + "MistralClient.chat", + mistral_wrapper(chat_settings), + ), + # Patch the sync, streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.client"), + "MistralClient.chat_stream", + mistral_stream_wrapper(chat_stream_settings), + ), + # Patch the async, non-streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.async_client"), + "MistralAsyncClient.chat", + mistral_wrapper(async_chat_settings), + ), + # Patch the async, streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.async_client"), + "MistralAsyncClient.chat_stream", + mistral_stream_wrapper(async_chat_stream_settings), + ), + ] + ) + + return _mistral_patcher diff --git a/weave/integrations/mistral/v1/mistral.py b/weave/integrations/mistral/v1/mistral.py index 692aa7b159bf..d52d42af3c4f 100644 --- a/weave/integrations/mistral/v1/mistral.py +++ b/weave/integrations/mistral/v1/mistral.py @@ -1,9 +1,12 @@ +from __future__ import annotations + import importlib -from typing import TYPE_CHECKING, Callable, Optional +from typing import TYPE_CHECKING, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from mistralai.models import ( @@ -11,11 +14,13 @@ CompletionEvent, ) +_mistral_patcher: MultiPatcher | None = None + def mistral_accumulator( - acc: Optional["ChatCompletionResponse"], - value: "CompletionEvent", -) -> "ChatCompletionResponse": + acc: ChatCompletionResponse | None, + value: CompletionEvent, +) -> ChatCompletionResponse: # This import should be safe at this point from mistralai.models import ( AssistantMessage, @@ -79,50 +84,79 @@ def mistral_accumulator( return acc -def mistral_stream_wrapper(name: str) -> Callable: +def mistral_stream_wrapper(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) acc_op = add_accumulator(op, lambda inputs: mistral_accumulator) # type: ignore - acc_op.name = name # type: ignore return acc_op return wrapper -def mistral_wrapper(name: str) -> Callable: +def mistral_wrapper(settings: OpSettings) -> Callable: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return op return wrapper -mistral_patcher = MultiPatcher( - [ - # Patch the sync, non-streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.chat"), - "Chat.complete", - mistral_wrapper(name="Mistral.chat.complete"), - ), - # Patch the sync, streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.chat"), - "Chat.stream", - mistral_stream_wrapper(name="Mistral.chat.stream"), - ), - # Patch the async, non-streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.chat"), - "Chat.complete_async", - mistral_wrapper(name="Mistral.chat.complete_async"), - ), - # Patch the async, streaming chat method - SymbolPatcher( - lambda: importlib.import_module("mistralai.chat"), - "Chat.stream_async", - mistral_stream_wrapper(name="Mistral.chat.stream_async"), - ), - ] -) +def get_mistral_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _mistral_patcher + if _mistral_patcher is not None: + return _mistral_patcher + + base = settings.op_settings + chat_complete_settings = base.model_copy( + update={"name": base.name or "mistralai.chat.complete"} + ) + chat_stream_settings = base.model_copy( + update={"name": base.name or "mistralai.chat.stream"} + ) + async_chat_complete_settings = base.model_copy( + update={"name": base.name or "mistralai.async_client.chat.complete"} + ) + async_chat_stream_settings = base.model_copy( + update={"name": base.name or "mistralai.async_client.chat.stream"} + ) + + _mistral_patcher = MultiPatcher( + [ + # Patch the sync, non-streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.chat"), + "Chat.complete", + mistral_wrapper(chat_complete_settings), + ), + # Patch the sync, streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.chat"), + "Chat.stream", + mistral_stream_wrapper(chat_stream_settings), + ), + # Patch the async, non-streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.chat"), + "Chat.complete_async", + mistral_wrapper(async_chat_complete_settings), + ), + # Patch the async, streaming chat method + SymbolPatcher( + lambda: importlib.import_module("mistralai.chat"), + "Chat.stream_async", + mistral_stream_wrapper(async_chat_stream_settings), + ), + ] + ) + + return _mistral_patcher diff --git a/weave/integrations/notdiamond/__init__.py b/weave/integrations/notdiamond/__init__.py index d99c31c4176d..8cb72ef2a55e 100644 --- a/weave/integrations/notdiamond/__init__.py +++ b/weave/integrations/notdiamond/__init__.py @@ -1 +1 @@ -from .tracing import notdiamond_patcher as notdiamond_patcher +from .tracing import get_notdiamond_patcher # noqa: F401 diff --git a/weave/integrations/notdiamond/tracing.py b/weave/integrations/notdiamond/tracing.py index 90c08b9e8c62..23589719be78 100644 --- a/weave/integrations/notdiamond/tracing.py +++ b/weave/integrations/notdiamond/tracing.py @@ -1,19 +1,32 @@ +from __future__ import annotations + import importlib from typing import Callable import weave -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.autopatch import IntegrationSettings, OpSettings +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher + +_notdiamond_patcher: MultiPatcher | None = None -def nd_wrapper(name: str) -> Callable[[Callable], Callable]: +def nd_wrapper(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op()(fn) - op.name = name # type: ignore + op_kwargs = settings.model_dump() + op = weave.op(fn, **op_kwargs) return op return wrapper +def passthrough_wrapper(settings: OpSettings) -> Callable: + def wrapper(fn: Callable) -> Callable: + op_kwargs = settings.model_dump() + return weave.op(fn, **op_kwargs) + + return wrapper + + def _patch_client_op(method_name: str) -> list[SymbolPatcher]: return [ SymbolPatcher( @@ -29,36 +42,84 @@ def _patch_client_op(method_name: str) -> list[SymbolPatcher]: ] -patched_client_functions = _patch_client_op("model_select") - -patched_llmconfig_functions = [ - SymbolPatcher( - lambda: importlib.import_module("notdiamond"), - "LLMConfig.__init__", - weave.op(), - ), - SymbolPatcher( - lambda: importlib.import_module("notdiamond"), - "LLMConfig.from_string", - weave.op(), - ), -] - -patched_toolkit_functions = [ - SymbolPatcher( - lambda: importlib.import_module("notdiamond.toolkit.custom_router"), - "CustomRouter.fit", - weave.op(), - ), - SymbolPatcher( - lambda: importlib.import_module("notdiamond.toolkit.custom_router"), - "CustomRouter.eval", - weave.op(), - ), -] - -all_patched_functions = ( - patched_client_functions + patched_toolkit_functions + patched_llmconfig_functions -) - -notdiamond_patcher = MultiPatcher(all_patched_functions) +def get_notdiamond_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _notdiamond_patcher + if _notdiamond_patcher is not None: + return _notdiamond_patcher + + base = settings.op_settings + + model_select_settings = base.model_copy( + update={"name": base.name or "NotDiamond.model_select"} + ) + async_model_select_settings = base.model_copy( + update={"name": base.name or "NotDiamond.amodel_select"} + ) + patched_client_functions = [ + SymbolPatcher( + lambda: importlib.import_module("notdiamond"), + "NotDiamond.model_select", + passthrough_wrapper(model_select_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("notdiamond"), + "NotDiamond.amodel_select", + passthrough_wrapper(async_model_select_settings), + ), + ] + + llm_config_init_settings = base.model_copy( + update={"name": base.name or "NotDiamond.LLMConfig.__init__"} + ) + llm_config_from_string_settings = base.model_copy( + update={"name": base.name or "NotDiamond.LLMConfig.from_string"} + ) + patched_llmconfig_functions = [ + SymbolPatcher( + lambda: importlib.import_module("notdiamond"), + "LLMConfig.__init__", + passthrough_wrapper(llm_config_init_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("notdiamond"), + "LLMConfig.from_string", + passthrough_wrapper(llm_config_from_string_settings), + ), + ] + + toolkit_custom_router_fit_settings = base.model_copy( + update={"name": base.name or "NotDiamond.toolkit.custom_router.fit"} + ) + toolkit_custom_router_eval_settings = base.model_copy( + update={"name": base.name or "NotDiamond.toolkit.custom_router.eval"} + ) + patched_toolkit_functions = [ + SymbolPatcher( + lambda: importlib.import_module("notdiamond.toolkit.custom_router"), + "CustomRouter.fit", + passthrough_wrapper(toolkit_custom_router_fit_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("notdiamond.toolkit.custom_router"), + "CustomRouter.eval", + passthrough_wrapper(toolkit_custom_router_eval_settings), + ), + ] + + all_patched_functions = ( + patched_client_functions + + patched_toolkit_functions + + patched_llmconfig_functions + ) + + _notdiamond_patcher = MultiPatcher(all_patched_functions) + + return _notdiamond_patcher diff --git a/weave/integrations/vertexai/vertexai_sdk.py b/weave/integrations/vertexai/vertexai_sdk.py index c2f7a9906c78..a64620cbe5fb 100644 --- a/weave/integrations/vertexai/vertexai_sdk.py +++ b/weave/integrations/vertexai/vertexai_sdk.py @@ -1,10 +1,13 @@ +from __future__ import annotations + import importlib from functools import wraps -from typing import TYPE_CHECKING, Any, Callable, Optional +from typing import TYPE_CHECKING, Any, Callable import weave +from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher +from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.serialize import dictify from weave.trace.weave_client import Call @@ -12,6 +15,9 @@ from vertexai.generative_models import GenerationResponse +_vertexai_patcher: MultiPatcher | None = None + + def vertexai_postprocess_inputs(inputs: dict[str, Any]) -> dict[str, Any]: if "self" in inputs: model_name = ( @@ -25,8 +31,8 @@ def vertexai_postprocess_inputs(inputs: dict[str, Any]) -> dict[str, Any]: def vertexai_accumulator( - acc: Optional["GenerationResponse"], value: "GenerationResponse" -) -> "GenerationResponse": + acc: GenerationResponse | None, value: GenerationResponse +) -> GenerationResponse: from google.cloud.aiplatform_v1beta1.types import content as gapic_content_types from google.cloud.aiplatform_v1beta1.types import ( prediction_service as gapic_prediction_service_types, @@ -62,7 +68,7 @@ def vertexai_accumulator( def vertexai_on_finish( - call: Call, output: Any, exception: Optional[BaseException] + call: Call, output: Any, exception: BaseException | None ) -> None: original_model_name = call.inputs["model_name"] model_name = original_model_name.split("/")[-1] @@ -81,10 +87,13 @@ def vertexai_on_finish( call.summary.update(summary_update) -def vertexai_wrapper_sync(name: str) -> Callable[[Callable], Callable]: +def vertexai_wrapper_sync(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: - op = weave.op(postprocess_inputs=vertexai_postprocess_inputs)(fn) - op.name = name # type: ignore + op_kwargs = settings.model_copy() + if not op_kwargs.get("postprocess_inputs"): + op_kwargs["postprocess_inputs"] = vertexai_postprocess_inputs + + op = weave.op(fn, **op_kwargs) op._set_on_finish_handler(vertexai_on_finish) return add_accumulator( op, # type: ignore @@ -96,7 +105,7 @@ def wrapper(fn: Callable) -> Callable: return wrapper -def vertexai_wrapper_async(name: str) -> Callable[[Callable], Callable]: +def vertexai_wrapper_async(settings: OpSettings) -> Callable[[Callable], Callable]: def wrapper(fn: Callable) -> Callable: def _fn_wrapper(fn: Callable) -> Callable: @wraps(fn) @@ -105,9 +114,11 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return _async_wrapper - "We need to do this so we can check if `stream` is used" - op = weave.op(postprocess_inputs=vertexai_postprocess_inputs)(_fn_wrapper(fn)) - op.name = name # type: ignore + op_kwargs = settings.model_copy() + if not op_kwargs.get("postprocess_inputs"): + op_kwargs["postprocess_inputs"] = vertexai_postprocess_inputs + + op = weave.op(_fn_wrapper(fn), **op_kwargs) op._set_on_finish_handler(vertexai_on_finish) return add_accumulator( op, # type: ignore @@ -119,34 +130,65 @@ async def _async_wrapper(*args: Any, **kwargs: Any) -> Any: return wrapper -vertexai_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: importlib.import_module("vertexai.generative_models"), - "GenerativeModel.generate_content", - vertexai_wrapper_sync(name="vertexai.GenerativeModel.generate_content"), - ), - SymbolPatcher( - lambda: importlib.import_module("vertexai.generative_models"), - "GenerativeModel.generate_content_async", - vertexai_wrapper_async( - name="vertexai.GenerativeModel.generate_content_async" +def get_vertexai_patcher( + settings: IntegrationSettings | None = None, +) -> MultiPatcher | NoOpPatcher: + if settings is None: + settings = IntegrationSettings() + + if not settings.enabled: + return NoOpPatcher() + + global _vertexai_patcher + if _vertexai_patcher is not None: + return _vertexai_patcher + + base = settings.op_settings + + generate_content_settings = base.model_copy( + update={"name": base.name or "vertexai.GenerativeModel.generate_content"} + ) + generate_content_async_settings = base.model_copy( + update={"name": base.name or "vertexai.GenerativeModel.generate_content_async"} + ) + send_message_settings = base.model_copy( + update={"name": base.name or "vertexai.ChatSession.send_message"} + ) + send_message_async_settings = base.model_copy( + update={"name": base.name or "vertexai.ChatSession.send_message_async"} + ) + generate_images_settings = base.model_copy( + update={"name": base.name or "vertexai.ImageGenerationModel.generate_images"} + ) + + _vertexai_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: importlib.import_module("vertexai.generative_models"), + "GenerativeModel.generate_content", + vertexai_wrapper_sync(generate_content_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("vertexai.generative_models"), + "GenerativeModel.generate_content_async", + vertexai_wrapper_async(generate_content_async_settings), ), - ), - SymbolPatcher( - lambda: importlib.import_module("vertexai.generative_models"), - "ChatSession.send_message", - vertexai_wrapper_sync(name="vertexai.ChatSession.send_message"), - ), - SymbolPatcher( - lambda: importlib.import_module("vertexai.generative_models"), - "ChatSession.send_message_async", - vertexai_wrapper_async(name="vertexai.ChatSession.send_message_async"), - ), - SymbolPatcher( - lambda: importlib.import_module("vertexai.preview.vision_models"), - "ImageGenerationModel.generate_images", - vertexai_wrapper_sync(name="vertexai.ImageGenerationModel.generate_images"), - ), - ] -) + SymbolPatcher( + lambda: importlib.import_module("vertexai.generative_models"), + "ChatSession.send_message", + vertexai_wrapper_sync(send_message_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("vertexai.generative_models"), + "ChatSession.send_message_async", + vertexai_wrapper_async(send_message_async_settings), + ), + SymbolPatcher( + lambda: importlib.import_module("vertexai.preview.vision_models"), + "ImageGenerationModel.generate_images", + vertexai_wrapper_sync(generate_images_settings), + ), + ] + ) + + return _vertexai_patcher diff --git a/weave/trace/autopatch.py b/weave/trace/autopatch.py index 0619194a2247..c1c47d375127 100644 --- a/weave/trace/autopatch.py +++ b/weave/trace/autopatch.py @@ -34,89 +34,89 @@ class AutopatchSettings(BaseModel): # These will be uncommented as we add support for more integrations. Note that - # anthropic: IntegrationSettings = Field(default_factory=IntegrationSettings) - # cerebras: IntegrationSettings = Field(default_factory=IntegrationSettings) - # cohere: IntegrationSettings = Field(default_factory=IntegrationSettings) - # dspy: IntegrationSettings = Field(default_factory=IntegrationSettings) - # google_ai_studio: IntegrationSettings = Field(default_factory=IntegrationSettings) - # groq: IntegrationSettings = Field(default_factory=IntegrationSettings) - # instructor: IntegrationSettings = Field(default_factory=IntegrationSettings) - # langchain: IntegrationSettings = Field(default_factory=IntegrationSettings) - # litellm: IntegrationSettings = Field(default_factory=IntegrationSettings) - # llamaindex: IntegrationSettings = Field(default_factory=IntegrationSettings) - # mistral: IntegrationSettings = Field(default_factory=IntegrationSettings) - # notdiamond: IntegrationSettings = Field(default_factory=IntegrationSettings) + anthropic: IntegrationSettings = Field(default_factory=IntegrationSettings) + cerebras: IntegrationSettings = Field(default_factory=IntegrationSettings) + cohere: IntegrationSettings = Field(default_factory=IntegrationSettings) + dspy: IntegrationSettings = Field(default_factory=IntegrationSettings) + google_ai_studio: IntegrationSettings = Field(default_factory=IntegrationSettings) + groq: IntegrationSettings = Field(default_factory=IntegrationSettings) + instructor: IntegrationSettings = Field(default_factory=IntegrationSettings) + litellm: IntegrationSettings = Field(default_factory=IntegrationSettings) + mistral: IntegrationSettings = Field(default_factory=IntegrationSettings) + notdiamond: IntegrationSettings = Field(default_factory=IntegrationSettings) openai: IntegrationSettings = Field(default_factory=IntegrationSettings) - # vertexai: IntegrationSettings = Field(default_factory=IntegrationSettings) + vertexai: IntegrationSettings = Field(default_factory=IntegrationSettings) @validate_call def autopatch(settings: Optional[AutopatchSettings] = None) -> None: - from weave.integrations.anthropic.anthropic_sdk import anthropic_patcher - from weave.integrations.cerebras.cerebras_sdk import cerebras_patcher - from weave.integrations.cohere.cohere_sdk import cohere_patcher - from weave.integrations.dspy.dspy_sdk import dspy_patcher + from weave.integrations.anthropic.anthropic_sdk import get_anthropic_patcher + from weave.integrations.cerebras.cerebras_sdk import get_cerebras_patcher + from weave.integrations.cohere.cohere_sdk import get_cohere_patcher + from weave.integrations.dspy.dspy_sdk import get_dspy_patcher from weave.integrations.google_ai_studio.google_ai_studio_sdk import ( - google_genai_patcher, + get_google_genai_patcher, ) - from weave.integrations.groq.groq_sdk import groq_patcher - from weave.integrations.instructor.instructor_sdk import instructor_patcher + from weave.integrations.groq.groq_sdk import get_groq_patcher + from weave.integrations.instructor.instructor_sdk import get_instructor_patcher from weave.integrations.langchain.langchain import langchain_patcher - from weave.integrations.litellm.litellm import litellm_patcher + from weave.integrations.litellm.litellm import get_litellm_patcher from weave.integrations.llamaindex.llamaindex import llamaindex_patcher - from weave.integrations.mistral import mistral_patcher - from weave.integrations.notdiamond.tracing import notdiamond_patcher + from weave.integrations.mistral import get_mistral_patcher + from weave.integrations.notdiamond.tracing import get_notdiamond_patcher from weave.integrations.openai.openai_sdk import get_openai_patcher - from weave.integrations.vertexai.vertexai_sdk import vertexai_patcher + from weave.integrations.vertexai.vertexai_sdk import get_vertexai_patcher if settings is None: settings = AutopatchSettings() get_openai_patcher(settings.openai).attempt_patch() - mistral_patcher.attempt_patch() - litellm_patcher.attempt_patch() + get_mistral_patcher(settings.mistral).attempt_patch() + get_litellm_patcher(settings.litellm).attempt_patch() + get_anthropic_patcher(settings.anthropic).attempt_patch() + get_groq_patcher(settings.groq).attempt_patch() + get_instructor_patcher(settings.instructor).attempt_patch() + get_dspy_patcher(settings.dspy).attempt_patch() + get_cerebras_patcher(settings.cerebras).attempt_patch() + get_cohere_patcher(settings.cohere).attempt_patch() + get_google_genai_patcher(settings.google_ai_studio).attempt_patch() + get_notdiamond_patcher(settings.notdiamond).attempt_patch() + get_vertexai_patcher(settings.vertexai).attempt_patch() + llamaindex_patcher.attempt_patch() langchain_patcher.attempt_patch() - anthropic_patcher.attempt_patch() - groq_patcher.attempt_patch() - instructor_patcher.attempt_patch() - dspy_patcher.attempt_patch() - cerebras_patcher.attempt_patch() - cohere_patcher.attempt_patch() - google_genai_patcher.attempt_patch() - notdiamond_patcher.attempt_patch() - vertexai_patcher.attempt_patch() def reset_autopatch() -> None: - from weave.integrations.anthropic.anthropic_sdk import anthropic_patcher - from weave.integrations.cerebras.cerebras_sdk import cerebras_patcher - from weave.integrations.cohere.cohere_sdk import cohere_patcher - from weave.integrations.dspy.dspy_sdk import dspy_patcher + from weave.integrations.anthropic.anthropic_sdk import get_anthropic_patcher + from weave.integrations.cerebras.cerebras_sdk import get_cerebras_patcher + from weave.integrations.cohere.cohere_sdk import get_cohere_patcher + from weave.integrations.dspy.dspy_sdk import get_dspy_patcher from weave.integrations.google_ai_studio.google_ai_studio_sdk import ( - google_genai_patcher, + get_google_genai_patcher, ) - from weave.integrations.groq.groq_sdk import groq_patcher - from weave.integrations.instructor.instructor_sdk import instructor_patcher + from weave.integrations.groq.groq_sdk import get_groq_patcher + from weave.integrations.instructor.instructor_sdk import get_instructor_patcher from weave.integrations.langchain.langchain import langchain_patcher - from weave.integrations.litellm.litellm import litellm_patcher + from weave.integrations.litellm.litellm import get_litellm_patcher from weave.integrations.llamaindex.llamaindex import llamaindex_patcher - from weave.integrations.mistral import mistral_patcher - from weave.integrations.notdiamond.tracing import notdiamond_patcher + from weave.integrations.mistral import get_mistral_patcher + from weave.integrations.notdiamond.tracing import get_notdiamond_patcher from weave.integrations.openai.openai_sdk import get_openai_patcher - from weave.integrations.vertexai.vertexai_sdk import vertexai_patcher + from weave.integrations.vertexai.vertexai_sdk import get_vertexai_patcher get_openai_patcher().undo_patch() - mistral_patcher.undo_patch() - litellm_patcher.undo_patch() + get_mistral_patcher().undo_patch() + get_litellm_patcher().undo_patch() + get_anthropic_patcher().undo_patch() + get_groq_patcher().undo_patch() + get_instructor_patcher().undo_patch() + get_dspy_patcher().undo_patch() + get_cerebras_patcher().undo_patch() + get_cohere_patcher().undo_patch() + get_google_genai_patcher().undo_patch() + get_notdiamond_patcher().undo_patch() + get_vertexai_patcher().undo_patch() + llamaindex_patcher.undo_patch() langchain_patcher.undo_patch() - anthropic_patcher.undo_patch() - groq_patcher.undo_patch() - instructor_patcher.undo_patch() - dspy_patcher.undo_patch() - cerebras_patcher.undo_patch() - cohere_patcher.undo_patch() - google_genai_patcher.undo_patch() - notdiamond_patcher.undo_patch() - vertexai_patcher.undo_patch() From 5fc28f245e6ff655e96439a260256dd9f49e348b Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Tue, 17 Dec 2024 18:01:00 -0800 Subject: [PATCH 33/62] add better search function to llm dropdown (#3280) --- .../PlaygroundChat/LLMDropdown.tsx | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx index fb0e280484a0..a15437de1b19 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/LLMDropdown.tsx @@ -20,20 +20,23 @@ export const LLMDropdown: React.FC = ({value, onChange}) => { label: LLM_PROVIDER_LABELS[provider], // filtering to the LLMs that are supported by that provider options: Object.keys(LLM_MAX_TOKENS) - .reduce>( - (acc, llm) => { - if (LLM_MAX_TOKENS[llm as LLMMaxTokensKey].provider === provider) { - acc.push({ - group: provider, - // add provider to the label if the LLM is not already prefixed with it - label: llm.includes(provider) ? llm : provider + '/' + llm, - value: llm, - }); - } - return acc; - }, - [] - ) + .reduce< + Array<{ + provider_label: string; + label: string; + value: string; + }> + >((acc, llm) => { + if (LLM_MAX_TOKENS[llm as LLMMaxTokensKey].provider === provider) { + acc.push({ + provider_label: LLM_PROVIDER_LABELS[provider], + // add provider to the label if the LLM is not already prefixed with it + label: llm.includes(provider) ? llm : provider + '/' + llm, + value: llm, + }); + } + return acc; + }, []) .sort((a, b) => a.label.localeCompare(b.label)), })); @@ -74,6 +77,14 @@ export const LLMDropdown: React.FC = ({value, onChange}) => { options={options} size="medium" isSearchable + filterOption={(option, inputValue) => { + const searchTerm = inputValue.toLowerCase(); + return ( + option.data.provider_label.toLowerCase().includes(searchTerm) || + option.data.label.toLowerCase().includes(searchTerm) || + option.data.value.toLowerCase().includes(searchTerm) + ); + }} /> ); From 6a093a4f2d8088e0d5e02c6ca2a5688cc017ac0d Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Tue, 17 Dec 2024 18:01:08 -0800 Subject: [PATCH 34/62] fix(weave): Prevent sending null message in playground (#3278) * Filter null messages, prevent sending null message * clean --- .../PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx | 9 +++++++-- .../PlaygroundChat/PlaygroundChatInput.tsx | 6 +++--- .../PlaygroundChat/useChatCompletionFunctions.tsx | 8 +++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx index b6b6e7c420d3..8fc02fea9b10 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx @@ -41,7 +41,6 @@ export const PlaygroundChat = ({ const {handleRetry, handleSend} = useChatCompletionFunctions( setPlaygroundStates, setIsLoading, - chatText, playgroundStates, entity, project, @@ -168,7 +167,13 @@ export const PlaygroundChat = ({ content: string, toolCallId?: string ) => { - handleSend(role, idx, content, toolCallId); + handleSend( + role, + chatText, + idx, + content, + toolCallId + ); }, setSelectedChoiceIndex: (choiceIndex: number) => setPlaygroundStateField( diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChatInput.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChatInput.tsx index cac631a8fcf8..d1a627fc4833 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChatInput.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChatInput.tsx @@ -10,8 +10,8 @@ type PlaygroundChatInputProps = { chatText: string; setChatText: (text: string) => void; isLoading: boolean; - onSend: (role: PlaygroundMessageRole) => void; - onAdd: (role: PlaygroundMessageRole, text: string) => void; + onSend: (role: PlaygroundMessageRole, chatText: string) => void; + onAdd: (role: PlaygroundMessageRole, chatText: string) => void; settingsTab: number | null; }; @@ -43,7 +43,7 @@ export const PlaygroundChatInput: React.FC = ({ }; const handleSend = (role: PlaygroundMessageRole) => { - onSend(role); + onSend(role, chatText); handleReset(); }; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx index c73e5d429190..80e4a32d0add 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx @@ -13,7 +13,6 @@ import {clearTraceCall} from './useChatFunctions'; export const useChatCompletionFunctions = ( setPlaygroundStates: (states: PlaygroundState[]) => void, setIsLoading: (isLoading: boolean) => void, - chatText: string, playgroundStates: PlaygroundState[], entity: string, project: string, @@ -59,19 +58,22 @@ export const useChatCompletionFunctions = ( const handleSend = async ( role: PlaygroundMessageRole, + chatText: string, callIndex?: number, content?: string, toolCallId?: string ) => { try { setIsLoading(true); - const newMessage = createMessage(role, content || chatText, toolCallId); + const newMessageContent = content || chatText; + const newMessage = createMessage(role, newMessageContent, toolCallId); const updatedStates = playgroundStates.map((state, index) => { if (callIndex !== undefined && callIndex !== index) { return state; } const updatedState = appendChoiceToMessages(state); - if (updatedState.traceCall?.inputs?.messages) { + // If the new message is not empty, add it to the messages + if (newMessageContent && updatedState.traceCall?.inputs?.messages) { updatedState.traceCall.inputs.messages.push(newMessage); } return updatedState; From df066280696c1a0c01d56d3994be687ca8a6f770 Mon Sep 17 00:00:00 2001 From: Justin Tulk Date: Wed, 18 Dec 2024 09:27:55 -0800 Subject: [PATCH 35/62] chore(app): Fixing string wrapping bugs inside modified dropdown (#3273) --- .../elements/ModifiedDropdown.test.tsx | 46 +++++++++++++++++++ .../components/elements/ModifiedDropdown.tsx | 40 +++++++++++----- 2 files changed, 75 insertions(+), 11 deletions(-) diff --git a/weave-js/src/common/components/elements/ModifiedDropdown.test.tsx b/weave-js/src/common/components/elements/ModifiedDropdown.test.tsx index 3557537cbe8a..89c0b2c5948f 100644 --- a/weave-js/src/common/components/elements/ModifiedDropdown.test.tsx +++ b/weave-js/src/common/components/elements/ModifiedDropdown.test.tsx @@ -52,6 +52,18 @@ describe('testing simple search', () => { value: '_step', key: '_step', }, + { + icon: 'wbic-ic-up-arrow', + text: 'Stepperoni', + value: '_stepperoni', + key: '_stepperoni', + }, + { + icon: 'wbic-ic-up-arrow', + text: '99', + value: 99, + key: '_99', + }, { icon: 'calendar', text: 'Relative Time (Wall)', @@ -137,6 +149,40 @@ describe('testing simple search', () => { expect(results.every(r => (r.value as string).includes('loss'))).toBe(true); }); + it('simpleSearch matches case-insensitive regex strings', () => { + const results = simpleSearch(options, 'LOSS', { + allowRegexSearch: true, + }); + expect(results.every(r => (r.value as string).includes('loss'))).toBe(true); + }); + + it('simpleSearch matches case-insensitive regex strings', () => { + const results = simpleSearch(options, 'tep$', { + allowRegexSearch: true, + }); + expect(results.length).toBe(1); + expect(results.every(r => (r.value as string).includes('_step'))).toBe( + true + ); + }); + + it('simpleSearch matches options with number values', () => { + const results = simpleSearch(options, '99$', { + allowRegexSearch: true, + }); + expect(results.length).toBe(1); + results.forEach(r => { + expect(r.value).toEqual(99); + }); + }); + + it('simpleSearch matches all results on * regex string', () => { + const results = simpleSearch(options, '*', { + allowRegexSearch: true, + }); + expect(results.length).toBe(options.length); + }); + it('simpleSearch can disallow matching regex patterns', () => { const results = simpleSearch(options, '.*s.*s.*'); expect(results.length).toBe(0); diff --git a/weave-js/src/common/components/elements/ModifiedDropdown.tsx b/weave-js/src/common/components/elements/ModifiedDropdown.tsx index 301abe035f75..02b69a98644c 100644 --- a/weave-js/src/common/components/elements/ModifiedDropdown.tsx +++ b/weave-js/src/common/components/elements/ModifiedDropdown.tsx @@ -45,9 +45,23 @@ type LabelCoord = { const ITEM_LIMIT_VALUE = '__item_limit'; +/** + * The functionality here is similar to `searchRegexFromQuery` in `panelbank.ts` + */ export function getAsValidRegex(s: string): RegExp | null { + let cleanS = s.trim(); + + // if the query is a single '*', match everything (even though * isn't technically a valid regex) + if (cleanS === '*') { + cleanS = '.*'; + } + + if (cleanS.length === 0) { + return null; + } + try { - return new RegExp(s); + return new RegExp(cleanS, 'i'); } catch (e) { return null; } @@ -64,14 +78,18 @@ export const simpleSearch = ( return _.chain(options) .filter(o => { - const text = JSON.stringify(o.text).toLowerCase(); - return regex ? regex.test(text) : _.includes(text, query.toLowerCase()); + const t = typeof o.text === 'string' ? o.text : JSON.stringify(o.text); + + return regex + ? regex.test(t) + : _.includes(t.toLowerCase(), query.toLowerCase()); }) .sortBy(o => { - const valJSON = typeof o.text === 'string' ? `"${query}"` : query; - return JSON.stringify(o.text).toLowerCase() === valJSON.toLowerCase() - ? 0 - : 1; + const oString = + typeof o.text === 'string' ? o.text : JSON.stringify(o.text); + const qString = typeof query === 'string' ? query : JSON.stringify(query); + + return oString.toLowerCase() === qString.toLowerCase() ? 0 : 1; }) .value(); }; @@ -148,10 +166,10 @@ const ModifiedDropdown: FC = React.memo( _.concat(currentOptions, search(propsOptions, query) as Option[]) ); } else { - const updatedOptions = currentOptions.concat( - simpleSearch(propsOptions, query, {allowRegexSearch}) as Option[] - ); - setOptions(updatedOptions); + const matchedOptions = simpleSearch(propsOptions, query, { + allowRegexSearch, + }) as Option[]; + setOptions([...currentOptions, ...matchedOptions]); } }, debounceTime || 400), [allowRegexSearch, debounceTime, multiple, propsOptions, search, value] From c9a5c09b2338106cc24c32544a08fbbfb15a9062 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Wed, 18 Dec 2024 09:31:40 -0800 Subject: [PATCH 36/62] Add o1-12-17 to backend (#3283) --- weave/trace_server/costs/cost_checkpoint.json | 618 ++++++++++ .../model_providers/model_providers.json | 1067 ++++++++++++++++- .../model_providers/model_providers.py | 2 +- 3 files changed, 1685 insertions(+), 2 deletions(-) diff --git a/weave/trace_server/costs/cost_checkpoint.json b/weave/trace_server/costs/cost_checkpoint.json index d5aea5aeebad..9667822f4cfa 100644 --- a/weave/trace_server/costs/cost_checkpoint.json +++ b/weave/trace_server/costs/cost_checkpoint.json @@ -13,6 +13,12 @@ "input": 5e-06, "output": 1.5e-05, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "openai", + "input": 2.5e-06, + "output": 1e-05, + "created_at": "2024-12-18 09:00:21" } ], "gpt-4o-mini": [ @@ -1411,6 +1417,12 @@ "input": 7.8125e-08, "output": 3.125e-07, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 1.25e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" } ], "gemini-1.5-pro-002": [ @@ -1425,6 +1437,12 @@ "input": 7.8125e-08, "output": 3.125e-07, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 1.25e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" } ], "gemini-1.5-pro-001": [ @@ -1439,6 +1457,12 @@ "input": 7.8125e-08, "output": 3.125e-07, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 1.25e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" } ], "gemini-1.5-pro-preview-0514": [ @@ -1495,6 +1519,12 @@ "input": 4.688e-09, "output": 4.6875e-09, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 7.5e-08, + "output": 3e-07, + "created_at": "2024-12-18 09:00:21" } ], "gemini-1.5-flash-exp-0827": [ @@ -1523,6 +1553,12 @@ "input": 4.688e-09, "output": 4.6875e-09, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 7.5e-08, + "output": 3e-07, + "created_at": "2024-12-18 09:00:21" } ], "gemini-1.5-flash-001": [ @@ -1537,6 +1573,12 @@ "input": 4.688e-09, "output": 4.6875e-09, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 7.5e-08, + "output": 3e-07, + "created_at": "2024-12-18 09:00:21" } ], "gemini-1.5-flash-preview-0514": [ @@ -1551,6 +1593,12 @@ "input": 4.688e-09, "output": 4.6875e-09, "created_at": "2024-11-01 09:09:13" + }, + { + "provider": "vertex_ai-language-models", + "input": 7.5e-08, + "output": 4.6875e-09, + "created_at": "2024-12-18 09:00:21" } ], "gemini-pro-experimental": [ @@ -1751,6 +1799,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "text-multilingual-embedding-002": [ @@ -1759,6 +1813,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "textembedding-gecko": [ @@ -1767,6 +1827,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "textembedding-gecko-multilingual": [ @@ -1775,6 +1841,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "textembedding-gecko-multilingual@001": [ @@ -1783,6 +1855,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "textembedding-gecko@001": [ @@ -1791,6 +1869,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "textembedding-gecko@003": [ @@ -1799,6 +1883,12 @@ "input": 6.25e-09, "output": 0.0, "created_at": "2024-10-08 08:45:39" + }, + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" } ], "text-embedding-preview-0409": [ @@ -4656,5 +4746,533 @@ "output": 0.0, "created_at": "2024-11-01 09:09:13" } + ], + "gpt-4o-mini-audio-preview-2024-12-17": [ + { + "provider": "openai", + "input": 1.5e-07, + "output": 6e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "o1": [ + { + "provider": "openai", + "input": 1.5e-05, + "output": 6e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "o1-2024-12-17": [ + { + "provider": "openai", + "input": 1.5e-05, + "output": 6e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "gpt-4o-2024-11-20": [ + { + "provider": "openai", + "input": 2.5e-06, + "output": 1e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "gpt-4o-realtime-preview-2024-10-01": [ + { + "provider": "openai", + "input": 5e-06, + "output": 2e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "gpt-4o-realtime-preview": [ + { + "provider": "openai", + "input": 5e-06, + "output": 2e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "gpt-4o-realtime-preview-2024-12-17": [ + { + "provider": "openai", + "input": 5e-06, + "output": 2e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "gpt-4o-mini-realtime-preview": [ + { + "provider": "openai", + "input": 6e-07, + "output": 2.4e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "gpt-4o-mini-realtime-preview-2024-12-17": [ + { + "provider": "openai", + "input": 6e-07, + "output": 2.4e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "ft:gpt-4o-2024-11-20": [ + { + "provider": "openai", + "input": 3.75e-06, + "output": 1.5e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure/gpt-4o-2024-11-20": [ + { + "provider": "azure", + "input": 2.75e-06, + "output": 1.1e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure/global-standard/gpt-4o-2024-11-20": [ + { + "provider": "azure", + "input": 2.5e-06, + "output": 1e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/mistral-large-2407": [ + { + "provider": "azure_ai", + "input": 2e-06, + "output": 6e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/ministral-3b": [ + { + "provider": "azure_ai", + "input": 4e-08, + "output": 4e-08, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Llama-3.2-11B-Vision-Instruct": [ + { + "provider": "azure_ai", + "input": 3.7e-07, + "output": 3.7e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Llama-3.3-70B-Instruct": [ + { + "provider": "azure_ai", + "input": 7.1e-07, + "output": 7.1e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Llama-3.2-90B-Vision-Instruct": [ + { + "provider": "azure_ai", + "input": 2.04e-06, + "output": 2.04e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3.5-mini-instruct": [ + { + "provider": "azure_ai", + "input": 1.3e-07, + "output": 5.2e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3.5-vision-instruct": [ + { + "provider": "azure_ai", + "input": 1.3e-07, + "output": 5.2e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3.5-MoE-instruct": [ + { + "provider": "azure_ai", + "input": 1.6e-07, + "output": 6.4e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3-mini-4k-instruct": [ + { + "provider": "azure_ai", + "input": 1.3e-07, + "output": 5.2e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3-mini-128k-instruct": [ + { + "provider": "azure_ai", + "input": 1.3e-07, + "output": 5.2e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3-small-8k-instruct": [ + { + "provider": "azure_ai", + "input": 1.5e-07, + "output": 6e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3-small-128k-instruct": [ + { + "provider": "azure_ai", + "input": 1.5e-07, + "output": 6e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3-medium-4k-instruct": [ + { + "provider": "azure_ai", + "input": 1.7e-07, + "output": 6.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "azure_ai/Phi-3-medium-128k-instruct": [ + { + "provider": "azure_ai", + "input": 1.7e-07, + "output": 6.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.3-70b-versatile": [ + { + "provider": "groq", + "input": 5.9e-07, + "output": 7.9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.3-70b-specdec": [ + { + "provider": "groq", + "input": 5.9e-07, + "output": 9.9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.2-1b-preview": [ + { + "provider": "groq", + "input": 4e-08, + "output": 4e-08, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.2-3b-preview": [ + { + "provider": "groq", + "input": 6e-08, + "output": 6e-08, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.2-11b-text-preview": [ + { + "provider": "groq", + "input": 1.8e-07, + "output": 1.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.2-11b-vision-preview": [ + { + "provider": "groq", + "input": 1.8e-07, + "output": 1.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.2-90b-text-preview": [ + { + "provider": "groq", + "input": 9e-07, + "output": 9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "groq/llama-3.2-90b-vision-preview": [ + { + "provider": "groq", + "input": 9e-07, + "output": 9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "claude-3-5-haiku-20241022": [ + { + "provider": "anthropic", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "gemini-2.0-flash-exp": [ + { + "provider": "vertex_ai-language-models", + "input": 0.0, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-sonnet": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 3e-06, + "output": 1.5e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-5-sonnet": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 3e-06, + "output": 1.5e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-5-sonnet-v2": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 3e-06, + "output": 1.5e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-haiku": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 2.5e-07, + "output": 1.25e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-5-haiku": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-5-haiku@20241022": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "vertex_ai/claude-3-opus": [ + { + "provider": "vertex_ai-anthropic_models", + "input": 1.5e-05, + "output": 7.5e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "text-embedding-005": [ + { + "provider": "vertex_ai-embedding-models", + "input": 1e-07, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" + } + ], + "gemini/gemini-1.5-flash-8b": [ + { + "provider": "gemini", + "input": 0.0, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" + } + ], + "gemini/gemini-exp-1114": [ + { + "provider": "gemini", + "input": 0.0, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" + } + ], + "gemini/gemini-exp-1206": [ + { + "provider": "gemini", + "input": 0.0, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" + } + ], + "rerank-v3.5": [ + { + "provider": "cohere", + "input": 0.0, + "output": 0.0, + "created_at": "2024-12-18 09:00:21" + } + ], + "openrouter/anthropic/claude-3-5-haiku": [ + { + "provider": "openrouter", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "openrouter/anthropic/claude-3-5-haiku-20241022": [ + { + "provider": "openrouter", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "openrouter/qwen/qwen-2.5-coder-32b-instruct": [ + { + "provider": "openrouter", + "input": 1.8e-07, + "output": 1.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "amazon.nova-micro-v1:0": [ + { + "provider": "bedrock_converse", + "input": 3.5e-08, + "output": 1.4e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "amazon.nova-lite-v1:0": [ + { + "provider": "bedrock_converse", + "input": 6e-08, + "output": 2.4e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "amazon.nova-pro-v1:0": [ + { + "provider": "bedrock_converse", + "input": 8e-07, + "output": 3.2e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "anthropic.claude-3-5-haiku-20241022-v1:0": [ + { + "provider": "bedrock", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "us.anthropic.claude-3-5-haiku-20241022-v1:0": [ + { + "provider": "bedrock", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "eu.anthropic.claude-3-5-haiku-20241022-v1:0": [ + { + "provider": "bedrock", + "input": 1e-06, + "output": 5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "us.meta.llama3-1-8b-instruct-v1:0": [ + { + "provider": "bedrock", + "input": 2.2e-07, + "output": 2.2e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "us.meta.llama3-1-70b-instruct-v1:0": [ + { + "provider": "bedrock", + "input": 9.9e-07, + "output": 9.9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "us.meta.llama3-1-405b-instruct-v1:0": [ + { + "provider": "bedrock", + "input": 5.32e-06, + "output": 1.6e-05, + "created_at": "2024-12-18 09:00:21" + } + ], + "together_ai/meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo": [ + { + "provider": "together_ai", + "input": 1.8e-07, + "output": 1.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "together_ai/meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo": [ + { + "provider": "together_ai", + "input": 8.8e-07, + "output": 8.8e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "together_ai/meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": [ + { + "provider": "together_ai", + "input": 3.5e-06, + "output": 3.5e-06, + "created_at": "2024-12-18 09:00:21" + } + ], + "deepinfra/meta-llama/Meta-Llama-3.1-405B-Instruct": [ + { + "provider": "deepinfra", + "input": 9e-07, + "output": 9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "fireworks_ai/accounts/fireworks/models/qwen2p5-coder-32b-instruct": [ + { + "provider": "fireworks_ai", + "input": 9e-07, + "output": 9e-07, + "created_at": "2024-12-18 09:00:21" + } + ], + "databricks/meta-llama-3.3-70b-instruct": [ + { + "provider": "databricks", + "input": 1.00002e-06, + "output": 2.99999e-06, + "created_at": "2024-12-18 09:00:21" + } ] } \ No newline at end of file diff --git a/weave/trace_server/model_providers/model_providers.json b/weave/trace_server/model_providers/model_providers.json index c373c87f2d6f..e49c740ca187 100644 --- a/weave/trace_server/model_providers/model_providers.json +++ b/weave/trace_server/model_providers/model_providers.json @@ -1 +1,1066 @@ -{"gpt-4": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-audio-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-audio-preview-2024-10-01": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-mini": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-mini-2024-07-18": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-mini": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-mini-2024-09-12": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "o1-preview-2024-09-12": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "chatgpt-4o-latest": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-05-13": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-08-06": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4o-2024-11-20": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0314": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k-0314": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-32k-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-turbo-2024-04-09": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-1106-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-0125-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-vision-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-4-1106-vision-preview": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0301": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-1106": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-0125": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-16k": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "gpt-3.5-turbo-16k-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-0125": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-1106": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-3.5-turbo-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4-0613": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-2024-08-06": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-2024-11-20": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "ft:gpt-4o-mini-2024-07-18": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-3-large": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-3-small": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-ada-002": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-embedding-ada-002-v2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-stable": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-007": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "text-moderation-latest": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "256-x-256/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "512-x-512/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "1024-x-1024/dall-e-2": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1024-x-1792/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1792-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "hd/1024-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1024-x-1792/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1792-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "standard/1024-x-1024/dall-e-3": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "whisper-1": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "tts-1": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "tts-1-hd": {"litellm_provider": "openai", "api_key_name": "OPENAI_API_KEY"}, "claude-instant-1": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "xai/grok-beta": {"litellm_provider": "xai", "api_key_name": "XAI_API_KEY"}, "groq/llama-3.3-70b-versatile": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.3-70b-specdec": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama2-70b-4096": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-8b-8192": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-1b-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-3b-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-11b-text-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-11b-vision-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-90b-text-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.2-90b-vision-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-70b-8192": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-8b-instant": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-70b-versatile": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama-3.1-405b-reasoning": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/mixtral-8x7b-32768": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/gemma-7b-it": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/gemma2-9b-it": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-groq-70b-8192-tool-use-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "groq/llama3-groq-8b-8192-tool-use-preview": {"litellm_provider": "groq", "api_key_name": "GEMMA_API_KEY"}, "claude-instant-1.2": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-2": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-2.1": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-haiku-20240307": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-haiku-20241022": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-opus-20240229": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-sonnet-20240229": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-sonnet-20240620": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "claude-3-5-sonnet-20241022": {"litellm_provider": "anthropic", "api_key_name": "ANTHROPIC_API_KEY"}, "gemini/gemini-1.5-flash-002": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-001": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-latest": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b-exp-0924": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-exp-1114": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-exp-1206": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-flash-8b-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-pro": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-002": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-001": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-exp-0801": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-exp-0827": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-1.5-pro-latest": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-pro-vision": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-gemma-2-27b-it": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "gemini/gemini-gemma-2-9b-it": {"litellm_provider": "gemini", "api_key_name": "GOOGLE_API_KEY"}, "ai21.j2-mid-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "ai21.j2-ultra-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "ai21.jamba-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-lite-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-express-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-text-premier-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-text-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-text-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.titan-embed-image-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-large-2407-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "mistral.mistral-small-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mixtral-8x7b-instruct-v0:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mistral-7b-instruct-v0:2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-3/mistral.mistral-large-2402-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "amazon.nova-micro-v1:0": {"litellm_provider": "bedrock_converse", "api_key_name": "BEDROCK_API_KEY"}, "amazon.nova-lite-v1:0": {"litellm_provider": "bedrock_converse", "api_key_name": "BEDROCK_API_KEY"}, "amazon.nova-pro-v1:0": {"litellm_provider": "bedrock_converse", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-sonnet-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-sonnet-20240620-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-sonnet-20241022-v2:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-haiku-20240307-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-5-haiku-20241022-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.anthropic.claude-3-opus-20240229-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2:1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-2/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-central-1/6-month-commitment/anthropic.claude-instant-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/1-month-commitment/cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/6-month-commitment/cohere.command-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/1-month-commitment/cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/*/6-month-commitment/cohere.command-light-text-v14": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-r-plus-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.command-r-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.embed-english-v3": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "cohere.embed-multilingual-v3": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama2-13b-chat-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama2-70b-chat-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-south-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ca-central-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-2/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/sa-east-1/meta.llama3-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-east-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/us-west-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ap-south-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/ca-central-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/eu-west-2/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "bedrock/sa-east-1/meta.llama3-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-8b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-70b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-1-405b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-1-405b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.meta.llama3-2-1b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "eu.meta.llama3-2-3b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-11b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-11b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "meta.llama3-2-90b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "us.meta.llama3-2-90b-instruct-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "512-x-512/50-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "512-x-512/max-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "max-x-max/50-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "max-x-max/max-steps/stability.stable-diffusion-xl-v0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "1024-x-1024/50-steps/stability.stable-diffusion-xl-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "1024-x-1024/max-steps/stability.stable-diffusion-xl-v1": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "stability.sd3-large-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}, "stability.stable-image-ultra-v1:0": {"litellm_provider": "bedrock", "api_key_name": "BEDROCK_API_KEY"}} \ No newline at end of file +{ + "gpt-4": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-audio-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-audio-preview-2024-10-01": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-mini-audio-preview-2024-12-17": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-mini": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-mini-2024-07-18": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "o1": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "o1-mini": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "o1-mini-2024-09-12": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "o1-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "o1-preview-2024-09-12": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "o1-2024-12-17": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "chatgpt-4o-latest": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-2024-05-13": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-2024-08-06": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-2024-11-20": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-realtime-preview-2024-10-01": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-realtime-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-realtime-preview-2024-12-17": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-mini-realtime-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4o-mini-realtime-preview-2024-12-17": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-turbo-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-0314": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-0613": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-32k": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-32k-0314": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-32k-0613": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-turbo": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-turbo-2024-04-09": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-1106-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-0125-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-vision-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-4-1106-vision-preview": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo-0301": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo-0613": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo-1106": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo-0125": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo-16k": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "gpt-3.5-turbo-16k-0613": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-3.5-turbo": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-3.5-turbo-0125": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-3.5-turbo-1106": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-3.5-turbo-0613": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-4-0613": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-4o-2024-08-06": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-4o-2024-11-20": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "ft:gpt-4o-mini-2024-07-18": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-embedding-3-large": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-embedding-3-small": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-embedding-ada-002": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-embedding-ada-002-v2": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-moderation-stable": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-moderation-007": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "text-moderation-latest": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "256-x-256/dall-e-2": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "512-x-512/dall-e-2": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "1024-x-1024/dall-e-2": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "hd/1024-x-1792/dall-e-3": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "hd/1792-x-1024/dall-e-3": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "hd/1024-x-1024/dall-e-3": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "standard/1024-x-1792/dall-e-3": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "standard/1792-x-1024/dall-e-3": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "standard/1024-x-1024/dall-e-3": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "whisper-1": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "tts-1": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "tts-1-hd": { + "litellm_provider": "openai", + "api_key_name": "OPENAI_API_KEY" + }, + "claude-instant-1": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "xai/grok-beta": { + "litellm_provider": "xai", + "api_key_name": "XAI_API_KEY" + }, + "groq/llama-3.3-70b-versatile": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.3-70b-specdec": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama2-70b-4096": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama3-8b-8192": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.2-1b-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.2-3b-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.2-11b-text-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.2-11b-vision-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.2-90b-text-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.2-90b-vision-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama3-70b-8192": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.1-8b-instant": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.1-70b-versatile": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama-3.1-405b-reasoning": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/mixtral-8x7b-32768": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/gemma-7b-it": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/gemma2-9b-it": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama3-groq-70b-8192-tool-use-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "groq/llama3-groq-8b-8192-tool-use-preview": { + "litellm_provider": "groq", + "api_key_name": "GEMMA_API_KEY" + }, + "claude-instant-1.2": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-2": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-2.1": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-3-haiku-20240307": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-3-5-haiku-20241022": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-3-opus-20240229": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-3-sonnet-20240229": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-3-5-sonnet-20240620": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "claude-3-5-sonnet-20241022": { + "litellm_provider": "anthropic", + "api_key_name": "ANTHROPIC_API_KEY" + }, + "gemini/gemini-1.5-flash-002": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash-001": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash-latest": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash-8b": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash-8b-exp-0924": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-exp-1114": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-exp-1206": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash-exp-0827": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-flash-8b-exp-0827": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-pro": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-pro": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-pro-002": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-pro-001": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-pro-exp-0801": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-pro-exp-0827": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-1.5-pro-latest": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-pro-vision": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-gemma-2-27b-it": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "gemini/gemini-gemma-2-9b-it": { + "litellm_provider": "gemini", + "api_key_name": "GOOGLE_API_KEY" + }, + "ai21.j2-mid-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "ai21.j2-ultra-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "ai21.jamba-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.titan-text-lite-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.titan-text-express-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.titan-text-premier-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.titan-embed-text-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.titan-embed-text-v2:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.titan-embed-image-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "mistral.mistral-7b-instruct-v0:2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "mistral.mixtral-8x7b-instruct-v0:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "mistral.mistral-large-2402-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "mistral.mistral-large-2407-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "mistral.mistral-small-2402-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/mistral.mixtral-8x7b-instruct-v0:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/mistral.mixtral-8x7b-instruct-v0:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-3/mistral.mixtral-8x7b-instruct-v0:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/mistral.mistral-7b-instruct-v0:2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/mistral.mistral-7b-instruct-v0:2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-3/mistral.mistral-7b-instruct-v0:2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/mistral.mistral-large-2402-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/mistral.mistral-large-2402-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-3/mistral.mistral-large-2402-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.nova-micro-v1:0": { + "litellm_provider": "bedrock_converse", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.nova-lite-v1:0": { + "litellm_provider": "bedrock_converse", + "api_key_name": "BEDROCK_API_KEY" + }, + "amazon.nova-pro-v1:0": { + "litellm_provider": "bedrock_converse", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-3-sonnet-20240229-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-3-5-sonnet-20240620-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-3-5-sonnet-20241022-v2:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-3-haiku-20240307-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-3-5-haiku-20241022-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-3-opus-20240229-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.anthropic.claude-3-sonnet-20240229-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.anthropic.claude-3-5-sonnet-20240620-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.anthropic.claude-3-5-sonnet-20241022-v2:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.anthropic.claude-3-haiku-20240307-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.anthropic.claude-3-5-haiku-20241022-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.anthropic.claude-3-opus-20240229-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.anthropic.claude-3-sonnet-20240229-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.anthropic.claude-3-5-sonnet-20240620-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.anthropic.claude-3-5-sonnet-20241022-v2:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.anthropic.claude-3-haiku-20240307-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.anthropic.claude-3-5-haiku-20241022-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.anthropic.claude-3-opus-20240229-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/1-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/6-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/1-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/6-month-commitment/anthropic.claude-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/1-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/6-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/1-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/6-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/1-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/6-month-commitment/anthropic.claude-v2:1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/1-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/6-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/1-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/6-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-2/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/1-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-northeast-1/6-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/1-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-central-1/6-month-commitment/anthropic.claude-instant-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "cohere.command-text-v14": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/*/1-month-commitment/cohere.command-text-v14": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/*/6-month-commitment/cohere.command-text-v14": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "cohere.command-light-text-v14": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/*/1-month-commitment/cohere.command-light-text-v14": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/*/6-month-commitment/cohere.command-light-text-v14": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "cohere.command-r-plus-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "cohere.command-r-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "cohere.embed-english-v3": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "cohere.embed-multilingual-v3": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama2-13b-chat-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama2-70b-chat-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-1/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-south-1/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ca-central-1/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-1/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-2/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/sa-east-1/meta.llama3-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-east-1/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/us-west-1/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ap-south-1/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/ca-central-1/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-1/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/eu-west-2/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "bedrock/sa-east-1/meta.llama3-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-1-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-1-8b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-1-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-1-70b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-1-405b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-1-405b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-2-1b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-2-1b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.meta.llama3-2-1b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-2-3b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-2-3b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "eu.meta.llama3-2-3b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-2-11b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-2-11b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "meta.llama3-2-90b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "us.meta.llama3-2-90b-instruct-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "512-x-512/50-steps/stability.stable-diffusion-xl-v0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "512-x-512/max-steps/stability.stable-diffusion-xl-v0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "max-x-max/50-steps/stability.stable-diffusion-xl-v0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "max-x-max/max-steps/stability.stable-diffusion-xl-v0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "1024-x-1024/50-steps/stability.stable-diffusion-xl-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "1024-x-1024/max-steps/stability.stable-diffusion-xl-v1": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "stability.sd3-large-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + }, + "stability.stable-image-ultra-v1:0": { + "litellm_provider": "bedrock", + "api_key_name": "BEDROCK_API_KEY" + } +} \ No newline at end of file diff --git a/weave/trace_server/model_providers/model_providers.py b/weave/trace_server/model_providers/model_providers.py index 1b967a890957..773ce34841c2 100644 --- a/weave/trace_server/model_providers/model_providers.py +++ b/weave/trace_server/model_providers/model_providers.py @@ -64,7 +64,7 @@ def main( ) os.makedirs(os.path.dirname(full_path), exist_ok=True) with open(full_path, "w") as f: - json.dump(providers, f) + json.dump(providers, f, indent=2) print( f"Updated model to model provider info file at: {full_path}. {len(providers)} models updated." ) From 5fd95bdd0a6fdba5bcadfb27bdc52daf5a8ee001 Mon Sep 17 00:00:00 2001 From: domphan-wandb Date: Wed, 18 Dec 2024 10:57:04 -0800 Subject: [PATCH 37/62] feat(weave_query): add ops to query weave traces from a query panel (#3269) * feat(weave_query): create api client for trace server * feat(weave_query): Create ops to fetch traces and traces types (#3270) --- weave-js/src/core/model/helpers.ts | 6 +- weave-js/src/core/ops/domain/project.ts | 78 ++++++++++++- weave-js/src/core/ops/traceTypes.ts | 25 +++++ .../weave_query/ops_domain/project_ops.py | 103 ++++++++++++++++++ .../weave_query/wandb_trace_server_api.py | 74 +++++++++++++ 5 files changed, 284 insertions(+), 2 deletions(-) create mode 100644 weave-js/src/core/ops/traceTypes.ts create mode 100644 weave_query/weave_query/wandb_trace_server_api.py diff --git a/weave-js/src/core/model/helpers.ts b/weave-js/src/core/model/helpers.ts index 32b560ad4a6d..e0500d3b365b 100644 --- a/weave-js/src/core/model/helpers.ts +++ b/weave-js/src/core/model/helpers.ts @@ -897,10 +897,14 @@ export function isObjectTypeLike(t: any): t is ObjectType | Union { ); } -export function typedDict(propertyTypes: {[key: string]: Type}): TypedDictType { +export function typedDict( + propertyTypes: {[key: string]: Type}, + notRequiredKeys?: string[] +): TypedDictType { return { type: 'typedDict', propertyTypes, + notRequiredKeys, }; } diff --git a/weave-js/src/core/ops/domain/project.ts b/weave-js/src/core/ops/domain/project.ts index d8bbb1cdf649..ee3d14b655fe 100644 --- a/weave-js/src/core/ops/domain/project.ts +++ b/weave-js/src/core/ops/domain/project.ts @@ -1,7 +1,14 @@ import * as Urls from '../../_external/util/urls'; -import {hash, list} from '../../model'; +import {hash, list, typedDict, union} from '../../model'; import {docType} from '../../util/docs'; import * as OpKinds from '../opKinds'; +import { + traceFilterType, + traceLimitType, + traceOffsetType, + traceQueryType, + traceSortByType, +} from '../traceTypes'; import {connectionToNodes} from './util'; const makeProjectOp = OpKinds.makeTaggingStandardOp; @@ -297,3 +304,72 @@ export const opProjectRunQueues = makeProjectOp({ returnType: inputTypes => list('runQueue'), resolver: ({project}) => project.runQueues, }); + +const projectTracesArgTypes = { + ...projectArgTypes, + payload: union([ + 'none', + typedDict( + { + filter: traceFilterType, + limit: traceLimitType, + offset: traceOffsetType, + sort_by: traceSortByType, + query: traceQueryType, + }, + ['filter', 'limit', 'offset', 'sort_by', 'query'] + ), + ]), +}; + +const projectTracesArgTypesDescription = { + project: projectArgDescription, + payload: 'The payload object to the trace api', + 'payload.filter': `The filter object used when querying traces`, + 'payload.limit': `A number representing the limit for number of trace calls`, + 'payload.offset': `A number representing the offset for the number of trace calls`, + 'payload.sort_by': `An array with a dictionary with keys \`field\`() and \`direction\` ("asc"|"desc")`, + 'payload.query': `A dictionary to query data inspired by mongodb aggregation operators`, +}; + +export const opProjectTracesType = makeProjectOp({ + name: 'project-tracesType', + argTypes: projectTracesArgTypes, + description: `Returns the ${docType('list', { + plural: true, + })} for a ${docType('project')}`, + argDescriptions: projectTracesArgTypesDescription, + returnValueDescription: `The ${docType('list', { + plural: true, + })} for a ${docType('project')}`, + returnType: inputTypes => 'type', + resolver: ({project}) => project.traces, + hidden: true, +}); + +export const opProjectTraces = makeProjectOp({ + name: 'project-traces', + argTypes: projectTracesArgTypes, + description: `Returns the ${docType('list', { + plural: true, + })} of traces for a ${docType('project')}`, + argDescriptions: projectTracesArgTypesDescription, + returnValueDescription: `The ${docType('list', { + plural: true, + })} for a ${docType('project')}`, + returnType: inputTypes => list(typedDict({})), + resolver: ({project}) => project.traces, + hidden: true, + resolveOutputType: async ( + inputTypes, + node, + executableNode, + client, + stack + ) => { + const res = await client.query( + opProjectTracesType(executableNode.fromOp.inputs as any) + ); + return res; + }, +}); diff --git a/weave-js/src/core/ops/traceTypes.ts b/weave-js/src/core/ops/traceTypes.ts new file mode 100644 index 000000000000..9cfa2e756160 --- /dev/null +++ b/weave-js/src/core/ops/traceTypes.ts @@ -0,0 +1,25 @@ +import {dict, list, typedDict, union} from '../model'; + +const traceFilterPropertyTypes = { + trace_roots_only: union(['none', 'boolean']), + op_names: union(['none', list('string')]), + input_refs: union(['none', list('string')]), + output_refs: union(['none', list('string')]), + parent_ids: union(['none', list('string')]), + trace_ids: union(['none', list('string')]), + call_ids: union(['none', list('string')]), + wb_user_ids: union(['none', list('string')]), + wb_run_ids: union(['none', list('string')]), +}; + +export const traceFilterType = union([ + 'none', + typedDict(traceFilterPropertyTypes, Object.keys(traceFilterPropertyTypes)), +]); +export const traceLimitType = union(['none', 'number']); +export const traceOffsetType = union(['none', 'number']); +export const traceSortByType = union([ + 'none', + list(typedDict({field: 'string', direction: 'string'})), +]); +export const traceQueryType = union(['none', dict('any')]); diff --git a/weave_query/weave_query/ops_domain/project_ops.py b/weave_query/weave_query/ops_domain/project_ops.py index 0cfbaf051173..de4272fa8cef 100644 --- a/weave_query/weave_query/ops_domain/project_ops.py +++ b/weave_query/weave_query/ops_domain/project_ops.py @@ -3,6 +3,8 @@ from weave_query import errors from weave_query import weave_types as types +from weave_query import ops_arrow +from weave_query.wandb_trace_server_api import get_wandb_trace_api from weave_query.api import op from weave_query import input_provider from weave_query.gql_op_plugin import wb_gql_op_plugin @@ -259,3 +261,104 @@ def artifacts( for typeEdge in project["artifactTypes_100"]["edges"] for edge in typeEdge["node"]["artifactCollections_100"]["edges"] ] + +def _get_project_traces(project, payload): + project_id = f'{project["entity"]["name"]}/{project["name"]}' + filter = None + limit = None + offset = None + sort_by = None + query = None + if payload is not None: + filter = payload.get("filter") + limit = payload.get("limit") + offset = payload.get("offset") + sort_by = payload.get("sort_by") + query = payload.get("query") + trace_api = get_wandb_trace_api() + return trace_api.query_calls_stream(project_id, filter=filter, limit=limit, offset=offset, sort_by=sort_by, query=query) + +traces_filter_property_types = { + "op_names": types.optional(types.List(types.String())), + "input_refs": types.optional(types.List(types.String())), + "output_refs": types.optional(types.List(types.String())), + "parent_ids": types.optional(types.List(types.String())), + "trace_ids": types.optional(types.List(types.String())), + "call_ids": types.optional(types.List(types.String())), + "trace_roots_only": types.optional(types.Boolean()), + "wb_user_ids": types.optional(types.List(types.String())), + "wb_run_ids": types.optional(types.List(types.String())), +} + +traces_input_types = { + "project": wdt.ProjectType, + "payload": types.optional(types.TypedDict(property_types={ + "filter": types.optional(types.TypedDict(property_types=traces_filter_property_types, not_required_keys=set(traces_filter_property_types.keys()))), + "limit": types.optional(types.Number()), + "offset": types.optional(types.Number()), + "sort_by": types.optional(types.List(types.TypedDict(property_types={"field": types.String(), "direction": types.String()}))), + "query": types.optional(types.Dict()) + }, not_required_keys=set(['filter', 'limit', 'offset', 'sort_by', 'query']))) +} + +traces_output_type = types.TypedDict(property_types={ + "id": types.String(), + "project_id": types.String(), + "op_name": types.String(), + "display_name": types.optional(types.String()), + "trace_id": types.String(), + "parent_id": types.optional(types.String()), + "started_at": types.Timestamp(), + "attributes": types.Dict(types.String(), types.Any()), + "inputs": types.Dict(types.String(), types.Any()), + "ended_at": types.optional(types.Timestamp()), + "exception": types.optional(types.String()), + "output": types.optional(types.Any()), + "summary": types.optional(types.Any()), + "wb_user_id": types.optional(types.String()), + "wb_run_id": types.optional(types.String()), + "deleted_at": types.optional(types.Timestamp()) +}) + +@op( + name="project-tracesType", + input_type=traces_input_types, + output_type=types.TypeType(), + plugins=wb_gql_op_plugin( + lambda inputs, inner: """ + entity { + id + name + } + """ + ), + hidden=True +) +def traces_type(project, payload): + res = _get_project_traces(project, payload) + if res: + return types.TypeRegistry.type_of(res) + else: + return types.TypeRegistry.type_of([]) + +@op( + name="project-traces", + input_type=traces_input_types, + output_type=ops_arrow.ArrowWeaveListType(traces_output_type), + plugins=wb_gql_op_plugin( + lambda inputs, inner: """ + entity { + id + name + } + """ + ), + refine_output_type=traces_type, + hidden=True +) +def traces(project, payload): + res = _get_project_traces(project, payload) + if res: + return ops_arrow.to_arrow(res) + else: + return ops_arrow.to_arrow([]) diff --git a/weave_query/weave_query/wandb_trace_server_api.py b/weave_query/weave_query/wandb_trace_server_api.py new file mode 100644 index 000000000000..4af605a90a42 --- /dev/null +++ b/weave_query/weave_query/wandb_trace_server_api.py @@ -0,0 +1,74 @@ +# This is an experimental client api used to make requests to the +# Weave Trace Server +import typing +import requests +import json +from requests.auth import HTTPBasicAuth + +from weave_query import environment as weave_env +from weave_query import engine_trace, server_error_handling + +from weave_query.context_state import WandbApiContext, _wandb_api_context + +tracer = engine_trace.tracer() # type: ignore + +def _get_wandb_api_context() -> typing.Optional[WandbApiContext]: + return _wandb_api_context.get() + +class WandbTraceApi: + def __init__(self) -> None: + self.session = requests.Session() + + def query_calls_stream( + self, + project_id: str, + filter: typing.Optional[dict] = None, + limit: typing.Optional[int] = None, + offset: typing.Optional[int] = None, + sort_by: typing.Optional[list] = None, + query: typing.Optional[dict] = None, + ) -> typing.Any: + with tracer.trace("query_calls_stream"): + wandb_api_context = _get_wandb_api_context() + headers = {'content-type': 'application/json'} + auth = None + cookies = None + if wandb_api_context is not None: + headers = wandb_api_context.headers + cookies = wandb_api_context.cookies + if wandb_api_context.api_key is not None: + auth = HTTPBasicAuth("api", wandb_api_context.api_key) + if cookies: + headers["authorization"] = "Basic Og==" # base64 encoding of ":" + + url = f"{weave_env.weave_trace_server_url()}/calls/stream_query" + + payload = { + "project_id": project_id, + } + + if filter: + payload["filter"] = filter + if limit: + payload["limit"] = limit + if offset: + payload["offset"] = offset + if sort_by: + payload["sort_by"] = sort_by + if query: + payload["query"] = query + + with self.session.post( + url=url, headers=headers, auth=auth, cookies=cookies, json=payload + ) as r: + results = [] + if r.status_code == 200: + for line in r.iter_lines(): + if line: + results.append(json.loads(line)) + return results + else: + raise server_error_handling.WeaveInternalHttpException.from_code(r.status_code, "Weave Traces query failed") + +def get_wandb_trace_api() -> WandbTraceApi: + return WandbTraceApi() \ No newline at end of file From 36c17aba88f9eff8a1490ce2d9047af78f6899b6 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Wed, 18 Dec 2024 12:06:14 -0800 Subject: [PATCH 38/62] feat(weave): run it n times for o1 models (#3286) * run it n times for o1 modles * pr comments --- weave/trace_server/llm_completion.py | 72 ++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 8 deletions(-) diff --git a/weave/trace_server/llm_completion.py b/weave/trace_server/llm_completion.py index bec4361c856f..e8ac86ffb33a 100644 --- a/weave/trace_server/llm_completion.py +++ b/weave/trace_server/llm_completion.py @@ -32,20 +32,54 @@ def lite_llm_completion( # This allows us to drop params that are not supported by the LLM provider litellm.drop_params = True + + if supports_n_times(inputs.model) or inputs.n == 1: + try: + res = litellm.completion( + **inputs.model_dump(exclude_none=True), + api_key=api_key, + aws_access_key_id=aws_access_key_id, + aws_secret_access_key=aws_secret_access_key, + aws_region_name=aws_region_name, + ) + return tsi.CompletionsCreateRes(response=res.model_dump()) + except Exception as e: + error_message = str(e) + error_message = error_message.replace("litellm.", "") + return tsi.CompletionsCreateRes(response={"error": error_message}) + + # o1 models with n > 1 + results = [] try: - res = litellm.completion( - **inputs.model_dump(exclude_none=True), - api_key=api_key, - aws_access_key_id=aws_access_key_id, - aws_secret_access_key=aws_secret_access_key, - aws_region_name=aws_region_name, - ) - return tsi.CompletionsCreateRes(response=res.model_dump()) + # get n results + for i in range(inputs.n or 1): + results.append( + litellm.completion( + **inputs.model_dump(exclude_none=True), + api_key=api_key, + aws_access_key_id=aws_access_key_id, + aws_secret_access_key=aws_secret_access_key, + aws_region_name=aws_region_name, + ) + ) except Exception as e: error_message = str(e) error_message = error_message.replace("litellm.", "") return tsi.CompletionsCreateRes(response={"error": error_message}) + final_result = results[0] + for idx, result in enumerate(results): + if idx != 0: + # append choices + final_result.choices.append(result.choices[0]) + + # sum usage + final_result.usage = sum_dict_leaves( + [result.usage.model_dump() for result in results] + ) + + return tsi.CompletionsCreateRes(response=final_result.model_dump()) + def get_bedrock_credentials( model_name: str, @@ -88,3 +122,25 @@ def get_bedrock_credentials( ) return aws_access_key_id, aws_secret_access_key, aws_region_name + + +NO_N_TIMES_MODEL_NAMES = ("o1-mini", "o1-preview", "o1") + + +# if the model name contains any of these strings, we don't support n > 1 +def supports_n_times(model_name: str) -> bool: + return not any(x in model_name for x in NO_N_TIMES_MODEL_NAMES) + + +# copied from weave/trace/weave_client.py +def sum_dict_leaves(dicts: list[dict]) -> dict: + # dicts is a list of dictionaries, that may or may not + # have nested dictionaries. Sum all the leaves that match + result: dict = {} + for d in dicts: + for k, v in d.items(): + if isinstance(v, dict): + result[k] = sum_dict_leaves([result.get(k, {}), v]) + elif v is not None: + result[k] = result.get(k, 0) + v + return result From efed3f067884906edec2d0b33b4f4a300cb71159 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Wed, 18 Dec 2024 12:27:17 -0800 Subject: [PATCH 39/62] add o1 to playground (#3285) --- .../pages/PlaygroundPage/llmMaxTokens.ts | 183 ++++++++++-------- 1 file changed, 98 insertions(+), 85 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts index 123e8f34af24..a6ee834f5cfb 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/llmMaxTokens.ts @@ -7,6 +7,98 @@ export const LLM_MAX_TOKENS = { max_tokens: 16384, supports_function_calling: true, }, + 'gpt-3.5-turbo-0125': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-3.5-turbo-1106': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4-1106-preview': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4-32k-0314': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: false, + }, + 'gpt-4-turbo-2024-04-09': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4-turbo-preview': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4-turbo': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4o-2024-05-13': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4o-2024-08-06': { + provider: 'openai', + max_tokens: 16384, + supports_function_calling: true, + }, + 'gpt-4o-mini-2024-07-18': { + provider: 'openai', + max_tokens: 16384, + supports_function_calling: true, + }, + 'gpt-4o': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'gpt-4o-2024-11-20': { + provider: 'openai', + max_tokens: 4096, + supports_function_calling: true, + }, + 'o1-mini-2024-09-12': { + provider: 'openai', + max_tokens: 65536, + supports_function_calling: true, + }, + 'o1-mini': { + provider: 'openai', + max_tokens: 65536, + supports_function_calling: true, + }, + 'o1-preview-2024-09-12': { + provider: 'openai', + max_tokens: 32768, + supports_function_calling: true, + }, + 'o1-preview': { + provider: 'openai', + max_tokens: 32768, + supports_function_calling: true, + }, + 'o1-2024-12-17': { + provider: 'openai', + max_tokens: 100000, + supports_function_calling: true, + }, + + // Anthropic models 'claude-3-5-sonnet-20240620': { provider: 'anthropic', max_tokens: 8192, @@ -32,6 +124,8 @@ export const LLM_MAX_TOKENS = { max_tokens: 4096, supports_function_calling: true, }, + + // Gemini models 'gemini/gemini-1.5-flash-001': { provider: 'gemini', max_tokens: 8192, @@ -102,71 +196,8 @@ export const LLM_MAX_TOKENS = { max_tokens: 8192, supports_function_calling: true, }, - 'gpt-3.5-turbo-0125': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-3.5-turbo-1106': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4-1106-preview': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4-32k-0314': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: false, - }, - 'gpt-4-turbo-2024-04-09': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4-turbo-preview': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4-turbo': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4o-2024-05-13': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4o-2024-08-06': { - provider: 'openai', - max_tokens: 16384, - supports_function_calling: true, - }, - 'gpt-4o-mini-2024-07-18': { - provider: 'openai', - max_tokens: 16384, - supports_function_calling: true, - }, - 'gpt-4o': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, - 'gpt-4o-2024-11-20': { - provider: 'openai', - max_tokens: 4096, - supports_function_calling: true, - }, + + // Groq models 'groq/gemma-7b-it': { provider: 'groq', max_tokens: 8192, @@ -202,27 +233,8 @@ export const LLM_MAX_TOKENS = { max_tokens: 32768, supports_function_calling: true, }, - 'o1-mini-2024-09-12': { - provider: 'openai', - max_tokens: 65536, - supports_function_calling: true, - }, - 'o1-mini': { - provider: 'openai', - max_tokens: 65536, - supports_function_calling: true, - }, - 'o1-preview-2024-09-12': { - provider: 'openai', - max_tokens: 32768, - supports_function_calling: true, - }, - 'o1-preview': { - provider: 'openai', - max_tokens: 32768, - supports_function_calling: true, - }, + // Bedrock models 'ai21.j2-mid-v1': { provider: 'bedrock', max_tokens: 8191, @@ -369,6 +381,7 @@ export const LLM_MAX_TOKENS = { supports_function_calling: true, }, + // xAI models 'xai/grok-beta': { max_tokens: 131072, provider: 'xai', From a24512a058a0017d3da31757ceb47b255877357f Mon Sep 17 00:00:00 2001 From: Ishita Bindlish Date: Wed, 18 Dec 2024 14:19:02 -0800 Subject: [PATCH 40/62] chore(app): add endIcon prop to Tag (#3281) * add endIcon prop to Tag * lint --- weave-js/src/components/Tag/Tag.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/weave-js/src/components/Tag/Tag.tsx b/weave-js/src/components/Tag/Tag.tsx index 1704585dafe0..85ec9d8a6e2e 100644 --- a/weave-js/src/components/Tag/Tag.tsx +++ b/weave-js/src/components/Tag/Tag.tsx @@ -53,6 +53,7 @@ export type TagProps = { color?: TagColorName; showIcon?: boolean; iconName?: IconName; + endIconName?: IconName; // Wrapping the Tag in Tailwind can be a problem if the Tailwind wrapper is supplied higher up // and there is a need to position the Tag as a direct child for something like flexbox Wrapper?: React.ComponentType | null; @@ -64,6 +65,7 @@ export const Tag: FC = ({ color, showIcon = false, iconName, + endIconName, Wrapper = Tailwind, isInteractive = false, }) => { @@ -79,6 +81,7 @@ export const Tag: FC = ({ {label} + {endIconName && } ); if (Wrapper) { From 8ce826d763eefcafe21a8fa7349de372fabaef5b Mon Sep 17 00:00:00 2001 From: Griffin Tarpenning Date: Wed, 18 Dec 2024 14:56:51 -0800 Subject: [PATCH 41/62] chore(ui): fix spacing for annotation types in feedback grid (#3288) --- .../Browse3/feedback/FeedbackGridInner.tsx | 18 +++++++++++------- .../StructuredFeedback/humanAnnotationTypes.ts | 3 +++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx index 15a4bad2262b..b8b2f4154c28 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx @@ -9,6 +9,7 @@ import {Feedback} from '../pages/wfReactInterface/traceServerClientTypes'; import {StyledDataGrid} from '../StyledDataGrid'; import {FeedbackGridActions} from './FeedbackGridActions'; import {FeedbackTypeChip} from './FeedbackTypeChip'; +import {isHumanAnnotationType} from './StructuredFeedback/humanAnnotationTypes'; type FeedbackGridInnerProps = { feedback: Feedback[]; @@ -44,7 +45,10 @@ export const FeedbackGridInner = ({ {params.row.payload.emoji} ); } - if (params.row.feedback_type.startsWith('wandb.annotation.')) { + if (isHumanAnnotationType(params.row.feedback_type)) { + if (typeof params.row.payload.value === 'string') { + return ; + } return ( { - if ( - params.model.feedback_type !== 'wandb.reaction.1' && - params.model.feedback_type !== 'wandb.note.1' - ) { - return 'auto'; + if (isWandbFeedbackType(params.model.feedback_type)) { + return 38; } - return 38; + return 'auto'; }} columns={columns} disableRowSelectionOnClick /> ); }; + +const isWandbFeedbackType = (feedbackType: string) => + feedbackType.startsWith('wandb.'); diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts index 2b675e244dc1..ce28f3113fec 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts @@ -23,3 +23,6 @@ export type HumanAnnotationPayload = { }; export type HumanAnnotation = Feedback & {}; + +export const isHumanAnnotationType = (feedbackType: string) => + feedbackType.startsWith(HUMAN_ANNOTATION_BASE_TYPE); From 7d1d212705e5c6f6eb2da2a5f75eadeeffb23787 Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Wed, 18 Dec 2024 14:58:40 -0800 Subject: [PATCH 42/62] fix(weave): Unbreak editing and deleting choices (#3287) * unbreak deleting choices * fix bug * fix carousel view breaking when choice is deleted * fix editing * fix reerendering --- .../Home/Browse3/pages/ChatView/ChoiceView.tsx | 2 +- .../Browse3/pages/ChatView/ChoicesDrawer.tsx | 2 +- .../pages/ChatView/ChoicesViewCarousel.tsx | 17 ++++++++++++++--- .../ChatView/PlaygroundMessagePanelButtons.tsx | 7 +------ .../PlaygroundChat/PlaygroundChat.tsx | 2 +- .../useChatCompletionFunctions.tsx | 4 +++- .../pages/PlaygroundPage/PlaygroundPage.tsx | 8 +++----- 7 files changed, 24 insertions(+), 18 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoiceView.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoiceView.tsx index e511d6fbf5cd..cca47eae5f86 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoiceView.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoiceView.tsx @@ -21,7 +21,7 @@ export const ChoiceView = ({ const {message} = choice; return (

    {choices.map((c, index) => ( -
    +
    {index === selectedChoiceIndex ? ( diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoicesViewCarousel.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoicesViewCarousel.tsx index b19afb7c3f4f..8befed430096 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoicesViewCarousel.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/ChoicesViewCarousel.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, {useEffect} from 'react'; import {Button} from '../../../../../Button'; import {ChoiceView} from './ChoiceView'; @@ -28,11 +28,22 @@ export const ChoicesViewCarousel = ({ setSelectedChoiceIndex(newStep); }; + useEffect(() => { + if (selectedChoiceIndex >= choices.length) { + setSelectedChoiceIndex(choices.length - 1); + } + }, [selectedChoiceIndex, choices, setSelectedChoiceIndex]); + + const choiceIndex = + selectedChoiceIndex >= choices.length + ? choices.length - 1 + : selectedChoiceIndex; + return (
    diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/PlaygroundMessagePanelButtons.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/PlaygroundMessagePanelButtons.tsx index 9c286019409d..d4cd3a44c183 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/PlaygroundMessagePanelButtons.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ChatView/PlaygroundMessagePanelButtons.tsx @@ -67,12 +67,7 @@ export const PlaygroundMessagePanelButtons: React.FC< size="small" startIcon="pencil-edit" onClick={() => { - setEditorHeight( - contentRef?.current?.clientHeight - ? // Accounts for padding and save buttons - contentRef.current.clientHeight - 56 - : null - ); + setEditorHeight(contentRef?.current?.clientHeight ?? null); }} tooltip={ !hasContent ? 'We currently do not support editing functions' : 'Edit' diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx index 8fc02fea9b10..c3a30d67adf2 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/PlaygroundChat.tsx @@ -155,7 +155,7 @@ export const PlaygroundChat = ({ deleteMessage(idx, messageIndex, responseIndexes), editMessage: (messageIndex, newMessage) => editMessage(idx, messageIndex, newMessage), - deleteChoice: choiceIndex => + deleteChoice: (messageIndex, choiceIndex) => deleteChoice(idx, choiceIndex), addMessage: newMessage => addMessage(idx, newMessage), editChoice: (choiceIndex, newChoice) => diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx index 80e4a32d0add..23c30c7e5584 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundChat/useChatCompletionFunctions.tsx @@ -218,7 +218,9 @@ const appendChoiceToMessages = ( updatedState.traceCall.inputs.messages.push( updatedState.traceCall.output.choices[choiceIndex].message ); - } else { + } else if ( + updatedState.traceCall.output.choices[updatedState.selectedChoiceIndex] + ) { updatedState.traceCall.inputs.messages.push( updatedState.traceCall.output.choices[updatedState.selectedChoiceIndex] .message diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx index 4cadba37db91..7358468ee5cc 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/PlaygroundPage.tsx @@ -108,11 +108,9 @@ export const PlaygroundPageInner = (props: PlaygroundPageProps) => { setPlaygroundStateFromTraceCall(callWithCosts.result.traceCall); } } - }, [ - callWithCosts.loading, - setPlaygroundStateFromTraceCall, - callWithCosts.result, - ]); + // Only set the call the first time the page loads, and we get the call + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [callWithCosts.loading]); useEffect(() => { setPlaygroundStates(prev => { From fcb51c3335f24667f9caa0d3918d425c2253e808 Mon Sep 17 00:00:00 2001 From: "Chris Van Pelt (CVP)" Date: Thu, 19 Dec 2024 16:00:22 -0800 Subject: [PATCH 43/62] feat(weave): Add mods page and menu item only for wandb admins (#3279) * Basic UI for mods * Pass along purl for wild demo purposes * Mod demo updates * Wire up secret setting, add mod visual indicator * gradient similar to streamlit * Added secret types * Fix mutation types * Use the wandb api host for our iframe * Wire up backend host * Make mods page scroll properly * Only show mods to admins * Fix TSC errors * Fix project sidebar deps * Fix bungled merge * Add grace period for startup * Try some debugging, increase retries * Fix formatting * Fix trailing newline * Enabling container logging * Use wget instead of curl as we dont have it in the container anymore * Fix shadow variable lint error --- .github/workflows/test.yaml | 16 +- wb_schema.gql | 21 ++ weave-js/src/common/hooks/useSecrets.ts | 121 ++++++ .../components/FancyPage/useProjectSidebar.ts | 27 +- .../PagePanelComponents/Home/Browse3.tsx | 18 + .../Home/Browse3/pages/ModsPage.tsx | 353 ++++++++++++++++++ weave-js/src/config.ts | 3 +- 7 files changed, 550 insertions(+), 9 deletions(-) create mode 100644 weave-js/src/common/hooks/useSecrets.ts create mode 100644 weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ModsPage.tsx diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 295b6ef89227..ab0a55fb384c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -81,11 +81,16 @@ jobs: env: CI: 1 WANDB_ENABLE_TEST_CONTAINER: true + LOGGING_ENABLED: true ports: - '8080:8080' - '8083:8083' - '9015:9015' - options: --health-cmd "curl --fail http://localhost:8080/healthz || exit 1" --health-interval=5s --health-timeout=3s + options: >- + --health-cmd "wget -q -O /dev/null http://localhost:8080/healthz || exit 1" + --health-interval=5s + --health-timeout=3s + --health-start-period=10s outputs: tests_should_run: ${{ steps.test_check.outputs.tests_should_run }} steps: @@ -254,11 +259,16 @@ jobs: env: CI: 1 WANDB_ENABLE_TEST_CONTAINER: true + LOGGING_ENABLED: true ports: - '8080:8080' - '8083:8083' - '9015:9015' - options: --health-cmd "curl --fail http://localhost:8080/healthz || exit 1" --health-interval=5s --health-timeout=3s + options: >- + --health-cmd "wget -q -O /dev/null http://localhost:8080/healthz || exit 1" + --health-interval=5s + --health-timeout=3s + --health-start-period=10s weave_clickhouse: image: clickhouse/clickhouse-server ports: @@ -267,6 +277,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + - name: Enable debug logging + run: echo "ACTIONS_STEP_DEBUG=true" >> $GITHUB_ENV - name: Set up Python ${{ matrix.python-version-major }}.${{ matrix.python-version-minor }} uses: actions/setup-python@v5 with: diff --git a/wb_schema.gql b/wb_schema.gql index f326ab4d4872..13152c785475 100644 --- a/wb_schema.gql +++ b/wb_schema.gql @@ -104,10 +104,24 @@ type UpdateUserPayload { clientMutationId: String } +input InsertSecretInput { + entityName: String! + secretName: String! + @constraints(max: 255, pattern: "^[A-Za-z_][A-Za-z0-9_]*$") + secretValue: String! + clientMutationId: String +} + +type InsertSecretPayload { + success: Boolean! + clientMutationId: String +} + type Mutation { updateUser(input: UpdateUserInput!): UpdateUserPayload @audit deleteView(input: DeleteViewInput!): DeleteViewPayload upsertView(input: UpsertViewInput!): UpsertViewPayload @audit + insertSecret(input: InsertSecretInput!): InsertSecretPayload updateArtifactSequence( input: UpdateArtifactSequenceInput! ): UpdateArtifactCollectionPayload @@ -275,6 +289,12 @@ type RowType { row: JSON! } +type Secret { + entityId: Int! + name: String! + createdAt: DateTime! +} + type Entity implements Node { id: ID! name: String! @@ -296,6 +316,7 @@ type Entity implements Node { filters: JSONString collectionTypes: [ArtifactCollectionType!] ): ArtifactCollectionConnection + secrets: [Secret!]! } type EntityConnection { diff --git a/weave-js/src/common/hooks/useSecrets.ts b/weave-js/src/common/hooks/useSecrets.ts new file mode 100644 index 000000000000..8446be55dd73 --- /dev/null +++ b/weave-js/src/common/hooks/useSecrets.ts @@ -0,0 +1,121 @@ +/** + * This is a GraphQL approach to querying viewer information. + * There is a query engine based approach in useViewerUserInfo.ts. + */ + +import { + gql, + TypedDocumentNode, + useApolloClient, + useMutation, +} from '@apollo/client'; +import {useEffect, useState} from 'react'; + +const SECRETS_QUERY = gql` + query secrets($entityName: String!) { + entity(name: $entityName) { + id + secrets { + entityId + name + createdAt + } + } + } +`; + +const SECRETS_MUTATION = gql` + mutation insertSecret( + $entityName: String! + $secretName: String! + $secretValue: String! + ) { + insertSecret( + input: { + entityName: $entityName + secretName: $secretName + secretValue: $secretValue + } + ) { + success + } + } +` as TypedDocumentNode; + +type SecretResponseLoading = { + loading: true; + entityId: string; + secrets: string[]; +}; +type SecretResponseSuccess = { + loading: false; + entityId: string; + secrets: string[]; +}; +type SecretResponse = SecretResponseLoading | SecretResponseSuccess; + +export const useSecrets = ({ + entityName, +}: { + entityName: string; +}): SecretResponse => { + const [response, setResponse] = useState({ + loading: true, + entityId: '', + secrets: [], + }); + + const apolloClient = useApolloClient(); + + useEffect(() => { + let mounted = true; + apolloClient + .query({query: SECRETS_QUERY as any, variables: {entityName}}) + .then(result => { + if (!mounted) { + return; + } + const secretPayloads = result.data.entity?.secrets ?? []; + if (!secretPayloads) { + setResponse({ + loading: false, + entityId: '', + secrets: [], + }); + return; + } + const secrets = secretPayloads.map((secret: any) => secret.name).sort(); + setResponse({ + loading: false, + entityId: result.data.entity?.id ?? '', + secrets, + }); + }); + return () => { + mounted = false; + }; + }, [apolloClient, entityName]); + + return response; +}; + +interface InsertSecretResponse { + insertSecret: { + success: boolean; + }; +} + +type InsertSecretVariables = { + entityName: string; + secretName: string; + secretValue: string; +}; + +export const useInsertSecret = () => { + const [insertSecret] = useMutation< + InsertSecretResponse, + InsertSecretVariables + >(SECRETS_MUTATION); + + return insertSecret; +}; diff --git a/weave-js/src/components/FancyPage/useProjectSidebar.ts b/weave-js/src/components/FancyPage/useProjectSidebar.ts index 19dce4215df7..2bd8c5635d55 100644 --- a/weave-js/src/components/FancyPage/useProjectSidebar.ts +++ b/weave-js/src/components/FancyPage/useProjectSidebar.ts @@ -11,7 +11,8 @@ export const useProjectSidebar = ( hasWeaveData: boolean, hasTraceBackend: boolean = true, hasModelsAccess: boolean = true, - isLaunchActive: boolean = false + isLaunchActive: boolean = false, + isWandbAdmin: boolean = false ): FancyPageSidebarItem[] => { // Should show models sidebar items if we have models data or if we don't have a trace backend let showModelsSidebarItems = hasModelsData || !hasTraceBackend; @@ -34,6 +35,14 @@ export const useProjectSidebar = ( const isShowAll = isNoSidebarItems || isBothSidebarItems; return useMemo(() => { + const weaveOnlyMenu = [ + 'weave/leaderboards', + 'weave/operations', + 'weave/objects', + ]; + if (isWandbAdmin) { + weaveOnlyMenu.push('weave/mods'); + } const allItems = isLoading ? [] : [ @@ -178,6 +187,14 @@ export const useProjectSidebar = ( isShown: isWeaveOnly, iconName: IconNames.TypeNumberAlt, }, + { + type: 'button' as const, + name: 'Mods', + slug: 'weave/mods', + isShown: false, // Only shown in overflow menu + isDisabled: !isWandbAdmin, + iconName: IconNames.LayoutGrid, + }, { type: 'button' as const, name: 'Leaders', @@ -205,7 +222,7 @@ export const useProjectSidebar = ( type: 'menuPlaceholder' as const, key: 'moreWeaveOnly', isShown: isWeaveOnly, - menu: ['weave/leaderboards', 'weave/operations', 'weave/objects'], + menu: weaveOnlyMenu, }, { type: 'menuPlaceholder' as const, @@ -216,10 +233,7 @@ export const useProjectSidebar = ( 'weave/models', 'weave/datasets', 'weave/scorers', - 'weave/leaderboards', - 'weave/operations', - 'weave/objects', - ], + ].concat(weaveOnlyMenu), }, ]; @@ -252,5 +266,6 @@ export const useProjectSidebar = ( isModelsOnly, showWeaveSidebarItems, isLaunchActive, + isWandbAdmin, ]); }; diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3.tsx index 761fd5369309..c0192ddbe9f6 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3.tsx @@ -71,6 +71,7 @@ import {SimplePageLayoutContext} from './Browse3/pages/common/SimplePageLayout'; import {CompareEvaluationsPage} from './Browse3/pages/CompareEvaluationsPage/CompareEvaluationsPage'; import {LeaderboardListingPage} from './Browse3/pages/LeaderboardPage/LeaderboardListingPage'; import {LeaderboardPage} from './Browse3/pages/LeaderboardPage/LeaderboardPage'; +import {ModsPage} from './Browse3/pages/ModsPage'; import {ObjectPage} from './Browse3/pages/ObjectPage'; import {ObjectVersionPage} from './Browse3/pages/ObjectVersionPage'; import { @@ -146,6 +147,7 @@ const tabOptions = [ 'leaderboards', 'boards', 'tables', + 'mods', 'scorers', ]; const tabs = tabOptions.join('|'); @@ -484,6 +486,11 @@ const Browse3ProjectRoot: FC<{ + {/* MODS */} + + + {/* PLAYGROUND */} { return ; }; +const ModsPageBinding = () => { + const params = useParamsDecoded(); + return ( + + ); +}; + const TablesPageBinding = () => { const params = useParamsDecoded(); diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ModsPage.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ModsPage.tsx new file mode 100644 index 000000000000..05d6da871c02 --- /dev/null +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ModsPage.tsx @@ -0,0 +1,353 @@ +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import Card from '@mui/material/Card'; +import CardActions from '@mui/material/CardActions'; +import CardContent from '@mui/material/CardContent'; +import Drawer from '@mui/material/Drawer'; +import Grid from '@mui/material/Grid2'; +import TextField from '@mui/material/TextField'; +import { + useInsertSecret, + useSecrets, +} from '@wandb/weave/common/hooks/useSecrets'; +import {TargetBlank} from '@wandb/weave/common/util/links'; +import React, {useCallback, useEffect, useMemo, useState} from 'react'; +import {useHistory} from 'react-router'; +import {Link} from 'react-router-dom'; + +import {SimplePageLayout} from './common/SimplePageLayout'; + +type Mod = { + id: string; + name: string; + description: string; + secrets: string[]; +}; + +type ModCategoryType = 'Labeling' | 'Analysis' | 'Demos'; + +type ModCategories = { + [key in ModCategoryType]: Mod[]; +}; + +const modCats: ModCategories = { + Labeling: [ + { + id: 'labeling/html', + name: 'HTML Labeler', + description: 'Label generated HTML against your own criteria', + secrets: ['WANDB_API_KEY', 'OPENAI_API_KEY'], + }, + ], + Analysis: [ + { + id: 'embedding-classifier', + name: 'Embedding Classifier', + description: + 'Classify your traces by embedding them and have an LLM label the clusters', + secrets: ['WANDB_API_KEY', 'OPENAI_API_KEY'], + }, + { + id: 'cost-dashboard', + name: 'Cost Dashboard', + description: 'A dashboard showing your project LLM costs over time', + secrets: ['WANDB_API_KEY'], + }, + ], + Demos: [ + { + id: 'welcome', + name: 'Welcome', + description: 'A simple welcome mod', + secrets: ['WANDB_API_KEY'], + }, + { + id: 'openui', + name: 'OpenUI', + description: 'Generate UIs from images or text descriptions', + secrets: ['WANDB_API_KEY', 'OPENAI_API_KEY', 'ANTHROPIC_API_KEY'], + }, + { + id: 'gist', + name: 'Gist', + description: 'Load a gist that contains a streamlit app.py file', + secrets: ['WANDB_API_KEY'], + }, + ], +}; + +const ModCategory: React.FC<{ + category: ModCategoryType; + mods: Mod[]; + entity: string; + project: string; +}> = ({category, mods, entity, project}) => { + return ( + +
    + {category} +
    + +
    + ); +}; + +const ModCards: React.FC<{mods: Mod[]; entity: string; project: string}> = ({ + mods, + entity, + project, +}) => { + const searchParams = new URLSearchParams(window.location.search); + const [gistId, setGistId] = useState(''); + + const purl = + searchParams.get('purl') || + (gistId !== '' ? encodeURIComponent(`pkg:gist/${gistId}`) : ''); + return ( + + {mods.map(mod => ( + + + +
    {mod.name}
    +

    {mod.description}

    +
    + + {mod.id === 'gist' && ( + setGistId(e.target.value)} + /> + )} + + +
    +
    + ))} +
    + ); +}; + +const ModFrame: React.FC<{entity: string; project: string; modId: string}> = ({ + entity, + project, + modId, +}) => { + const searchParams = new URLSearchParams(window.location.search); + const purl = searchParams.get('purl'); + return ( +
  • aw>82 z+T`{`(dN$Ah601t;GZA*=Zjq1WZ{NE$?FrFNB0>=WY~aLqt~affeHRXY)E7AteAXI z_;?^_g&2USje)F1HU;sX5o4RJW&5BGnmIg}>Se6l(fZ>MHKp?Ya8v6mesfKEf5)4G zeGKrE{`EofU?I?_5)Wb`*eQW}KpY#>Tn*wn_`oz9S+rwxB3L=3HZuOW=+h%_u`bK; zmi_2(jjjWI*slmjtzo&o39&Ko%4vB|GFRVfFBPiaTfCE?Fc}en9kp(BD~pf6FHy52 z(X5@!*M!80ol|ew51)2AHL>a#K3KLwsNNUXHffy={AAy`pA^6RBrGa-6`W+-toWY} zdHRyB-a$aqn$2Ts>v(zX^8R~@=%gm>cu0AC0tnEL(1~ephykt`>{eh-RuWOr8bUY1r{k|es=0PWa{!laQaS~Q22sjHc1Ebd1(drWpiPvMo z?v0Gw4163W42HA7`$(Zi3Pz0B?g>Q()|;apty_AQI@>_Fo2!O-!}s_D?6 z<&fDqHkQk)-a~Q5JS%xS^%Zlzjih0#75Ow`v=Lpx&< z&soOj8R2Tl78Y?@K#9;}X>vRZpS7AKt|AWef6_8>Z{@W3)NC>sH*aYqLt=*VcR~!* zEZfi|CEJWQ=tVr-+$fKx8gtRewsexKx3RJ6U8xBl4e8W=Y?p+=I^9Cc^I|KMVC zO#;Jh&bLtcQq!L_=dK^`88q3sxI6R2T#-D~*h>a(S-qjuQ{35PV8s2ymCE+vkX}I$ zQ@rrRI5^d+UjAnWrdi}&SN#Nf-&+`>MtfaL^k-)m*ZZCL&l`XsA-P*%0E{ZvQPekC zl0|d8O`Y+J@6p84MNe1LoC%g)6gU1{Idq)rVWF68b58U4foT0cS&2;8Yb>X0^vVz- zALpFgF;s$sGD9%SGpjoa`ic`pd7)@036usxYDf22?fUVIJ1#kb_we}K1oP{u9!i7w zEqrQh{QDO+)Q@r+1`Y?L2SUpDnR(IOeN zU?!`290!41M^EV9b;JWbN2tg>G;IuPd)nD?Ce62JF&N6LpYK(>!Kg2HvEl;Z^aqNF zC-qmp*bbP*O_S0?@|kopeT~{vCL*jxJ`S6YeM}$w2-P|3+vAQ$a-O+si?zK|hGny| zJQlpw6!y`6GW3h!DMmng6ytlO>KL|(NO!j?^8lI`)>s)DKSZyyF{^g@Pjb^;hy>SZe>;YK^Oxg;EPF2z5(dA$I30D|csTR3 zpz|9-o~|ZO$F5wS5$8vR>VLMjwmlb@(&@ZHsDLXZ3c$9?ERFqe5IrDl!wMRqxa8AD z1v%{P@{8R)2!lYEzmC_bCxou~=@NzEZ#`n2ZVjxA+4Z%;u1W9bS-If)){s>!7~dhQ z3(-N-TvYRVi9=8)z~mx3F&MZ81PHS*Sm0gR?toGTNjpmVU)$;4`BUKnbj$-o!@?pW z&J`~%UI$>mirLFr+S*%~4;A#qaJ!MAdaE0Sr5LMBhBpw0o6wDkbHMZOVW$T7PG0;1 zo)RoS$jL-hV44>pd=^F_Un2YoX&ZCVC{fu}E zeYMQ@gcU>>)bc_;v9^&Rc_AR_;=J?tDDQ5u9;J647D|dh{*NRWbe{v>CL6T-xAAU^ z3EtJ_#do6lqdv0t_GJ8S>zUO|ZXnzJ)EjJW)M!@$11Czn$+@^O%)T{qkZmPHSe+D~ z&m9QdfB3;|_3*y&P*MHRa^`~Bou8$*lOMUqNxR$sIQOn=@1Xzj*YEUb!fkXS5|9Hx z#WsONQY7zxRvB^AyI^^w;YRpF+7nN?ten#9QIVVj%keG0#Pasa;FjjyKg~Ykio>H(mJx`+q$bB9h8J&0W!J$c6a8M`$EjJfP zCYhg$&-txeB$mHrf9x9l1INAF@WtM4IYXeq&coJ=M5U`$V&q7JS4;;6UIcP~u?D6J zIzY4k`BVvXT&Thv`YuBNTC)NS3na)XFHH^t*4D-F;Ud7aA!oYftsz`(D)2jDL!-H| zQI38#1IPlWEtxhhg*4??jO1DfUGppV;H+?l=dzHk$^y=IH?Dmq7~eQ>7MCSQ`MVwHQ96I24Ho0+ zykmw#$@0&KF#c{~txkiYLbc4|SU$*7LhJAKW?V!9q?btv$vXY~=|X$Y1KJ%%hJ3i) zk5*9PS39Zwft{m?7dJ{?eoXgOv+uFLAuH%;2rEjlzG$2^LMZoprmwcwKkiA9)urO% zF(rq*DjmQ%_6k%5cnFj^bC2`$P$zDmypaH_^pBQkk_5j2$0LF)o#CJDMGvW+Np>_0 zxOF_v0b$|5#Qx0HmAGhKT9-VV;^$i{T4A8$;4q_w_Y4N&USnf6s|zZo7QF)G{RRMC zIhAUJg|YJa#wC4oC%Ozl1;W8gHN)uvSW~MD_`P-wp5|WxzPnO{KNl4A|kQp7V zv3d*?4Y8$0RM`${+jozlB13!v-8`M}JFOE5ph~u0u&exwn}Kl0nVtuWmcE#Pe42S# z9mg}4j{Be|c-!z6FQ{wd@E2iR1C_OOqE6~_@b{1Jp1)1dzgbgn{r$QW) z@5oa^)$(W|?xtNn_{Et}AS$BX-}FD6c*=coM-fLyy&}wquh_I5dx|VE%fGqmR*#Nw zt`XXvQ$HsB!ufy4iA65-w|uvqDB^$LwOS8b#Pdw+2r{$T86gMK_!S9h5O-*thNM!n zq6h?^qQa|B)vryxjYf-1U#W~32vNLTI6Nqv9YRE_Yj*s(BJT=u{L&8b^99}K1ip0F zK(yi=CA5;DfQNitU(2ymiX`{d&n_f?yTeMa<>q6hChqnPL`Fcqn^I7aq$3CLCbdd; zvCSA7N8Qbwc!URuOoY8^SnawYGnZ?{3VcC>dx2`e+7sc4b611NyU2}h1~$%VC{)Ej z^fCcKfkrwh{BUpH^tB9|mX>DS(y|&0m(g8J79ebF8-PmwPU`}CZLrTecyJQ09xF5a zxwi=iUoXvACIHHIqi`5BPE9STa?DbV`Jw+}xUq`8taW@4ZJHx<9~(+0>i2ZDI~Qfp z6H^>b2-W%QmKf4tl*s(cZB5|90wO&xqE`vZijiUZprZ3i%k1oxH^E`Tt;PdKR zPWpiWx)1;@+}KlGTT9=vwjocP#tG>3+U>Ki)so40L!MFpELwmZ-J05vrU$grm78t7 zVg?(hDOQW><) z2ms_WY6)$8*Cl~m0x0_2`!DOk+`2tpUK<)+P<=2Aj3gS%5S~N0v_%S%x{52C8=4{+ zXZ;NI8**s_i+g|nZcgkJc#Vu{$ZveSml2D9Ulj+*I?uY8k_)&sN1kQP0d0hlG2)aJ z@<~QUh7Xk5ShKwy2t+nv;sW!qE4Cl8K$ zkh@T@&6IBPkA8|r zUK}S|g$Wi)Z~40@9)}u!Kr}yPx>Z@cHx*@cyu~}q+v|lg9b&>~X2u%;?~4%^TcZ+G zbwyd%k1*c9!}oi~)$D=o3{bslhD~Mz+cd*BuSkYaSkISlGhmkHIuB_}+3-;dm$9!L zDO1)bEizP02Yku46^bVy@ut8AvGz{27zgvGnPdtbBw4i*p9vwi?-kaKlx|>Q{BLwh zbC?>H?y$mnzOTy++Xgf!kI@C*nW85k)>wj|UUuh)D~+~pD24VFEplDW>*h;aYPGJY=jKTkdN`N-5tmyQimTzw%IsbnSRa-FYkDYo!fXU11F#Xm;OyB=?h^gge1h|*lSqAXR!u?kt?V8Izdz=jQ0v6&nvdQJEG%U#w&+yoos!d)7iy5>ZBi=@`amdRWD( z8Vx$zH#Z#~Z1nQ$^<+tkQvmiP>S)9MFG4t}tG0Ha*S=}<+D-6Gu*NSuoV(faButjF zN6C;U)nqzajnoeOyluf<6qt7g%_S^pXhKDe-b0ORcJ5N-?RzpdQo3^ez$g<6kbiig85xjoZcrM~I0?uxDWlawlY9Ey!c<#5Vc)AUmP;S08Dpn7 z3JQ{t+XNR7f=9nczo$;(PvywihA#PFo?=HlYN#0h9BY8WH(6b zyHZV3^t35y&@A)aEz{uk=OUXrzs%#=6f;7{?@S5dB`)ds-EC7}Bh6q#3P zm>D;oZAT+i8&Te@Ai-P`sTlP(K|8&!s$OE4;{lVFHQQ`f~`#lH0N1pPOOW9vq zEQl=awb<8=41QV?9=iCt8(QdQMp9xmlu4Qe&{F(6Wt*JNM_JwFfQYl()za7|Js`Vt zl9rg|^mHOL|6eX~cnQcUIGla*TL0lhE4BM}W|xnSpD$jf|8TiQ4}8n{n=0*cp@|{= z<2}e5d}6vef4W)ha`&WTf(H-^x}wL=K^*+LXQ7yvw9Yv`o#A050rrcLc` z8M#h-;*`Fr5o~z;3T4wCg_dgJxm9y6zT)Gs@E#$aan}CY(?=u$VWAA`Q#Zj@`LP_8 zZWjsfgsK3$Q4Eb?=>a4osE)6oZR^2cq3T@xiiZ|r`AW;}rb4~>EdMMBx zYYQCJCu9vlg_E`wQ;K*&$zNZH?gOQ!^m@=ML|5iU%0%u$%=D~^hNegcaAOq`j^ABe z3|0}gv%f(Jy$BpN2R9?UnECmP(**UwGy2!RDg*IWxvfz0B}#ORYywbrm;4lBTSiV+ zRjgtzCm?PSNonTBfR!2`Om1fhG2sDCL_EIL6diwoa2p7QVvK-e4}Y&QF*?OU80b|> zV-vGL_j9iXk?k%~K9+hUtf%BVKE1O#@z2Q?KY#%LP*O@R&B}@aI)7!rtt=qB=y*H% zcsZ0j?s-S~c#m?%SIoSSI8(5*k}?0Ph*SeZ zC(bdKSeFgmr)LT2AuuE&k0dPJ`WyD}XOrEf*oKI`1L~vm3j9|T#kp@S>6MmxL`X9+ zXOge5Jcupz$f>-8O~mU%Sp7F9%`AYrmNlm2^8`ekGg+0N-_Om1y_Wu6sWLCGQI@hC zXyH{#DhUwff_c8f>R4EKlv*2?kzSfpr~mo8y*+Gwc;g_T8Z#30=|6bOIjrdAqwK=< zi#tM70)3=mOAP(pFJi{XcHl8v2a`^R456rYY-=9ZsGaE<{)CN3RmwG8TnCC#1jRqf z!U<6`e<};y8F48g#iSW1z?sDPwxnFCs2J+RS7)U%R}eu$-Zue2u5M$Bfq2xc%3x_R z#nc$RdXJf38g{uV#J0L7*PIi19i?;8G}Rw}C2>3M%>F=7V8zjhA~YprHy+TyRDKaufdSN|IVD)OYVV$QL^9TRA5QSL_OHNYNCua_Oc-2VlM zR?N&P+ZhZ3_Y0>J-u+Y60Wu|~on?Lv0Vybo|CraZNcfj(>#JnFf6Y5HC+8eLmm+6$ zJAnU>eeT9z2wVd>cm*t&A!8;9iSgM$4Kn%W2%&?XZSS>7yR%0tU|hCHu2rl-zRYk} zEwnk!Z-$@1B~2t%drX2^ZXxv1`s|L8DSZX08pNTxQ@p=pL@c#hslgR zkGNP~VTvJ6LyG~lQYI(sJ$L}Y9XC68QFjIR#Y7=-U{1jc^unB4KE*3yNCnoBj1)&S z?|ZY=Uk@rgNHsh{H(*c1HNQ+Ubscu{Am?*)vdha@*G17mZs~#o@X{-ai=MUk&Ck>G z(^6FZo>32?3-rnCI@pj#KgH)K+Uby4)PH-w#k_}5PIR}r!@i)HWq$9B`>0xJIP_x{ zpq3>K4_lX|2A0L*9NE6<;DD>1oOgrfE-d=#b@F*d#gU?RgodVOaW!y( zLEESc^X9Re8wIeSARIDRmH!NJDe1GGKF#M~MXD+4=zv=en|oOG?p}%7nb@45J$}og zrl1xYB?w8~4~!wY4)AR^M!3sRG+0^?X2=dQlPR7J=UHJ&Qj!#pzM#+nnEZqtbzGGz z3F#z%|KKP`c{=lgXMOqBl}c5DPxhX(|2^_Qfnre@%Xdw{b;K8mIWB2V3|!vh9sZx8 zaj#d`4j8&qEnNk?W`AcXDT;Z5Pn7Pvc${N`@D&&J60azsO=WoW z9UW14-Ok)p1Z^<;3G}um5TMm-lmp7!#k99M?CEmf>GwSrRLq1}+Qjmg#g3mv)GaoL zzdrR|MJ~}HJ}P7@YVZ2-X8h3#0dA@2$j71j+2@NUcm4*#^ld5UEy&k)h@?ueGTj=x z0&&74H{(yj3+(bOxF;xi;m(Ea0A2)o%_5u}r+u^z97}q>MtFn#b=Y%k`lAaeYvER%VamPS6f6gb5Y)mDBBGZbKp#zK9KT1_}$b0*XfC@4igLI13u z=o8^E*MU~5BycbB205-o&LIk+1g9tqqjrRcg)6}7@2YUOnSfRxSp~cU5Fq{b?vi%F zV$`8Yl=^x|E9td9*LdfTBfym1rTt6$;8s&q5pqjINnkGb&sUp^#8W7Tryk>HLE@0d!`hz`a$kHeP2X%T{lE}%EBO~8o z)-~H<0w2HalyKulF9`RgJySoWxR`~Xe_$@0xyn7;@oC90#L*;vamL?k=Q96?_w^*p z`1M7`^_=H76ZASthxbQ5fFF-oMg*duoihxE42`NM^BD?w?lWz$r@5K*!0muAI8#UO z>8&K7c)NbTw3eXoSkvcOrfT|SqqT=I?O6sB4<@!_F>d(0T@8d`U6Li2N` zBULrvT>T(W4kJ%iFZ$ZFXv88+Eo><_q7FB`LqTk}V^_}MzKsZ$czTqqUNWQF`n3hL28^gCzPhbKHFqYl9z>~U? zhTQ9m-d|)S#F25Cj+}9`AKb|k^PQ(z{2xa2_)w?3Zrs*$_`_?bN0ph+wRoz_%#V8u zxZ_w+I(LngYKFN9r#iua3PhA3r`yF4%(bfy(+l?xpW$ zC?6CTtf_QHK|Q!%g5xto&OVu)=|h5L`J*2Uh_|6sUHI6%x%eFsN}z@Py?rs##~^s`E@-Wn)E||Ex)j6{L@f!CN0FVEl^J94MK3y_4)) zn0h&TQOYVghd0C7uhXaLEP0wqvU}6}>1UhT3)ABkG`KiSu?rd#k}c_`>wNVN=4))` z&wWTka;t>igCSMA8K z(*V(W#>{wtynRCh(NummrsFBjupe-|Q&t!*l5PeMJdB zK6T23U`q_f;r|VTwXQT!t(hNf=lRUf?wmY>?KI5={yARU z5o}esPyhn)%w0$6-kwywjtsO7(h%i6d~KrIIrw>S%eI7QTr#X?1}JPc7cBBGWpMFK z=h4kab`IBrSzE}wL9;5XG)Dl>foLH41{mRWxp9Cs%Rx4TKOOq(_3EnjWYk`8f!`$y zA8A#QWaJa90rpZ2?CFcNU%>x{1$F6N`Ltt(HY;`-2{6vN4FbUdL+Bf;;rI9}2B1|I z#XNZ@qQ#mPs<$KNwvA|UJiehA+P2(XVw?&wkSq*V*(`|I_Jzh3SsS1KWjU56y*j?$ z$I>>Zk!Fq8K^s@#p?ZJnFFl#g1-+`9+l2_e^0=saqYiO>>I12~x}6gl%6FwIgpbx? zwg02kl*l6c)=w5r3RG6^f@p|8^{#HepdNT|(n0!F(4QY4oVt=k)B}MJvl+Nw2X2SX zL)sErE}5rva?XZfx_{k9uN$e(cCwH1?Dn4Sr}FE2!_nv9@nELt3#FuKxHBv3ElW_< zh)&zk?qj~3_uZfI(iXmO7_4>aPNRu^M*Fr@zui1b4E|k*Vd7nMUUo7&GrU(;m73hd z-}j1hJ0%9i`Q!8UuOCgJKbs6&o9iFB$UaAPB_a^-Owsc?t}AG_U^Cz|Tz=bYkN-Nw?s=;e*pccbIJhQsvGeYy0}2UQ8^1)loL_ zMdO#F#>bf%nmV@PvZ_Dr<;~{sTg^wgVp4}QETwOv8=_(;_~v@T)B$Ji0(J!49cA?g zN=}`x+F}Nhkwe3S!R~xkxl9%F(s&)6js=uAqog|?1(}45} zxew8h-Kn}|)e)z3^1V!^*A|sP?D#Dl`?(F2BIFWgW{*a@sn&d881MQoo7R;#oO~!b z8%}_OAg}!fIc~NyME{yq72NXGX7jw=~ly#*-(fYXs}Oe-c8>bbg|W|Frw& zo<${{tUBd=Nd}oC9Z;`2(GV82vv_ngzdi5o$M3+mLarFL_WfGd0W~>FsEIZlkq`sR zd`|nWrjK(?{+Q;S{?JPA@w4R=Emha|^UzCKkLP1NKR@D zQ&FOHr)f28Na<(fk#>xT`jOfPfxiE}TmPTm;5rwGFMsVe*Ydi>&z!@Ky_Z%wr8R5z zTr5=zX&XBf`#Vpugd^$;-NX*57OZp)nvqa1WaPH(r5`KDzl{Dve(BT8|Ik+S>*g5e zScO*=x=W*~fKxIcvh?%dTU`rXXQ|)-mZ)9RLzRVOu{np7I6mW97@c=@(Z0#$X3&cz zBzhJ1fWV8v2Dndx!BzZFcUWS^P5BO2j9kVWqAJbcQ%Nbq>K$Lc^Jfs9Gs`i1#cO&Jfcu>r%bQm_<2!qabnt2&CR8-a$p0``7e8=`9Jq!OGKN|4W zpP_lrg6;ZCzqzi|$?y(O=22cr`vRApQrCicIo={3|yu= z=Lv`j!)zlw@?G+UV$MwVsL6q;vs(MI6T**$(blCOFUi~g1!%@m({*j?5?9N?9s-F^J-owfUQh_2#nArm<#|us;fG=MJ1%GhM=1^1|8FnRj%Pd*}&u$aX1{w zC9wFME61evF{fo%*2&mmm!GWuT3+i3C7mwPo)Zk^_?=BO`2Jv&Q7Q-a3*^w~m;IfS zw{s=&t{>p=2Z{P4p7l185y@r>~|;$TRow3uM*=t zN2xb(sgF(*5DVj`w+e2ia8*7K1(yO9l+l0UL5dCa{nOvPoIugzUJnwfqs_$Y%y80XPt$u{?8t%mmkF9;=B-Qvpjfo=s8xP?Qzx*6v(dI^% z=E4Cl-WimU46%X1FRt`R#q&XBvEXaZS<=jBlazQ+pGRI1k|wMh-(J4*khApi{!8lM zxFGdYlKv$^DNX566guAbm~Yb00a9gx`* zQ7K%$JMyXG`~9lvn#;W*q2Ud8zrqM#+AdtB%b&_ZW9rMP!<2Axyg%#(`q6x$`NSW5 zfZM{$jOvU2`q;`XxGfLoJ5T-1(L_-u4}RU~r!x1khv0#va+(lg}AwyaAKv2BSRDbv3ywhMsZF zQ#1`Z3v?D5cR=rmLbe7V;!suxGeY0l;aUvQimOo-POQoG`}#Q_p?IU?I#TLJrS@#p z-u_;9!MC_;@AZl;?q1tF%=kMdZ%jjfs!q2d-@BB|OUr#0&7UgNqhM2f z)q^;fi_TGzZcDgl#0WlK_Z4#FZe>61_@>lDiqasU^(Yr7`E8O%)tf z^|9;p(I}7y#GN3IGFR4g#ye=$Q1(9;_*GIf)lT2>AOiLP-~66rTCQILvgn7{9<+V7 zeU=e^<-0;BRPW(vwUR}}NZlh_j49ygi_MA$u0{;^Z@kILBuhUD2RNTk4+r0s*wG8M zfjfOiv%R~k+S9zN3j;#M%=q(0b<5vYn;sk=1nh57=EGUa>v(3<;$|kuwO&(=>i)JX zp=jc$r&;mX*crt*yT55&)A|K!Qfz(h-`Www)+5y;L@1PmKCidh=n-~&bco;v=*HDB zzk~O-xEQ>vLi<2kmpd?6>-(P8R@_mz&}1W-1?0%oAvk*%)AKSbR{%{U++~Wf$`z0@ z2VK0KW}eV{9)&UGz|l5Ril3YN+dXlBZa{&_r_TiVkk`1Lkq>PFf-3XFr-)vYU*)yV zz)kSp=j%q-QB)z%m&+q&fw6ToECH(MVK!xB%tJ)dXVO#hA}4Bd-hV<-cwa+C z|9c@%>ObjEnS4HB-!E^$Z}_UuChs$wxEYV0OX8gs3?8L&%W{qXd&-8;&c;)23S4y* zN{e%bxUUXxfK{PruKXAW|5R^!aas2N>-&S__kX3~=EQ<@nnp-JpF929Fu}L>AgEq9 z|8Gxx*7;S`9vG`J_knZ=-nC?J=#bhW^iIZpRW0%Fpi@AK%(t<3G2rJPqpoZlYVQ4F^}v>~Fn2 zAl=}d_m_ho)7kv$`4+#o|NlJq8F%O80#AFv$q*qmEEw{J?9Sq+^Y{|O;_J-Ae|%D> z1Xx|VduemrSvTJQl#goTe)XT_;#-#1{nx=-CjRGf6`L%U&;HJuO#BOM9Jp3zt{k|u zcp8>T3o*JxP13u+L;qQMd~YeRP!&{$hx&qpAw7EzF=Q18((!MQ!I|cKF>o#VOx*P} zifMvwQF3jET9+l;m6h=H^STZ0h$&@)yx#d+or}rN#n}Jno7@aW?p0atVv|s@$1t&& zj>4T>o^k4bey$Un9SI|DFj||dbe0e1F8$B&t&9^-ZvXmzGPT#6QOR&}`}O0fE-OCP ztK`1|m(dq?Mq*~2kgSH^h-nS~o)(&vWaitJk(9KXU=8`-_ik71qoD4MLL0G#!9=lK z@RDD_`Id#Fp#Ijg`P)gXMYr=m=lV8OnMmvoPunasdy{Mo)cnusb8q0`;nC68`}+&4 zt63`47LG2*O<4>`NDu>}qmwmM-&ml7UVG9V&%O&Cf4?^3#yQ)-sUDW&u!3(#8%~b& z;NwU1eUnC|smUXi!|q`8t52Jw1K%4S_$?g<4?6g*wFDdMO$_hdEl)Sk>Is6a1kYWS z>Tf7mnUXXquD|H$ZGtAg;j22BwEy|zITN|k-{0RM8vfw}me1}M+_T@!o$K}PA~Ol| z{_-M@?N(xoX;Ls2h zCYewIg}l~nuZTUF%n2IAdgDe7S`O0VwjtX{p)K-qER3h8_JTXMt1 z!Of|mu8y;_U-XO8#Lzf5FOS##qP|8j@%NV%6jI1b3w9+$c$=(oe#Muovi?2mZuL#r zxVSx?-GM>;3^X(rr9T528sckJ#Kpz67K*x;|C&~pw(`~1vazz(Fpz+j;}6q|xrDx6 zU0W;8%#2J7JOD`6LY+b z8sm91JwDFL#%5jm6dWAf+e?X!{N|4re@mBJXTg#%1W`ztNCM zE(m^OMJA{Y4$Kv559GwBM~kD~3^r#egx!;q!r*Geu~AV;U=(iSEK{P817H>Zu)8=o zOpcCO=f<5bz)MXhKG+nA1G1H!b(R=cd{LXN+_N@-iy}Z zqke+^MEm}SzQOuQ9ShFT++6=`pSYqT=%@4DD%*mm-L*}sjuqV&cWIo@^X`5Ux%x<* z{Wtj$ieR38Cir==*)5hwMyj2a;@}V-44K|7`#0vV?t0l#n0_PjY;qQb6ciSEJ>^i4 zk&!q5V6Q80c00d&_PrZ4q0u_p99A@S_1R$B?Uo4s9mr)6=G2B9AxT*z1X=8(OEyvN z$r>BZ-S*nOaz40eejsCO5@Yevyw!E!{HcI<)@!(E$;D&RAy67pTkHlKCFtlCatlI59CruT`yN?_sD^9T4EAt-V+@UDl?x?>iD! z!MHrp`SbKj;ME%**PES#2BbsR;_VTVMyGQ+T3QKlajPD4G}xSmMhNCpD0J>-TQ?*7 zg%{e(hsT!>_iWf!uWa6)9EYUkw8_2tDubLdM8Ila-;zex(AEF<5BT&n4U8G|JnIf! zgyL}Ocihz|QGa;8Jz8vf8}B62Sz2MCIrAnp!DD|2SjQb!Ie#|B0NO zjmY-%eDXBH#N;F@{=;brhwByeW#g&wlzWE`L_*Ygrbcbam zCS)uJlF7XmI9O;{9H?5|I|&;iwK6;V87R+V)<02R{)U>GT1{)I+U`}xGx2$Y93_wU z+D3Mlq`1KIvd?oA<0>QgT4bc=;XH1dc`6_Y4>lwnkJv>c?4_wagr7*#rBk``1^lcx zwnCM6hu2>}!lOZ6qxVE?*>Y?i9u{2PW*)lq=+n z4PJ1yR{yzL^Ma?YS=+~2m=8d zAy!eAozlkfaOCRi#kpi|;=)2|X=_xUr%%*eB9s{Y&ebotUSS{x$mG`zoEb(pWnBw> zLW}9!C@j)cOH?eFu-5jXp{AZ6!+%-`2${ACR8m!~Qw<=c9#V7S{)^^CFYZv0UbYN* zL9z49xZ{We6Y}!%@=y|f_I|3v(V~a_%FaHMhQR~`veMH_YvRa)a(nPrvWzHwvZ0n|^rhd9V<`aDN3a^g1 zEi+U0SVz0jRlC8n!eeA<<4{so_S(7kQr3nI*1IrxFwtjV$<|a|eKEF9F{Kg@W|PJA z133m_1RihTz(a+e_UMWLBr7#FwZ2}Jo_=_5Z_ks@XL(86>+Wh`z+#q!gr@0j!XC;u znfwfHhyKAqB_gOluj{YD)%wQ9ceq^s61l^VS4|_MzJLB?&&^HorlY<7I=S80*qFjD zSm|IN`1*~7sV)0+10&y)^g~LZ-38UOwxpy5xC6LVS63Gny^ey43c)D<=){EK_3)wh z)7P2m4Ho|Qm?1TKi^=4u*HmoiGYntmr|6`}6^WocUU!2tGis^{`K6_;m&a|gHs_U;BVO zcVs@r24T7zqw2yf8Hn>cv-fUC97@zR6)@>6Im4SO=xYJ+b7zhPr-VesR<1xPN^D{+ zd6|6V*ASVJi?GM<_1(mzk8R#Dkr}$9I!-#R_F+8S$n-8xF3Z$Z6&{YqbE$CPN}c+4 z>ql{muPP@^+}sn1Am507qGV-fFRbZQhLsC*WsfiduwdlDuG?l;^p@d+R4u!@iz~3{rE`QM2k& zZLgGK^Ztz=YESo1K^ZdXTw%~NTNi$>z54X@qYZI%mjkdACnqKr8gPRJ@n+`d`^LpU z7T<_Cs5VuJ0$1jN85$E^=rqG#)<=eM5T3V$_8Ncaxd z<=&soNI7(NcYnadBqJvqNf&CKIb#?fKIHDnib*Zh@5-uTB^>)aU$O^#B_8V@F7^>H};~Q7asg~GxOxSKY%tEV?=nhB&yUfP3Gjjz6g+_)y`Mu6u zr%Ml&3ERBnC}Y3+eG>`CF);1T|7(i9Yi9V+IM+DG$(+wx>b(5q2g&O6zqvflZ})jJ zs>scqT;wJejld&dw0A69@~*9Q{_x=gkdp59NBFs{G`=9obiDtyKTAl*)D)*kiM>Co z6IM0Wg+uH}N_PLnp1fgEP28@c#f+WKi9SZ23Q8WU9K7@_bu2E$ACoS5#PQ(m&lYm) z7iOnQ=Y)*8E^W5Sz_6Zy!9q88wQBZYY48m?_rSI3?%Z*YmQhmPGeAJ>$Vua4;o0GL zL0CG4QkXiRej5~13av+u`sd7DJ@M;$nZIO=<@d$>LZz(pS`=i zoZ38veCr(<0i%uB;FJ<8#(|d$INsHjb3dMpk&%&z@l;1pguebd6t>)hAm z;&SBA=XxVn$R_y8&)2tA#8VJ6BrYWd>-22%kUOh>bFs$eVjp=vjT!lr% z&k=)=>6dMp?r!e&O-*}ej@a+qotJG`EqHy2rIm8aFpWW8b&mY@O{L?d;Z0UBR2N zva*`(Vw;SlQQW_d7ze2kzv)WMyq$+G`em?HU6`NjmCH<=NbEG9wQmq#EmOS~@Ez5Tq@H*%#`{Tl37>S^U zMnuDF1 zmzzHLi>oO=m@KDn;pF}7Oy|&p)s?ma0*QmO02%;)Dy3T5I`UtUC~0U=-=e@E+70fk zj8t!ll{7V*9In$Bx$AIu_JJ;PZ!89ZQ35a)p$o^!;tyK|wB!C7RS2@0LjA;=;NHp3 z$e7OL_8w-sd-g#ZALP6y-p*;#XQ z)1SGyi^wf?s}a&Sx$r%LVk5ond(1G?fn`lQ+VA4%-DPSu$;Cp#!bZ21WW0?o;}a87 zQc?>I9yW2FBrr-03HY15@!b$CIw7zK-1fSqcRh@yrNbJMX8!~rHM+W0sud?D&RB6f z2Z~9RMeDhhE!ThLS5j79Y;|xMZGVxMN0_bD=eC&A**Wu3H1IdL^-kZo$?feeNDFy+ zd1}7#;}8EhJJ*7wEeLt6**vz=tP{hRAxJR`zX%O|;rA^#B;<5e=+oGbn0(BqvnqfJ z(}b!C-Do`*lb074wNJP03`9Zi(SR;R6@2COXw#aswzp=frG5fv8YKw*c}u#tgj?a|h5zX~0y55ber^sftyWh8ViwEJUqDX)=`(>A8|#|-(^_sw zNELX-?Ceji@+?=Y8mIeAAP;r^{8_WlUR}#x-gGgDJ&uoe0MPtV5HE-GgTK;Ol`utN z;jZH?ulXub7bK+fxw*!f`uf9pmlZ1LzpR_BB<@GWcy+91wNgMD>APy4cZ7_4O}G5f zZYb|=MFKr@j(FXlE;?L({2){zq0^}JY;XS!$!eU_$dWVtazkvb?Bt{z!#Y1VyRL?} zfk|RupvisTc*o`9!Z1R=T8O`9qpn12(RgCP4*xW zhs{DFf7p3&Z&-Z)K_p*#Fbg&8SAD5Ynt+SS^9pKyT3_sfU1{9dI|o6wlHaS7D$2W- zE?5yosLVylP=W?2t|iHsE+Y2IUl`4dBH2-xc(pXD!hT(eR=+8bGz%!{YS^okj7Qw( z;yrOo*8XMtIdEPKm8J8|GF;5#;X6A!YHEq=BY+)^unR$=_WS^MTKc2#C8}wKu9SWl z6LU-JGVml8undH|yZftWZu=WKf`}mYGe<{bnT$s34iN<*TNf96Zg&jz4`79#y0T48 z?Xy{e3%)}zxGKix!N-4~OBw36lZ?RQMk9D?&dWm})R2@!57DK?9GLAxD_aA6i-w;5 zH$y78AqFBDCmH;-Ahh$w&Y*lH#7jgfG%PItqjsaG@>$g4M5kf@##>7^+~>Yc`zG54 zfKPp_W<^?Aqqh0LlOZD`H_K~FTg{BF0NDCHAdY${P@hb(;cze_3et+P>Ijwy(t|uJ)Q= zZfrzuJ8*YzG!TifcW}VRV^LB#(QeScWmhDRaj^$7XJ1SxP!iV227W0OR#l-Nu~d5M z>B(DKrna=CH3i`|M2&1`aCrNNe%CiLsxdkzpN*&Wv)LYIWM&>38F{{(jtgt6sj6vl zTc=Kf3=a)CJ-70P#M6@Df7KOghW-%3Kli)IF}}kC#`AxE6ZwDoq@#b?zz9@UkaWYL$^6fveP;G< z?yrb1&Sm)rpREa=iu3Z=Tt`1Yw|Ywxh(&L87nGC?@!wxXzVesJ_i%Fudi0(1{#Ysl z=fAP{lc0oksLwOeLl$Sg*?X(>qx_nEhcDK8oX__eluCO|E@a%bk7-FstNZg_gY~Bx zb6jnu4_0e8V>j$`iyi1iBh#fiPZr~ZuLT}X&KbNO?-6u&V;)W~oV6OKWX?QCL$m1eWD^dCBQe`+J@0A0oKz6HeO`F&*#L zD757^8$zaGzp5CLDa7NzC8QRtymtMD#>Sof{Z)VYw{L&kuy)M!LXbxD^2j%E1Ck1M ztJbz5#2|q;GoE_Aeg&|-npgMmk9S-xqSw|SEquM&Kc)QNUVz7kjJEIX$0H!*A0*0i ztZcR1qw2JUyEs-KFO|?F3|yY?)5STD42=`9k;sKPD;(wA`|??X?5P)4w0i0-zMg1HFT^l%^qD zf3w^v1)%?i8y?aYT{PI&#|OZKViXm!a}0nKbvlX1MG7ez8POHuLGmg6^=oFNt*o|I z1pvZ6ssbj3#sN1vAdKo6{R8AVmJ4rn^(3&IqoWlJ4P$}A(5GmkrIl*;HBz%qQeuhN z|Ku6SCpC^j8S4Ri93Qd{qQz}uHU|Y0BO`z1l#~pv+BPfzXyOkoC@L%}h@wC277@Am zxzt+bYuTUd`l2YVTI&h#8@`}rd z7nGJBt!?h^t`2|s=kDsz;bP{kznqYep>7)=gqWKfSHahqDQU|%50aG-CGQHU=CC!) zST83QQ1c4+iGg0N5Qj-z+PcI@%?FH)k0ayoM8dK_GSF%C%>DJNcWNrnB;v^2yl}lc zbg9}6$?Po%?8KeQs-Q^wkmB#KO+PU;Ij5$1f9I;(FxPEbewZz=zr!;4S`6_~Iyxmq zRYgZfMdb<9@IphSsKe&kbm1~=ddJ7?oSaZleZ~sco&V^8yb%U1EGwhnO+$mt9_JKD z$Rt&Z85`%-)WpT)knECB6_}hNBX445E;oz!GEjoXV}GHhq{QOar*<+P0Ypoc_;|s< z*J)f%B9&GgbF_KQ*`R&vST$vzv?n8Ter|97&_>@OVAHpWq;RpbG&J9Y1T&q#n#vWK znA`-q&C}mp8brk6+w*Pp#1zfM6xk%6-7-3#^_LxiC`ori7_>AtcMcAo54aQ*J(-yT z7E`5y5HoZ0wWDYr5`Q^onQ$-@HfnCHCJ|{%7n=xcpO>FMI^KaI&;7;jV&RlN=+Ldf z^dHc><91^EErs_7sZ9pkNB*6iKutCoN(DMzJgtW7>VvRW>#tuN2fsUx78^@%oUr30 zcwKkOvWulhJA)q3FJN9QG|c}a z@Tu)qI^`}5Jk@8So7;o{B@LvADf_w5cZpKuGE}z;`d8WnNXsWZv1 zAjx4pQ-ic8M~k_PiqzzKdbWS#+M2Z*{9&Mmg;g|ypuypq;EaV6Z}_;a1Tdji&&{ht zZVs1Uq$b0uAz@*fOUNJvrWbE!@p9O$7TQ0u=P@%gBopoXkjvLK8OzYwQZ+xoPgoYI&61+ z8r$fL0gvf>2h1TvDO2X1GV}x-HzGh;hMCjatLi^Ai&=-_aN_ zKBx-_2Bst@y@5yNb+{vi^>)?#rdwI@xgY2sfWm@MpQfkV2>tpDsVR9pZ!&9ov|H?N zCutI(umt+_e1!t9hX-t_ywY@UeVEChIEjeq-1^S?q84r3EXKEwnPse>b!jS^&yJ@H zD8}vmhZy?E9;3=kuz09EgP`t8a`rU&|H#P>h-@AL5DXbq+@jp=B1_dPAuEX$(=G|-2rxz zvWxJk?QsGIugyTi^p`4YdQu%d8V1_1hn*sjD{_OcON!b27Pq z(}jffMRY*B=^9WXVt@VhwRi^Y&_&G?dQcEE;g)hw30;g?U(*raa+@AqSwoE=;HUea z)?$B&b8DslSM%W6$kNgut4QC9l9BOk(-a?)Pxzxzxp&k98+P0KcORkO*WsS-mj$#Y z=Qm<&+RC!WOaXr5NVOXwSe%@kv@MU?NmTQfld+}`6FDAl%6GvkL&9Q^?5B*2i)(T| z20^;B$Vm06Q3=G=o^fI%5bi=>4IIs1+o-#7!gg+cC<1c8w>;X@gfulq!0X1OKO+ai zx1u6?F|j>|#LO+rr?rlGNsCL7GqaPU zV>|WCDhV=GRdkG^%2Q)3(RbqCemU9MDM*DxBQ^gpt$DcDuMgZ^PvN`vlkQsitp$!d z@9yvFA^ivr?;EsK`!Jb}R{Qnp@Ep#k4X9!DsN!TA2*An_OM%yu;{WfOK7})bW)4ZA z!NkRFh6bgEhKADlkSMCyjEs#|ji7nt-8Wo(?hmiao`#2q0YymSG{A9|>h^NoJ(~AH?Hw8z7#<#*+?<`Ai+0vGGW*KAsMDGe7HP7=67-{@ zqNe6UYyRQvJ*x9cSaA5Q^N}Twu+V!vmX984gdC0>V8n1=#r(dwy81i0>2!M5x$0;* z{}J~6{>dBkVc2>QkNbnrlcs5mXCs2Nx!Vo(z-Q9;hYK~p;1G-V15o0Dcv>L{h>dj; zzDKDYh%Q}Ce--+|j+a<@oT9=r&Y;*I4!5U+`V77KeU^r`Jpgro^>F{xP(Z9-OuP&i z(5D$EM~TO4?5U$euxkLI`RUGYUjN9l2-Ns(u^&m6ba@+#+$cdE_w}2gJ~dsYy+z5& zQ%=C?Zn;^woSY)uZTHXGnhq~g!X?{eVqB4T2Q>kVlAMk0U`g8_O7)qBlCoIimIlR~ z(N+$MGIL4Gle!SVG7udx0?8nX&lmm_71ZQWro)Q{lOF?1L+TGdi)xuRzr)?nP%Vcc zM)M5_W{9$`uFr<)_?*6m`I$SxNY>-?({$jH+Qq=jX7Vq?3&$sa z0)RO|xTiCf%T7u}c_?fgdptimC5hM{g^=%VAiK+zJgU(buM;D<%*N+W%3db0MIfl>@n*MC1>bn78eidSJ-xwA_nLic8Wq;zPqaH$O}wekrRI%VJD6Fh<3_kI{F#G zZxzsccvDSW+;2pk`lkb1Eq_?M$$xKk4FJ(Se+d`pzdG9dWIPE$Dl6ozz33VG7g z&~zYV4z8M-+9Dw$$}9Fd(1{%{rqo&2?bS30lUU*&PHwAt$w;_+w8+>0?M_Te1|R*J zMq%VTtG}9Aa$>m(VPQ9`t0U^P@vZ4gO)j}*Iz2HjSp=YIZ2X8^zSbxu3U{g>1wop+=%*wzM(Pb?(Lniu(ASgoZa)x?A({S z3*dfu_(D3;uJ_MJjJ^xG*MI)7r#A~gqFy93DiCvkiHWuhU4FeJ@vE~XO(JOr`{Jsl?gCcYc_ z4k$FW@0;wx6`2zKqTg#i6n+RxOLQWAG zaf@$*mJfBX7Os-|p8#iu5kXQr{$XI3 zC3>(Oi5h>HD%0%HuK=q5Lyb|diS>j-@+2O& zPkcFBf9v#<50JkR*>UaKP#6ZkdE#uoBNfUrv?yUzc z54`77XClv-GNmgSzpI>p2+uG5Jd%;Z{aMC4@a_0#X(;q;N=b9wa&jgC`@FRDX|f4X zQ#n@vL8DEC4AP~KBk*o?98^bRS@6Y@g+k@RV!cpf{@9{Y33xUKBvqcnbcHXhel9h0}u<8^W!5EKfbq5 zaik9Y5$176yD;97mY;Jz6f3^@;X?!=e}flAtf!jKIr-RV`)5T(LGd4SPzaD4scC2o z^w(d%{0cG`AoIygC9`UOS6jssZ3W7O1?NOMP{#$f3DDA1_HSpS^2`+IwA z6rTqi=p3DJ(+MgoHPTK5YSC(woOd0H$!+E$8jrzmq&S2goKU ze(QYtVr~wD3Te25#s!0nEbr`{feO=4xUe!30q6{)3L^~di$!6TO@?-Un%x%A_@5405f}si^JnO>I*11yR|>Yhk*~|QV5fi ztiUW`ZB2i5RU45}J$(47EfcP(0(4;QN6j#q{Plxk!(!*qST%CgG+VU~8(2jCN@V(D zpZsIvaGxyWQnl69u~`gf_LOPdFAv1?$KhYD)*f;nFSUed3n#~F8MW(I1fsl6|HnI3 zsgmh~kx@Zy!LMIpTZA3(h!)Dt1&jRXM;_}I=V3YIZhmfu!)#vbWib#S{T1-i0<(kIEWKWeSE9NSbq0aOP z(pPWZhzd2wF8ndBayeYc%gmGmRXp3%_XU?ybQ<;Vs##cj!f?5r2Pq3!5oeS>zUwB$ zokDwkda{}WDuE}Q(ToWo`|j<-=Mplwn??g1I{$p^bLZ~vhk(4ZzkPlD)B<2-2A@Iv z#1FZGiFWTtC`>jZU;q-btYrhH-bsz?d@^@ds9kW3=En9m76#kn&1(?CSVZ4+_1{ou z^ON|i9cLWU@TUs_IsF6VwIhPxAmaJT@5clNT@LQ1r-uRkGWw<0Up13s z>KVqa7(`mcJjr>lrQDAod^SZvba6z1=T6??uG(a#TS7W%vd+L)KU4zn+7kt?IE& z1=2|q|HuqngD%6XV4oDPq=YJCB4%cb!$$sx2X~M9rYbclV2zYS3K>u>U20r}?w`z@ z#sH{$v{;m%mGweYyr4{%kez+H?P)G}dYyul{O)o$0Lrw6`y(om==;URyRV-klah=K zJK5Qpa}}s=j*?<0GBX)>ki&TZDY^_>_=vR3-#KpPcz~fkMS1ULz|Jx|y6gCmRasft zD8EPg_4DV}ZXWNmY7m0HefyT1+m*upmP6-ve&=$ekf7gyic)cLVRW#^40SD#NZ$wV z?eB+32GdY$tp4b8U4F|-c;6ItWb+Q8rNL{n0rRJi3a$!rovFXo7WzG&$Hl)ks8iJ! zPu>8x1_T6z1#AKP`&M#Na#B()$>%O;8B zj8)gv0IMi~l%vGIZ;C>vAfuLS_q|!KI0W<^r3S-ri7V{v=Ifs5cB7=p*<*sUeV+#( z>o;G1g&SzSJ_`D`EIl=}5B3_gJ=Yeh9=9q4U7gqpLgEq<@|y`)NP%<^?Otk$D&4m% z^zc>ca_UDCa0RaKM>+}|4;yNfyF=GTQ zIqpv#zKI}ER#hznl_lEI z91j4j}-_b;m;Yu7Ju%FLOEi@U1D)NlZ85JPI!L>iL+dEX^MK$r@u&9d=TyK|= z!8w{sFkLx1+c|YemYzCud%WTD`wEqikm}TY{qpxLGeugO_S=vDjqOuEnTtk1WNF1xpSIE&kp221eXv`V z4eag-grhSVf(v(by;=yMQ7r=+%o_xR^2EWXuaBQ}L@=?~)l8HerIZ{)v%U(nc|U<7 zGjOsz-d}S&Kaj#GHy`JGyu7q&Nmqq5ZDL}=LT^BA;)YI1L118LsEZJkT${b})u{jk zju>Gt2A12Co{Ws_8U1b61Bs;g^a_(>ekO^$e3O;-dXy_?K-%6R2vTB*hzR@ik1=X! zBmfsf?uas9BBz+1oHQ~vKD`YD z$`D8=YH{REycFysQ&WLN-~EEZBhl=CmRD4C@0|mnG@Rb#n~T_dq!x^Y#sFRukOzQR z)>*MWe27}g0l{Ib^^Z74MM!R_qm-N5?G2@|v2k>Su87FP_339^Jekev3SemRdFBR% z!nrEZI-pkVI^O+?>hQU5dAsd(3-&XNZ|-hvZMKPvSsu1-G`Q?<-9HHXhem^#r{=}y zc(W67eH6ywEHS@h*@1YEg8o`hPY;cdFoIn}Q+*ZHYG9TO3K2`#uwHCjBYMwtWE^(8 zdVgHb#(q72+?#v%X-qUMSHO04!9X3ghY7Oh-oxU`2FQ;A?^U zrUqhva1^JFUrlY6txyURArPUST|q$+4ff+$S3^o#Dw$RnI8oHq`;4oAT1i%?sjeZG zj)pxS41n*QQ*$Un^~@Jk7Z;u=Dr^La^cWa~ti>wv^WI_+7HlWHGe%HCqJMe5wnX!s zJD~^^ksx{r3TtsmGyNxPM1&f54KwO zY@;*AwN}eiB%)+-5{r#S4%4NrkgOJu=iiKJWKlhTQVa&-`B_<6fDJ}86vq!4jv+RR z!~LE?y2bsHYdB+fZ;h7hvjGhZA}q?9_Vu%~jo4gOYFHGn3_5yDYAW8Pqmw$Vigb>d z#=k@dp@9?G8k>uU_pIt5nr?05Z)9fndC!m1k`j<-See-5m6e%UStTXRT|rgah9iL8 z1}D9#es95O0EkQ~;UBrwBsGg#bt0ppma;AWJin8oHpm}1&2pEllrGuyiIMxESG;EvG=y1}ggWU9yVH=tP1fx6&+ ztlAUKdQ?-@lL1&|+QwbWE1g|7$1l&iK!U3yb=( zGEblB+jj^ZGv6c1NOtpQJ6r9wkQ7dLrzZ0om?l|~`BAklBaVjuU93Cryp}!{9QVL4 zj{=fJC^_xU=LCs*%Ib4a@++@d{4KSru+5LA_(nv z1WL&Cs#%xBw4|EZ1LJ-D!#{jtMiE5){5ypX*iB5o_);K<0V|iUk8Y)v8VxNy74f9W zH=^%sLq#sbdQOLPPL`2gkM1$Jj}PwaKl-rHDkpBc#kvZ|$H%))zoFvu%~2aI42+}G zDE?#<&64}s$V<+KxvhC_F<}p?k5LWv9Fjv9AQ-IC0dQ-mAQ#%2PJqH0cgGi_nNm?* zZtG~13Ulizp(tRO1zz?$t>PX z-D7*}p}h+3hq1=aVf^62LUY|`Z-r+T)*2`b?DuLnil^5#)7S4eWb(K=Vm7}}^B)Cv z1Vd*nELC=d81XCxHAKWR-8LBsiHGMLK6J?8NjVT0yb4nW__gu6Q+7BDsUn#EK90=G z`}KW>1Z-llWBI%yo(RhS3RTD(KP$B82$7hV^b&#Os;~)t#<%*(z9clF5?3{|WEoZ! z7pe`mihaq+{wb6LkGu1*_az)!i2lR5`F5fXZq}1-&mkW@(;zyVIgg8{GgnT{rxa#uO%}--`#of?W!LYpaO>bc)Sr39NzCF@4o_RcXu?2}Il_NVw^Vy(f$=$GV!V_;C9Z6)#o%|x+wvm#Sw!JavD_!F_3(aj|yBs5v} zWrIzWH?knf=l7eNo6jAjh!l?eutHuV#ta!r<&Kza2i2>daDv@0Hu=E#aCpe-v$Oyz zQ#RzXozoRMauHAkRmBcPh!(xeR%k((&C>>lf)9VxxU1wgo(eEhxEu$5@(0!F!!I_n z&`tp2y}jgtZnH-*%>V9}j zi{t=x@?hrlx9UW9H_ox?<p91VnD0jwxGE99WjgkO?h7odEu{L zAe|h|RfI{&Q1Z{sY0#w?SH+AoAbA7#v{vbzEWbDZm(M=_a-N9?+0;>@Ej~Bu!?wJVoB;mVSTWq_)E2v)Q8dq>g({2uxZK>zN_*SU75w>>q4!iC zsn*LCNErv&0Z8Q1shPl6QIK^y6x)~byg<2L{O>OQcPhb7uI`oV#?aSjES8}$Awh=v zDcu|muDv-%KE@Zw?|}SFayio9k3)>%zI`=>I}L@!t4xW8XS8}epC;G%0C_Cf|Ig*V zHv^qTZ)Rj{EG6a-HQIpjZF=oi9Q(72+x7h6$MfSXCtNo8E5ez+m^a>^^!=^3Fk&Yr zN&FFTO>La38VhUk4j354Nyi z=-kHy+77S#@!Q~u?GdbRf(epuPYesoeTo^HbM-c$T8Pix;-1wokr>|z3c&{Wlp z&`sKLybB09+rs%H1YG+3KC4Gt=7ycR&9(yni@Em>iYkf2McH*#R1g$F1c60BkSI9^ zM*$HK$r%JC=bRbC5F|>@Ip>@iMhPMeIcFpe3^2rDfFay=SNGog&#ii|Ue&u(lvQBQ zIeq$c|N0lc?`vskrqH>+H_S{;fUBCw4(_+l!_y5?${la7|Mek$EjP}i`&z8^3uHG) z9!oG?Z_i@@l)@AtVYfq2*bruPx3?eodyiR6T>PnHgTtHU1`0^V&T;H6lx z$K^*7C!;pF55ZgR^$d$ z`|pN0fU0u6)IjZNH*@rfFawZV4oEfwNU1~^JW99bM375KiBt0ofP?^{gr|y!hUWf`2ZwfJac4tqFW?^oFg zAZh4EER@}_7WVb^>G^cwJXBZO*99}^54Ki&=8g(SJlWf*?BHTB=t<_+lvXE~ywv;&3SY&kU$c{F7nhfl zlW;m&F29vU3eh7b<{bJPfu75XYYG_eHjMMmScTqvnY}vG#i4_FJ*O_OZ&mMQ9$|{U?Zlfw`uQTb~QQ9+2wX$F0@1CQ}%c634 zsOi<{Nt0h7^-p=uwKUBtBO=vq`0ckDmN?Y5XQaua(Q(b*PCO+X3s+Z`H$XKPRQ9Vy zRe5S&f8TGEvqC1aiCNf826b)zC{=K|xgrfYt92T!ORXcl>;6_L_Lq`Q$$q1hfGof> zf{gXyjU9md0)=*Vij6h%I*w<#M6?o~ddkWR^W)*2!(XpgzGCq{VL#oAvHAy!X??O^ z_T>u!v+Pgt7WM!D@=ry$%kgAsnreXcPwqMq5fYmeAN}^ZOwOs0lf0th);C2c_6C5` zE&=`)sPFHz?u)uXn4D6?efRi8naz#{=mEA|;bBzQTfi__TZ=baaJ=jhz4(1_>Dni` zOL&~BhQ_xOO-04ttWG7WyduxNgL`9ciw5xX=oub>)C8HT?HBTImJHmkF!6!B{23j! zED@cICpXA40gwUoOy+s86E*OU>$d*cQODb_OB+ zc>euU;MAB_O={f(J5dwep_Kov+Qa*jx@m}z5aX&zE{3Gs0wcMlFG3Nlsyb{t*BI)>F3zwtl2G;J z;}srCB8p&b4GmYoQViM)04gf`@&#WG6JA*(Z1b_7khzYHe?Wd7uUPJYl%D@gBMsI! zcEfk#5(h^w0Nnib1dugA0!`Jd4^Skr>$9qrg-1t6t*sD1C;9NVv$ON{;2=^6;P`>yL8J6;9Vth6dk5DrXrlHZR5jJ06tj{(53Blsqv}FD)N?f&+ztKK3qSP~T;c z4L$Zk8p6G>?dbg^7);m+6_Ifb>&_HLxbJuYgG{)kQ2! zVX61(WUtiO&eHOm&MZnJgwE)^a5VF3*b9f#8Ae5%fz%BS4ppgp9E5@C?AVQGuVxwzMIqL|5-*sNv z<%rO9IHK!)P%O{oTqXgyRS7(G}gr9 z^@Ye8Vz0?=+y}SSSi3cK`O1}?oLsew<$>~|fO#HM>!HDR!HaEvNkd6yGx%Ir!P9`9 zrfv9mSC_}gn$?{5QVco`TYSDoqLiX{HmF&4VvQ~AM;|XIP8S66vZb6IywqT6?`H4P1URP&$e53gE|mzE5g_aKpVO-Q|W2t-|-rtgylz}QN%Z&H_w zJUu%D&Z(o)N^JDV(G3<5Ue?-7Yf!Q}IyzA!h(IEZ_wnQO^78!h{O=g2^*Q)-bQhT) zDVwpx?8W@-@v?$BtznS<;y5dR&BMr*zrfU_YrTrR_dNE#kiazD?aea`$NvG7J zxp$SEWqzOm*?sHUcqd24qE2<45&@RS1GBRw>FMQPR+$@}TCQzmb|F^jnsKgkg%so{G+^R|7x3sGa5ewvF8whn&gw z&(3o2@)mWMQK%WDroMmwUbsQHmU>J*V|ab4#)gf}(bY8!`}9OYV(#46_xQ4(w1A?3 z4$6>?p94L?eY&&2Fh-6cUfSNid+(M9-=l*3j1p+n_312q0lP8wrzCV25f=URNrFYKr+-=jSH}_tPNy9H(TP=z`*c4XdOoKa&r%2 zl3rvDIs>jqaj}><{M&quIbY)UKtg!cIkbP15uC5~_VHnOAd(o83s6PakJ_XBqtj*g=6GG80h;u3D!`MKdUuiW^g`&M_x@PM z(*3vwllUONyvVcUP~t@2NZQ2noSmA}iOK zA05chv>>%MJXwy87j0@bE%78X@IYVj)Gt4yC&hSX4j~kdkFFPQ3l72 zf)5Xs(o)i@_pL%6F6Owg*?eKBWoTzM6ZOL0&P^C3^iy9p-NX~gy88QWxJ=!45BVUdI+PX6Jl52n4bcm1m%_rAH0q7`Xd=j!e=*ER?figbvAERrj_-n zFQutj((XM}N^0iNhL_f>J_lJGV0t4x&l$6$lU8~q*yNeDp7Cx1IVGn~Z*po%t_!g$ ztR7RBvU{9Iqc0Gz4XF?xwGII9y0V2rt8yi11mX-qj(om21Wm`-SST@Wm`X31k`yKov z6WAw59LBXlZDW(A9LJ(O8b1ynh&T#Nsaqb8G1iU zWMS^pO3^*9876y!8>Etas$aI`gSp-}-~3^)!}Vb$o5v}su_wKaHIipXXC5QoSqU^;ym|3+Tm!-mTZpD^6m~d+T7}PF&$1(~$?k^)N}}*OO_pN2%8xb@e+EAU1e`>pZ`RP9g=@!M35(hkH zF6r+}<5c6JHep0mOhSrF-$eduNF|>M#d#nz%4q)J z`}a@pz71hQ?bdG(NZs_=BK$4G$`|Xpf927Vmb~VB&nTWS3qd>knNuAlF1pU%oBw|A z$Ab(x5q7st#_!bqbSmGt^J3%~pEfMfejxZIZ!1OinP_E-2KwS**5WGXj5y36bE71t zgWV)`;H;s`!X@PCuo*pUgp;o)gXCB52$PjY zXK%XSN)iW0szed%Tc&wyi^9qOCPca)x$bf-=R)yAcK_cKl|V9s~Jvzof<}6i=qpgk0GsceiBpk zd&LwUk!jb=P|vp5@Q$faU%fK0+jN_PQ=2oEy-qP|BT_=M|DUY-&*qRoKV3JjDc3OC z+a$zjQ5$>2YGJ;>O``Oytdo~XJPr$yD`XEPi%kby6w=kUs6(-Lda6NSCW zS}jzW6_a?BLo?)lStx?^uZ!Vksr$)e!vu}Of0|Dd{m)Bq(uUc5HR88HXQKys*Li>S zVnp+Fw?`*dxHIj0rMUUz<-y)NQq$5u`FsC-Tm-=bNl)LVu#ul|dB9fa|5khU{o}@` zO-D-!!L>}!>g<|~PqDoQ>-RV)q@pB#Sr#du5=!V8YeFZ)!}#)G$a=8+}F~NzBZOLoU4#5;1c;%{>2OA+6?zd2FdRUhH{>GZT&^v zr7JpXx=x?_{N$g>5&Jhx=&_Tdz9|M%XeT8;$`AIXPW`JT_ndjN`~Ne%I-mS64_Gp< zN$a|eJKL$@YlpAkRKrJ!PBNbOlrYqo7ZT`buHkT3*}W4=$vHvYF=z< zYnbU2>@ipr9Js06{^8u0g_X?ozsBN6GP<(!wR3=LuL|;B@8E~5Fl)R-C%gVD6D7#6 zCQ=*}HnSX-YuopsVpYd@JHGjcFjTg{r&8o=GGnsetxBGJ6r`_K!BG~UC5vFBCSXaV zwXp<^(*JEp=EPKVQfXC}Ww&(iXbh_T;ml_FpG`6^_muAG%}NlU|2+xxtpBqs|F1Ws zf!6F;&Mz8d6i@%#&^UUuhl3uh{cn~mKCYHrx<*k;fz4Cn_Y85^8@JHc>3m>*H*~pd zSYXupzxOz>2RUe@=ug+@QwcN}hmi@a=>7WAJO4p>6D`l<%Ts%w5J)XfNor`J30YN zEx_Mp{rhI7`)LH8W~Z1`pDR=63Bq{4lRhnFQW~!mBuTefO3I5yc!UGU)|2s z1a;bS++QNPNF_l1>jLRH6O%CeBXuJ4o4_Ob7Ym?iApEx6b4G$MJK@F)CCT&SyM~7? z)n+(b!10T7-fpx(UU757nR5PiF$SKy>e%ZI!KX{=X7bP1>1LIbqk+No_3R5CBTMzb ztjL=7+<|PqoWOq%NobSNgRbms%z3({vLi>$sG+z^T=0`z&(mHv$*`uS7U)gp>-3;- zdY4mM!u1qB__4HQtM6LCxiC9yf)tN;;%Z@qxkJxe9o%N(qLV#&c&)&OA*p@rC(^b) z+|e(F+xuKp3SafFpyR@~p9IqN7#@slqHq{d`|V4rTnOX#Vl#us2?}U^t8pKypKwEqyc6V4~j6{ML!!7~m^JzZnN z06Y58CJp#}7frTm_<_$cX=Rfs<#i|4vbUp(E9`uIzb-JyB8jiix1WCu(D2^#$on41 zEvTOs8F_N(MR%QEPd`~)Y{rlD{rf)_jEwsFJfjAkkG>CXChO6|*pX4W5+_Uj2-od7 z^}NwO!}4Xg$BoehB~#P077yfzZ0Zhn*VVz{*u-bEJqXYC$ODVHyi#~1r zcoNst&~T2$9a_nTpIU9W8q%eKi@-=h%7R+pyw-QgPWE;;%~IMiled09=QJqS)NbT>tK~EZu;9?@wxIPb2GT_+GjR^ zMJ!@+MY`plsxaCo}WEq|4c?+V}w#>`# zw_UMV)ty>F_K$tjwBnjZF$RW>U zoQvUmhZ*!`h`m-fD@_aj#IiA8-A>evU)?Zg6y*?d#k}}TE-ikOXopU8^&x%x=dYLa z_4Fk4>f769eSW+%r-vcZ%4D+SCO}#gBR+p|Am4$AaFBYJ2L7g~$i~5e-Pu{2MpY71 zLv`!j69&ysjC;q&WUmn&aB&G*pD%Gqv#?1TzM-+Bqj~^4!UUv&%pztGo@8S*9!7gS zn3*H5>CI}9z0|4H-my)~YdqDi_DNTFq4nE1&4;&d_T&tS*2dn#aHX8n0_x z9){bP_L>-Ab7kI45py{SOWCdU1G0X;eA_mXlJjnJc>Ar!?J`QSotU^(@|wNF!?}A1 zd@25+67+N(s0&Dlxu`6){I}&aMn*&LiV7;o$rWf6xi~qM@T7XN_IFO}mbt0et*)T1 z9^o|+VuCmzH}x93tLoulT9spy^ty>8G0CgDw|BIyEh|hqwHrD7oC*p>urA42-17|0 z35)t|4$(Oke;jylJmP5M&sLPz{DZ)p9D-G!R$G?@)>8*dCTMGI2 zJDE%5$Q35X205+55F{jmJXlVPC`dVwhdBc~Qtx3gqm!@jYmhiVRD{)Fr4CwFsrtO( zSShDA4NcN+#p`MdA-Wf+FdVxDlXc1tU&{p$2P zjZgwAmq@!uw%#YjJS^Y5dox?r_lS33JAMd^YgTX2x>USJi zUw%t!>3-0PW7X%axf*5$lM_Mt6PQdN9dAx|B#PXj!b>UlW`bllaFdfY=NUN z{vEY^u0PktR@w)%$z-Dv4|~4lzY2M1RNrk!&`URQbEiB{CwwAe?);<7#HJ3g?TWsyQQDzOE#Me5*%XOf|Sz zIVeZO)zwu62a6cQr=_JPE~3%7Zmt@#ccg_K*Ir9Ee4Xx;r4f#aib`;3mHd0)Egwc{ z0`9aiU)iyEmo$Gc`K(02^Ti7f?S#BKHwR_qnK1;()-)=69Dj7IUdG5JDCj#q_R;H* zC1{b3l0_~OTUt3Z6rJ^HZcaic1+yl3VU2&|^xEFu$oIU@Mwe{S^rVS>Di&NmwVcq>B}TH7@O+C~&Wiiv(i$?~vT*ZB9*eM|q@;}Incmr@PbkBB zOsp=96mfQf^eSsU{U&?EKkR-^s&$3d!#NSt9d%7O{OFC#GEgPfg&QAJ({Z?aVPn@JLe@A2J_71FHDPr*r6@f>q8!N z@x7*Uk$0p&Q3zjnY>g5G3V#vy`#N0 z-;&MjDBTVP{~F##a6J}s2NKdcvSTGWHI7}G@pdg+Q(34CAFsSwpEwZ-iK1134i*4*?R03Ub;3rz4{Oo%7US{qH{l*ciD^-)Hn{S4h#ZM;IsOK^0*R$4qI2RoCcN4-ZN+Ew#p~GfWfJ zODEzO-DU25QKNaW-C*XWHzq2!*HdJ{!Ua9aDA4C@SnhC}+dbT^(Lei@#ty!p7Hy|L z<+gr*sv*iVIU-sw2kFF{*AF2KHa3%N1ZKQQwo3!O3RAy=hsj`s6LdO{H&{4?8^9A@ zeARqT6&e@b|B;t=dn!xThuPz-EgX|7Cj3~aUa`rQ7u7OSpj(HXhia;6y%zu4(P6Se zB1w$Eh>!rvWU0R4#STNtOWX=`T0V|~oPsk2_eAU2veo`-9XL5)wrweQ+BS{P=VY+$ z;&f*;u9hU)d3lGLj+4@RRGmh|HJUH6RNS*rK6^SKz-?==$|^k7rA&Cg{gY9atdg&_ zjMlSkk*>VpyD8mW3BtIXqSA(M9iugG@?LIp=&x>V;Lokf;(J#cd)CpbV>Pl$BqU1o z&+2H!8xPkeGv3J3xA&FkUYyztxAB@8`1IE3l#F$Zx^#zhnrIu~Ctpk>*@*n_&U@e@ z<+-X3Fa6pD2-9`55_#5E0U?;Q@)g=~3d~IUeY35u=i0aK7P+GGnKEp@oVrSr+;?W@ zUx8~HaDGQx?J)lF{z@udthtEwPp46 z^kwy-Z3W56OBSw<7mdO5Cv_S{G#+P@rBuFu{E^b+CK(%P>@}5DWwzn${qyjSpC9#z zdo?nnUJetqe7Yy>umQpX&U+4N1K+_`gKkA#yCgFc@e z5-O3+(k_xi^l;wSsshk|KT=`s$(j^0%GUx(H}>}a{P+yp7V%-tO)pR#E<3 zDa}^NZd+!|G{w@9 zxwa1%b*0k$+gVP=zXnR8XNejUe%3BDhQ7ZT73lSWJTP7~E+PVs!cUjMGvL{TVjAvk zw!)fZD+Y92aeGq?g%!j=&8JAL5GNQUKNRQ>FZGK{9%8(x#4<=TvyZAtTV1=VQk-7i zm5M?bp`~c zAc29LAcfK;OJ;*RLH6~qbFqc4&3KooJwx?<3b?6GNmR?0r5Y7>o&LeOPum*S^Qni2 zj~Qm7U_W+Z;^r+H>Z*``(t7WLLkG=yl6os=cHm`+v4Hx!?u>>sPNg7XvPLtnIv1Hv zlQbUx9OkOG7iDf>M#QHip@q8Uq6)|?&AXL{PhBFCd}@{b>%x`BX~mJq7o#ESvx!QI zuhr8yw5{DDhazup?Cw@qb5u|_;WkHe^#ff1mspdMXe(9HS=Sk zBRto5bWE&H|FQ8g4?WC=(I#%HcJY~~r+8W&O`A-3Y5rsHvt!g)#7uEdT&)f52 z;CrI1am^1nU6o{BC6(N{a?oRp+qzw&(19d3n4Je%53p91AW`#;#CLUSB* zo^Y$PnnpcfgG9iV87-2TQi_(BGaOvU`BXPJ2nYsF0CKXrkYGHP9Z613ZfjfWx-AZ6 zlVy`7@S!!2Skqp4u%5E%vQRDnmefe(ld{0z&`-f77ROal0|G+tFazAit21%N6zmf_ zOC;#;;8Dc(r#8?P0ePt6I0KKR24O3SPhfsuDy6Jk3m&baP1Ny8y-Ei?o#txM+8qpl z1f~nvpgO!gwbi1xuFbWy)Xhs84K{7(TLo}!P1|9bwkKVsXhj@H@JP*OZ0ml1zq`Vg zg3oxn97&)1X|hs=SHFRqg8OTio}dKPJVJWomg8EmNfF~M&1%n4~~aIRD!t!r%r=BnaxP)zzp%WvV8PQM!b( z!xlB3@V<@)i`xrg^4jlnnpFx;BqgL-WIBx1*qJhU##PYl>!;PWf9T*Idb|SV*>fH$ z#S(!w^{z^5zQjVeY9a6fHkcoEcQkp6|Bl%Qr$8Wk+40kC(};J2lKERK{3X^dElwmo!wIn2NPIddkKQi6sk2jZ? z(tIzTqHJe*!|0-5cZM>a#yCBk7r?mdp#6_#EjP>%?+6T`7m2K0z1^&jIBy1rjI5(~ zy;8uHd&oLJPSp|<5*6ar`MEVTa`UqP`s?zfKBk1_h3jfpcTo4vb9`AK>&9Cd7u--0%r%dQUTqj{>EfB%O!6VlN_TRQkzf334l zNkCJu%wSPcFj!gf*PvZ0)Q>6RVv_hdRGrt& zlRw6NE79WQy&-yWMf~yW$2yVkQ<~DpPDXZA3ML# znM=Y^kt44;DJK{c4SEP}I{ZQK<+v1UR?koFajp?I7EVBgTFu)19u;iWs2Q38UhSrE zLSY!#NHcTQ`)i#9ToO?59x`UMJp}jCk1?~QQ?kZ@z?2FC!_M{8<^}?b;J(reEL*q;EkG%<@|#{r@*cSFCmGL zBD^)o?R_+=S>r6+i$3+l$h_H@V*FyxH!k?j_U%bAYXn<(!u7V4!o#Z|Lsu@(eP6W_ zF?JcYu23-4j4OY}+^X3Y{UAGH$M_A*wXM8!HnOkwJEM@>}JHdCvxRF<&h zpU!+FAf56FF^06RpuF>DDbF$H;9RFHm!(j-6n-2FjC~2bq&-WipOcHt>RToO!68TZ zF;EFmBIG_r7wJF=r>pzQP;;KKl0|6Ue!2biZ+ZQNx53d<$9!-hfcr@?*CQ_hdKE&K z(QG71dv9WDao6RhhfF5T3Rvovts|}r)(g`)-LzqzVel)BDv!R_W~91WwvzWJJBESJ zCctXeTX%~GbEJO_RG$~!ww1&46cborfnjKBn$fx(`KHIWq_Rpu_NT#7nSs|_Q;sfs z*P=0#ic^fI@(_Lm3NnWq<9aIu1eT0QN1&e}uQ|xWxr&-Q4Py6qI`j$ae?IB*Kw3P^ zlJ1`VMknGr`wAv9Rs0&5Jq^Og*TY8m+$@o8TB$cpF@$L;o-;6+{)80px6$6#0}Brt%J4m zb!mzqX@Pr;8P(3pu4)u1Bed}gbQyttBsUag>8<=CIi7`)>SVY`xW3L~&)zX$IEZt@ zA&)W+zGQvl+!nozwHCj30BB%83;r-bu}SyrE}j!L(rg7!08~XrAp8dLgz3tX=Q>x@uk7-rcTSpfg4D=fDm8T!+s+&P#p|_+(Q=6Rv98$Nq zI8=U>91*<+1TO@!}Gx(TiSq_*bnwpxSGOBoC3RRyv>;L z96}iSQtM7m83f}xSyFSE5=t!OEqrX(EN;3@RL)uhVyM5rO>3f)l9rF1%aAeR~J&#+i`hq5J-kg zD?^?>ZFE^5!dD_~n|D3oQBhdFtihw!nYa?cw50uzfKKS`qLJ$A@HkG*aJY|mY63QT z3vLJBPo2s)lDasroAJ(KM@pXUZ2(a%AoOCWr8UvwW8N>%*>DaWm&R7@D_53{`!reM zZ0Vm#NqtdO>LG<}hRl;Ut=EAA7gB^G7Phy?mm=k_kWjhrhYF6IE0Bdh^tosYm%U9E z6{*@|>ZBELbGFfi#&hL!k-vcj?i42O)uPk%Qrvf;K^Vw)g7b&~uK3L4>||(&$Ih;d znJz5?=#A^CIBrf{+fc`o+)oxq32*c=n~DK&qL!CY4GTM~=YEOX$WqgGW0qMst!dS9 z5$NOb==h|tFkqzB%{VWGtcRbXB3oNW4Shjff&tX5Vxyz~x_a4VW30w*d+v=LTsp66 z-)0p2mxTUtgXjG_cMjS^*41B59N^9EA4MHpKl9_!_PRRU-ubZ#3^3s!tIOeW;rB}*H2z|P(Yn`G<}S)f_i*y|{0@2`gE$qPv0`J7f*`Gbn({}cuQn4?** zk^IIMxRAob;WVh7ASKbqtHe843vwEB-A@#RKjB6S@u%fe7Sg@x)Q6dwCLo*N%xC+5 ztPNnNJ!uIz8Taq9pBiK1f*cQrotR&~O%{r{g`eIwEIxKTVHoy5qwY)WUG3F9uTDKY z=wbFdQZfcU@>}r?&*es&&M*LnrhlgGacmNY^~7QYNzV3_Vy@1THm&b=(!y;vOVmrn zy_W+;stn4~_#9fBN$#HRZFp|LkB=`yLCrG_dIkrOP2noD^(~(z^9n6v3H^q}s2GYQ z;`yPW;o+fSs6N67?5n+==xcP_g}N0cCMd16!KbQpBbL?SeeMr<0d-T@r*UGu6F=Oq zq27QVDNs$SORk&)DKbWSDq1Pcz6b`l-&g<*H7zU30R%Mf`}fIy351VqvWSYZva-qh z{q3X+_x&xm;FoE&Vav;_tIMml$NObzQ2mQVCnph?!bC|>c+#bNAl7V&W`#YMm#<5G ztzTtbtA)nTyn*7+dh6yMJ>sYd%g&>dSCXs+LXw~|Cvp~H@$$lFtGKKQftX(!raSZ6 zs1@!c;90L92;R4U*Zf@1)iT(?e)v1ma9uM)TIxmuLFhgU$g zRU9bT>A!lNpTBc(aJo^381p@=*%FRq6lQtH85J56G>Op%&{PdHoNSzP>f%Urbh|{Y z$E0#lzs>C#0YUl|$DCT0G41X;2-@%Cec%q5?zAw$dcecNL|%`RnJ-fk(1>a zHEA&xJLvvd;!=J5*#WYws732dlEkz~Lc(#Ik|e+%ecYOc{+PQKWj$=hrX4%)1Dz}6 z8XIv2w2WqK?QZRQRf*xaUAexml}UwGuEgou&;9AUxLrj^hJAh!~&AJQEsie34@Slyquzwy4YCwdkt; zQXuOOBZXQ|s;ne~VrZ|=ZinyL2_SgW)q=Nv?l$W}$ECfu8_5(du@^|1X_qFUsIEc| zV%gbUu#w6H$czDiBQ2E>s|cUt;*>Ntkq$U=EELM++DZ6O`qyg^mQ$5{Gr?z&;BDQY^yG+&P#!A9?^ z`5{qiOu1+1GFsh5>|&p*MW^PZh{A%_-M~D7e4rNL6c09H8&QBD<|GQ1G%yu!S@+*4 zgPS@7R6v$o7xerLS2uq~N=f<{cWjoEI~U%TNPoEQGx_d((AU@Z;=aV*J{KZU;i1cE zRKEnB6H<}i#gCJNgA4+5S+nmT|0p8;j4?0QcB1|f*LIJavTmKtJoLv8P~V<1*gL*k zgrgHOhYP>m`GMrx-d;sF+FiV-gPuz(<^b-(JaFwv=6srRE9X5fK9Vu>z(`vpB+l@% z4MI&ovD?GbbIyA>6sI3mX+1!IygA6Zr9w99J32ix3YJ1Y;1;t(;?pV z6c^iGTp7S0(gD3VYuEW2dDMcYA^Gjwj?2#%`w{1WB9rg?19LIwo2QgES4&(>EmJf& za@MddX}=RZYM9#as)z=Pug`eu@9yQr%*4!PP|3HnEJxoSD|u0PK2`8mJ5|^#Y|vcI z@C3=ZWx|s*9pEpp_h^EO=k0S;Uy7*fCJStB4vtp>1u=m%ecR;d;%jD$bEgI3E z2CZ|udFkfH?)b)7Lw)_h+F+ZAii*l!S6&(>Bphh>qA6)<@7z(-(Kv*bA?C`j69;u+ z>KjiR!lD#tgbH&3F7X)n-qJ4wuE}K)mM}ibT;tMTg~09dKPUTH--6@`d5Ff*7M`N6 zbwSg=Wkr2v^ZWd^q;69XQV%=DBTuUQ^*yBDJ_DKW17_0%g+s}a(dR)OY6-Vco23z< zF&)f2@~pivrrLwgZ6!{=JSKq$U@DDTGE%%yCNXiz0u;*>Fn`Zz@)f$NMqfKz=`N=c zGtz}D#Ss>04i3Fj&-~u_3eVTR{UZNOn|}aZqBH8KqQGJuK#MdOSZzGVDB<11W!vry z71!tq2o$*_5kE!>cxP{a`1m0;^*CFjh#W$+Mkk&Q1w{2aaKZ%;2$mJAE(%5#=cU$T zrmRMi1ZVBfM%(-)gso~50lwmH8UC=TX}dWq7r9-3Rx6vUSX0YOD`?vDH2h^bB1rEOMr_B#;vbNBUD64dCy43nIv_emCD?-uyXcld+DR@6aS zwjJ0%CRqK!ko;&;z)c#@lLRv$GXR{h(29ym_8ZDBoo+xQ2e^UqAkoyqq4;pPc(Mwp zNPz>ae>UgicG#%32|fOtHG59Id+*WMA(d+Zvld>W=qmVaRP@RC$UKOd^_=f$vx=s3 z%w?F1lc&@f3#{#p3FE8Dbd>0m{Ib=TuRB?!T1V)^#rbJFAaN`(Mn?J`;hc56G-@1H zi&lwzM{x0u07?&&$s%v%o_G0fnzNH{udc9Sa+M_3Y*{0goI1D?$tV}%RqTW}pp`Ia zW&SQ)8D8}YRvsUudSmeolj`2QAgfp78a_5?V7IMPBdtc5^&-wDtl55-$EvXr{5xGf zdRV%a-?H0;8*%XEm(zsGn2Q%vvtFkMk#Gg3MaXEcZ7k;tf2g3%mDxW5VmeOG=Y7dl zKHyI3J%54h6L<>bM%5wku!V)N4X)kA{eGQcvr%C3+Dh*m!;g_C#QgfAm@#hNTuI}m z1cT{X8w?!JxzTGg?UpQ|Zw;t0W9oW`TUCFyaoZyzOL^ z`D)V*?j)xDsGpy@*Rx}St9##{`+c1_)tJ}2aOk@z1VScSBWUq@gzAIq$Y;t=_F}UY z5w&D+3K$WzGF<88O$#?JuIvC?esQa3wE}oIYrbZQ4IFyS)&S%*%ICPSXaYcB8#u`` zOSlDmzQ_(smH?gn1Fz0st$K3K^BnG)02FBaKDBO!kb@dmkRRy5o1e$Eskc+7u&>!QSuwZ zY>Gbj6f0~vsHj9@j}9Hw>jdvWW&~`Du~ShA36{a(Xg;c55TXf*oQdUikn&(lUX_R)QmR^mHTgo?823BMY=Iqi;bFy>+X^>1kT9Juq7hy`H zKs&mAl4H}>>O^A8&TZkB)HKOvo?YEgkobCLpLbjbxnlLDAfx z;83l%^GRw)S@Hal5<9(?a>w zS6sKp6t`%SV|{x(b%3^Cq2csHp^5%}L6CNYCqyPXP9orUt@VfCULfwrdcRcMP8>W; z;>ga<)d{z$W2%m1Ebywcy?4*dxASvyBuEOd-Pc%!GUg@g+cmjNAA*>?{A_Zw^j6c7S{%zZ@m0S zqAyX%nM9_8vePmGOZh{l7T>q~MuXR+YmbR*qzR=7LtiOmX1P459roF8KmfWBnH?c6693}Do=3xy7$USDtU?^AF%J(YVgz(~g&I_gsx zx`?)&{eSTF7En=jUHmX6AP5LbhqQEeN;gV3(mhBwgHj?TARyf!(%qnRcMdVq-Ce_X zeBa0C{r|sjt?w?@Vqosvx%ZrX_TFd5@2CGRe7eXuj`f+?NIS?}`Somt@aUD^+E3gDQhWG2X2M=q)tC;WGJqB0`)jSpD@^PwnyC9NJTC{ zfByuH>Va4-H%EQ9=P6d}KBN_X?fWkK71jaQLf!%8{( zH50E+9l%4|E(@&)op-WLGqI-yD>$-xWnv-nsp{wp;Fe zfroc@F{WHFRd{%MN&?aixp3cWuWbz*q#}q8{)^MJg~^45g_4%5t&f3dV2e|F_wyd; zYyexzc{jMv1ZiDyGPV9G@Yxj~fjDgU9#v?yedT;iX)h>E0I_I2-sjpXN@$>hlnQZt zZ3Pl^8TbJdHqL~hl3#JZZuT+gh2heg)KSrW2Gq9<42sRnOeeZ_;Zoa^%}@h9Kd-md zBXx=fl4&n*9q{T{ecWWtn=MigkE(BJq)+$kxpDVz&gREOgdN#edA&AnZuF7^`AUXo zs)pW#Pa-hU2HNV^YW4`STwDtM<((L3pT4k5lLs5fNukRv_67F{^z^%dzM&HW?M4Ot z-+E)0lL4?ZZNUPGipi3P=X?&fDZ7Uo0MUhztKN&IHL z4{&InKgWHH{75$XWCcfgI`!Zpi~tliz~L>ufs2ca_ARGzzuxic>lGSIe|w@&ornEa z+eZ*=-w)5iN4Tg4)pvSjJT@G!75VgX;`EMy`>TT{i&7`{N{YM^B(A>%QlSAR9g62M zZ^AxHZLch4b|>~{j}7ke7pc}MrIkzoaH{Tl(UM{JY~5qxhokitNO!Q0F_TH+*q-i)qUUUtRE zWyH5TCHic%v)+k5V`%X_y1uE<{i?1Rt{9?275AzAo`H&sxKqr49$v}8!fpAaE@yJR z@#&Zq-Qfei$PdHnMa#N&`#HYKUBk?IVto$7?e^kV$EzSkg%niz8^pcm88)jeN)cyZM3+*PMbf1#_YJ3F~B*m8Q(nA%`% zYrC_vqNd^NW7vS5P-ub#XtdSTHIMCYeV)R~>`KAvT6{1Jb5qfkl|{XS4efWbOSTf# zT*Z~gK21rA^_vpgw zH}c=6HJvElltKE0pg2&*w{cVIj+F$IyOn?Hi1t|TN3hZUplE%9+UHpKv2^!-#<$Y@ zV!RYD!`}3VgoQC>@3rL^Q|5~rGk?)Rd3ZnLODTP>gg&aS>_9GB0=H8x;H;Z?z(bS9j98wl2lVko6orB`%_`w=!=e)H{(jqpd?bod#`Z^NX-M3~iT=GE23!MzRm z9WN(0h2HvHn{>pHEF7?JI+xY-j;}~9ekw0NA`KgshY_8V@O!(T_P*dhZ9ohCT#{|D z3cs@InAzQd%oSfT*wpD)%I$iJCB#2MR5w4P4R({yQe+a5{9y3q6}tTldq zw(|0N0DdQmGSjjSt>)&|@6VxyG2SqHA@8x!;!>Y(dyn5Y-w%YdbTgRhIVGscWOs^D zJf|POuZrW49$6OuR8tdXj(wIHr5WGg1g}o8!IOwssO&hPG876Vt~4`W6|6UC5y!9|9@udfy))p4(M+kP*LNf z1ulI$I@hGED_n`ke*H>?DsC?TvN!=m&$=PLyZ)~J=64Q@p&Y&D)|M3L&|L8#6Fsv= zf&J%SJ#zAH`?ujxf&ElInDlyo^D_qlmn(&zS3T&s9>pJp4jM8GL+dV7BxA1(mRK81P7<&( z)$-Noxmq^S`pRMU*N#_WM)KnR>PlzXtwP!5lW$?HZ9G15?^U%vRk`_v7c}HV248-A zh8rVAQ1|J@i;iT=l`-7qRPs#b8uB_jj=aet{SN!yDXa0QAhs+XySj<{!;F1D0B^Qj z$KB9Zoub_RYv)JeS|aA6V=JyYT?zK%#|IRh0W_`~Eqgt&w>;uNVtrNKYF|#y?sIeT z3?&HJT#izwlI~UNIc`l<#^eni%u79dbXelk*mQgZAm0G}CV;DtAQPxA%v|!;yU7s2 ztYEbHog;GRXkt8?(?#aR$@;UUSjl&*KS2>bf3Zu?=zQ|EC#IhNe0-DR^3fxksX|f$ zL9uSu5ZQR)%N;b~4J!zw*}B7V7crJM&vn>6GJWj8iE({WG1PK0v`*O-&cV$s*OYiR zl9v`67dw)Ac6PR%s%P>W+qt%(?yy8V?slgyyf0pOZ*%eOTkV$G*Hd>0a_sf+c(bQGn!ndcE;N;Rar!c7;4Ts$Afm#c5I0PrNr)0VtwHj&;(HD z1e9##VV@SqpBU2}>ionPaOPjj&uW3E_RQjkXnH0HZ?z`!3a87_G0}ahs>J3?K-Fg? zc=`-0;yqz_uKtWhj!}_Vp+zw#YGd%H(_0GXS@S{N8dr4*cl>Z6DQE*1g&?D`!m9!2 z=6v)v!zkGYCc|z1_xFEpjn+sEmk_XVruRc3qK3A!H!fZ4@!!5S0y7Gmw}g1NXz29N zeIaN#TWR=-gmiGeOfz!(hC5GmZGU%C(#=OJPXGEuq|%1{TS5X**0^|hecRiYo%yOX z&hpp zB0^jomy&OLF3vy&j}9nOI(vWo2qx1V1x(LQe8K1_$HYb3pYi(`J$T(al5xH_d_cmz*fu(Cw?@v%7x4lXwyQidm<$an(J-xk? zke%B8U^1PHp>=1nrMUeXyM_9q0zQdwGP3yhLQI~6g$;0z?WZXi^TjDbN05HCo@$g-jcthxA7`V$xA4UO?gAH`rNL{B{%w@Brxv7m2@+;xp{rYBE+J& z>T#T1Ji`;EN;5J@No{YnI!?IC&rg9g)!5gflxdqPa6U07Jc^AQ&257%-eXc31-aZs z>BL9!ZIPT9J!F|zR;tYciY-%q3%M^|15-kMHCyEUYkwOQ2ELjPi59jJ)CAJJg&(AS z^7~`&kFC$2w_h)=t;I3q=fivig#;J8chz^}N{2^`GBSGTQq*?wN!YiRF?j%$#{==q ze$dRz@1W8VRtUzt}UStH4C_6a6zc|}2LF_l3A0I)! zB8EwSflsXB-R0Bn!m$3FwwMDwgj+827H4EcVL7h$PAoi3f7->`kC*0s@=H1`8Duf+ z#|?7dywYnvIi!ta*>>Oa$DC_fueo)sYh2C<#$)nE%vkKDazwJ+&A+X&vA|#J8xp=e zIc5O{ZZHi{4Ct%7m|RPL5PeU_Cn?7CHFF58^mOr;?||-wwPdjxo2c%;GO1y+b1AP*ykD%&ykecC!@~8|6h|@X z=k(j98nt(hHrKT$Ece>*X9engSw`$XtGPd^CD~YgYVQsC1fQl8w zyxO^ENt#rLDr#d-{;VU9%tn-FWWvFhruUFz~^g9uw*8=GxR z_}$Qm2`#rzO#<9AsuLQF{HW<>=~(~KIUvS^-uNE3Aa3hjqswD+R)54Y;0o3HVJ+=| zGESE^7yNQpdHK*guj_#Xj$CQ`tLpSpnd_mXvZ#?Tg0XlOpSgjF*b|WuiEIdw#63&d zV0-S3b^3BOheR5Uk!$%R4i(KPv;8jMCHM(Eq>M}Cze?oa)q1<}w-$i#>h1YY9M=0~ zsL#BfFbN`iH4;45xr_U~G5&c%nU;q7c+or&m*g3#)L5oH?bqKMLWG`c%Y((KdpVNS z0bkmuABxGew;w_)z88>&upK&2Fq1;OhZC^G{71|>%3Efh_Vo1&d##M)43&^YG*{Q7O+>s9#~-QJzy-Dy5@SFF`@T$3ESAg!|F* zMQki+hTh%%?1v-*T1Jy!tx2e4hbc0KTW{ickXBGMv!l=1AKMMe2z5-}chub%1Zxcaam|}&(Ol=XePACR0`M!pn;2G8Dxy2yV#l75O_SI(H^#8mL3uyuMI z^zskP%nvg%X=L>@CcZ}D5v2NNd5h_4;^SXfT3eqfXH4aC`u_OfupZFmmfs4v#lPs= zGi>bc$m-LIMa)jTRTVdpeI1n*T2bVmGDt2|(AU@hwz9^Jc%XZ_o3?bQ*`r8>-b6Wh zKxqhH#4K~470Q7o-e;r2q&N`BcgZy|aTbBGfN1W_otHo!r&oWiUU?{rpl6XQ(XSGF62#E)BMbv`~oDDj80 zjHy{(C05gR($sp^Z=?2Mi+z2v`pfW4BUTe8z*k*UZ6Jt;hfBcb+xyU1v{OT6t|J?W zXm{ybN_<$_vI?_a{d?w!_sOwE;f=Z6)WRbIKivjDUIw90a{zJu6taBE!eOkEU63d6 zRDF9tAtf~`HtwyCR%`iAz@{qX^LN*p`u6F7`mMwW6aKoo6LlnhN-m+j6+TI?hPs@N zOVxGk!A_+VA%p!*}o3Ql745twKT{N_ zut)UMkt>v1qWGLGF#O?2g532PrYE^f-l!P94YK%R{8DK+CQI_6X0XksXE7Au1)j;$ z>G};#a!3(|vgX?T+08sfU|s;x3Zvj&qVu@}V?E(OHB~b-%>m zVLu~eb7+)dgxJ^#oOX?T+-WSVL~rxYt_g^nsx@%Q-gdTcR&lK%TzM*%F}%=|QLf-t zQwGs=yITt6Pt!8jlWlQlhRm&ePc7c3VHy}%k4UX7E%)9C=~#=yrO!EGc$ki&7iy!#eP*z$Vm14Y%QB za!J&9ls5_2rpKB=QQQf*5PS7!K$R$-6-;dXN|x(q4U-s^Wva~(aKgWN{1T}NY+e|m zqqAD(<>WMzzNz<9t6;9X7@ck9T6o%;3 zR1brEpLRrrTV;*Yjz4xL(7qvMsFmG8+XJCYOmQPGs}SuL20%dve2M;;>ECjb>-2qg zf`9=2)nx)U>Ub%p@?HxC>gAPRUMQ9|`7rzmcTMHXfKSxXo5$vxn`<`g{tI_=WlKE^ot-AY*kHSQhU+C5FI7L z9?6sS)JEqz$>jZ}^sy;) z74H5elJ~d|-s0qDUu@jHRhc55itmw29d6dH^wNYLhtLr|8dU~&24f5_;YQGJU%OBs{-&v#JV($eXcrc9gJ{S${ z>8yB{izE&+Dik)L7yUlqOT9BTE>!#RSY3>*jg=xw2KxALIE4@0@qsFz**r|W z67d-QZB7TfW?QreDtR#}g!APr-PNVKi&?B|R$c5P^6a{dvH~P$7fCZYF%>P-fUHne zPq`nd1vQ*JT`ByuQ8JAWZY<>$&D2LP(H8DCt6B`PaPwhTuF?+vvEUh7Nsma#+E5ladUnk?@3JVAb zG)K3#SCk;kI2KB$XivW0oHFgi<>CezRgx9tRB?ej%Rm0)>STgL-afk3si6e+L8Gwp zoKOUk8)F8*3V*U`BLpYeeBQ=-Q-?lgSak&C0R#?TVTZVX>Qo5c>o*z}+k|X{lpD`X zGjG`+uxT`l1_LEt6gfv1rDbYoqpG7dIyY`>4w2%?4;Ata!Wtc)9^a%RtXf<7mBsB^ zeN|DaeCMHOpsJ~Eu(+~zH2j0Q6KWSjUlNNWb`y+Dn3OpD(Cz_)$%gc{{V?5#CmvX6 zW>Commd^Hg7m~pJ55*dJOiY(gC`~_#eY`%XM{k?E?)FD^yLDYUr`)8|q|8%tc63^d z%%#oiBo?u=hT!r#y1#q>C8sKOaI=VsX*9{?);Q$bvnRT`I{Zy~y7D$%^%N?USy%iX zWXw-~+rQf{PV@5K+b(H7x+*9+*>wK%{NN}SMpS8T{sHd5%bHURYY)r^I44qh@b0x(7VzcKwxInogSWzHK}vXxJr#S&8ar*FcpF zEY^>4xogokAPSge*$`7uAw%_9goFWCUeKqhn<@8+>nfrnR4!ERLZ))?EgmM1PGHtK zHShOgjV=>yZVs+_00!{AV%phWYj#Gk+FTomS#MxA+!yxZIkuq7AbO$$Kr-Qrzya}7 zK=ZJyB@1nfkY>)v;mSj87}PEO78Ps0TceM|*elXU1F+sjt4ELk%G}X;TftxxG&$DR$)uEAaX$11hVksXN=#gdA07ic!MDUIu*A)#=xFhUbfSVeBs0L#)^+ zoL9adyosuFTu!b#=^Z)PR|K$GgFpdeWBw=b#A71Wo+u$$Xtz?3m*^fJd z0K8D0_TEN;Y&>5?gZJX-Dq4KyEOf4RrnmE|j5dDzgom3g)%jfCj5U47*6%Noo(jF*rrC$r zH57ccARV|2-^hIDoW~o{H_%;PUN)J3BOe$>vP|?meLgzz8wCSn>g{ju5DD0(A5awI z{guV_Qu%M>!i&$1@H=UThiHfQfz@Q|QZj5v#^o2DJCJpiXd8f?@>rsgIlCUd5B^$baqo!y6DS;qvOM)V=FsIkBs7w zf?`c6sG%XYS+`V1p<|)TF)K$UUoB@B`&87VpSKL;aKvk4ZS}P-Om}vr>d5F<$`14| za1N6HQ!tm}oT&VVC1OJGQ{oMWSHjm`OKtZjjHP|0{1aDhpN>qbv=yu~GqloIQzND*~`(SXRf-&bDV zYAlUsQBN#@>?I(5Jr}ma_I5ddf}EV{T8Cz_*2t&6g5vM|p5Q!8&j_wO_7Dhv{bz~` zwQ$)SylXaxzzoI5c6UmIb5)dndGTETbHm2Q7BQ#EwMrrcQD*jB7&WF6Ql2Lp0)2?J2H9BB1!o~Ik$K3+LHaj27&6fPi7zMliU zd*HFAkNny*NDcea(-fz#sY>)5n{m8>JX`c-`U|Bn#W3kGQjgP7GY%&X7AX9tKN)<0 z4X5+)!w~~s4DdPKudfHS-C68VLy5g^ex`L{5I-Ryd#kBW1f}nsnV;yGpZGF6vEGOL z&-nQ1enjFtAr5C8%f#Uvn3))B`cL3PLxVBP3!5-{SAfDWvo||)H#>S_pZqJbLh`L@3bJ@3 zZ0xLdBd>@!_EKV=Cw=ia)$w$sCvWd>_3ka)1UG|DW;EKLPu!KGSL;l-m-*%uItiXI z#PK=wtFVo*ND9^x-t%-7`emgQhVDVi`yU!=x(bok4y8}w#m!o5{|ZR5-*WAT)Hc8W z#%Y&v?c6YQv_D1)9G|{|SbaI0tX|8dArjEdHDPAz;u`1C($SqC^&1FRWEx|XqC@|nK_DSL<}ww1 zAgcT=F)1N2>FEjM-$8r#M*Q(Vkkxt_wQN$@2?HK z2V{P6ecSORI_I~T0w*VYPTa1SKV0IYS>T->|GS82$%!D658I*2d&`wDzViykKAvLV zt-9aC-6))%~TIqaJ%a8U6t+R5GR@3fQCwBX3=D^HI8a5f@BLPMYBd0DrC z1R?06o38KhU@T&Fs;Od6o7HZzN#w3x)9dF|P>`m9msjh!_A#luJN$zPf71r2GQwlg z6>`|xSvRK5z?Sl7u zQ?@)Eza}FiqwjeW0R7ix(!J6$GIFr9)Bpc|`|wDXR`}XQ4~NI)BZ7pPsO7Gs;D|KA zn5cx?3lmHz-t8qqNZ`TEt?P|_yqL`TrCxaYHH#k-bhK|lADT+^Mc(Q6`=^Tpa3lo11*oBt+Ro_hnjfWUBEnd zsamYxM-f0pL!FmnNEv_LT5MSK9lofn56vW2T^8h>&sp(|L21_H4XUD1Sq5kelU8dJ;P_{U7k^- z|EuQu!u^?8v}$oc*b|xny?W;atflQ`JHXp*Zk_1Mq?$DXo+54;lDxDli4yXe`1~OA zk!SJ7-r5!7s%ElK5AnNA-gmyqel(zaq2%9HiG*~eLG~~`M`crAmFC5Z_}aQU&?|Mk z>tsGKcLDmu;CHXyJ?!Y9#=~Y&OvKt;+>=5{a5+C|y7q;x)y40ph^#|fb{3Tr1g`f= zcUrv+n{Mn=ttp^+fSdE1rd3&_K1 z6vI5vcQrRN)>E~0wbY26goT+Gm)b%}U)>fAR|E!noW!R!ovV{a)t<>y@m!dR0hB zSwcdBl9!!bN>o%-e!gs%>eki@V;5`&cEm*7rLLyI$3M-1E{>94oNx3n43KTx)5NL1 zJU(~b9zdxJ~i+=|G-Eck0qgTYlI|6o7IKtIsWs_Ebmvc}l;zrj?prJYG z<^S&DM94gy_J4mOL6uSdh0h1~*dqED=I+lqSC8%w|L@#k7OX$LjsF~ezT|`(e;A9= zsU;;P9|-+p1^mb#{86fYy1zF!`G!^hIT@e*&A+(6;9vj$*ZqL>e<^TVF%)riv;tf6 z7k0@%QdDhtGp~50SYc~%Y{~CpULj13O-m^pzZ5viCg2YwWfw;-oAa=wm zC%w{`#B=pTa}Yckz@H86e{7lf&z&J5x$!?tH+q#nRjF>7sFvLMW$=lTeumW#Gu@Pc zH4U+4MA|=~KHvj$5ARvxv&&69bxEAm6_W3;k{dr|N*+}=oe??ycMbRrk|RA8N9uFv zu=cN1k+K(ghgjMi_g|+e{m=Z=x1*mtM5>?a+u)dJr~f>0B%JsUtReU&XH4)- zJK&p|B862I3p3T`hiS$CeMZq5Fr1I8JQa0oT+(7pJ@DimH@D07d>0|jp8Qi*I*O05 z|HU>0kQqe4>iO#g=E@F@(7HlnsQM@a4qmS-qIRK@+jI@-;ql22efvM8VD2#(!Qbjd z5DkY!B~0p`qtxkJ#oDC(^U%~$S&xVakwmIKveOxP{lEuTDEWv12%tBa`4J`L>1h_+}HQX zYtlr*NAOv|-zY97#%$2YJB;)9f&B!4Ac~@pZxU#OAD`KZcpa^rkE(8-ma44|x02kJ z_@28L3CcT&+_9`DO7pGs*Os~BL3+$&8+3oC`Dcpc#h}1Gkd(&?`aW4jRUM*3nO;-u z719qMoxv}_Wx?wL8*5Z@j5AlC(Tekx#7W%Z7<>oko3~;Q?-EXBYA7XYuR);+hMs)A zy@W(pmhp$-u&6V4PsToj+V_k72^^r<^FMTRfG`d)Icw?YjAB?<@l#W;g7*MXTXl6c zc1VCo4Pdjat(^u5ljYj}egIRUG(Is=*U-QbwudaHt*s4uz2bUIadB~Tb924DK*55B zMjRkem7$VTRu=KOs*H(=2?+r^#*7SdaA}a11C-bp7#PN7-%?fd^oWUwlD>SwA|#~8 zLIL*y*tDzioY(pj0Pj$lmMthjyYLz2z!5sm8#&;x7}RTYf1B}UdUp0${q@DYKrtgJ zsm`7lT0n~F0(l8PUg`*CV`HFN4(=#wk6>2-3ZmA0hG{9gw5zCg>;3;_^b22DBeSKbM zGZq}|>cn0piT33 z1oZFWQj}OIyb;HThnI`NWOH+KDCD5!5-(*v$-Y?@xo2R&3_r+hMlp%o2i#WxR>qs} zYV`5U`d4d7_Jmrr^jElnsmA54=2!3APZ)ES=f}VmF zUnM1_+*|NG-1ZBg`Murn9JDHzG#<&>*)i$o2M2fMrTG%#;&!^Zuf}Tj4-BMvAN5$I zdITxo`tH@Or+V%2UDao2oAyLgcXV`|5F{ifHXjcPU-y zmuEj;f7%*|mZy|L$Zh*AFK<18!(y_;P#MJvcy#5aAz~R9x99M&(b2&)5qo?4yMB(L z?`k|^3r_-#5jU61U6CT5CmW#iP&$&71P{**w6`_4$+I*$U!81*6Y=B%YQ@~#1yGJ$ z(tKqN;FZoe!Nm<#RLafz;=nq2`0ybRG(cr{4u^`+(9ke3+1*~9US3{umV=DP``hj!Ac@S)%Yz>LLY}R$zdM~WwBHQc=$E*=(T?-E zT#X0W=14LT-_xxL)jTD|1on=;K6$U7nub0TQ&Z>NQItJ^wQ{PY~ozp6oB=#%hk3~D|*&p>NV+n z@|!%ixq)+ISxDDlN`(EV$;rv%^`S^2p1tCRJ#3VRsi~=ZlIm<dy8yNC+Gqd7jU^4fOX{BI{L{4+N9>;$vaGGc&7lKQ#6XR!$X^ zjr=3t=xyG2x98;K)dbpOy1idUfa ztNJpl+Qa~|6 zwUDWy(q8yJWFQy4D%nMrGr@Nv@!gBnR~kqVV;=?)cbI)f$@bRP2FQ?4KckcymUw3k zhDj`gm1RFyVrL{v`nY6%9wZDWCMIrBz)&oB?XL;|9r2V*SdaFB=W1{4i9{-hsL*u+ zYXX*udclO^e-8a3@E(8*XF|he9EKzddN_irVyP^)oBs|V2{G}_?JX$hzaCQ-sj8}S z;ZOJX_dlBj3lv+7ot=H-w#EDMXr(6x496u#Mn(o`&T(*XfLX}qsOfgsX*N>d?-|_hL^9#O1ZIXR$5{sg@ zfq-vr>J~9c*ZxfV&dv_Foj+h1`_Q{2$l;%*9%LjHK`e{1$ji*bqnV=;PQW2`%@}6} z>_r2iDt+vz{{F`7&W>%I8Bi}j=JV?6v;|h=P!@RvR{+25&BbygG6u0F1afwKY-4Ge zzA6l~pgrkB@oYGxcH**%_~5mtEd=080X`;(VsngX+KlGns#@yK5O4{J0eZ? zr_*73vdGERb&{hQ6kCvIH#R1lGdmIIsg?s&+TGn0K#HuYYGN^UdG^g2@3n9#;%d93 zrl#f&s1O0Sy<~1XSd6l;th~(m&c8ZUG!F#glbi|tn{P)f#6G?GS(*&N-qUhx0S=Z6 zVGE#Sz-eefbvxeVyh^6()5Y^}%UeEohY)ewx}Si1^1WCDZH{K<=6mxEZUC5t^Owd; ztWOdYz(N24Hdtp=R#tw{6)!`D-qv`&;KiAhVDYD%ybvU4spaE%`9SN=g4bA{a=cs) zSYva){E<(S#U5~0Q{_a!Y@*z zR)IK#(rf;wf;#C5#obsc`6qvr0LPGE1<-71fJLo61P2V@*(e~sTlx37kphu8H%22~ ztJa8srNM^%NsZ+G@J;SVei!a$!xObUe~B)#)uAn3-^g{qum~0=5HjDjegazBydvEi zYm4iv>ub=B)St{3vv)N004Srb2ohjtM~d%{6ai~c&e-5}4!L!(wsZF8;Hc29Kp!CH z3HWe~iT3BvZT7zO2j;B<&v1iIFeM>Dwm=g{3^YvvCq`pZ(X5v*0u;nJI67{9dr_PQ z>}MZKOQZF~k3cj$Uoh-IRpLGgY=VCL>mQ1eH{MSfE=Cr5`DYT#(vQ_9-}AsXE=(R{ zL{s${3iz%uh1-8(X}&Pto2x4U+VgC8_U;;fw>6&ljl)7oUw>X%LU0L~-lyuy13DzUvW7x&u$Hi3gYME^8p$TXbquMJL&nsmdwnLP$BP& z_qw{eDPsLFmx9^Z*&4f9b7Nz6v)<>4_k`?Vm1ua(2VUIRVi-VI=;;Z1o!Pe0<_jT% zIx5g^1)K^`GS9nzwV0pSV@~G?OnyumkfJp1lqujGAesFmjX-&Qju3&_)va$_WXYB{ z7Ds0d;9Etm(?rRD3-9dhkz!%}WDV0|1fhrZZ4O4=YTG-+EiiwefgI@KXt|tt7DHjL zvmLOQEZ#}ky?=iI>@(mitp=5Qz)ARcrotb0cTonU?d7#dKJpsO3!T0Z4m6lOwD2Be5ISMolz#jt6A&>on-kUcE zz}St*fglUGxBxRV1bBNaO(&zJMr{E5NBHi>3CJT9ah&#ekd=kSexcE$!eXd-zxjG@ zejW!KJAzb*@Y%E1p=RfZ|4Zs_AvS(5;7*3`*$; zy*kI$$s%3N5(7n)OW=$FD*$A&%A_lT2V8T;B5k#SNw2n4ng`Sy{u$Kt^mkwciFhE{ z!KBceL+H&i87z;*uvw6SVLOC2HQjB0fCsKuX8Z^`-qEr8`+9;W0N$9P&*{X62gsIv*|IUhHwWTZ^~$L)|1L5tv4_N6PycMels@#s zXYJB0Mw;fYF_=ByAw-9ak<<#37&sMENHY&t!P<-P!ldar%3O{dnOj#X5Wx{k4p=** z5ciMeCnO}qWzyjUE8>q+v+5`&G zEOc~Mwzi=DZ8BmjRlx0!^l&cefkmpXuV`|W5&<6`exstYw7fjFTwAKg3{H1&a;hjR z+jOrySH=pe&o~4#Cw>BrbBIQV>kZhdvwnSd@frDn- z=SQui(xCVS%!Rap!NNk5*TBF4Kwh^rad*D}N?TV)r_u{>wEz5RU>1e;@IEGHq%MC4 zAQ9^Al~V?~036#9yWlav0b@c%MFkAt`r$YP1bl!l_BLij1PUxmF~$gHC%=+xa8Ax@ z(H{Tztb&Hur~i}ixkX^oUJuAx8e|slZ@qddPTOXYy}Qn9g><>mrKVGb5I z-1|5@G*o`y0_E4QUr9XnXXoc+p#JioLzE1Jzk-l3qg={#7W(ij`6y4ZT(o!3<34pP zT>@`A4NAL*J_EP4waryd6CSQW!Vl|IPJWF7Mj3IoJ!I7vXE$48JFkQ?bI~EaXd;H} z`SF2OSMjaKBgud-Q-+>8RIU5mLQ{uIso_oUX}CXNm7k0}T1eHO+}mfkJO70TaDK>2 zx=8CwT1x&KPOCvi&^`@9l6rZ7J^S?s(aF@(aGR9n==Gchl3yyH<4ODF1==yqes!czI+=f)Kz9oV2e=np*m*Hm0U4TT2_utItTeKR-ix>}j1o)FH3QUU7^W7Q(FbfJYh(x*z$UI2XH~WL)ljSrDM=m>2sl$%w^|I^d;! zPJondv2uF4-`KFYvgzb4uXhtzdx6$+Q-6MYYOfeZD3V^$pr{omp)yB8 zLxX}LwB?KU`H3t}Rwsq98%fuQs8*ifyuSUu?Qh)ip6!;|Gba;O4xiakn1(K`vSMH3 zSI5&|*Xz8~^RPU{_W~gFI+oV3sha7G!NtivDsIvhfIhtQM?MfVU{PeW%URk|a~5mx z^v!VpQ~##T(RoHuG0P=@)G+ zf*+h>83l)z@nkD~lC~sK zp7r`TVT2iK7uJV2Kk-o|I`5YeP;!}3JrGhws?GALIh7{#!N4TCo#`SfEGn|}Qc_yT zXzQ9R)LA%u9q)0PP0 zc@k+|9o@*3upSo1{DK%=t#1ttb#p>?(J4iHh%!*&3?&taiP0UNn_GHk&qGHqM!$KJ z_CQ;^BV??MI%icbaP-##MD3uo2d5M9l)@~iupqx~btA;-GO*+6({Lae%?qSXd#Tn` zvDW8oH%i!I_(35d@(Oj)2HN^2Rz`dK+gxsw`moyJX6m4{q#&?P+b`{0 zs3KQ3hbO$}S@hTBL`UkT#!R^)4FUe?z@V^C#5}nLIz3e`M?%+sy1YzGsx}aH{s+OC zKXT)mQJx%3Krm0vQBTen;pXeO$%0O)SnMvN7wMuRuvaDa7iL4R#Xxk(58U=>r+xL# z%YgnwwwaM%h>QGhg~>OQ)vor+HTf}}ULLh{&wFDmhAd21dsa`+&Z>{im5)!GqgbH7 zhY!n-dVeo|z@cax>NJp%ANo;P?BL>xj!E?58TV&ODnx4zgC>Wm*^4;bwYSTi3SsC| zsTGaQfv%Z#EkO&Z{s_DUs-)QM-*EjGfr*JOx{7T(V zAF)(Q3vG!@&;^5RZM?L$#c8po<|UAHFNN!mI3alf-9l zqvjU*ZeN7Vx{@24k&zy85?W%GV`krkD4AuSL8utQMNOQ94M-PKAy)!;xP7jB{KKQ3 zJ{2=Tow-3apw`|4b56kKq-n`mS9^N+3h>$~S}al!adw#(s>v71Sc z)mU}#BT1bjPo_WYCQpn6#HLiM+Gz?AH_3fftz=+GTQbD(%AnzhjYCzndE}>n>@MtD zTHFN3M;|`??OU>rno9jyNQab^3V%40$d0v5OPQ>>iK>%I??m+I5wuW$FqmZa#pg8N z1_u)aO}-|F${2^0iI4blT9=Z1 zPV}eJx0Td%t6K<>2&;W=ZB+&l$ECu?=EY_&^DTvv@*itJ-!}!wP&qo6a zeSN3vg3a5<2240AK&#~Ec;U13$oOl&!9N+FcP~%9koei?>blmY0)kIB|0FaZF^xCd z8EFTlBUfG#L_~wE{nMY=KyLHk{5Uo?&i7&jkE^Q6>-@Iac*fYRhP?4qPyO_?e;ATA zBp16i1;?nWtY*Le3mCu!1JYRa32EhI)mO3C7^KI}ZdKLg*+Q74!m{Fyh-QN*lQw|J zlhbEKa=yn`U4-8}IBP z=GNxs*w1jmg2>jeiAalJii%a&n9x&F#6&~Q^(W@{Oq5E~*H5OAlmgq?T#J>;%4%0a zpEZ=3rv0JbEkdc6?#?4k{?*atp%qyTN%A3ug=P63%Wkv5n8##f&$hOANBWF#VpOS( z55J-UU?K$^Y*p*+6{e!1r0TurArd&0Z6J6C{`tdZODiI@iS@D-x7nkngPe|8R-f7a> z^E#iXsXECUJ8orvM@ee=jPkZixvLt?jYn-b$`hfJG>2;TFaN@PLj z70$kLv5fbdS!n$O3aI30dnx+b`nnVh@-mHr-4BKV>N=5d$Rs2|&}c5;&;(r%u!B)F zB^<90;4z)hc|t3-|Q8t*fYlOJP_zf@;cY|u6vAU(WT4-ArELbtR?j` zfA|q-U+r&6hgF2Og-jv{M-Fl-mX>di(}9-~uTqRHmP|sD>b=CKLj{|y=&KwaTVERE za6%zJUQ;+fKiwMhnu~uJAXxt%fhlmVrat9J9G@BmnoR8MEjY|t{~yZUI;yI*{Q|{6 zKw1<;Nm3X3WFQ1+r zAC~)k^lw`Z&J^DH1~~*aosW-S@X1E8j9thNS9mB2d`WZ+T$0^QqN&yulI$E)wcxby zlCrOEn-n>@Ow5bu;89?smQRHgGHJ-Grfw@v3=Ih}FzR-7WVrz;Gz9#wp5k_7&hP<> zowza!bLGtX0PC*a33SdHFXJ~i6;G*j_)%RfH8Ik9yE;0eCZR7-w?IaI5T^7%}C$&3r1#+xEi6{h>tK0bk157{}VdDf1+gc9$4 z{Te$~RjaBg+*fF(XdB=F6afx5tsRF^RSi_sgDv+HHvw?z@}?ZS*g;%F%3xf~yJWeu zC&otA<6>jLDwM%bS?QnEROTAG;L;h{CZP_N`cVF@bvr;{mcdFTH8hAE?K&G;> z^RLe?sfxB7yqCYjPSyd#pQv5TF|BK3=61u~VUW|_6^FFej@P`E8u#{Aw1~u>Lzx>V zu7(B)WrLCG&{$iTc+!&Cy&E4CvOa&;CrcC8?&cvxzY06FL=JuG>H9SAgzDNia~1RR zgqXJM9@4R{+B#G6YA+O(wV#b2`n9lgvnMzYKUpOdzl)AbV!v#r`6@IwrRc+%bMmFd zpUGZz-z~y@@VHenQ^We2GUiu>&$-McBjN(W_nsf6(cz(|HU&+4?g$7@To6gqva%wn z{{YJzb3L#``WJ20B?a6`YK*0H6>Oe3#Z15BeEXOhs4xB($ObH4ZEbRfXhi_Y&P5I> zBWKTt28Pb649^p%aFkvkBU(ownZB4%2hUZ+i>aPYQAS2nbjlk=BZGsVEIGIy+Bn$I z-!CvTu`o6^XXkt{Z|X9#lGh}!abG28(C6c9yK!rDzg;jF7uP03l6QDyy4XO)gE8hr z@_gTdfJxxUpOUNyFY)kTi;y_c?OHk7X6*7o2Eu`or;x*%sg3v;qp+uPNz?zF^sU^$ zYPRIV0@=yJm2zPtl#qhjhb{cF$kO|)K)KBi#0hS- z3-ALl85vRvazehaGjjzsH5p;a&z0wVi~E0C7_Ld5-tx-mUC<`94o1h7f?f4$r8W*? zJdrvGR<$486|Q^fBu}?%4uG?F_mzdUGyo{s5dqP!m=6gtan13hU%6?<>3i0(_TgWP z{*vib5Oe4za6F^VQp)iz5_J|t$rScf-W?`!^V_2F* ztF(jx#z8n_P2%D{cvsdxle;PNyQe5ImamRHW*>#r+uQdL!NdD|>=?~6C60x0c|MgR zE^fXqiN{vR$?2Os#$!xk+Sjk;TUwGM1^_38TTJT6yF2E--w|O)c$wTR+r*^&q%fy4 zUFnRq8r@5=7jgF7@jHJiq^lvp{9>3DR((uimmuDohrR@h*udN*OI>+wd27i{H=A;NZ z0Nsb0V)1OY%t(WTgsWdp2Jzu`$h`4DbJd9DfZ(&4=+2sd<)aY0%^szu-qJ7R=4wvLU4_u(T>EpIH}gmL7kkyI(6Dr=cz_6R5)C9&?sOUy%Fo zXLZ~~0Fj^}uddwNGXiChr|87Ix-l>DJZBrwl5#N<}N~ z3;7Z`uXTP#8OwdT^R_|Llr(W3z7bf*);x47ipD39Leos0ZlbCDikbQ4i5HG$+TxSZ znF!No#-EgE5i!oCrE9I?Lajp+`PGj#q${d;dQ{7gI61dzAZi|m!i|(UEW_cQ1 zMZL|Z^s#w{IdT7Urr-EM5w&b0pKY2**r&+HAph*ar0 z2osMVs&^Ik%E~%L+Pt% z+MwoiQi7RiXKM?NHhw#ZrAwx#=0V5LwFEJTZ3DIFsidN&5E5&K`-n9Q_n|>kd;8tc z$7q#^O6AF{wn~Q?Nr%LsQmaA#cMfG-Gvc`IE!ElbjB@uf`S^Jcjt?jDE4Igb!*}*a z>CWtjMw5GL>&`|S)M_V^Tljn|N~2=cu2Rrabmcfx zdRi!K&V@{4^ZBeU4CUCnD9@feQu@tr_1i>taxlL7&FS$~RDTEoEL4=VTf0n+B5sIY zJ~>^?<2@UUqNLvTFAn!Ek3Js!UHzGTq3RfCZQ6>*r;!RPT<30`dN_$3e0TOOFt|VIfzKZ1rj=vO3+>PZ*HcK4U^;C_%+e+8 zmu$-7a*C5eRQ8b5e~9NnmET{%&tCr*1WDeub{x7U4GZ@y(0JvY(Q>s;8L+d7s#y+era@zY?m zGfqFG%Z2Z3v7ic#x%zyX&Wy`-FSogBXD_g!xG?6tV+OHL0l;@)kUc|i7*$qQ^{^o) zyBv-pBw#70K4%<1Yw#eX9P1l>PEB=kTD@c{CFEIO5!x(EW6Ti?wgrbmE_p`uP4aWb zK`q`Aou{ykqQ8C(kZP|zFvyX=E1&g(19x}JYK4HbhqK($rfDL&CSf&Ak&aZrCbc%j z`WW}vNr1e&J~gE%G-^&Zj-ysfF6@^Tk7KrJ+1f-J|Lq&I!iDD`R{?uf%3lhDQls{K zG_2b)tbLRzs#IR&vFa*SNOz1h!sO&r;-R5S#vVz6-TcHXhMtCYbo;abmwkO#lBan@ zTW}Md!x@KgxE_8VHw~MPCQUe}R%V5Wc3R07S_Q`pk_xpA73!%r&# zGOX(x2*nru1i_gzRy>rC&W7`eCh{x~X17(zL+DiKnV1g=HS@nF)P>{Y3(+ri@E$eW zSm6qJ$eW4|w8WcoFRu+nM?|e2ED<5gkFKKatlO?TDq5&a9I^|Bzltf~cDK~mZ=JJR zCb?tmBa>4-YPJ{7p4qfI(LX>VZ1+1PtuEy3XM?gt|B+(2z)`4m z-RgPPx(@T_b8VCPw99X9QO+8S=K1so zB$OmkS5h)7%*E+4q!+HP?b!8u$(B4x7Wd2~LUPXL-Mu7XhXFQLImhD3f=XgrozQ7- zWtOD%rRgTBCn@qA99%Xdzu#Or^1&ugPS86E|7e*^16MJVQsNFBri~NXl)LexWD?cU{*)=Y=yx&;W;OYw<>9j7IvOw1A zr)}Qqky6R6{g~LBA5zkeZEajwSI(=FN5W0TVSENjmb2i$8y^tjM^AnQ+`G`n zTbh-sYdu#>SI&Wj>?DxL>v#bO@4<|zLA}^qg{n+C6qY&^r`BcDj-_Vi=JgHNR)Pyh ze}6;q3|||lHp_j-H6+?#>vQ>jiX}oqRW{^Q4okJSVNg>0eM*1( z!)=5q>Opz8L2>B>;{DMd2x&WUvq^OmqF-J>6$T6Zai|oQ%5E^O2?CI z`Shiu<;BtXTBVw@$L}Xp?&ij=o(^5oEO9o=Ui_V6x94vQGGHV|j# z0F*A%Ph%iv`kD*STuzM4X-!`*x3P7UuAn|t zQ#|=GPF!3=j@j7+VG0?tq}*UESK~jk zdvdLKKSKY2PVr-TvGa~HJ;R6KJNgIYY0V*fM2CG}s@UabWMAwi>V!-(-OuEdSzy%` z`V{lkX_BC1{%AgL974SnEr-$iOqm-Z+>+_89=x$S^hI9*-1TDfH01d7w0c4Cv_k%+ z{_J&$83M(w^zrf0hgjiu^O|w*rd4dW_D*bmyfu7fs+Zs(L`~D;`JFw))H9_*%k!ej z`sYP1E6C>s)(CDga8aMm$h)#sItiZPhuFPKsde|=;7$pNA|VFtB{O@*qB4NYbF{U$ zFbOl|xYIBk+4fqjkvl2zbTRqO=?K$MLUt@nrsw(04)9xoarW$jrH5wcrpuhp!mB7a zbdIExe5chd&EtM^5qsRZ<(NHZbBOr>)2&+IwrKto{lsQJ>oG3*d0li8wa*SV#>v7; zj@`oj$m~uHPdjUe>sT8ri_DV?N;c{qDX))aCB$)X7YauY--Z3?H#YYG&cKEf=qyJ5 zu8y!>f+$t)1Gxk`FL-62StT8cf}bLxleplTM^4-Eg((WsF&C_O<8yzTy6#a3MaFaS zx-bENP544l>CX$7&K9+YgEIrerum0O@Z%#a=6f{hw?{Ro4K^n{JqjnSMhn8z8d43D z?)sQb9?h)!^ZOFn6_#rpD+HD;co&B^^c24NklAk$g*@Z;vM|}&u_`769fl`)$_qq< zg9AfQdO3D-1^{iDGqo@3dpDzT(^cX?^%As_GTvu#Si(VP?r)E-q4kU#;`h<zo zj@kANK3{qt1h^Zq$RRuz4c5kLyWfQ&6DqF{{@&vy4bBTHm7h9QR#HxQCMayaMGYjA zggO>|=9|jO7YL>|ktvBJ3ZH)W&HctCR=XAXf~6}MlC8ACws*f$3%{qB4b=!tyluzE z*=VoPPJVTJH97ycDL3iw)d}R;+5FxLff79f3kx&Bp-bFy#^1*#H=D;wR%z0#a9R>| z@wFhcD`v%hABe8Adt##`@|gWsYM6n2?KMc^N`AMPF{X1{CJ08a&8&i_dMcr0QmT*z z(UjqWc0pE+siolz>(=0^yc>s55sbjnTi!>PJY;0Hij9dTw6xUg-ah{k_6sF6WID|1 zj$9mG0~-;00il0DQxI`}`8QtPIXUtWB4VK)AEMPMZu&a;t?k+d+awoh*MsRP4XV${ zh4g~d_m9W0$-8x}jOsECWVZLVlGiVyP;_gXlHt?$X=&c-2~#8VrA0%EMIQSWkBbRt zmzvin&Do}9{$l3^Mmol?xEx0Xk*(CfnIKkIq-Xeqmo98J*pxfQF{Cpqr9l%X4@ZpO zsp$Z04r!Fc6JMExo9XUSw5C)(@iH}c@l=6DSgHA{b)nnEtnX)!hn=X{9GM{<+SvB@ zwl;-voK$wBb8PinYph%8_ERO>*C=O|Z2b31pWS>PAe*WArCM>2KC;uzuCMStCG!G@ zWV#Bd5Ftc?jOhe+^BTs{|3RSiVovcypR~SI z2al`1ox{J#x^;^v(kLJSOrX&aIXF~^-xxzDl`iqIME7gVSz=jXK$UPoom5CcpD z%sx;mU@bvLeRedyu1&tyC5uyHzFCPG4O!N0VF#bd>~Wm;Y62=u47HATUImm0ip)Mn zSp8UKdxVK2`d%^}*fk0{gLg`+L^LPpc)o!{8;yr^iAZ%pj*f`A?tz`w8MHlI-aAP# zALC;^mfDKtIyZJVQ!N=HCAs3vTNgC84m;J~^*9=jVzJED*rMs`B^e|6tgquY(}xbm8fgi3F>G6z;N29!I=N?&)`in|RXlk&ra#x?P zt9jgZZtF0b#gKxBv~FfWM+fo-?;0|{2IrYlqWrlzotBodvj!mzl9j?oSL(0fT3Oc) zlfC20j^gB8V!0RIicaa`>aY!^FD9ng&giyS^|=4EPFy$(2(B(p(>@8}s?GFiJ+@r5 zv37{x-(m87C7T&(B%ki^BQ2s^W z^!X<8Jul2$|AOc<2$N_mnk{Sv{6svbi2GBa=nIxKo4<=q`gyC2C97jiO^VDtvkfna zOxcgEu{PUVOXz-`mmdR#)_R(F-K}4 zze9XosX0BpX0p}J+0RY0QJzNEZt;SHq`bHk-pKiCqUA)i^<98kvm7ntWx9HL%r{k^ z`AgXwO8QGdtp%d+$z3E;(_%INKyYQ@rJpMz#GV$1L*L+kUf)n4usxQ3e}}AGue_|c zSR3OR!&urOU)q=1jG)q<-tUQcHiA02@{Es<-x*DHR=LQe$b-;v4{Nth^~H|p8WQK9 zc5|Vn{4upCQ+Q`2O!@b&Ou-7(c{sSriqJXqOdh?R&-ljZ@N31Lcn-4Q?J{P?0~=6Soa21Tmh z-<-iuNyn#7U2I~GyQ|#+;IDQN&MOX$;N=PI&(Hw`z`-S1DwFPqgVFh?$fteqQGV=* z7izI}EyLd@yJpKF75wwsNESr_8mh&!f=Mhsi{>?0KXwCOxZ0E0i*1aOrjC5YOVwpa zbOD+Ge&`80LyhywxVbO}sDkdJJQK3`X zRQ{UHDyEZ5_<%+6dts$d;{gbd+GXM4{Uhj-9QW;F@0^iT5tJCGvljk>op5c@sm7Vo9JPiqjaM9`e;=SKV}dzCAZAWoh& ztxwNGL(k9xRRty%Mh0k*3sIGpRa^ky|r*{QSI3P6lN;0R-++X}!7U%Lpi*L*2sG!6w=Jp;|w#E6!7YNn+8f%F65% z2|Pw3I;$qW6hs2IUE2TSkO~rBUex}`bk~c^iz~WkzH2P%W`_E?g}e8?q|9+z)dn_B z&Qb-naPOMDQhB*FjCTrZT3YRRO^u@;+NVq6d*~xC;?|Mz>!_C%R~3&*?a)q7-A=@6 zY2EJl;HATx6*Cob63EC7+)k0{T#i! zzW(&AtfdnjRasQg@eA9&ZO_-j!o^9&g9~%W65YOfFr}5pX+6K`Jb2t@S7ZA)^Vf~Yw z1D@&jVxY=MDc}8^z$w|7r$wT)y-_^!*sri>v;9v0>(KDiZq=-xl)6t2ZbX6qq>ny;`&3 zCOswe-B&o${@(G(I-QRCZoEAG;*JGyoXhepwjIaeyl}F>^8GWyzf?5%K3gM4R68sA zZ)oeaoJ>?Fk`8PA+fnfcGZE8=o{1n1nkfiGu!NCWcbc$Y6dq%WN=jzgsDCXwQ~*fF z$VB*g`MMH!NBq{$R}Q96ySil0&lVN4l*G|1;iRO-(^J5GJ|16>w)UXy{DsOeo@njS zR0f6TBpiFG9rm4w-B*tjw_T3bK5TBW4ku)B7vfx%<5Sg8*>4h_A`$dx(<@Hm-5AFg zeR|TWXj!+9Px-oGxX3n9%Z zPzbkq+mEp-zM>~UOP>2V&CXy9P1i`+4PGm3jUrv4Vd2Qw*p?Ha4<1yFgoTraGN3;0 zS+oD#SZ&l_KY;lVl#2xTDs<;!Kld9_Byf$6_HHKZ52x!?zt(RpFC)Ams;L<-=HcNc zBuB+?wqGSjM*5qGHI^>)CNM|ib`Jl}8=MuOm8PNDNda;e6f?u(t{m+Ls8uZ<#@urg zO2Si6rGF;q=rPz9lOC|Jpxu5S@#1W)ZW0=u()cVUL^%r9RiEtTf+{n!TA^9%W#3om zl%DaDZ8Z+3NY9$h9mNoKEOv|f9UWZqvu?lj$^0+Xu?dKuqnVkqpPr(R9yVC`z9Q^! zHTY5Z9{K>QF-0wrLu=T-FFVc5%SK~vkByjVe9*5de~Khee-C2!VRmq=cQfG7Q_=4~AF+Lu$Z8$cAGc+GO96v>u;@mm%rXaFX>+PsP z*1QBE^Q~X+y04*LvzreV8LqwJx6qN;i$wgrGK$w^_6#!*I%NrJaX|<-C5^>#7phcZ zPF9vy+3QD(ULGc;>gy6avc-jkBc-R~3%XIS7iRM{PnXYi>!^L6>MMx87o}7I6~}kb zQ|1kGFK=^gzz}WUm=Q=-yaE0 zYGXB+A!|)xY|h;e87OBLiw^2ozs=ncef^M_^2axh6!}7f-R<^hCe0GFxe(!1cjH0Z zOJ`J~Enh+#l0I$!aOcm!rGwW>4vSaSA@v}MXwBStL{J%@bNFuH* zZjIlXT0hDvl(*SY6$of_nc0mtPQs?6lXzy`nzYbgY@45c>imd*YJ5BZ@2mTQoFbis zgt*U2LR7fxYF(21tzxs#ydXF|E-fyn_K{BFbDo*6=$tZFVT|;?=9|bHchu1@$HUKi z=;VqoibKw~ytc-btTWXh5wb8lFL*leJA2tAT~goD(y(vge+&}Yz#1WGSn98CZny1) z!<`3d62Fg~n>SwJ+qvm?C^(0^9d5HGNb(7~FVn1^WG2SUEvyt9P8C2EJ3lLHkY6V4 z6`T-cM-O%BREx4idv2_0_~2=1#EldP1NZav^=b4rVIwIoq38BIvuF#PZOo)KX?C<| z7TI)GZW963wM(ah$8*!4v!J%Oz%ps@zMk~H)&C7#@{B50LyQR!ChYeuYSPjk7h4C3 z+pZ{AiqKmXmUFY^r4((hAzd7~hYci%lvRd}ZU+^Ihp)YyOW%?2DaP3{^{Z)$b2O8Mbo6eufYEwmi+4fD8syj7W4mOTbc0wM^eU14LsK0 z3!tDB|8&^DhT`%`JSg=Mb@YQaTJdxPjyv^*7y%8s8ec1vnJ`VcbXw-^_sReJ!i&N( zN>jEH=YY{`8}UIi&BwQ~)07`ByHFL#b8o0=qLoEr4p+sM{r6x!if~CIjXZVb{Ct&% zCVI5(#4jqVY9*=d7e+>Gb35w(Mr7cmuV3O2A+g9_&K~UB^N?))BBfLs6j&c%YMAK$ z-wo{8!Q-i?zlza)AyXqhIeja8P~l$M-W*?{8dJE%e~K>2L@ymLo-JQCqg$y)Tst@W zLGS-0zt#B__fJD_yU-SZ&NTm94c8R@()dFEYqV2na0Z*>iMn4cvHWQxcM>UZbjmDl@LQ_Bn7)T5d=`(#u9(^Clb*Yi5d!H{-e!%$RjDyzOL7 z$#~(HL~l{<@RSLgXvNrjz29HP%$DNF)VfxZCL$@MisySU{sge*=O zvL>KxP7@)NELXKR^cM@D!>z>WFl>)d2~reWW*g8F0|G!J<&CP|6hLG_$&DkU*B$Teu-MiO|5gZ)cG-U(5F&;g76B&6c zse8EQqcm-CdHJv`K|te&4`i~!9smVGyIngM$;MCB`Q`V_<<7HsT`uY`!u#;`ewVs;W+uI;{2Uom# zy%EUUUGcmPY=Iy`6Ds%fRgcEmr+-Y#;w__vptVWVlusy>OgMi1ND^oICaG-64h@f99UsWw4Fb`NB2Y>J6%Hp5jRB6KT~B|%Ei6Fbul6U{{`~glg6$3> zBXmBb{0<$Xqm{L_XF9-p4W*ViaI00wn%#6dKijWMa#?0L%1YpOY-(%-GU`%-<0Jzs zYo<4_a3?CP)3_D{L6ZbTL|$lWcIXz}_679M1#^6PFlPw?bc>-}HOrb^Lcazz5EW@) z1KO%Zl8`&#{^vX6xXngH&;c+4u|aRD7^pD>hk7X&U%%9f4Vcxw&H@8_&|^7>d$Qt!-I=3ON{tGQpoVfm z@a7i!Rgezv?}sK&4n4__uC3h%-t^jpt1#*(L02wHnuiZ@lPSP8-59> zgP)Xrp9{{#U5ww9)%a>JrK8&6h>?h_1mD)K(*h=P-nVbxraaFDsi|igaD{V$3tnpS zqIgRCaH9cNN>UOY3b^MXAc`c~0tz9CF);@hjOH2_&inTRt`)$x84Cf61`m0mVZzC| z`+Kw)xSn!SQpeq%XK4vm)AjFKT3Swz_xtOY&rXjmM+zTNg)VCEA8gJ5gH#*Th7=TT z1WD9^?o7APu^EWSfQl1ro(qW{AnbxB$9St>a%6b;Ht5dC#q(^!vv;($9UU$tHPqJ| z9huDzYOGbtfEou38R-MvCm@}otULq@#~zmA-WpWaSTrl-S)wWU>=t41z%FNDVF4+E zRKRCj>4268bV|P?;KW8b3-oOG?<08J-TbMM5s;;-2em2Ku?B{Q&CShzzP`1)LmE5H zH`JGwmRPGd>T?QeT|gZQ?r35V6zjRlKr^bQ{NK>3C&R+BHYG>GeEz#H3hX5l@$M<1 z1*xrFa>l2P8I9$+j=>u^0y<$+HeV-q$LBzX=tAv-=!G&GA{ zl@6=w&{)w2gW&Sz%Ohrcqs4}x;&KQ?e%U0Ugt8B+2!}lJw9z6xzqL$IKsq_u?glI9 z>f!?O7=G@@dxB0IFYWC)-7gd}K#Bkt7Z=(%?rd+nf*KO+m@LIiJC&A>j+39>xbs~J zpkHNbXsDv7Sp2HNSAxQQCsIWl&Kv>a1AKZrdHEhtE8siCD*xbcyab1)CpFTY;~;y(;fcapFU)Lb$s{zgv;eiyTFr~WoOb4|(1 z9^YXI6mzNeC5N3G{A9R3V z1+OTJl>bf?0L=yP)d>x{NPf~XuyCNBR8sU9TCcB3P*GE7%EV=yZf(uA2L%Pm32geT z#e=1IMsuT79hri#48HaYra?|x+H5aPin?IZtlJ#yKJ?Cv=XcDvs54k?crXc%fQEHj zWTijrfnJjp59u927#nI(cp4iSkxmlQ;-|txH|UC2)7I8jRsBLXyL~uz#tf;fj*jS4 zkQ7AA{~NLN+;9=OGT|qq+VuJd{^T3@DcNwId;jcOm2HV;UB7EJu1pXpQ>F8df>B08Gd*Vv5LVsKla0628j-EU1w)!x<&AKV;hrjl3>*R@!PlgxoOZ96Q78GE*?Uj z5D~Eha#+8|N=@P27u}p;EkLuLPM2L-E`Qx3RZW)R=H><1E5>_KNl6s$y<_ggm9_8Q zp_1q3e+S^Q18Vs1e^cdYugqK)uU$)5ao19z^nPUlDKR1n>b$(3qe+&j?rK~a7P zJ?1(Nju0$05fKqn`+{rA8B6A}vRxMr_7~WH(6VSM5Mh--(2$%nXmKz`w!Zew1ehUg zXxRil`-QFqkn%c96m(4l8JaE~Emlw!6Me7BWMMlFPUu_w&z~=gR0WLtXt)rANzWE* zSgH4kNlD`q5}3nV?N&0jx3BUvO9X==SS(*`l0cox!a_D7ArCOiB{FEM{L^b| z`3WKm<47?_Bur7A8%0P`WG$>rV3UYIZRZuy(AquK?GB)-#a1?mpb_Svj zQ1^FWV`o=%#93WWL9Bv+4>$j)h%c|(KW^VNx7EH~GQB%ea=1vgKx@RD=QWt6hTyG%kWWcdDE=f31#}gZ78p=C8*5{CseYAoFrK z8!l%zE^_hfM*mw4ez>4T#F6K5yjpHN91JU{STz^4Un(mrL2C%?-#QXe-Wk4s_40Su z^_p@}+<}Oq2G$zrEpS{33Jx9;B<=QsJ#+o)TQYtJ;L8^l7J{}LM8kai{HAml8b=@j zp;hCu+mrGb#4PHL*Z4(Sz;Q^!@PX_NA&cg1A|lXssRmgUE1q~*|3Lj(ud;FTad4SZdjm;JWKg|Zk*b_vQ zuR&=BB#1QXJWj#vfkk+aPp!Tdo)7{AInx{+5#hGkNCZfD7{Z70w*RJnJq`Mr zRix$ah8=xk)33Y{uBVR~H-D_C4a)P@Nq1-?W zFSbBdaZkC~f@UIk2Z&c)_t%0xeCULbP30Dd0RmRhJt{=7VIvl{OvFG8^YFw!R*IQ<|XX{X)9rf!L$$# z=E$l@4{rFk@qqyvJanw7;cDmY8w3Op7J-}`2ADQbX5!*E`$Q~IhGZ+eVKqOTTRJbuGOn~?nC3Jpncp`WIe6!=%fePruNs@ z7&7rWpoVt;KB(tt(1u)N!%|dGpo)~da{02IT|rE%-lEjShcuT^s& zMzH~u1MlLMIBr8?1^EqCXiHO5MokhpT1a}pLW`!zuU`cWpuGIIX)BPcS{n7Ht#&bm zY5r*dI7_Ci-2Hz4YAIm_VtOQ3VaX(=Bhj?b%iV?2*V*G6cQ5ZGzrI^QZY6* z1}7mR;#FFjBCKRnDIhF7)!8XiZbKS4@IT2BDCY2QTbm!{4z^-}q^4)rMzZ8n$xWie zYwxS7*y$LPFU8tUtE(7)W)7kHT-u!@E}QazLnd{}2}%pA1PQy#hI!1U-+$TBx(}ra zbJ+ZOnXDUP)3p2G1&KdK-`w72FBG-1vT|jWES=Z@{lGrpipL4t%sw?Y#P}y3dTEX0 zr+45cHbW6TEjtRTgV}qWA`4qx$b3;4Nay$uyZl~ei(LACr(?gyqk;2$SNO2fYpV0EZwsJ zi-B<9-@i#jRKDj*X}(u|&4|_a)!BNG=MB-56E_|8ygKWDAXXy76&h28#w)n?_MYbo z73t}T-np@{vtz@cNS71ET3GbpQBA_Du^nDehQXkG%@52|Qj)#HY)(_xr`O;p*%82s z!t19xj^=kM8N@V|6zCax$pCqDanO8st1?et>05d+!~dg2wQ&Ty<3+D;kc+ z(I^o}P7QpRLDmrci6$3K07vSm5`AmHRyzYmA;5(_bBM&pd>D@T{L>Fu!Ao_&roR$h>6Re8otK zwBbs3fNAFIf!#Zm__pIO8|GcDSNZB>jf@r{wBnn%+TcZ(=%l;YlL8T(*Q>|ASfgL{ z1E#s|q6q5f&n3Wg{kcaw62gE|r^#?+4d$uQv~BxC!`Mfr)JqlvTBqD4OSW(by||gC zA)A~&3dNhW%Xhxv>Eu5y%FYNUF2RmlZ?|V_^#J+Xw6rvtuS)EX{=DW@4=JaA{nE{_ z#P%u^b}eRS+y(5)Dql>=Cy-BSAW&kw71zmSaDg3#7wzlh263m6pDb&2p&uhe(R*cF zjb{Qdo~M-(0Ju;K@1Sp|vUKs2Y)?kFHNV3#0I9h8bD_9a;@_$Jfr->Idl_s07u&Z` zYPM&q>?i^PIApvo8|4k!+KCjk=N6JCV=y%a+Ffu5-e}lv$9deK%~--7ou~Q?UF}da zu(-HCDsP4LLE|4-25byNtM(w82d=*iiqnAB_%lPxOt1nd}3!cpTe^*(f@Ga5R4-Uxo04`7WeGff2J zisq7V`dnht`QI{Z*&I?p#(ZHA+a?g_1BM9VNiSZ6t>>_&}>NToOgD5w6{LI zzaZ!eUKa|M0$I8Y_GDo`g)H7mK!lErR#Rki=e%F-*>c7x+s zBe~**R!-lmu^Yv*u4GJ>Tp!n&%`xx9FLtshwiwu<&NClz!xQnQ)cUx*$0y2#i_eZ? z_vS+{K?&V;82O#XgzRjCen=UNkEF55IX2+t&?$9`e$b4AuGhRxB}98LCyePPV*{;Y zLlipiax8Bud~-wt#Nn?Q-rT)%KSMraRI?>sUy*JlQc~EMK55|=4s5)R+iKxAW6>4 z_rm3ba|#M{&KrFTxSM4C6ARr&Z^+@|hUfkh2=&Cq=m(6w7%GS?iHe>9Iu-Sb(_!CWD&Oc zebDNoNFsD>XXF%<#qv+Sij+-JvN(UG^L(?0#SH*1d7afSv>)jl9J-($26T*7Jhsdr zEjQ2PWlX?MMusm{db+G6Ylv4><*`ZECIOPxg*&ZAGv)IWCI$;-dYST@WP^i2$|G8C zf^au%NnbU}7coPVSlz!H6fI(=OO8(KANySO+)4`ZIM$zHmlJN(Edur6s*rP2|9=1w zB646X;=sqU!XJ63No(=>Q-)3H?bhRtWkV!m;4ixY(N9B@NlSxN*~%?%8_8WNw(vGy zohvE5Fwy{HhKx9f*jY+X za^;O=(4p&Xsl9!bd-|XW=c@SX^77VLyXj|z(P?T4%cw}m7eVRQuGRd{fO(B#{-{l=teFIWdVkTz~g2DMv+t*3@wR9KL97-aC+s)^aVlSh{fR z7iiGac?}o=o#Lr!;-3&bs^#eFBo1ir-7Y_IQCRU@L&NZf|F!;)Qm;at;Q_fCx1l?z8qLRv z$+=W5g^k7n8l;9xYHd6-#NlmesTI<1y>5FF4Ti)A56WP3QbgT}oZI^c1lQ-> zwNfOoD9TLcwx=vUDCP`aPY+91_;4?5f6^UcIVI$}f3EQSxthy1Ao!ZbTsBitx05($ z3c~(OxyZ28Q%PoKgngO_K+#Wj#XeR22)n@*M@CA&wYS5zLg}LfX5uyfhts2NgGaWo zSaXJQ@A<_46G`2vDY7K$G2eNl)8Ei;Az7qa zzp!2EM^Gj{G@ztPubeYjTPswRkPKSeG-8civa*SZ5;8y3k0yGtcx$38I$w!-jR)m3<(RXTCQn# zyYyBWAf@PN(%%P2mV96r3rIseaLJIr1W9sF00=>dz6avhqSvKs8JkQ@M?P0cij$$O zx7XRJdN4mohx72*>1O^}06l49ArynCr5$7hgb`ShPZyeK)mYlnkp3eKl$mTbBArrwhakBK~9AdeKH z{=d^`FKv;yM~cWqA@9(hi}obRDzO|7V)6P6y@ z_K*3AcaKdtiw+nSeU8Bk19bGq_&a2r*B|^JehO$;$z(7yH^LOJJP|r~UOzAKzLe@Z z*S(`f5G6YGzZ4C|u$@i1?~|?hkTOZ)RL@Av#|Rfe9Zir-SlIl(<9v||oY~9V zs3lub1^j2`?bFn*kS+ewZGQy`fnUok`$kD$wC>|9^6mwkv^$OP3 zH+tCqp2B+Le2_`J55RgMa{onk4zDw`Ci#`B08DuN24Dm3Iu@3v{eM#<2)Q)!YPL1_ z?j)%yYLwf3k55La%b-0REx}yNXAz(L+ak>?l!=)+E;hD`+Z(PA#RO!<8$WCS6r|mh zl%##Kv|jfJVY|q+xIuIX@o-t$K04nqk+^Wj^@|$}X zy-14mlPBQeUnosl1D+E*Eiad;H19tylJxsd1B|Q6*WZ2BkW3jh96Y4T)z$wOw;_Wi zNIXqB>(Grnse57DnVF70QgTfEv189$(?{sf=_3=8rWEA87J&or7eW_E!CxQq4WN#H zUdatk0+^q_;f6R|?P0`LEKq7wGO=CDL=M~$m$_Z3ZW~RXS3ydGiTR`FB`q_;1dzDu zraNZII({ML3mT>>`r56PADd%T!K4183lM70wfYuFh6g`;zF#>8fGOW2`kQ#7uVwZV zuF_vX{D(yUAL`yap6mS$A6E*Mgj7Ui3n`<>CK=hAkdhUVJ+dk!S=o`9>?ov+q=iIA zH0&MOdu4ntr*qEdeE;};|Np%o=W{xr%KQC#zh2Mh^SYJGj_zJ+N*_{EYP|^MLGQ3&WK;6Z6S$Yc(0?!srg#4*ttCB^aqXZLZ;~@pZ1n zBJV=!BdP4sNuxKuY?6cfkIwS4`DPqXEnZLAJ2&g(vsO^MX;^Nx75qb;u0Ng7?T zVzo<9O@2*8r_%Y^%Ym8s=i`=BYv15?q8dtHzL-wU&K|ITmxTb_zkd9)32$D^n;^K5 zqtT;H{Z;nGa7nJ(c@Mo@ayJ5eV z{LbZ}KT(u_BmK**p3n_K0-Hy*4q&~%sBbeKy4(&|)iG2*JNBwpX zuP%-49~>WFUQUZd+~I#Z*yQRw&J?(|7xi@Tpw1e|uw*ek3= zDJH0iKx0xcK5^|~NKfANXM=MWUbxxXyyiWe4o@;+*!QGLHU%Ch6csA_nY;^|zS)v= z&5`ua{b|~%$9?eOXY-;E;Zsd+cQ{iXwpP3jafrNN^Vv4-6Kx8iaHnZn1;ldmp<_CN zwER8P(zl{t5R(u%ZM$>1)#}uvKhYj);Sry72+_#`-kZcdDJn=6HR%3LI6~Zu8FElS z&(r+*xEqHLpM7X2b#~kHoTW|O8A3ax0@ISx9e+0iM&hXN@b>YZyR+T0IOF?fz(0TC zUAXVxmwUxo{V%gH^V_rkd~$)(GDF@^v6QK~y6-Kvy6Ii{wl?qN1#7}>Rji2v9yrtf zy%O+C(?UJ9q>uN?>LGnW(nf`HqePc-;R%n%6@lcGNj`nk^NDJF(CI5f_$>4Ge>!~lAg8n>2a?NHEC1qge_g`^ z4b@$Las4)uD}Iv&jq1@7hE_6 zn=;dVbjyv>OcW#w?l58U%GA*co;@9v64g_tMQ;kDb}DuEM6x$dCbXS#jDI6iH1*H- zT@Fy!A}G7QE789H53cdgA8ZorHuP&ctICyM);AqwNaNg}GiKl9UR1Qucc@h2@sRt- zRilMPHN(G4p1*&Llx!zail9ixvP{+b{h04pJ}al?*^wTuN!wTXv1|NVUP(_IdtxSFzo{#$R50QoO|Mh2ge5H0v*6lhW|6}FUfB)d7VCXwd zyG!&pnEP{R@pGp|I-GRbU*wRn_e?j@-eOn2e%NMbF2#Q@<_)dY{q0Q;6Y~aePe?Dg zDDM+HPUqAu&^{XQ{8h>5YHl~ZZ;QfzKZJnL52 z3#7tEZxjD~@Fh2zRssQ+<#Ut!uDa`1h#h^hbwqs32I)2h6rbrc((3y*)-JU%i5c0r z9}ZNO_nsH-kXQE&9~dEb&t=uyM~rO49dC3msugU_GNFlJWHbm%=!=X zND*w@8n@x5kcMsIXCI%tuo@+o);X9#HA}vx@#oZdLwlLTT=EK*jF`6Nn_VfFA8pkD zl1(jNzqK^en+biX?XGU9?$=uW8l&T4V?>y=<2YsDC(et=HDA6cEPgI7|)X@76M8rJ0StcdBX(p~~Ta_Mh6 z<}8#7+y{pbP=z_#zw@6sas>Kg5=IePMZ+&$gg+7=Mey;2Jx$Hed7A61Xf;MVN*kX= zRhV9yZTk6V%(r*_UotWd9!aG5nIX%~rg^#MPl*E;kJ|*#1Cn9_l60_n`r1Uqbg%%e z)P%R5)GPP92}QUYH_FDYUibUA($Y|Gk3}cLh?wwo7B(sEbMAE()`3=yku6M95`BAi z$P_6atgtZ^(zqP(r?`6~c{n~!8O!K&$cqTE;%}!b7(L@$DB>%1-R$MM{pK!ddCjw42|@dPrQ}F{S%py#_X{*s zDa0+jREVnV@pzJxBZ~j4eU4`MAO|-O?IUKwOFs&VPs@=Uh>4=0xo)?ymtT|lRenk^ z@iU1+$33>2Gm;#XZEbq5#XQQIIec|oI-HeN`x?9lnn9$L}tz|zCuTsa0 zQua!ol+yCb+B;SKT^OcJtZk%}f^@XiUoUt#UA8}l23+=25ub+O+mFDBu`su49b)p^ zUmX&+{*8(+P{8bq-+PHfNfNl?$2~l}clGVIlXUoaSy_o82Y0grPvPDjNbo$bcxV36 zfo+dletC6d!!&;X%Jjm(nU+0_gFl5=EvJ9osm_Qk-5KgKJ@%)vbt5Fz|05alBKH)f zV`SObd?~>B^}B_*$~UDn4d>^@A583>ZH%0ijr3Qz3^TLSwRJsY!j6{*zhIA)7kZTU z=t;e;^_7>!$L942+=-+H0T1pnggpV1TGN7m8M6BZ2bmv zga>tKtF`5|oIGpl6y`snPO`vsXUZ|t2sM@%^~=j?_Z7}|ZLQEtN7b{mCgHUd&^5$mA%_SLmV zUw&zd+TT8WmeA{*=uJQ5Fl+turPdk`FBr6W+5UN0H{Y^w5h$~U`;C0wsEa(0apx%1 zeWIKhR!4t1Rb;e43(?LO!G zBkopBirSsBJ-x{p${(%-l}wm;2k0H83X+jml4aQ)_(bLrpMt;vzO!+iHKJk2I~c}a zyg2mh1ckI>w?{|4DV6kywsW4=5m8o6SWl`mY;!B332xQY)V_Mv>=0GV!RV;I4^3{7 zqWdmc2)*w7(JCD!FP3zpOnBM)uFdEblFYy?DZndVjK(!KU!9BFUo=-fOHC{E4n7Pnu@*9*umU zb-r9u=Z(=!LQ+mHJG~^``GX|>eTSYtHC&~)Jdd5ZKZ!u3@|c z|NKGvL-h}79A-T=9qSq^{b)wU5Nx%ybeez7t4dr@V62Nj|L5zxIobUFXggqO z_cW1xcfxi{ImV?ZG>q`yI&m;&S3KvA&%4LaFJ9Z5DC;qmsIQcvAxA7ISP6EX`vmdp z3-O~7&edVg)ii_`F0@sp!_HRw>~~{=Zutzhw5TZRqYr}>6N`tD5js2{|aTGmcDjmq%Oz7pv1&+nMZ;m z>hyoDl;x$PwR(#?21xvr*Y#d`WLcgZ;kMehA~<{RQ(nF7UY)Sj$xjOgL5CVPm&RR} z$pfp>Z&&M3yp#yZilC|1Qs#RSuHOPU1zA+#55B$A{Mb{w`;lzs0<{-WirjjbIJ4h{bDbJeX~&eU zZ*E1w!lta&@EgK~V_6(UrZP1I1YT^7gjqR{I!hlrUOp7kVo9`Gwmx?B&n7u5nO|?u zDUd_to4?#ZO1hWG$p4$;r6UAwct&{dD|t*jgZ+R0>R*>`)xn(~Dp$(h12mY72pI$+y~SJc1e4`kb2BeDx6-!t8(YK0>btrsl0)W) z|1z2T^U41_Igg%&?qddb4JrnTpsHNmr;`&FJGXBOc#pBz>%R!X zY6cuib8@Z^@+luVa)eH0-~MUVUH;Nrgx%b@*GW23yzOwXEST31DdQ8mRpJ#FN$9mrVWskt2ofTFq$u&Ja zJ|H(ZV(wiI8J&c8XIq;-3*}yIVj@i|tDK@DM``KXrhWH~Z!`9djvl6>5@@aX_x8Ur zzQn{&;M2m^Z(n89Sg|*-@_W~~`SxzyX1fb-mJ(k&RNX#Jp&GYV&Hby*0`oudI{V{R zb#*mk=kKFqvzG$aC`rXnKkRA@ocs4psqHYtyZ8DJCfnE{Df{pNS^bZp;#Y9#eNUQF zgVxKhRVHt7b-GG&H~%C*t8pQ@-wV7-}3;H9J4ArK=m8N$4qF3Bug- z=TwYQNl7Yfkm{WL6Yel`ak zUEjcfpE?+llc*>vIXO9u^6CtMzy_m7v$C_56NJL6Oem5gHn%HasX!3$v9^{MLI-<$ zbsZhHhQ7L31V9k7FlLp65u@v9VkN67a05;W2w;kGP*p#KDy^+rgoM5zVk?+0N|Jz9 zl>YcJ20D8D^=j*y92t>URIF=kWH@CNm7B{onL6lhX>A<@YGi9G=6dpVx3;&(gR49G zl?(UV!oniE!m+dyZ;auX+S*@1CmsFut8W&R#3xU<{nWt!x^Y8T`eSEjf{Y=%E?wXe5p=+iU0ZXG?Z!4^fRlp+Kwrv}fFU!Y+s&!N4m;q_q6V*D3?n5ZB(&EGZ5%$K z_v{jAgigZiZ*CDvr;;;1e*Bn_7Mhn`V}Dg1-U3}}H+*lbdSONGl*k(1la{Zw89r(zm2D2a%O z#9WTDvQ~Zne&`UC5#-1-f4cnolFn1Ee&IryO~+{__npz_yIy;hgT*YJm7dOe^5itA zvu^tXWiAw3eZ}a;z_oW6FUH_GEd}mAu0>0WiU-v7$*p;Nkk|zH`Q5ED@w*=#{S_?m zz>!kXLs@lW8fe(~M55#oLH*SgAz3kt$(O);ZU^})$LkTAb| z`&L~r4k67DhP+-oO)Hr7=+P`Vl%TLP`klV^0~(aG~W0NL2sfPwK@8<&IE>PrtuCIUPFm&G5b`oTCd#}SGi_?8) zB_t}r(`6PB`Hg|=7>9E5Bzai)c*n~rOwv0?0$tdSWMaCM*slL9o4m?xBd5Y5MKz{xXWzC;l+tetR9?~;F({CluwDR z<(+NuvvD`PexJ_ak_ zlrN4%bCH9M4N@Ty+|BNC*QW?rg@v<_zR~Bl$BXu zd>SDLs&a60`jAZzY9U^j%~(DztEQ&r?!FRwL?q^faX#KDH@DpDw~J`vBF4TiP4z4- zEUbevd>uC6Xf;v7Z&*KiRS$BaoDLM-tK z3EV3bZ8&_q5gd9ej{0GQaw+B@&d$z${3!1kEM#-HwDgR4HxF(2=G_&st__Qh)C>Kz8m}4T)H$p5GDa?0Fz%ezNG79C;o>a6}@e%xLZA#w_RL(Dnxc} zdU|?h<`@?j2JcFd#Kpz+$#5Y^EsOT9(f&6sJz5YXsQ6SpxExhblNnsBrkNUEyS$*H zTfS|Sp1@bx@58K?BKHYuFH=PmcPTYPmWBpKX6deg#d0cITJXb!T_+76`Bj-zU;sE) z5`wV|WAyoGCDN^7y5{u{5)$Y{)#owp+s4KQmUNcc+ZmUApB>frb@l4s=W!bfRoG^DcU&iN-0&tl>-lb>Bi(4>%v$bNqJUruHD`L?kX?_WFL93hIV zH3U0lc@i>F+kR$esfY+t-++DV~0Oj{Lw`3!4pMb|IW+0@pA;o=ac0=Ky6 z8OE??D#~4qEV3h(7rLLG2;%H$XAf)LaE}NI?odzzs=p2<&W zd*AEFvAVnKR+yT%Yx;`Wl8rjGOD60f*pQZGaX0yZ=wJY&-g}+XwZJjiKVjDWaM==VVPx2V1)XQ;DfujUk;J~kZqk6Pu;A{L+|M$|PL&gmOAAKAzG&m$k3R z)XIue|E{VtShv9{F8V)=OyiEa-x6NpM?%{;3{kXBp&|0ns$#RT4vN0{rVnd3&Ypb_ z5yOB$+nqaiw&X{|44zFx!jX`}KqOTy7N}_@f4mXpDaPlzE{tkFB2N}J8BfK-M^^+2{ZI5)k-n0RJ~kcL^9Q%zDNUMt)KlILIWL>9Du8JWoy=8R*Z4C*OcXQ_qG%gc%c<5AV%fkM>h6BlV(;fA|nWzoh2ifjq>E_ba!)5BollJxN=; zr?oU0qZU4Xv_$aLc&MbLG}u!md88Q!EQ8n$Cot~uOp!Q@K-~iE&P1mpY%knh3;W7V z5C9__*LX#bl@}D)qmGJ>j)q3o@Y$tX85uvJ2H(;=Z~W&5pVQPLILu{fZoxfsTIVvO zpKbkOtB%Q0zr!V>6PgrDpK>z~kF-8_tn>-D&d*4gVYto~%|sbg%kt&xyV~FUQY{dW3nSA zn>@6;?p1NU5&nk@5X2(>wRBy4=`&&*KYvk0g^@$Uu_WbdSFW^lW%@~9_V#{#>(;g; zo_p-+C|2s@S*M=Z97FtuKnW42a$}V%oHA7xfel)!*tobe?z4l8zX;6D%%a1?o44rH7w=kheZk(EIc;&r*1Id(|TL~&Z$>RU5+;d~s z$t>Gq^l1i0_@(82RVoeDCifo@+-N7{l}6WsB(=4S?X|o>qZ>=)c`1@`1r|Rw4V(Sa zBkE=o@p1~*46N$4kKe_d_PhTyU7gnWk|QJEw7a>N+=JY01 zbKsCa>iMs^i$lD)aO7yv+&vnEJo}|>SK-T-HKjLrQ`O*+dG{qGhDZ`%gFxmzhBEc( z(@p5R&wu+B4J;=n=Af9E7}K(Wx;kzd+W_L?aRpfn8b z!YTRrq2ws(BDk;F+Ip`o^YV_lLoX{ze?n;a`X2dyTQ?66cRWgw|CWp$gl|8ws=`U}7Ec`tEBN$LPH+x+BUnBQk#t#C4#Mv^haJ^T( zVGj;8?^@+fXWpL}%|Z2AEtuSDXb-t`dwr$XwuH}zj`|7vNw4*go;AA8Eaumwp_n$Z zqB&lywZvNCROb2gQJzt1BJrjQr>Si05Q_bo2w$-m5NRa$JXR%=OPzD zChY_<9C9yAUtU>WCfRWt8f=Az5F41RFD{BB0vj53qW0Mmks`0~gxt)HE2s(^_&dOs zgWP&{s3j8;5+Fsh>3+2W{g;EwSyfe40|OC0zS%7UgkQf zw!)p2&i3~DnD;C#{SFl-66Y&dt{{byKv{~Ld~5V(Q4zm1lp|+R1h5}$+e1RK44Ho* z$?N3gWbg~2?M6;_1tuDg9<8mf&wRNHn+r&RwzOJM1~W)_d*Zx-auC)8Hb5W-KZZLb zWles3E$PO4mMkDLCgx60|JZ9}%+UL@v$17lW+sbyxIjJkf$!$>CFJ>OX=!+uPP0$H zww-wdMVq^aM?gS8rRNGC3I*h_B&i6@1J~&H9OOne#3)^XiRjT05nrIEla`i-)a|KJ z`C@~}6r3fLTz)IDIpSEuGH5_LCoeDLxjc=^MUHN}^ayHce8;fR(2FSh;J3meVGB)Z zcJ>NtnmvbjSlHPsZ!F~0{3rBV-cx=n<)+@_`SQ8d(}(XH3S3ASXE%MWcFUeUz&I~= zwb)eJLPS~H@BR{pm=EzUQlb`8=L{N^U3JIx7kXEQZqMFquF(5HO5n~B`HPe?nrqS| ziA`lSm^`9j@RFLLsr*{SWQGL4yq1|m4?l?}M-;AN9Jx9qe~gTbLhjIiO~c%SHTSBO zRsO|_RUBt-g)sjZ!$O%ERJ#Vhi@v@-q>gLjMU8fWk&%&MVPOefN5kc@OvI1^L6vW} z7}nd{3k~3>2d03n&#y6bRQgl~2G(M?ZavS8M)BXIje|$-lf8o7!afG^V9-(S-P6$2 zgwq3terj}K$}2oj-YT#(;N}%^`Ye3ab+f*7DJ3#b)%yaF^ft?->$RjtIRYBbHkdsG0toH*dmBVLyY#N$Rb` z9Cfk^={jsPR##SPZU1vt$VP}=SNBf(&XCc1s`#nbk-Cppt%@tCSK=avngg$pOCPYA zsP1#^Ih_96KgdSUR>9I`hQ(_lb4ukLiF=pl{BW)?Ly)@S@sRw3I^*_5-%Xlqcw{vc z9#8O`p1i?48Kbo#@?fkeD&`#fkE>Y?{50-qSq`ci-{OARa^-mx5b0XDpBvIKPa_(f zJ}~+RijPg}moTk7o3HaGpYnxE>8_esz_%l>7BBsk+H2w8Tk*3<0(R-ga)h;_H*p*cX#)*XMG`1zIShTw-E}R;o{%ZE5I|pwX{UG zvrq;CszIh79{1>-Ze3C8KedVjoRpN*$=TV=DP>cR zg=+Vn-MgV*E-2u=IJEEmE@9#1_dquQkX-CSqMwU(bb9W>YQB-6-t=xD zlKg^|nWuR?ZFJ{TH}V}R0mI$_zSk})52ust5+XfbT94;W1& z@}PsqVHd<)D0s7vh^Oh{Ib0>aI#ny*KiAphlQ=xR@cHJ>l%eJiLz=ZL2QD0Pmxy;? zJ4oL%vZ>4c!K%HKsX#9|T_)--1*feI?c0>xX5ym+`?ihrmG<AL@AiKSs$S!r+nWfS z>K^3ib6SpDkY0$cKbc`gW|(>7q-|%3RL7wa!V<}UKVn&zai23W0rl&TED^_)6@%VI zq}hId&cUr2e=x4~=~upg-Vq7-X$2y7e~fu{+~Y^+!jRs?^D_O zeKisi$^Y=i{(tZry`L8mM3EMdI&U#K{(3oW!(+zF&3D(1+gsL9$Y5|*_*S~2j%jZf zUjDt)*Br4Lr}x>eJpxaNF32!717#TK?Wv!C@9c^sN0k}{ZKir znVPhkz=e&K)eLV5zcb*NER@;Fd1&2;3JA;t^9y5;sAiQ;z5l)sLuYpT^O3I~nS{#- zT4aGT%M)*sx;OTd?4To)Lv#P93Q%!PsJJO9zYOVAbuo(4ht&-sJd<53a%hK>kCIZb z9{0tH8^vqM8Xx$#hO_n5;Mw6Y)x$=(WWqW;f`>W~- zai)C|vwl>uF*OpZGe!bFSt8pB?!N#?o!ahv<;sBC#NqkkYS>r|EQp>Z1l=) z2B4~_s3_5+%IgnqiB(+B3JxX}Pwwg3`ch{_GJqUjx3UsOLVwZgJVoP{HR8!$Y$(a8 z-X?wu*CcT>6LtGz(j2Sy*X9R)&}fQoURKwodBjj9BN2Lz1PmDpDGNU}wDa-LW&1XX zaX$>i9Xb@XwalnZ78Vvzzp}Bh;dzwEa36#jO;%10Y8A?_hiPdC1_tmIVXFp*Hbf&+ zX24l6T!YD4A!=V27q*ONeHo;C_W~KmokwnhRui{s$#JZYx*=g9q28C*PM2q8eMIl* z?IkTOtq(OdMS9%GxzQi$X9iLPG#LOF z1B(5+znoT)eG@-BwbdsS6l5A)I>GRr=10r#u*W4Lrj}D;xExj0#*1DuQvbQRCwlMa zmS#5#mcO9%7g`g(GAhG#l*{L1ads)|)07{Ut@2(*N7_zxbckTg>^()UEUkM5;i(lN z=~_EgJUpx}=qTG%gf5a8SkF;hh_8@%eNo8%rwQ(Uy!Pwm>2g0+d3A-Y|DJt*Y~Y%J z!07{2(HO(Q8+RTH@>`7ghm7DS35#U5!{79jScyf(y6Gah4S7yHO}Se$Q1yXb_=moA zR_?;+!128C*fT32ZZI!6PuS#XMd=rg&8@6GNm%<*cz&<5HZ9j4qeP0tv5!7;1SfA! zc9w3LeZjh?G5*w^SQ7ttJNF!f=g~Saj}jJ~2S<;h8wsHHWpOc3dGy%oo0}=Fd!gt; zp9*&`PRZQE<2PJSyjOp*1IYB;YO?jhFegQgAF5UILRR~k_$O}Zk~=I%Cs1V z2TJ=|{>bFyp5|t$HLehH;5oSIFv2)0yK_1SmRLY68_wP+Y`TB+siBw=q{kgbTbreFq-o%R34m<0dSM>x z;u6#B=suY~X?v-bSH->I;kd9jPfW~mSEy%o zL+4Y_liQCd0rq|Oh##lk+9WG=f*l$Ve^`5{fbDh^Y;*J}KV{5*D zZ>jzGDdfhq(@eP|-NbjDxx=bgl6yRs*(rnY zepc3F44W(U-PI0l5w0_RauT6=`PpNg8G+$_k~>o(HCm=*#jLJRHMOc$(k^h!ZbbUe zS(FNid|a7{FI$bY;IVHPadMVrVapWTn8Wr}6gc&G^BS|A`z!w8e3;FTjap%pbf*V( zktgOU@-AKM5+xwz3zvWHJf@?p{2AV426}oh@qptUWn>yZA0M`rAUqmT)sKyiA}*ry zY>Sp1Do@r6%Q(wm%?6mE$L!`=Z@9F;{0QEaUz(ao$jDy9_Y8d;Y@)#30Ffe9#dndA zpyPc@o@LA03f+(`8y!S__jXq&r{KGHNk~bz43yyKV)y(}W5v$*G>IxR-|9A+#!X zbuj_~#S3j_qvw|D_VxvL?o{92xrdBFoQ{_E_jnt>i75r+R`1`q)Pa?eQL0d%=E^-( zf;cV#JiapkVhC^y4ViAUcC){>UN4-h?%%(Uh16%CLErc=_|G1+z4VrjVDRgiRl0Q! zB8%H>^$&!bJ6q**o+&QuRi@hAX7~7F*r`&{?y6jhYFVP>>lYcO1AAVCFq{!-GaEk0 z!cy_(05Z$3w3R?uZmR0|yjopv6!f}gbNR+h`$UHMx#N$F^b8k;$38Oa%bhpww9RgDln@U^trB_tRy{>_bYPs zhNn-&VJiF_QFFZ*ntVp}FUHJpY*{*%$hGY{99x(dcy>BX6C-#zW$pZ*_Gsf46mT zXvm*E6rC9K*8?7yEg~Y)Qd6(Nozjix2VxJp2p;%feEi`@{%9w{pYQkTDvrY?b^u%h7R8eCZ&m1>6g981$6b4{VW77{s6C=F(D8X&D=p|rFohIU1TIcaKtzFp*wz1b%~?PJU}D;?+F3myiIW9e9L-UHR4`M;cYbPGgdURz zz8K8Z5S{#d?fJ;xtH3rC+$A4m1aR?Uah$a)?F0k_Q%pHo*(4EHTZBdYO1Qu=X%H{q&qVh+Fv5`;Pw9ilX zy$2pY@Fpuc*%(mkIDhArB5ak-^(h}3(rN|}Lf|K7}s3$;lq}zn}#xg7-X-# zaYf7C;JzTT$&|#^46w4ZtH#g2>`5a7f1@k$+dy0mfYNvG-=jCT2<8Y*>RC6@GjhKl ze=IpGMArb28C009+!GJ}zWigfG-g-UI$mzBRw!~%p^>YcB&u(YikOCYg_BIIsNACcd*3NDb{CYbSLc zw$@oWcrdn)Jdcz=!!6%%wY&bR7_kD4(`t=(UCeJDEp2sKlI+~ zKKPKNW)|$)-)UH{{Cl>dp#h4JU4HNE^Htm$_SQ;NoVhk%7x%-@ z^p(?PWux`h+DRenfJKtLz{x9$7}$_d9AZ)aIKu+ueyA9j{VWCA4X3VRxC2Sa(&*1^ zm!^M>j$Y8$2i`q_M~nL(@lc3P<^1_iAf!yk1{Hura98FLz^z9gK7Y=8sd&=4wyiDh z?)j!)PB1m9Jt>%xHuv%bd40keu*E;#rM>OLP8sNgC`+^Kic9d%ElAXD zZAlQP#5dRGkj-jvPyq!+$r~>3gs#lw;SY{;sEwaKc>?3d$LMY$y+)6yRv3gtxIAIe zqxOg`ppOr}b`X0F%GGJuXZ^}msPvOMy^72Yh zB5*A)UqA1RlI#D2Yl0AN@3m%$gNiRsiO9FWvY9Dcf3)yv9kvUSIk1xgHYrd|?cTfh zYiny~kwusmVVX(!W0My&uj1bSv*8Pbst!;2{aCLR{T+qS3f_q3g z8xzjVp}Jy#74YzNbGI!57p7JP^0akyl$Vx@d96~#V*R2&o=xx^svcL@3t<-YEzQka zv?^H0q0mD`%&zocdUi-LpN@G|!?cGHn|Skg&n6nGzH?ezDY&ZY6ix$XPEnr?I*Z}^ zRxiqVtI(3^tn}&m{(T8VC0ssSo;!-IV`F1=!IDGP>Y5leOcOhIEYiNa%%d9k#m&nk zKutdG3GfdxLH>WARY&?eeJc3w{dO1ST#yG+NJm_~4VraEbs97*cO!m>nS|1b zxG(&idO0b(iB&m}dE$ku(|nO`OQzDA`S))qtUoISPrvgO8gNuspdtJ4RDVds>l48f zNsfg8!42VI`Stu3>+V3$k0~t{m0!oMJGsbd$N7_6*Y_4YnP z(+f129YjP(ziyOpNJtoiiiRWii67R^Q9l-DW*@MZRQ4|uQK{k~kn(jqe-qQ!3f%5AH6d8+SwU0rTT3AMy;gv1Z}dmgKt zl3H{Q3<*IUhXw+V`mKN2FcFz5i*Ng%O(9ib8H;4`u8EYAEkgZB!U&@4quWS1A!)F& zndl77&CM+=bO1fqn|A;H0kngE{yeyUzpthNfP+YRmh7+7rkz*ClH5^!DDmwh@(x|~ zp_N~mtviw3S{b3F!4U=Q3)DHv?;L!58VDC19R>|VGpq(>PT8h?U}>IXqOd0uiTrE5 z&?d}n0h%0#2X7Kd@|FJg8Nqy%sn~AK#?%ZMis-;ayskwLWe6>)UYyKNsYekjMN=gd3xz`1F z`8+)uNZE;L(>GQ3{P^;YEwVO(CRxt%>QTRVgR{zs%VsNa z3jZrpItu+dn5hTK!09&n$$MCk?%g|d4Py_{G1Jx2Ie&1`hUJb*W?hoT`CvkdwyS|x zel-d;1@31@0Dg`Yy5;+eDg@Pl%;~-cyPt;H`tQAtepL`Xa_Z<&NxtbCj69dVY-E%O zmzN~hH8`W!KNM_i!#JIN5+HKC4(@$A=nQf^SS={aHO4l!2wO(3v25o?FU>rY8BVA0 zP|Rt=X@oQsh{Hfhjvlx7bnh+n(e6?hahoWmYaly9r*+5nZ5J;%g1d>*A9V_x%>fDA z4GRObF)>@TqgEuZhQG&XPefz0q`GG0MYbDoQ^qm9#T zBZ@KKD+4>30a4CB2zadP9kiU5@!~b+e}DKf&A+)XO259rxj#8mjUx&%)#y}{ z92KAY!l%syVUMBN>#mfP#`W>P%uMEWmHPBeMkjjGupbQ*j~FH#k+r;f-s@F#SGCE; z@o%b`E${((*!68_((cUIlw6Go?-*@7(R2#I2>)8%7V6Q z`}gm!a+J>UB1<1Y*ow%r_ zt?k@U$w>IRL?f2|=^W#xGeiBK)GO())T>@OWZKWTRvG{U)4+~UnE`62;dsKVer@M# zo)J(FQ4ncsYRBwXJ8BLMR3(o;`U+}8AdNm%h=s!?F^Iv=& zfIRje85x;x$4tJ0w?qXJ8a}=+wY7l{N^&wYV-pj*+S`#|+}lE!N}R`HwD!2|2De3h z_~V}C*k^@>XoB-?Wj$Ic*Ff&~6!)>SW%Lgvbf$MXJZ<#xW+UdG-Wv!1RnwrXW)Ly5ozd0S^h%Ms*&lMN2mDsf@q9h=fMiaup#i2Dzec3p8TUdQeY;1W+2?rOK zg!kGHs5h{7_9&p01t`4OY46PYZV7(cm+<<2fo7*k> zUt~E*+kniefQ-A*c)`Fx?%cVd!NHR9^8NnH0V!)?YnQ|au;1TI@7QL!RYK?9Da{Tq zz50Eun)D;pKtsDw!X90wsA&B;bLCj>=$3?1lC^Voe2zIVldE;2Z;5fLyuC*;((csk(aNjCR4$Kx*<+3*CVVoMXeno zB@vq0XC{ttcC`{;x*r0{aFt2o8OJ*{1EnP;=v+fzpn=g-S#}sBfw>kS)ZB1)=Z&jJ z5sR5@u(77T-UXT*G%;lB!MM%u`$WA~wT_ZwLV=e&SxsZ(^@;Xk$O<@kc*GqBNu(|D zkUwyMmadCYI>32#@-AqD1-&?~j|f&+Sh>z^=i>4j-p{b)2ED;gI@Q!~`W8uBkpcW~gg~!g>9rXXfW$ISz-KN|+hPVm1KSHRy`LTw1Q=f9$SUb^}2; zse3~%1_lP!5m_t>-$@6JI<$3w4HY4BINZ63s$N-139JvSCcBe|hd+utji^aWZ%QLk>{dtf{k9z`+wRxRAKO2aT&u{EL9OR0zFEK06K`lPd-mDs_$-llH!yC7Lo>2KQ z4deDEnGqVfN5rCgh^6J@suCnz&C#DolNhLAQ@)>2XJn`mN`Bbvhs~GT4NY~OjY}(- zUML)%5YOxSP2iQQ^4^7)8LCOVHX61U`{o9p*L}Bb`Q^k;{IE93ww?L8mR3}$VUill zqqWU1Vst9y)Qs8(esL||IK=s>B-E5Kpd~+NdtJQmWhorK;Hw}_b+@$Sz>}Gs-BO0c zpR&HY8wB~|oSZ<@e`7w0eUt_8#I3r1MhAiylrAWpu3)JxD~_OI!J=fydEW+d3!W#c ze!0%btwQWs5O4w1@TlTp-wnA^q;oO*as= za&_|1Uy1^pj{Frw3(WpGVN^Dcvc@Hr2u&w%qz=fspcW_xgo()v?8@;1V21HA! z0VfpD4Qk0tSFZ2_v;} zdoS&246^Sd;B63uXCBa;9K09oY%DBd!Ngfxwg;~V1s>(`kFR-fk!65{v0uQG#gu{z zIy#HUss853<;8HnH@IGbW6f#o+i@Hdn1g~1fZMX7xyv;`HZ5HKF*>_1U%coq53Myl zOiev9>QZ6CPk*W0W62geIr}brspr^`Tk9X}WQQ2nFw^7}Z~6)3W&G2|GUN%@AQvj9r)G@vwqz650)vaogxQwf$CKKnbk(rv~Br8Xc~@YBZD#I|g? zF3G>y$3ie@Vryk;Yvt5me=b2snn-k5ckzp-*HNn7jmCjlS#HH{eWC;EVoI|%&~(S@ z1Us%6aGLIp8@IHWu(UW5d*5?xX=J$e>c#yvOPPv7ox%K4iZSF;7LJ-}DB*}jkDT6x z1sFXVFKkP!s}Lv^6&tPFAN+%`T;$ka{tPUZ7y5eG=H*HJg=at zr0~5}D_OYK>v0m9bk^hN33^P0CC}*?A3x2+NUzl!!X=^UD`PUZZ0J;MynKV^o_*9M zAdt3vdwb^=_x1ASR0v=$)+jif;sFd{M!{mD^nTHM@TufC2r8LrWY-s3fX(B{K4GiR|YtF{TDz0XPWYUPBYyb~x2)YZv1r>2{Ht_pi|78c^<;dZw*s=+a+bg{5Y;BQ}kps`po;15wJ{?t7~K#&Kg}HW4*K zwX=(%p@p-$2Y<4;wLei~DYIKK*HPJ6JHszpUG8F=>04)ZlKO*FFYU`TO3g2Vo3499 z?*nWM*L(88?MQB3?)A04;r%dD=wqSux~W=)gi+=L4ZCmk-JQDv_s@RL&+`(eMfOpf zjpU$wzwwo8*Q_=+Y6h%wI6DZ%W7gc7W{OTZ?=|)*NWD({H4z&jRo?U{#dq<;PB|I* z-be0hKtxqg$7)BiU4J+Bz2-(keo5_(qVvoC#~mX*7|A-JLGt+ZCuS5MuAPSuD( z5vnrMUAs!L5l+_1?%mi1i7q;=0q=PQ1*axOHbm(g!G%MAorT5keIM1qgE-f?gsr!A zha+di39aQmY@f0*V*4ZeI>34GEKOAhCR6~InVF?S8m!XGvnzQo+(*$N>(>psXmp4t z_F;1J)67ivIIpai0G|R2q_&q4iHgNYGcx-n&|TAtil&f` z&F^aXd?H@Zx*dre82J5P4fM~f++kio2j+d|%!iV2B%s+d9Jkb#$FlbztAsTQW4JsZ zTw~K$3FE(H>l;H#XcLX~M4b!E0}BvgX9P}fW5i+Bove9l*muCU>iT9_g-BRXS^K7t zxA~nTrUzJ~jU0N&J7YCkp4VGnjk_>;Rd1=x^kTX5@jP3zN^ZpucE=3)Vy(^MY4eY< z-7W3?#FoOuarfHxqO}d7Q?9qS1vsl2H%i>_9QJHn@@ypCK9j_stog#g#KCItZQ4?2 zSV6xo^W<8(*l(W-s^r!e&OvNp0|So58e*Q#%*AT}tr-1w3u5%Xn!qRZxeM)K)v-QP0hrbFrtM3(4hXRI<*lc!d~ zh~3@*wv2+=gtATc?pBhtv5}AnE;}^8l?;CvC=YdgY-m78cB#(KVro%jeE1HcEjxFI z|HIgOhBdiGYrD8CASfUTD0QI=k&a5Qf`Uqy-m!r6-b+9iprX>G3erTR_g(`C(wp?& zJ0#K}kmQW0YwsW5cdm1C`2!?`WWMvAbIdXB@jR(e1d1$cH$Kf<6=+OrWwo}7bXZtk z*6~C8|5#;|V>^&2Was^>JG!p@9GX>TElh z{c)VwOz4HV zfex9})v>I#z4#*@1Nl(xNWB{p)0+tp>xj8Bt7Z+zkm%FLAtfYwriQ9Sd7I`PQs!5m zBO0@(+#aC@Z;&~}P&I2GTkb56j?~xtOx351xow0q(g_b!FpJ(0{>hu@K5#ZHI@*|i zS15s5(qt+*eR!%HN3&fu-s>=|t`fmvr&f@bxSlp(Nx>L2>3a|p5Fm?Ys#g)mAv+h& zBL~&02D#rRcsMqruuD7!S~o6rV!h?0@b7W!68KFbikP?B0Q5PFP7wSSqNVspoz`>&Tb3ldJDWbZ&Z>bpe>&>#*>mO0H%5-DK zbx~^O@;la7SE|~|>a2#Jru;5%z>}1` zvb4Mq?en#N7t%DxkBbv~iJ7t8FXHlgFUnM9hR?&tZpUWIpWc=4UyTzg8lRZpYO6jd zD=Y*Pb_EG`I09VT{u=)5q<);`26fTRF5A=8%IMq2qHWh@cjUgkHGbNcz~526a?|$DQ9UxUw705mFk6DKY(C#YrQJ~ zUq4H$*^b58oh5pq*Fb8X#9`?jQm+Q;lBRuTEdE*VoKBlX%A3x~Y4U36B#ip7?|fpQ z7Z!=V&E}Y2rp*zdsgM{z8AU_0z}+K=DS?Z?6f~aY%1gB0U+v-4C#874{}LJ5JLsug z?I)MBDW5{}K;mx%-W>r>gmA97xcItKY&AG&b&GGGV|`KOvQ`R#o}C>UiV#Dc!QT5v zNLC^u%d?;{9@99MwX)qUX^PS%B0@a_BTipDZZYAsycba|;5s}I6A0~dtupfR@?PXD z8j2vEo&r6N5`yBf;_Pr;eZfn=v%h#n5Q2MMdGPmtVja^g_kKwk!rDueP7R(%zaKC3 zr2p^#{p1nxKFN9g3y4`0XT|J5te@XsaHt^tC|D7-M37w~Jkn)LnC_^=+?v=~)_ofs z7zF<$9UNT_z)uFWXnsACTnB8480ku{ie48KzQJd*`em^bYw#&vsb;mYbvb6ZC!ado z?+-%z;z(m-@I|nsgBr<&@d|ZkMQe03@#|MPd<&VO7U6flD*rJ4Pg$^>dBBl~@gnC* z)5D*y6HCGEDaP@My=oH9@z39_!>02HvP4{Q&eGx*Ew(eWu+SB9`%iEoM%(aI&&98b z_-*^UjN|{krYdv4EQmb)5r-slCmE0>suA_Jpw7LeBlO?@mgC_`+-{fPr97c7d~^S| zT+@wcsO|*4SHB-eNy;+ny2^CRMXjZ{)y4Hb5z%T+EJpU%AGw40n%y23z+-%cuJkhx z`ac<2zUWG_BvV%NTjqb>y!(TGLn20oOP6oCeCS9@dG>T|z4p(Kh>Fsyh(uv9oe$+% z?zQwkv{v}6$>r&!I=F1h zF*@HqcN_jIW;aQh>|1V!uPKFG~@?>mH&cE;C%T(lJXheMgki ztOl2LCop_#OE3PnRuIIGd;PXV+;^9H7C24M8D?0)RLeO3-+=Gu>E)f^zB|8skqrhy zsrnw$@Cmode?L`yxBB#=%x9B7fAZHgJ1_oVtE9+dJtk&q=iKmJYA zMLFtgQlWO_GJnSE*kR@DR~qG#+ka5zq*{qt~LE%OHYO zHc0u;hb*VK(J65v377dC!?j@f4xTH(|ECdQ+DC@y{AD-Icy;WKZrcEjq2^M5i|X$; zP>1lRVt8?(Odw!C`-mYt%3fT+h{|b61)LvA-@$l(n!s~?Pw&qN) zH!8J1{XykViRlqpA7)}{EVfngcV^b8kNI!Sa8C!7@l?~yZFy(9lr(tmbz41}{tn-P z7HtJ?5AvW<>hP#xpH2FOrXE&NrLUsh6Aj6O*ZUa6`XC^xTa&d_+Jy|B3WJDmbeF#MMN4>I_7YdB#agd`s*>i{7Ga3>(9AalZRJ*=9bq@p5a zKmB5T8cO=B;Kex%Y8YR@l@lO$QPC*IpU|EMz3D)VLq-OO;Z&X>bAEywqy6+9XrM1D zD$3a~Cbdt42S5~6Rcp?bghsH5Dk13n@9Qh-C$wUXB7J=g3_ejdfVxvZH%EdL6VZNq z-tT_WRc?8EBHu^poHs{#qNU=5A3WH9xxoD|kDa$VA$QCyg_8nd2M|?(qPOX@@asx& z(A6)oWMzgU=`IxPA3S{c=*A_{c;#eONK;xtJ2FO^VEVeg4yn+cXd}-IFu(?9Vu%F^ zwI!%^K<_tnXhGX8bhSbZKmf>i2|FqLtgwhs9)++5PPiC2FR$L6e+$ES4tToBY7g*! z@uQFgh=E}DtY2)NJYWfyy)?W=pu3Zy0r4puinqkj)z|#c(Dwrn1cRt^3kVwJXu+s} z>nVYI!JL4EPDFTk5fBU>g!q-9=K>v!m?N z#UWV(eRUXH09HXDq{plW!mUGa1!ncnFDQW21)*PBM+dxX!xaxXW2Amh@qY+o>oBB) z4T>o~g@`mufm_Lh`60~`2}r4YU{yGC?($C%J%P*!2G)SJ{)}+NM6`(S?=gOGs;AD_+vir})sS^|G(pCCzOWkpX(nQuA3K}#DAw0ru1ugA%0a1eK2 z%PAv3nr>)GyGd~oO%D#BD@is%5Cvcs_Q*E42DM-Wz11(V^k9A^EwcpNrH1->aj zwgFBjR>F_(+^GZR3+4sXC(MV7l9HyO@8{O{0U-#HwX+7G7b8}331&TL3#~CHh`Mk{ zN#P-%Ca?~(F>!w0BuMU>|MEyt8s#iA{@^vvBXSnR40YB&L-Y*(id3y|a8Pt0>EXL&!&Xxp$sR>|>p;;Ih54iT(0#Donfu@C-_@o_5Kp-C@ z09k3kjo|L#`sbhdu=`A5oMA4a1aIw~fvAN=ADK7uIWGpab3=IyEC2D25pnwZ}CTdCfS!+(K9Nwp7ZBlcJss>^*YLdA)~k zK{kfP|J}QH9Y(N%VS#@FEjWkX&$6|(wSXZ5H;!ET8#KHepMBe18v+mbCy=lu{Od{f zgRwO*wl0s=xn&?`pzAmccfTwRmT!J>@jAtIV2YkLz5(Oe8Nzx3djc$(QCzxeMrU#c zETO9v7Jvmhd+0-eylb398x1st^ew?k*9{9KY^rW>v49B}g_14QQs5FQef+c1zbEd| z%W>T*Mkb1Q<*J~Wu*_>-JHwkTSYkP(^9quF=(5i_qIu88lxU(-^IZzD z8`PeMCK+EAT3@1JHT}yR`}N<{RqJfJ!^~c3xXo7bIK+H{y0n4FlO~y2T4LMpBtQbj zUK=IgfMUPY{j} z1gr_xzXHGrAP4TY+*5Df4cY=9K2RYT7$_-0nM@mQ&x31gus+GWA$0v(W&(f<`y^No zOJ2EfVH3PiePEdZR7Su7_j_XS6<*$MPIUbwir5PX>-O0_{5<39<=K0mOy;YSvQky$ zYFvrTo2;SS5O0U^J!98ygq2T7?aBMK!l<2(!q^g8UPC4+kuO$xxD?|A@5ObIk%Pkz zrgmLNZqT}O&6q*RVs-8C@N{y!cJSq0NBa<;?vMmZH&iv{)1d@}UAM0>NrC&r?K}IpYtz+pO)A2TNkeMA7Z7MvDp0 z^X^WQ$X!lmA)CV|9p&sbOkP{eMR*TZ){;GAMR5{q>L|G}xX&T56m$rUDTZH3Nbf)R z3cSz&Ga(-eITujrfZ-fKPb|&MB%}X+Cp)h0=~;;bG++=wy~0a{k&&8UTnr`Ci!i)1 zM3H?N>TDnj1u2ipq@+6Y*U$if-7l9gemSE66VndMfcl>uQSPthqNOe}mVZUvew3YZBfli` zDM*ah{{}mci0{mg@v_CK^03|lMAbGekCKh%GvKh?+fPAjH+C*hZnvT71^nH z>@q{3e5)u}lm;6zvTbc`?YY11im@Kgv>O!M-}iDI?mK%n@SWt58p#u@XB*RxdHwC( z?3U*?AcAAHi}1NN*DX7eXE%mZfb%(*MkcF5wC|p5`lqo0tD*f3DPfqwJYC8FHi)^R zL|ic01}Zhveku^AHrI%Yiij)>=46X{YdSDHsp`?&7z=D^RxC_Q+$Z^U_E0s_T;BRF zGy$;zFsM#YWq~!m`e61QEDjJI6;eUDFNd0xa5I3$0Ek2o_FoWd(@+)F9fblZL<0o* zz$S=Unwk(`$_xw*uv_6~u!q@MS&6~@0f@~a#5fS!Y0Ts7ifTmo4u25NIi8 z5b^7l!V_9cU}@-pWdxce3bnpNM0_yr)J@P7JbU)6nCm(T1%;cVQ&0S3a7}b%h`{J#=?OL_}nLt0cmRyNt{E zU3bXvpKjmH(UOw#Y#800QlXR5B3CmopxPUl<*APkVGQ{wzPmddo(A(%bZ6~Rys{Ad z%0%TUrG%e9ByJ1eDb&`}<>Y$nyjqxM(rd`Yf}JBW6ZR;G*$50XCzE|kC=1Mx3l}aB z`t=MP#6j%=B-IQPY<_%cg&<_gb1etLE8|@Gy`Mip3NmA{=rX@~4@CB$I=6v@%6nld zBqOiMy$_}SObCAQ$4gQWOoqBajZh!bkl9Y$yQqmV$b!SPqzjTuRU>FMooW0apNfH1 zb6(*B4bAm;J|MK44eQ0%ZhIhr;jV@l^yPR%Z)@uclvtvz3ON7wik|8r-`jH(x{Y`T zcGFh;vK%Ps8rgxqa#gpK*QZeS&O*bR_-xKHTde4vB4=n z@Sy@%)&67H#m)OsF~$C{w+rZDb%PDCE5J3agPl6mytIIB1b=M#)LY_kZvef}Yy`sw zhZ0ypW!|Kx-}pwZUuw-RkOc7?93@~B!((GTm%13COUWZS0Zxo?`XD7GrJ|yu6R_+r zcX-xkW(87AF)`*l8bCoogM=LfP7rqj@N(un-LeYsS2iPssYywH-@Mt|)RYQJu&I-G zA+9zox1WKf02&jq$H($YIwVi*?C`B@iChNde3FucJ~Kii#_W>MUo55iOV=MlW=cV*_7UvJv9@> z91Xx}PY0aV%gHS-*GcfS{8>j6A~>|)Zzj}xvp_wq`{(ZFmBaD;7mGghLii*tdR-gK z^!$8Pl9>au+PUT7J5%NlGSpU6oS5zMI_a-QaT{0I9Cg`@x%nI(vekIG<~5S}y^g60 z_{MD`J(5GRFuD|q@|(Z4l>f|YM;cW$y3eM?6A19El8ujL1vq^HN1BXXOV09W?X0Nza`7im0k`k9VK^v6F zYf>12iiO7>9JoI^)#CH-PxT;$a-E1I;NOboTq?XFsTd z)4tou0l7LPiVmC54%`1%HI3$I((v&(YJ2YdHObM=v)n}+FSQpix0Ti90X8G zAch;W8>-z#V+=xUoHuTa`%dR8FJB$B?J4sTwBqnTm`U4UVhS27wzP0>ot9SdF5wdQ z9w;MCy~@hETef@=uHya{f8kYqy9qb??s(+E@tYZ_q{#PMnwh0pR?E9DL-ujorAasT zUsB8|fo-JOa`sYYp_A6Y9c++i)6^6mRBfPg@Ow8<^}TX7DS+~w6!zzwY@*#*?RHPz zeK3N91I%L_a*-oa9`X8mh`aZurjF~L4MoWJM4#fG@89KM_sE}nO@^;o#z%D|9FjVyr>_sdfYT-UDkLHluieZNd4WM(+1mg4{90Kqs4)}>X02v zRTJ=NOj&0K3cR@HQp!pZWkXFvK+uArX2RS1Cpo@q-0-$RnuK@b>em1F zrD8f_B-boTMyuS=v2Nsi*Z$`PPG}eyJl)&T{b5=WSb_CYS{OdL(K6uNCM2pa0g0@%pO{!G2T3 zWvc$#R$X^<-_V#kNiV)2VKL!%Ev?Q^@%b%q-`?5YpXV?8@ z{u0YQfC|EhL-x>PewTj_WRf6sW#=Ba`cYoJ>G2Ip*DXnCGRVKP-eVG`^7xsa7_#(w zduf?|fuaf*vKwJ$WzW8|;QyuZi$;Lj40>$?y{3u9iN>QEQvDkms$MdV4Yr*7eOXpt zNg|@OycNzEii8mdA7I=Eu$*5#A%|H#3^h~ge39_?@3oVB~V6BO8*0nz=| zaCfr;Pr%;p<_{sQkv+pB-_Zi0C1up^&inMa0?cOCpcJnZK3amf3`=#W-+?~+kUeA< zrPaA|g2L~=d+D+!TsRc_aR8j5BJ&2)y0J%l4=O)!;OV_qt%Lme1RD6R-QrET9ab?2 zB6pR>ku9X=bsDCe)-VDeoLL9D%_3@3@y{f}bHAX(+#B+CuJZwTRYcyl%UyQ12XcT+255nmR z!iNH=Qp>)(uU~3@bE{$o3b%_1gp2axb<oV637F`q0C0uM#6-_2~C*Z3wU z#jK*srH}uJlQOESgpyOtKU;MdE?QYBG6}8b?9;Sf?Y&N(+iS^d@IEA1g4_SH)N_Bz z*@HlJphZ-6*0{yaF&zvCPIb#A3Tqk>A-Zw4xjekcgKWyH)(e&NSA>E(q*DS_sy`sa zng^OjidL?bmI_{1X1XK5`p@+mEZXg2_=g>Cp%6Jn5xSDyX67X%HqX|uO2cNDEs+Uq z2_)vwc{K+O+X6zm*GjFiGvO*yMP+4EWk=C^HH01Z#pvMp6nZg-D@g9*aK_yxiDxPa z5X*LAv8&IYVs=Klo7EEw+JrTq_dHkh+3leIcTJ(8P2|ASi;l8Ti`=&Q5W+pjTZRK=q4wU6=&vF&ZO@kO_uKGWK>0po+&*{4>VS;==X#I8xo{HklY#wv+?hmoH@ zUuE&n3sJFGHKV7Gn^K7vMJ!qaRr-F!iN+W6aNpLDQ!HCA2Quug8;TXh9g5e`7KA&d z9Nk|pv&a$NYBA!k{VMZeEBo`(ld?saGbx*#6oCgIJsIJ0FSY_%we+Y8;Y( zVE3+(SfE#0V1Ja=oltf8qL=83d~95nLK)A?_|dXK?WKzFxU`E6odY93skF6egRVeO`N3ARc`Nmg5K_#&)d$1pH^j5hz@AoIsBNGh*^rW zgD7pJ))nh!9PkRnY`T%hnF{uywG;QCMY(^)`MN7utVc3VsX{&J>@UNMq*aa9z^Myv^+-R7b{dqdb4%=Je-!mRTi63kYX(E zg6T;9hP=*ZJW`5io=UjF;os8M=JO0C&TSpy1%!OO}|35M9al(a|<24~~wu?BxN&RQUeYla$ne zRLalgjV*g6ksHQZPEv`_df5nTst(%r>#0E^%f{9zl~zC6MBhn1M3h{J=SKG5_oy3lT_tGhc~>Ipfs$Y-fYpE)^95WUPBeO=u`+2DNV zkuCqm#t%}y_dbcx?=M#ScE;blv_%I493bTUH{w^DbZLsUtysO`yq^yOZD?lgqvz4lg>vnVS(B+ zH_7O=S<&_F=dX`_77d)&SBz6W$BF+C&c8cGzM(fdHqr{GYB+EpU4t1eF^FW0CuHpY?V#p(kkrEuaLy^!X;iT~n8O7t)5vWckAHrCF+ZY|Fkq_`R-Bx~ zezF$l=_0Di=P}HOMfQBnR|T(R4kGFowtkqUoKCV5^P6=0`5m148?3dToT zACmO43NM4;0ZPIP4x(3AEjnKYFB8Bv)^C=`r|56 zR_QS8QRyYb=~%%{^U=n+4C#=>z$$m~y`7nqn?T&r@!RK@6)7nnD$GZG`mi{=4w|%I zOzxW=MZ>P>@fbf@<9R9|$DmAX%YJBDSw5g)r~QORRPA4K9$rLkdsHQr-|Yx>o{y3W zjH6{^HD-B~SJ~MszN3HP3!2x8H2RLT^BIj@mfLkT_{w|ZzhR^X)wN7`s_s?BZnGcF zczL{o2=7~E_ZI5a1Z)eSRJjj0SByN*zk{@%g7QeLd8%A#aq+qJVZr=o`W4o?8LH0K zQ`c9^F6xey0c{sRIb>%t-cl}7H(jf(mM3VRA8n?zVqEY^tU@{X{Cq)tj!oZvapeh7 zV*>;0XEufzY=0%GiAzZMO1bEfge4@PX4ef?tsNX3;55kMZ&viYL?XP@Mz7s(4HNQ% zu))2k*!9f@7BG4RYsIcHz{?;=N7`z6S#Cw)N&kA|`{3urC?^l;+X6{1J=?mQi+rb; zsI4#S)i>W%G_f<|q^LaYCcb&}@eLX$W->ho)bJQ@7~F-@FE$~S(0wr*r;0}`r^Fw>pdGkG2+41>;7^nKi+B+51!GLsQ6bkeO>%Ke8vOsHih(^ zG6h9tC3$7`64gq}wd+|SM0Dw=5Qj|IvMit^)g0d*-@AKWtKQAY<>Ss4*_sgUptG`5 z=FKZxp77?H>ESx*gp%Sy4US9DseqxnLcLEbvo6ID>2X^DZx7=k^M=TG3O=Ne^)jX` zE#Zy0`_BIDrTGye-$b)Sk3vlMUw4`a`8g(Q9Gc?pnP}YCv8}0`)Jk@0c@Nb&S&>{r zBoBpmbq%gMdbZmuvVZ;8cHXZKei)d!@$qBQqbQWI8CAGCblL9iZf4GzRxg57=!~n zgYB-?A#uPp1XLgYz;`b_#y6k&0*P?i>jxgqyjy=Kc{q6hK*K=+G2H&{<^>t^lF^F= zZ0$x?cIdzTK|!rNKKz-EHX%B%!+7I8OR!w{#|9(o9EZ7}{J zFKSijcE8n+`3oNQ(Ax(Ev+vDgRq5r!gWu(*W_cE2m>U)|rJl{q-X z>}~YvyP88$+THwM)eu`)FpwO&%gU@A9sc7lZ>yU8=este zl{WJ~li^%PB<{SrIMf(2=7U2v8DFBNjO;uk&fWdoX=&Xp{f2x;O1fy zb>&So;CS^mOY`~lQ<^2I|;h?>l? z%IM+^VvG-sai5-MVeyAj9mDX-gxlm~DZesPZ*xRBr<&s3p1d{uB1RvBD$fdCJus=#4c-Y#CQTxSHqG+Mi+$A+7;wlc_>!(~-RUMX~nxes> zS;iv`J7>CI10!S!-um5dkCGZl%UXQ4(UTA_I!iTNU#DeKO+pg}uZ~OG=2e}mJYWzY) zNS&yvXjq=!>5MD8u7uc-llxkm`qD29lUU*5fq^dgao_Q+_?5EsEmCtt4;PtI3v~~s z^80f|?I};YM>a#S5!U|wsw`OC{+|{3Oi72R`C0SZa@|xX_#rJ*R}MLYd#No%m3NQ! zjCqgR#+?ZJmTDDK3>8DF{KI=p;v9IZy^=t`UBl!tfoiA^&P?!36G-Q zyuHW@C&YuqP95JANE>k8ST@Kb96o>loM`{0S`$x4g5k+jb!uEs1+|Lq=urWC(7>1$V8k@oAiH9<;yWl4P~4wo$YKPf9fwHMD42w>oP zCrj1$OXDjEKy*7nLh#q4Br{jR{$6wAD}ag_FJ{@DHLShmeApJ65$;dP(szAm)BAs( z`30qQr(LrfxaW}I!1Ls!28^{k>#gZUY$+x?T+hsD?)^z))t$VX+_z$R#FYGmQzkku zqPbrBC5t-SY2wpS8`qwh9}*yLQJwP$5q9pnGF_XgRE(g_grMVrs#Eu0L`_>~`r#f3VOb(g^uftt^3kE?kmE ztQoIpj3Kwr%1?a%dvCc=Tux@+B+e|{ z9Z8!tB>nTJG+stVvQqOs=5f(G7Bd+&!4`BRE!^z=PZ3+(y(9nV%lqWJUzKdfGO8$_ zx*Vu|Hv4mF-G9dTGAsW0pKt&ECJp8GjyQ_Gimp*L!byCcuS< zUIfJg?bp0HHCG6~h-st$^#S@h1?cY#*`5vl)hM7u4vh`Dg9_&s~ zECyiS^awg5>i+(nLGRZG05l`}V@bQqqmz}^=NK!!Qw47wTs_N(sE?_^%<*mF@BP*6jh!#E{{2KD4$;^5wJ!+R@;{5D} zC*^c{w-k1~f8QyFlLeOlbEkY}YSmaWwIX}xy!y5Z>e&VnrI1s15#S}Fh}FXiJW^9r zQ~2$Bt%?9aMS)w&hS@I!{~@z#Io;dKri|-t$ux^u{Qt(#iEy8DPnt`}i>DOkW;zw} zpN_1_yqES+bE<2ITByW6Gv4FR1mx?oh8&G(j&k(puC4(ZO%H!ACFwxrIn$ZX8aFJR zEq@I&5mB4wZT%~Mm1M@Q6h&ll%Re$3>Usa?N8|J-_*bj4RzIz#b*tr;E@z6S$-VlM z|F>6(n7&ivs;}3x!$Ib#=DCWtlpo(r5@1~3#9{X7-WCI03Fme00>Bj8-X$wI$11ucR0Z4}cn%9sno^uAREPTRML8$Ed*H@2l>gQ$6WOpw#8Y?xwf~FpdHGz(sGGxW(aUVnsF~ zOMTKD&cS7qo}Ap=Ie_eG(x1?zVPeAh;`e<)NKl@2ckTCBqfWvLr9qE^tY}HEI`x-s z&n*IVuM8E~_1|Q>bzX7i=r}mI>6ef_QUbBG#e_ct$sxT9tU#<6`SWm>qu{uADHUc8 zcF-AS*|(akZylGz-ZDfTZ9@?>%IZIhl}80x@fSMohq}CRGd3H zPH3|-Moy+bx^~FN%Zmn{3uLAN<$`w#NIA3}f%GXUobbawegt8+E)eUM+-kW7Q}NXt z#Lou@2iNWgLlOQv6oWxVu0IIs?w|_jeDHGyR5ll&A>V}X07iav6!++xDCoR_iXaC^ zCiE3PN|F1TM>e?P4ESE;UBenr0jQjUfHBC`OhRPX{L=#>WZ;^oAYkn3QceJ8%I_c$ z0F1edXgtU&dKV6ONdM^TQ&&@imNK|bAZ-NVpxM3V@a;l41h&9&jMO5$o<5xgm?r_$ zQlg`m0HJT?WmFX@!C1*;4GjKh`E^w_5<$i(%t7ZwkY}c<_S0fR9$x^tLQyB#Z1uD< zHkEDyWDKT+iINCC$@f7)jG(Ck#0SU}x7XYkgo9>}uQ>c0VV;nd330UttO*@1-Rp@%@N)_FzE%xnpi8G`9{o2$s7 z=bKjM6frUIQTv)$y5CbUiAVK5^=`l6vt0u1yR#th{_R7BP{cpFM5Fnsvzu9S1KP&a zGRFW7gUSJVxL^*X5r9v2fSFNZHH3ms4n!8{KpP=_YHEE!OcuOofR|jDodv!dEM0^} zM068sV9J3*l&y^o;VS@aY#<7Ts1ZJ@1jt1cbxU&k3j^WKnO9A9`La8}B2aEoiW4Nr zUe7cHM8}Hx@Gg=({&|<> z9yBWW!YqJWfP@7A($|SFC#3L)Dv`B++Humw2sb^y=rv|#sRTMZXLV_IeoO6<-7Z)H zL(;y-3H!K+12hDdlu*$o0Plp~u4r?I&rKlsMhX`Iw*M#k%-WIfZ|y1Y0*0t$b8j!< z=CfB?SrcV&oPwgK7tFe)1TW?1wJ;V}_#W2*)j11z>$}I*N2n?g;m|EK3CuqA18!;{ zgF%Z%;@Y)uJ0jpQNx(MYcM8hN&;waRAh^p=2VzyTd$dYAPEm` z99Cd!>F4KnE(JzyZD~n6GVhNu&MGBrA?*LJJo%I}F!MvvkN38=sATv-Le=;ttc@d} z&j{H?3=Z?T6_n3G@)c%AHsvhbr-e5`5s;*}&{P3|2f93SU=_?Bbm=jGmirM?4AT11 z$n5+tUTy{*>fbCS0U*}qhy>VAX#KXukAFZ0ANvh(R!~x?20riA?pITX_pta8J|(O- z=b6bb^WDkOYHp_YAUknKsUpn7$>Jb3b;jzJo#{s}o;ttv`HXV-wgEZvSjHF@o#}e% z^XC2P^2vOx*T^jwnfp78dAt(_Hv&mBogx^KqfT7W5Iy$FeY;Anm$OFz%Rqw~7C%tO zG`** zw1!|P4So!nNAVa{-|z>wtDDx);sjpV72b!A9@pZw{=Lk)y$m;O-0?pzh_x_59TP|7 zYs`9jI{fC-Jv(9FZN`f8i}`lTJRUuAn3<>=)Y5`NAm;lADi^s$ZWjN_FR!dFo}hTY z8|R~zHE;qaIZ<_ru5=A~lUQmq#_OAxbx@qPYG{~8`{*$G9$^el$Pop3%Kt*X`&xMt zI=?|D*g(1EeAY!FZZgY7Gk!$yLj{r*$)4o{0nw?p-W6xytZ^%8i9l(WgOaDQ@f7SN zAj7*R28~T%@3;@NWHsor0BH%F7eSX3G>qGeV8e2(-wI{9D<3otKp983eAWPXPJ$Jf zcF%peR!f(ah|KcxVe>WvB@q#kThqClVK0xA;S)l&Ih8IYV7LZ7wD~N-YP{vk`3E6P zArkfnIzvgpch5*_iS?agQWTBnVPRizRkqC_!a$ka{|h*uT4`(hXcD&i?+}e76h6|4 zh&Y?H8%G+ISyTX@P>%R)&}b?$bN$yR6M+o|_|bz=t32Sxv#KQ_p$*mzV4nvTRD`Yw zFLcciv>AJ}L0d_x8lmBd&SdqiojM?95fKpwN7@?SzQEGu$hZRpc7|OwSYAQ<6qmMP z5vYj#ooE*na&8=%K)?4Tt4Q6oE50~u#bJqeVR0c3i+laCkByGzJ39sRtLw`<*}M>x2gWFL*}B|XPM$6vd`Ck223Kf!e0 z`VQ?7S;{m5z*F{=fnjTF{#_7028K`O?%g1{4#>j}QkE$mR9!6|ubhTo zG%U6LNcj{5m#GcF9PmDDX+Zj`#PUD1J$u7n2cSX92EGruw{++A8_GW>v*&{S(@d-X?FT4}42(f+KV+qdkX zU$3H4w9FjEmIYkPBoIT}a^IC$?tx_aufX``K3M_|ewyP*ln@QlOP7w%lwMYg|B_jAC1nw|wLfSfqY3 zM9$axWvB<|n%1BVS!7|wlyRov!gwoa8&n{Uf~%_H5<}AB>#q||zIP+7HFq+jSuQ;MRGg*xeb5r-{!muk`G{IP~r*8sA%;9O5RD6h4kqAOLB|VN zOAwRN${K(TT>wD`_o>%R0IiYFp($+5Ao~NGUkHfWtO7rMIvSY5&O|9Zgc6K5pEg1y zfLdL}0Kn!8hzYFEd0`8~&}|rd%T%5q0~8((Et_2a?jSV1o2Lj}XasuHy!SJNN*4UF z5YTJlgX<7V#!h=$TCTuss5BeC5x3uQ?P5f{K10688$>r*{^;8m&WtI%Ta|V7r9@|T z$%iC2U1pcBGX?F$hksC~V8G@4L>V6bgp9ipoj|p1BBiRz$k>R7fR!Wbu4T0}QGCRw z%z+g^*%y5#W!{k1o@l4vi=H61GnqU`ZjIjw_dVW{KV}%fB31qxI;Vie&wbR!!h(R)q9UC9)iNN^D|jp|JJs+5dgBN|l`nS9n9#^z5R7f( z%mWm@O0A5i8`$|FkVP_Sr8;~MI!XWf`R$s4ze5c)Yr&=l((Plgr-KK|mJ;uDvI|P4 zTHM~r<$??dEG>?=+FY0(%FY0Nt{_pSxVUJf6FS);CDFyfm2|Zq)luC1gs|@OYgFU9dljETDGO}BH7RVqj2Gql zgpZ1g%YtsT+e;9}BQ{5xx76Q4io|!g)G({}oX=L^M_-D9{CrB8`6XH|BdSXL^pg@j z3Hv)pq35-G`?^jlI3K;Nf%o1H25G??Q?X)V0voGPxjLd?a&>aKvbmm5YkaxB*`HaQ zM}EvXD9kYx0!?T{yShG{0DUTjUKHQIu)^IQWtAADtDsg7uh-q$YB5<|aom-& zNOsi)J&BlY3{4NSg6x z=-RogOf>$bujJC?KPHqPLjCz}k@&N|p~)_XN*!J_#YZ@{il6ZgfbuNTN%ZlFVh6`CV_-8j=0?-G`r?25M1a z=swYaXc-FOl}4tC$~T3}gY2z|J~t5?n4o0UbcFI=KG~Vb>@gjE`c;F_wIj-g@S{X~ zT!oo#M1l*ZRRy~Ssy$yj^#LEWm#A_Bl1SOcCf&I&>Ucc(>I+nF=V3^YsN{qQy2KZPt!-#*KNJZ{?TuKoEPwI#u+6}^MbLey<7*2iTAr3;t*8i~6Vohs_V4Kl9XttmzsQ3IfW;c{_Z>)!V>Z+Q+AA-CCvv znc(YyI!5Q#V1!al;}$!Of5u(VW_UaDB1J)q&otU_196EZ55eTsMrpJtK2wz^+f$vN z?a$V)fI9HXp7`E-M~iR4p8S{ysz--BzR;2k-fL$ln6h(6z&8l^e-P`!asa~g=peUJwXu$adh|i2xL}FV=n6 z3+B7srZ(d)e6ty2+8pbhLLlwi2W>W-Oad0W46ASwD^hp67#pixLFnE4pf~NA9UZpw z{fHEg(XE|hr$q1d3-auE)@G#SRvlb&HMI}2??OhL7WbEpoWCtUI)2G#xosdEHGfJk zT5hk=GrGBltX;mAm)kY^6K&S2?!;0u(_(V-WrE%;Ed5@)t4-0MFbo3LXZ)lEBKI`G zw+6C7I%vU45;CG-s+W&L)##XMqobl?6US!y!;eaoA1>OByhl_``%dBQ&QfGHqR#|a z-X->oXl(Rv1BJEc=XGe4QkO?^+F|704%vt=WvdV6^0N9nuZKDbOTK8>V-!1lCp39j z=brVsVd>Ftfct*3+?k$-tqh}iuU5myf$(0R6edZ`wl7{Y_!wacq?JXnY(zb#5s zck>!|s7{kiRmuR&6Qp{y=Up?FYoQS|=4U8^k+63`zpGahwKfCDWrA8kMt1fm@E6w9 z9FW3ohCol(V2usPPr}!}49PG5s=MGe=W=b-^iZmAJ%!yEyR-eau~EyfOR~hQEH~Ny zAaw|jXe1`F?^x~4Y0vhUvYRZl@l{f4tqk%HMNN=4RR!UQw(xKFsA-pu*-#cIF^~hx zuv>8L5P75iYwid;(tR9TbXhHiFf223b>1Y+!rGw~+G2C3&`sO;%+ej(oPndPvn(_A z!k0)d$W&f(Mg2(aDa_7XwUl|F=czYw(*0+xSMb`v_HH2hc%c`Gz%2~r)$A~M-eJxX zJu~L7TilQMSSD>lS81MJNhX+WK?0_1+_Alh*4Vn(!nXJ^ z-vQ{%n?1*v=_t*@SLmU<#4_}4B7Rj<%>fmuyubYoJPu{!x5X~VlvK|l3;^0siv^6M8ju3jaXeTg#a=B@HVN2quk!o(PbxnkX#ll8SWp!v@ zHSt%)r!K6gg$R> zI9^1|^v$uOjqI!4`v_)}GZUloEo5JX9yg`PdU|3?hK#&oTy1p+A;ux^>!MEsjd#N; zSDV#GMEuW=_C$~&-N^kC8?Vg|rr$*~a@1Wnc#M$_;hix7C`}^b-1}ubQ+RZmt`jZ% z{pVlOOiNstM215t9?N)(qcd0~U%;=Bu*8*Gb59isap!byQCrb)9Y37-;v(?7nv;ON(}C z!G+FV4Num^d<Ecn9Zz>LitVpYD3BaZ z1P#INE3p&ZjQ0A;DGeVk{|{|%8CCWAMU7%(fP|Ek zbc1w0RH1*n=lr38rzO=~c1EjXPP>p5;5L#{X&Z`$^Lf%kL!Q&25gR#Cv!XzygJE7|XN%mB9+^ z#~nxOE7Mz|_DP?iwc@krR>i2s64R}=wzkFP#Xw?krG3L|&)2@gi4!4sUY6_ECol1Y zuJ>M+VR$4hud><5rpfGM>;RT=$}Uni02Uw^!bG-Ha1^Ps{eM&*cy z=I3+!&jv_+rYI*!6|&C{8Fv`>N1e5`{Sw#T<3B;1s}LsFZ={;pDfcbGt@E>s30cCn zDZV9t!u?q9d!}Cu>4?z(tv4fm`?cPFtIxA$twQkpvNdwybnS2NTg1m8&EURXNKUfS z!2Yl13{N|H9{%93xBvR5FCB!k{`=Oe>H2@IG4MkI?Eh7z;p4sv{ii_(Z~EQ(k52*L zanb*;kp^wPWlcbGj?OP45x*f_#?mbe&E5?_M#DaB18#ogDYodCft%{WQb~R&<`T;A^ns-zAB& zVwJ`3voRQ5f;QGu>#48+4AmdaYq#DBO|jY9J-R5YVgt>|Rd^Tlw{cvxiQV5MAdSH+4?*diTbd2`qz9bO-; zUn`5-i~gcLz{opLn{q>E+G4EBnbp|y1#-as+aj~Cm(M4rL#x`V#dG6t4en9V zM!AHE%MEJisX4-%zB*I$i z;J(6ba&k01Gs!)8n=tAAZdPwRv4z^!)lq4SAk)?$iOKf2fz!jyxL8y1dRWJvpZm04?K+hn8O2}io)IyH zE_sS#)LUP){&*LQXH88&=>y1fnUo~*?Hdhr+Y;z`PIkfSynLw#C@0l~^Y6ar4j6yY zERAL!4*N$k4@PyUagLYoQroyn#@8pDsu{~Xf&QMZi<$VH99LgWe@ZAdoF12caXnhS z48jbhYwyk6ya$UJu-#NSi}CUc3uR8?+UK6Bsc{eYT3Pwpn)zBmUdGk!n33G3FN^|LQ?;$Suct=GE4G|Y zLXIvk*Ix`6cNK!Vy$>M6Bg4Mw6%4~)il%yz&5}ONf%mP>biT!_%cRPw?F2o&eh#vY z{1v;)gSiCQ8rfcJ{d-8S43z6|$b0wS+`s=uFYZ{k-eOmrAf5OvA;#Q1#IKI)D8N$N zE9bAVKRG-jcII6=+$cdN!RLq$U>~ueC-VV^fc?o{@1iZbmm1LPi|^hY)x?Nf1~ZNr zo5Ae(FRuSz2a^EtPFNdAO@I9v9odiDgQqX}r$FhUX)pIiiLcJnKU2J(F$0W2X#JIP zUxc1~HQiw;{xL_b7E-?ojPa~y&;F+*GRIqHKx-5Bbvmpt!J`Ml?UxBGKqWW zTJopF^PkHDK_f+iF!@iM3G?$oA>k?+tv^F+_L(%+zo#Um1R{mq7;@3sz41&PiM%)q zg<6falfH=c1a5j;@M8saw7s48D2~5QmVa09yIwwIU2?;DaJ!f5AZ8hrPp57?Pvttv zXBA=L8za+YM&sFf(l~;QTGhs*9qc|~vV?CGKSkVm$j3l{>UlZTB}p!f{M>SAwLhq5 zt)Kg92FPvyyi%Xbx2h|BO#4}&p{6=mt)%oZ9U{W>{lHFN_5BxMt67VCi_0T!FWOqTNVhIX+cvS81eyw_#Fm%7_M80@$S< zKSS)E0;@nVL%e4GpgTdSJi+CGj4^c3TMZ~BxI8-0YIt*C%U{cRK#hc?nYgt3a5q;+3Dt+E^~fjR@g!{ihcJC16Fn(PLx!6hXn zkYIr{n0?c0E;Q4kFuwHNtK&Xz@p#*9S@ViiB1bMQotazNt(4D_` zKB4*4TcG;zjX51AP*)B*V(Oe0ocQJ9w1J*nQT^fAL-;7jqR$~|zDt5oX9n>LK(68N zf?%i$noF;_2#ATVVj9nlfH~oo4?LUvFAXlhf(3HR(9jTAh$BAYi^l<7aZ?+yryEHA zf%??k8i+Q{0w)EGT(h}05y^YD;Ds3^sF8}T>bkm917H;pq<1b{unj-Yg}M&saAENB5*N7- z>`gC&JH4q79hpLbq!Se#-LTt12WnwJLck|kD5~9z2N^B9UjE9rU~c{*TKmmU3J_qi zv9)E^yZR+T3+GKrpxB=2Q<lptP?U%?_1X zC}o`XdS34JrHS0|7E)B~2jvpTc%W2qa%wSLumXxycqWOjG*p521aFN3bHm;bg!SeT zM}i_33|C+>g%WVT0bU1GSC+ScKGGCz1OvhXs`xUJl3WLaN-!KwR##WyscKI?=ORGJ z#9fR}Usk|c-!=(zrSwzdgu z%nsV%$;F_R=(pSxmIPZBAQFLobr{bio6~xRhlOodHePH*Ygxy!ne`)h7;w(~`+XuK+IBJpgmCpS zXrF*N^=3hmT)zMl)$c9|A`Bs3hH{9Y+wt~Cfm2hcT!3}w8R!UIz_5u>)cn7nj#B9B zQ)y%xTH4dq{4XH4baLaa!OzalTHxv+v?$?YKws(#pZksB6SQp|I}pnB2?Os|VM&-I z*S)`ihSeYzt^o`^SPz)Zi`Sw+5eKG2Fah`O;keD!dTB3IUk3mdza2{a_v3hcjUTc8 zh7w8$xKsK(z+-7HDKJTPrX0Qp3^J@Q0|Nu#JfZ`TyN(V6wyLtS{|G=3Fz#Jov}>3o zwa}&ZaxW)>ycE4|oqE9@0tuX`+5t%`o8u>N9P4ooPeSCIvit|i!pK|Cb^dq35SGIz z2sZt+ABWZtRX(5r)&q+Qj(tOa_7%>^a*Q^Porx3O~TI0S~NAy{pp^n73VO0`tMF z$>8Q}zXxaF0F`qX1NQHOGenspV3szZcM1p@mO@apjJfcr-I$ZoSU>=sb)qo$<|9Kv^jYApN`2vNbl6N3K=)&U?^!6@N<`{yO!o3B&< z?s#OW*Z-PRPmKrtf4rN>BD|5w1_DUKwIH9C4$Ab6s5U_NLNLC5djgvSbwBsLFHm@( zR@mlJx%uCx%#a|`;I?;^aw-3$tabkv0Dz5Xe&{oVg3kqPo;X-o><2=B-;95O1Q|*) zG6Rqmmf`;=p5@Z+d-qRDiuld{7uWz&pz6F5ktl}^5A32>;nby8Kj?*T44R9*4`5?# zk&>*KOK|y@^o)eW@E8JrkAF}ndVTuJyQLazUFle#9bC&;yl)Q_HW$2?8|I*Oo*1jU)-rM3LNcK=RfTHXVe7CRocTef+B>7V#mWJjkiDf6B=e z@r)IwE3u=av;|K-Tqf1jIkapAe_Gy|meoKpToYitDd9UB)7oo$}H_CFl;+B#xR zgd1cFLJ1ZRFX{W|uKxk+Ts_+sEQEp_O?Kj&oI`G);DYk9p36$6pSj;Zmy7h89&8kR z&`K;@XocG$dL{nB{!lTBFwY2mx^h)A<<{lqL4=F^MC_<@JXFqJ~zYI1M1#C{}wTjJ8I)={eCx5WJQL>1bm^L+kQBuK+{Q=l9 z;Gl@@8zSRkAew3c-(oUfjj8oF#5=&FnE>@c2ofj9@eE+qdJ#?kTtn!-Qm5uE%rl6TeZoM)n^CX94FY43TjX2$3^mzL$CMDjX&39?A~A%Y z!=mOB1~Sb#BAUR!1zm8U`~WgMw(UGaW(Gu5K^_CkmHtflb6`dT-JlHy1jwqN9&Hih z;7B0n78ND4n!ts1dtJK$Ymmu0?Qna@sK0myh`P=5KDc=u;fdu~gA^(YlHjJRB>y~| zW^k$Vlstr~L{7xmCKWxje}eqG_eVpg^NHOJN0!6Ly&@Q)*ESkSV0m(w58=Fo%?vIH zPE9{}XAvr1?jW&@OagKWK<;0IoB^&3tbbtvd?3v)Xc!KI62tPuBPC($2$@8QW_zowv5R2A8_=iX>aDXokrefqi zZXiiG`}#OHJNXn2knxK;Gm=?VUH!Nf-{$S=U;r8mD7*{w+#z-g+xiUj#S;4Q3WSSz z7i;e}ALpZcI(FUc4+V~2-Z&H83+LPZcH{5OhX7R%0&s-&7~5m_r8tvgbm*=8$GRO+ z$1EsUQ}>yA!SkkcX+jmLfDrI0f=8~gFdd@!Vt4T90caY=lhUJ6Pjsw8@zVM?87osXLe zBa?C1>7ffF+v`c{3rf2Np-Ul`QooAq5UD2X=OFJv9?Gcd#IrkWsqA+Y39zg1LHm(Y zbKPF{!?sdd2YN0m@oG*(a+Q7}Q*=e! zZN-T!o}#-8?%u?+Yt4|3w8Pl6&+e&v$~-GQc?&%vr@OG~TJz^!6>9s6H(zk=jWwq@ zl#}?R%9E;W0^d7-LDlp7sU=KIh&BJ(udUf!H26h*pj&WPwa+OHrW8H1sQB?{b!8|) zu93pgZ#TP+#FIzwF^}-mmLyMJE_9(wF?389=QQLQRo}^6wN5ms-dmfZj8q@&-?}G! zl8YhLf?~)@dH5}M@8Qjj=ug@7x5>9&EoTTvxk_Bxy}xq%L1Tan+rSI`%lo*Rsq+A_ z3}xVZ*1Ij5PZ>6)X7$#)yyd;lz-4}ZYC}&?hrYq?#z0RuyY{;7T3OBK%?r*x{-cRf z$c{ma-X1*nARCl{Hh|r|JxGVSttYs2mt7Br)JBGfJ)n;OM8cCeZFE&than%tK<#X= zt*CGS`Q#h7AH;&$BQy%w{kTij1vc8Srs#jD-K?>I;IbDEfpF`g*MPAVGXZo}NSIfj z0zFVo6SQ6EzDOrNW9+dkL`csgh;2$) z(q_kRA@0aYG#xb#Mr-w#K{kj)@4$WKGv@O<_;)aiIBrJQ-Ck-kA7*pb%Xk+3fJ)0& zPLf~+$n;kBt)~U;_9!GgfHdFqh4ieXBHV&u0U+XzBB1(T(Y(u^o zRcu{;5LII1bu+4jI@gaM=)45wO$ykdUnK`aMO!{PaQz^KAH7O@di4v{Z{ziE)DIhI zp6DeaB)pG8eT5yUAEA68El)GGqQxHdJo~!&1oNI>)2n5Ba`28O`(?`Zc<~DQDnsHxi}Iv+7-$&UZF8qkr6D07c}ND zSYdVaVUNrc-G1|~hv#;qgq0)8^0Mh*=onlM#v-R8IYx+hx`SvPp*?CUQ4{u2{6=th z1zu@VBeUbxo2Oma%QHnLtR5`Vqd|#Sdr{}Zfp~f$uu%}4L3$#p%)jS9s&&VGVZcOK zGIDh4!*mSxnSgTG{6iwP$JYB>gDsA9(-)kg5ClU5v@EDzL%hEG7%}J&MhOts&OJQB zhaMr&i$w_e0`(MKc&yS!5Hy1Y&u1S37peYFdQh_mB27s~hS+ry<_p4t0FhhsZt)4X z!=8ueErF4YLdX+|_9-&*?Q)VMA}_|Il3l>#tOPd&kP#*Y2kEQWm>3`vu_>H0Lr)Bl zT?6D1_k@DiPigp%V>529S`;+gP6}Su5wMPRg!dXXU>+`6)?GH)sf53aC z94D=?m#6xmmZGBLr#z7{=1CxrZIvee8qx1UDK)9LNiF)Gk$D4>Lyg=x{?$=^k%~r= ztA>H;FP#;{WJ-8tO4i5t$yE+BRAvqHlP><{0_>fdILp2X)^9GMoS?BBZhaO-R{Np5 z=PL4@jTB8L2Ue+AuIdv8y8X%TN=u<}idJ$x%34c0*{ZX(3jEBMSMN@PkkTu(YVS5< zNCoUFgq5!>Z6R>fvIoei-_hybTO;yhea>~kZis!i8GB(U?rjp-lMjacZd9|k2gy}% z8$o+s=ThLYIUr%8(!YX=p)b@UVm9(dKaQpN(h8whn0&t6eg>NxBcDI3H4! zW7@Y${ib>MEc_X5eh_tdAd>u2glx=hN54qNAhb9pn~Em}B5{vuuH`-87^(}CFRXo^ z?3L$T5bTr0HBS0QbTb;zA7M@AhniiCd#|$@kg-k*#@U+)>*MdTRyN*3*Av@TVOX{- z=f4hUoDFr=4ekjh;=k5YVb9)c!CAEZa*cqekZl0N&( z9VWx<^iIDPwGzY52k4Az({Et>))L#xc4?{lZnoa+eEuIn3 zN(Al$9ZnOPPoFrmnjW--OQ+l=!A?W@=?}SAf1?u4)SnZ`s5lm8ee|zF@YMlFR!{&r zw9-q^pWc(0g|4{n68cMN!B%yEr??0$xG_M`1q1+Q%^<=O=y7YKojFP*QK6heqI99AnbmWL`E17L%p3NbRU}2cL&z- z3sgzlkh21`Sj}8(Q8DeqXT7zT3zh64yEcei_;#!dxxRi`9nATvxhnE`lXJQKE0wOySwrovWHYb zk-0p^g-a@Hrv>%-i2^EZ^HwkTg0%P)k;OW2q-v?3gsDapf}Al5SjH zE1CTkTtDMAENKsx= zlkA(HK;BQnVhqJMC^o@3s**t@BqZe9wJg`GXOK zfgE?Q<5dXJI6NZ{0JL-Ncp>O+6XiHn0 zR`db%KIUC*c?;Hl2?aN7jW-YrE-x(bo&L#qe;Y+gQnG5JVjOx#2Y5JUubqNH%++W9ka_?wc3uwi& zHqQ-_9JEzb=r8aw(MQ=463C4672q}2yJnR&X!)Cvet<(sB5Qf^jchE@EZ)!T>dfT1 zj_muZ`2m$>ZNz!?So=zfoGR%OTVLH7i#6@(8lKK*wVXawkeb}=KQ#+V*E0xk5~P6I}2c_kQ{9 z-t8OSUI~(Sj`eQzFf%B$TPaB0u+HUJB-Bjocne9;y`shExzBjgWEnW+7Jw8E*d3&- z(&o3j2~QA+Y2fXqWF$>K<-R|qulC)sTRnMIEEgv|GukR35eM5a=!Ju>H&!aDW$2nw z>9m3FbwqLxsq1d`IlC~d36KP+sH^83?&ORBux~P6VcIZ(=5_^Xxri@Y*_-p%IgSeu zKosTXR)bpt0+j)L4&oEXW`Fc_^IF>hz-AZ{tuV`x)H!C2tar^-`S!XaN0iw-v7HOg zOu37b;vYUniJ`G`oitZze{-L|U&Tc#--_9C+3_@l=&|ThpRs#sywv0S)Jno?L`J-R zQ5XD?cf+Vm*Iborbd|)DIH+Xt*fP@Te5#p<+<2dTO}HNrW4z5$Q^UF{v;sdg>j%LaUBwHi67|T=sw8Kg-nXEARm+*N!G@w{@wxl6F7|t+tSGr!idHG~;!@(m z9e--in6v)XhL&+_QfX1=8Y6`u47}HO5|N;4{m$EKaiL%J2^#Y4!k16J#q0#G2zlLh z((K0EK$0uW#Y*+|im<+O-TUQJviZSJ`ry}QqNyaw1ZG~k3hX3w)d zBW5vdzt2>M$oL_&yN@z$4&8&0X30K(J}bBho?rz9(mLLi>tF}Y;HgeZvH-~w=xRGd zuH*ZVm~o7m*!dvz9Hulx1a5$6yK&k~AQB(yfQ<3C?`rJ7vvg$&rscJRLn5EzGMhe2DgIx+%9ID|)f03*YMx#gI2r z`9#N>(6^d7PJ3x~M3ol#8rv~unq9=_UZ1c>bgx{?`fJb2={y|ISsg>J9L(!Ck`Vym zD~;y`IXo>=ru)A^J)sfi$i&11g!mfKSU5P)vrEBa8T^=i6|9pU1L~!rF$!&`;6(r) zbbL^tLAc#{AD{wE2IY=HXlWCGq6E}HKpqAM2M3xLR|2S#b27fz0^lwP6){A?2}k?& zGh5po@UGynnJOsymO$AER!&gC`2KPmDhF~>QZ9ee{6Htd6_I*F@fM;tz-&(7y*uD` z_4ZGncyF(Fp5p>+$)Moi0d3n*PE804d#M2;=i<+vU9%zSuR=7OJ()W0Y7Y{t>F821 zBEqJt*fX1b;z|<4nR~=f6tpul9AG8pT%@Q;P}(!Zg}L?SKstC%ydLSoJk}#h*Ugk#v5AJxe67TyuqG7=B^u9FcP2?M^I8*V#koX`@w4$n`}u9r{h`K zc&`orp6{EFVsSa;!`4W)PEz|c%lPIg=#AW;{4zW41_VUtVbWCBFn8`g5AAWpj|^bC zlipRYHNhlP_QRa{p<7-Qc@iyaGj3YXgQ^WK|M9r^o7ba_*ms{z!|d$Fxo+y8o11RJ zI2tII`dt%yr=cYQHsICv)PM0|T2I;3?}l^@zYGu+x-S5MK%$m=pBEh60F3}O0HG(_ zQ?6V5fNa{-9}GjqUJCiSl+W9Fg%h1>uQH_r_ngldM{{z6L!9@J0u(a3D`r;##fDz1d7$^t<3aIl5 z0>lT{WWKr;a0No*W5wZ-L$TO>s~&h2hZ^?zus=u;IWMFKF`6T$xzPRPy+qKp9*zB8 zkeWFq#Oh%Cbt14vEJdG;^VneQHcQ{5w0KR0{I^vzBB@;oMJp{;m#&VSB?f#bGS22H zdh}~be+t=4vsU8=`qsnF~ zt%-fy6!t3LaeGr!+L=P}MT(8kApbExOPEVh;W>-&(w~mSnH^e+UG;_}v}Wy6IK3u*hGE;YX);)UH>c23 zs~ML)sD1K|70Xf3^&O)yzUZ@RtR%yU_so;|hIbVHx;I_v)Gz^o_EzZ~oam_Ft3x{7v-RG*+fQ zB-beNw+~F|OR28}P;@`)E)9!6V-*%Dr5#SG2)}d^3Q;gvzw33d1A@|=hwA#+zg+U_ zL!PVPQ{dkkO`aJt(VKFwi4C7>ZT}wP@kHS4fI*F;GB5w#n2CLg@~8Nu1iDfrYKIT%IY?iGOZsrmnf^7uUM!De#W~MWtUBmEiL8;i z8T?j?Mm+1>%p;OElgMQY<>*Pr<3Vb@=*$`cvZ#Xr<@}Eho)>y++3SVFL#+z~E2OGd zs1GT6mD|!Y9a$0`vnAychf0)L4We%-w2~Q*kup=YbIDwwUB)$xVaC(G54u3{sui0Y zSlnY|-@22*Hzwn=*n*{DeG${T_0mOwJ%S`pTcdh(BJLxzT=L^JTz5;u!r}+UaScUv zQ**h2Js}00M79D{gLbFNqp@a=KGQglJ0^GpmFxv0a|opdhmd!^{NQYSXe;O@CHIiK zH26p&E%?+v2#7#jtt4K)8Je=G_GX511&+=S>c18&ob~HF{&X(ROCEA3TFAjQfSt^9 z$mD@+JX>yh`kdsUjKFo6F@N`z9j*?owLf@&MZAY7SU^j^{w$!$IP~hUF1`fSRtTDW z^+pTEqQ2?;VPg(6!%*?~o>E=^l13qdkHVb;|7AP-L{$)TTm!ci#zdj0aQ<5_Rp0#N zfC}wi&k&)IjzO6hCb@WdL*Y(=5@;;^OKdeyx$b6!o3I>7J2TzXU|(ZEiFT)mR3(;@ z{8`qnRQ5S*(BE+=YDgDd+&fSDaV|%FmyA(8Yi{=^P;f12!c)3L-^xT7)QX=pf5T0dCH&3#my1Lw@kC&YtxNe`BSy4P{HX=Cp_%XW;3QY(z zH7GE%f;Nbt;1z-x)R)%ueG5-t1HaaXUEFr-a(9-1BKkmx#Q*#}%$9T#h z36U8ZW#Kn|V$us(HTIL^W{Nn`vu)iI!6mh;V|9gMdPi zCkrDxiQVAt&OFq1{;Wh|pOv(4$UO!`Bj$@&hRI6}6Gkml{A9~K9# zZJq-j^Wj&RRCJ#s{}d9fwr?l)bdWOJm1^};DibMi7mZ&N75%a*rHPV* z%o7#ybj;VkOLZw;YIvRUopN{hWYnO*U8z#jjjy6QOIF%xiMJ2Ndyv(0<6h*I{)l~m z-g2!wQG1k_b!j}reaLCR`MpB6Sf#5%2??W-yOtmjD1#^BJ{%Y(9{aba%v`f(P!_uBj}*b4RsQS z(N1UNMI9c4D^Zza9jN6ReW+&I0$1-(dm|nHXm(eiyCvi+8dN9PoT7v(^pb9v99S*6 zji9ZyrgvEANqN^gbmrl7=kNhs=o(3*CgOXr`W`tdt(MM=zj?9^)uqJth$?G~>vK}xsTnhx)0T0hDp=-J~ATdCng z+cVrlT=O-}*FtumuqCDMlW+PfM~|ObXnfv`!Zdw4Db;l^iy-$GL@z?6B%aq&(1ejy zJOfe!Jnl;gUSGPcZR|$UvPLz$socXkE^EFi}g+YEa^Adn2ka>PEgh!@|kk3fH5mk*1Am(uB09 z`X0{TdzG2mqbff|RFBCfU}oK%S;gyk(L3m3mbcYcO(A-PRwy3FjUq5Xge4u^Nk2ba zl;@C$E7m#3cQRz$g`2u{tGN5r_9!iN4ujf`W;_;+*(RC4Qx)Gs=5=%SlUBT^t9tB( zUmoqfh5Ht2hMbyq^7H?_$E_h(0zu)Dpj*ZHh_@wgkc-dW%6N}sp1${9t8Z}LHDmXo zd^ieY*O;p~@#=3fWuo*YR{bU4FligF)Z4bfE@a&11*@eNd1|t(TYZC7eZjW&nrzf| zN~K<-IVJ~@ITp9Jmdx!bd_BT5Vk2r8bMdFm!>g{`XI5m=KK}f}QOL0w%8X=8+1zZ$ zU6!G^h_t(hezsnQx;l8?B`?>?SYgNX>Bu>jh>wc1G56J2>)5nm0>;5aR9wa!@4aI0 z_SD5DLa~}cOIn_vXVQ7Q=ve5`Ya{dmLF>x@x8IH})N?}8Ek^Mu{Ow$vMUVa*UtM27 z7>xpP301#fxq(-)#R(GcYKT+RMLUmv${T|eMd=Ir*k~G-4!RKj>e7m9?7FnQrpj%y z$ghGGACsjT6_Tfs_f{%zbzG&f;Kq1mAgPKu)YLzkL@4avI;V*E8VltYXW z=WnZ0C~YqznS~jO$xiq~xfHv$2@wq3zlgX9qQBQE`6E`Za{uh7agL9_PW}#t0!@Mh z_l9-cZvK_|B7=d?sETQb%OAs{u#YYyMy%aBZ3yY>`97U`(EuCJALm_qdP29D{PZ_-T z_ld})X!8#wX7woKv#c4$Wc@WY2$hOBhYqRj49L{gYK)G%s}G|GqTeZ|>+0CuGxB@j zzV4&AN_aP_rFJQo`lQ6Qk+qfDKEVfV(Sd#smudM)`h8Rb<%@gI@O{s) z?fe)wZ!NKnrw;Ck`HkxPR8M2?;0p;x*M?T%<(%CLup3{K#FY z+9E-)U0GEX;^4BUe>Y90ws6}E>ETTl<37A;DB2vcd7mMJJXun8H2X1Y1XRLB*W=|) zx26L5UFm4)@-q|?XrEhHnv=cCs_YxO_rmB|j$+CRxu47K3jfOsXWTu}q7rT8=)P0R zxTz7A#f-sNQL6I2g_5qjto*J+y;FZ;6&#Dr2wzqAI)xC|nU(N7(;Rv`Isa1g2-%L^ zS#hxLmVb7-TD{mst1KA!H6D{n9xeQAWyPv*`E6`fZ>gQ8YGTny^~Bm&-7)?2R#3@1 z4;%T$%6<2zR`>1PX^qt!hUD)L7<`m>TU+4PSZc`c1)Nl<6D9~udl(j_J?j$w38*w; z#py4Vw=`#(^CLBbpDsD8CjU;(4T{xz_FRKa-%mI^Fz+IvV)J*EZD(tLw@MUyxM?J< z1`I^{aW}MVx}8YR^S#Tl9VskB1326%&oY}wum+& ze?=9@{MW97{C9(_sqHS0A?pvr`lm|iPZ?T1@l#Gr&rvmyWV}PqD2q`PrY?OxXgnFT zTVXkQF?l3dNJBH(P&yHDwrU?COPzD15yoA3bk|u5E6bAgrO&UD(1bwB2GaL$?Ig{s z?Pkf}Y|7Pm3kwTJV(=*?hy*oOfg zFEEz8u&L5iywKvHi}qz)f1Z8wX$@)a{-tld!egrdQ^sNyH#fJhSrsOczb?wtR#)Rq z*`y-3UohkhHVG-}y=^Idqnn?L#g#u9GlZdrm*L!DS3^j1_AeK}NLzYeqHKkC*Jkrs z2y&Q{+Rnw#Qj1d5XeSYI{u86*ue~~P=(Gtu`4ME}jJWs;M|0*GLB%D!!iAqEvr9%M zvOOQz92RdYQPVM_T%`XP|+WHzX>+7f$+TT}f1jK)=@*D$jZ2}n-54auZOxpTf8 z8`^1WpFJkSPYR3LilND#@oW`uLSw$ON?zriT|#Wc(#)8v?X6(HwJIfjHQ#eX>GVA- z^Xt9pP=S&7*uCY=o>7{Co)65uPl9z=kKR?$J*`%|_`0MR$3pj$i8VQ&#$;0RZQL@; z_R7Al#UiSb1htI}W$!zhv)y{LMW48YoUPRq7Hn6&)B9WQZTfYGC#%o2MU??f5bFGQ z$DwYej=18d4}8Kv<>OEyPHTZnI7Znli94yS$!6B~P$E|h6LX%YtQSO7o-h|ji7^OM zWBsf=ZbH6d@YwN_&`>u1!F-RqJA%zz055ZjP5M5I*odJxzkNkAa;$mV@R6lz!s8EB z;| zP)X7>`flP7m)r^rH^e;JOLJ>Wn=YSvGJW#BUkxKg+qS}Gsb`|L<$@5&W|Y;gN5^CP zAl}i+7|+0CfV5$iL^cCEtNbGXI;OAwrrQezeZHO9kuj`~jdy0X;@;Gq5gScMOP%)J zD{7ds+`V=^a^dsKr_|}}=9}FSi#(Y_9w(s4h@3)4$QL}(g)°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