
    h                     p,   U d dl Z  e j                  dd       d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&Z&d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m0Z1m2Z2m2Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZG d dlHmIZI d dlJmKZKmLZL d dlMmNZNmOZO d dlmPZPmQZQ d dlRmSZS d dlTmUZU d dlVZVd dlWZWd dlXmYZY  ej                  dd      Z[e[dk(  r eWj                           eY        e dk(  r e!        e	e]eeSf   Z^g Z_ee^   e`d<   g Zaee^   e`d<   g Zbee^   e`d<   g Zcee^   e`d<    eU       Zded   ZedZfee	ee]   ed   f      e`d<    eg eee            Zhee`d<   g Ziee	eeeeSf      e`d<   d Zjeke`d <   dZleee]      e`d!<   dZmeek   e`d"<   d#Zneeo   e`d$<   d#Zpeeo   e`d%<   dZqeek   e`d&<   d#Zreeo   e`d'<   d#Zseeo   e`d(<   d#Zteeo   e`d)<   dZueee]e
f      e`d*<   g Zvee	e]eeSf      e`d+<   g Zwee	e]eeSf      e`d,<   g Zxee	e]eeSf      e`d-<   g Zyee   e`d.<   g Zzee   e`d/<   d#Z{eeo   e`d0<   d#Z|eoe`d1<   d#Z}eeo   e`d2<   d#Z~eeo   e`d3<   d#Zeeo   e`d4<   dZeeo   e`d5<   d#ZdZee]   e`d6<   dZee]   e`d7<   dZeEZeke`d8<    eo ej                  d9d#            Z eo ej                  d:d#            ZdZdZee]   e`d;<   dZee]   e`d<<   dZee]   e`d=<   dZee]   e`d><   dZee]   e`d?<   dZee]   e`d@<   dZee]   e`dA<   dZee]   e`dB<   dZee]   e`dC<   dZee]   e`dD<   dZee]   e`dE<   dZee]   e`dF<   dZee]   e`dG<   dZee]   e`dH<   dZee]   e`dI<   dZee]   e`dJ<   dZee]   e`dK<   dZee]   e`dL<   dZee]   e`dM<   dZee]   e`dN<   dZee]   e`dO<   dZee]   e`dP<   dZee]   e`dQ<   dZee]   e`dR<   dZee]   e`dS<   dZee]   e`dT<   dZee]   e`dU<   dZee]   e`dV<   dZee]   e`dW<   dZee]   e`dX<   dZee]   e`dY<   g dZg d[d\Zee`d]<   d#Zeoe`d^<   d#Zeoe`d_<   dZe	e]eof   e`d`<   dZee]   e`da<   dZee]   e`db<   d#Zeoe`dc<   d#Zeoe`dd<   d#Zeoe`de<   d#Zeoe`df<   dZeee]      e`dg<    e       Zee`dh<   d#Zeoe`di<   d#Zeeo   e`dj<   dkZdlZdmZee`dn<   g Zee   e`do<   dZee]   e`dp<   dZee]   e`dq<   dZee]   e`dr<   dZee   e`ds<   dZee]   e`dt<   dZee	e]ef      e`du<   dZee	e]ef      e`dv<   dwZedx   e`dy<   i Zee]eIf   e`dz<   d#Zeoe`d{<   d#Zeoe`d|<   d#Zeoe`d}<   dZeoe`d~<   dZeeo   e`d<   d#Zeoe`d<   d#Zeoe`d<   d#Zeoe`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   i Zee]e]f   e`d<   i Zee]e]f   e`d<   dZed   e`d<   dZee`d<   dZee]   e`d<   eFZee`d<   d#Zeoe`d<   dZi Zee`d<   d#Zeoe`d<   dZeeVj                     e`d<   dZeeVj                     e`d<   dZee   e`d<   dZe]e`d<   d#ZdZee]   e`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   dZeeO   e`d<   dZeeP   e`d<   dZee   e`d<   dZee	eNef      e`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   dZee   e`d<   dZee]   e`d<   dZeee]ef      e`d<   dZee   e`d<   dZeeo   e`d<   dZeeo   e`d<   dZeeo   e`d<   g Zee]   e`d<   g Zee]   e`d<   dZee   e`d<   d#Zeoe`d<   d#Zeoe`d<   dZeee]      e`d<   i Zee]e]f   e`d<   dZeee]ef      e`d<   dZeoe`d<   d#Zeoe`d<   d#Z eoe`d<   d#Zeoe`d<   d#Zeoe`d<    ee?d      Z ee?      ZdZeek   e`d<   dZeek   e`d<   dZee   e`d<   dZee   e`d<   dZ	ee   e`d<   dZ
ee   e`d<   dZeke`d<   dZeek   e`d<   dZee
   e`d<   dZee]   e`d<   dZeeK   e`d<    eL       ZeLe`d<   d#Zeoe`d<   d dʐlmZ  ee˫      Zi Zee]ef   e`d<   d#Z G d̈́ dej.                        Z e       Zdτ ZdZee]   e`d<   dZdZdZdZdZ dZ!ee   e`d<   g dҢZ"g Z#ee`d<   g Z$ee`d<   g Z%ee`d<   g Z&ee`d<   g Z'ee`d<   g Z(ee`d<   g Z)ee`d<   g Z*ee`d<   g Z+ee`d<   g Z,ee`d<   g Z-ee`d<   g Z.ee`d<   g Z/ee`d<   g Z0ee`d<   g Z1ee`d<   g Z2ee`d<   g Z3ee`d<   g Z4ee`d<   g Z5ee`d<   g Z6ee`d<   g Z7ee`d<   g Z8ee`d<   g Z9ee`d<   g Z:ee`d<   g Z;ee`d<   g Z<ee`d<   e"Z=ee`d<   g Z>ee`d<   g Z?ee`d<   g Z@ee`d<   g ZAee`d<   g ZBee`d<   g ZCee`d<   g ZDee`d<   g ZEee`d<   g ZFee`d<   g ZGee`d<   g ZHee`d<   g ZIee`d<   g ZJee`d<   g ZKee`d<   g ZLee`d<   g ZMee`d<   g ZNee`d<   g ZOee`d<   g ZPee`d <   g ZQee`d<   g ZRee`d<   g ZSee`d<   g ZTee`d<   g ZUee`d<   g ZVee`d<   g ZWee`d<   g ZXee`d<   g ZYee`d	<   g ZZee`d
<   g Z[ee`d<   g Z\ee`d<   g Z]ee`d<   g Z^ee`d<   g Z_ee`d<   g Z`ee`d<   g Zaee`d<   g Zbee`d<   g Zcee`d<   g Zdee`d<   g Zeee`d<   g Zfee`d<   de]deofdZgde]deofdZhd Zi ei        ddddZjd d!iZkd"gZld#gZmd$gZne#e$z   e%z   e&z   e)z   e8z   e*z   e+z   e:z   e.z   e1z   e8z   e9z   e<z   e=z   e;z   e:z   emz   e<z   e@z   eAz   enz   e,z   eBz   eCz   e(z   eDz   eEz   eFz   eHz   eIz   eJz   eKz   eLz   eMz   eOz   ePz   eQz   eSz   eTz   eUz   eVz   eRz   eWz   eXz   eGz   eYz   eZz   eNz   e[z   e^z   e_z   e`z   eaz   ebz   ecz   edz   efz   Zo epeo      Zq egeQ      Zree	eQe]f      e`d%<   i d&e#e$z   d'e$d(e%e&z   d)e&d*e)d+e8d,e:d-e<d.e=d/e*d0e+d1e.e1z   e4z   e-z   e,z   d2e8d3e<e=z   d4eld5emd6emi d7e@d8eAd$end9eBd:eCd;e>e?z   d<e;d=e(d>eDd?eEd@e'dAeFdBeHdCeIdDeJdEeKdFeLi dGe:dHeMdIeOdJePdKeQeRz   dLeRdMeSdNeTdOeUdPeVdQeWdRe\e]z   dSeXdTeGdUeYdVeZdWe[eNe^e_e`eaebecedeeefdX
Zsee`dY<   dZd[d\d]d^d_d`d`dadadbdbdcdddeZtee`df<   e@eAz   eBz   e3z   e?z   e]z   ZudgdhgZvdidlwmwZw didjlxmyZy d dklzm{Z{m|Z| d dll}m~Z~ d dmlmZ d dnlmZ didolmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ eeeeegZdidplmZ didqlmZ didrlmZ didslmZ didtlmZ didulmZ didvlmZ didwlmZ didxlmZ didylmZ didzlmÐZ did{lĐmŐZ did|lƐmǐZ did}lȐmɐZ did~lʐmːZ didl̐m͐Z didlΐmϐZ didlАmѐZ didlҐmӐZ didlҐmԐZ didlҐmՐZ didl֐mאZ didlؐmِZ didlڐmېZ didlܐmݐZ didlސmߐZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZmZ didlmZ didlmZ didlmZ didlmZ didlmZ didl mZ didlmZ didlmZ didlmZ didlm	Z	 didl
mZ didlmZmZ didlmZ didlmZmZ didlmZ  e       ZdidlmZ didlmZ didlmZ didlmZ didlm Z  didl!m"Z" didl#m$Z$ didl%m&Z&m'Z' didl(m)Z) didl*m+Z+ didl,m-Z- didl.m/Z/ didl0m1Z1 didl2m3Z3 didl4m5Z5 didl6m7Z7 didl8m9Z9 didl:m;Z; didl<m=Z= didl>m?Z? didl@mAZA didlBmCZC didlDmEZE didlFmGZG didlHmIZI didlJmKZK didlLmMZM didlNmOZOmPZP didlQmRZR didlSmTZT didlUmVZV didlWmXZX didÐlYmZZZ d dĐl[m\Z\ didŐl]m^Z^ didƐl_m`Z` didǐlambZb didȐlcmdZd didɐlemfZf didʐlgmhZh didːlimjZj did̐lkmlZmmlZl didlmZ  el       Zndid͐lompZp didΐlqmrZr didϐlsmtZt  ep       ZudidАlvmwZw  ew       ZxdidѐlymzZz didҐl{m|Z|  ez       Z} e|       Z~didӐlmZ didԐlmZ didՐlmZ did֐lmZ didאlmZ didؐlmZ didِlmZ didڐlmZ didېlmZ didܐlmZ didݐlmZ didސlmZ didߐlmZ didlmZ didlmZmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmZ didlmÐZ didlĐmŐZ didlƐmǐZ didlȐmɐZ didlʭ didl˭ didl̐m͐Z didlΐmϐZϐmАZАmѐZѐmҐZҐmӐZӐmԐZԐmՐZՐm֐Z֐mאZאmؐZؐmِZِmڐZڐmېZېmܐZܐmݐZݐmސZސmߐZߐmZmZmZ didlmZ didlmZ didlmZ didl didl didl didl didl didl didl didl didlmZ didl didl didl did lxmZmZ didlmZ d dlmZ g Zee   e`d<   didlmZ dZ ee   e`d<   didlmZ didlmZ g Zee   e`d<   g Zee]   e`d<   dZeeo   e`d	<   d#Zeoe`d
<   didl	m
Z
mZ y(      Nignorez%.*conflict with protected namespace.*)message)CallableListOptionalDictUnionAnyLiteralget_args)AsyncHTTPHandlerHTTPHandler)Cache	DualCache
RedisCacheInMemoryCache)LLMClientCache)COHERE_EMBEDDING_INPUT_TYPES)ImageObjectBudgetConfigall_litellm_paramsr   CredentialItem)set_verbose_turn_on_debugverbose_logger	json_logs_turn_on_json	log_level) DEFAULT_BATCH_SIZEDEFAULT_FLUSH_INTERVAL_SECONDSROUTER_MAX_FALLBACKSDEFAULT_MAX_RETRIES!DEFAULT_REPLICATE_POLLING_RETRIES'DEFAULT_REPLICATE_POLLING_DELAY_SECONDSLITELLM_CHAT_PROVIDERS"HUMANLOOP_PROMPT_CACHE_TTL_SECONDSOPENAI_CHAT_COMPLETION_PARAMSr'   OPENAI_FINISH_REASONSr(   openai_compatible_endpointsopenai_compatible_providers+openai_text_completion_compatible_providers_openai_like_providersreplicate_modelsclarifai_modelshuggingface_modelsempower_modelstogether_ai_modelsbaseten_modelsREPEATED_STREAMING_CHUNK_LIMITrequest_timeoutopen_ai_embedding_modelscohere_embedding_modelsbedrock_embedding_modelsknown_tokenizer_config BEDROCK_INVOKE_PROVIDERS_LITERALDEFAULT_MAX_TOKENSDEFAULT_SOFT_BUDGETDEFAULT_ALLOWED_FAILS)GuardrailItem)KeyManagementSystemKeyManagementSettings)DefaultTeamSSOParams#LiteLLM_UpperboundKeyGenerateParams)StandardKeyGenerationConfigLlmProviders)CustomLogger)LoggingCallbackManager)register_async_client_cleanupLITELLM_MODEDEVTinput_callbacksuccess_callbackfailure_callbackservice_callback)"lago	openmeterlogfire	literalaidynamic_rate_limiter	langsmith
prometheusoteldatadogdatadog_llm_observabilitygalileo
braintrustarizearize_phoenix	langtrace
gcs_bucketazure_storageopikargillamlflowlangfuselangfuse_otel	pagerduty	humanloop
gcs_pubsubagentopsanthropic_cache_control_hookgeneric_apiresend_email
smtp_emaildeepevals3_v2aws_sqsvector_store_pre_call_hook*logged_real_time_event_types)_known_custom_logger_compatible_callbacks	callbacksinitialized_langfuse_clientslangfuse_default_tagslangsmith_batch_sizeF$prometheus_initialize_budget_metrics!require_auth_for_metrics_endpointargilla_batch_sizedatadog_use_v1gcs_pub_sub_use_v1generic_api_use_v1argilla_transformation_object_async_input_callback_async_success_callback_async_failure_callbackpre_call_rulespost_call_rulesturn_off_message_logginglog_raw_request_responseredact_messages_in_exceptionsredact_user_api_key_infofilter_invalid_headers#add_user_information_to_llm_headersemailtoken
max_tokensLITELLM_DROP_PARAMSLITELLM_MODIFY_PARAMSapi_key
openai_keygroq_keydatabricks_keyopenai_like_key	azure_keyanthropic_keyreplicate_key	bytez_key
cohere_keyinfinity_keyclarifai_keymaritalk_keyai21_key
ollama_keyopenrouter_keydatarobot_keypredibase_keyhuggingface_keyvertex_projectvertex_locationpredibase_tenant_idtogetherai_api_keycloudflare_api_keybaseten_keyllama_api_keyaleph_alpha_keynlp_cloud_keynovita_api_keysnowflake_key
nebius_key)projectregion_namer   )	vertex_aibedrockwatsonxazurevertex_ai_beta)params	providers!common_cloud_provider_auth_paramsuse_litellm_proxy
use_client
ssl_verifyssl_security_levelssl_certificatedisable_streaming_loggingdisable_token_counter(disable_add_transform_inline_image_block&disable_add_user_agent_to_request_tagsextra_spend_tag_headersin_memory_llm_clients_cachesafe_memory_modeenable_azure_ad_token_refreshz2025-02-01-previewz
2024-03-13search_document#COHERE_DEFAULT_EMBEDDING_INPUT_TYPEcredential_listllamaguard_model_nameopenai_moderations_model_namepresidio_ad_hoc_recognizers&google_moderation_confidence_threshold$llamaguard_unsafe_content_categoriesblocked_user_listbanned_keywords_listall)r   zkey-specificzrequest-specificllm_guard_modeguardrail_name_config_mapenable_preview_featuresreturn_response_headersenable_json_schema_validationlogging'enable_loadbalancing_on_batch_endpoints3enable_caching_on_provider_specific_optional_paramscachingcaching_with_modelscachedefault_in_memory_ttldefault_redis_ttl default_redis_batch_cache_expirymodel_alias_mapmodel_group_alias_mapModelGroupSettingsmodel_group_settingsg        
max_budgetbudget_durationdefault_soft_budget#forward_traceparent_to_llm_provider
error_logsadd_function_to_promptclient_sessionaclient_sessionmodel_fallbacksz[https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.jsonmodel_cost_map_urldynamodb_table_names3_callback_paramsaws_sqs_callback_paramsgeneric_logger_headersdefault_key_generate_paramsupperbound_key_generate_paramskey_generation_settingsdefault_internal_user_paramsdefault_team_paramsdefault_team_settingsmax_user_budget default_max_internal_user_budgetmax_internal_user_budget
   max_ui_session_budgetinternal_user_budget_durationtag_budget_configmax_end_user_budgetdisable_end_user_cost_tracking.disable_end_user_cost_tracking_prometheus_only-enable_end_user_cost_tracking_prometheus_only!custom_prometheus_metadata_labelscustom_prometheus_tagsprometheus_metrics_configdisable_add_prefix_to_prompt#disable_copilot_system_to_assistantpublic_model_groupspublic_model_groups_linkspriority_reservationuse_aiohttp_transportaiohttp_trust_envdisable_aiohttp_transportdisable_aiohttp_trust_env
force_ipv4zmodule level aclient)timeoutclient_alias)r  num_retriesmax_fallbacksdefault_fallbacks	fallbackscontext_window_fallbackscontent_policy_fallbacks   allowed_failsnum_retries_per_requestsecret_manager_client_google_kms_resource_name_key_management_system_key_management_settingsoutput_parse_pii)get_model_cost_map)urlcustom_prompt_dictc                       e Zd Zd Zy)MyLocalc                     d| _         y )NzHello World)user)selfs    L/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/__init__.py__init__zMyLocal.__init__v  s	    !	    N)__name__
__module____qualname__r%   r&  r$  r   r   u  s    "r&  r   c                 *    d| v r| d   t         _        y y )Nr"  )_thread_contextr"  )event_detailss    r$  identifyr.  }  s    ,V4 r&  api_basevertex_ai_safety_settings)z%anthropic.claude-opus-4-20250514-v1:0z'anthropic.claude-sonnet-4-20250514-v1:0z)anthropic.claude-3-7-sonnet-20250219-v1:0z(anthropic.claude-3-5-haiku-20241022-v1:0z)anthropic.claude-3-5-sonnet-20241022-v2:0z)anthropic.claude-3-5-sonnet-20240620-v1:0z%anthropic.claude-3-opus-20240229-v1:0z'anthropic.claude-3-sonnet-20240229-v1:0z&anthropic.claude-3-haiku-20240307-v1:0zanthropic.claude-v2zanthropic.claude-v2:1zanthropic.claude-v1zanthropic.claude-instant-v1zai21.jamba-instruct-v1:0zai21.jamba-1-5-mini-v1:0zai21.jamba-1-5-large-v1:0meta.llama3-70b-instruct-v1:0zmeta.llama3-8b-instruct-v1:0zmeta.llama3-1-8b-instruct-v1:0zmeta.llama3-1-70b-instruct-v1:0z meta.llama3-1-405b-instruct-v1:0r1  zmistral.mistral-large-2407-v1:0zmistral.mistral-large-2402-v1:0zmistral.mistral-small-2402-v1:0zmeta.llama3-2-1b-instruct-v1:0zmeta.llama3-2-3b-instruct-v1:0zmeta.llama3-2-11b-instruct-v1:0zmeta.llama3-2-90b-instruct-v1:0open_ai_chat_completion_modelsopen_ai_text_completion_modelscohere_modelscohere_chat_modelsmistral_chat_models text_completion_codestral_modelsanthropic_modelsopenrouter_modelsdatarobot_modelsvertex_language_modelsvertex_vision_modelsvertex_chat_modelsvertex_code_chat_modelsvertex_ai_image_modelsvertex_text_modelsvertex_code_text_modelsvertex_embedding_modelsvertex_anthropic_modelsvertex_llama3_modelsvertex_ai_ai21_modelsvertex_mistral_modelsai21_modelsai21_chat_modelsnlp_cloud_modelsaleph_alpha_modelsbedrock_modelsbedrock_converse_modelsfireworks_ai_modelsfireworks_ai_embedding_modelsdeepinfra_modelsperplexity_modelswatsonx_modelsgemini_models
xai_modelsdeepseek_modelsazure_ai_modelsjina_ai_modelsvoyage_modelsinfinity_modelsdatabricks_modelscloudflare_modelscodestral_modelsfriendliai_modelsfeatherless_ai_modelspalm_modelsgroq_modelsazure_modelsazure_text_modelsanyscale_modelscerebras_modelsgaladriel_modelssambanova_modelsnovita_modelsassemblyai_modelssnowflake_modelsllama_modelsnscale_modelsnebius_modelsnebius_embedding_modelsdeepgram_modelselevenlabs_modelsdashscope_modelsmoonshot_models	v0_modelsmorph_modelslambda_ai_modelshyperbolic_modelsrecraft_modelskeyreturnc                 `    t        j                  d      }d| v ry|j                  |       }|duS )a#  
    Excludes keys with the pattern 'bedrock/<region>/<model>'. These are in the model_prices_and_context_window.json file for pricing purposes only.

    Args:
        key (str): A key to filter.

    Returns:
        bool: True if the key matches the Bedrock pattern, False otherwise.
    z^bedrock/[a-zA-Z0-9_-]+/.+$zmonth-commitmentTN)recompilematch)rv  bedrock_patternis_matchs      r$  is_bedrock_pricing_only_modelr~    s9     jj!?@OS $$S)H4r&  c                 R    | j                  d      xr | j                  d      dkD   S )a(  
    Excludes model cost keys with the pattern 'ft:<model>'. These are in the model_prices_and_context_window.json file for pricing purposes only.

    Args:
        key (str): A key to filter.

    Returns:
        bool: True if the key matches the OpenAI finetune pattern, False otherwise.
    zft::   )
startswithcount)rv  s    r$  is_openai_finetune_modelr    s(     >>% ;3!);%;;r&  c                  h   t         j                         D ]  \  } }|j                  d      dk(  r!t        |       st        j                  |        <|j                  d      dk(  rt        j                  |        f|j                  d      dk(  rt        j                  |        |j                  d      dk(  rt        j                  |        |j                  d      dk(  rt        j                  |        |j                  d      dk(  rt        j                  |        |j                  d      dk(  rt        j                  |        :|j                  d      d	k(  rt        j
                  |        e|j                  d      d
k(  rt        j                  |        |j                  d      dk(  rt        j                  |        |j                  d      dk(  rt        j                  |        |j                  d      dk(  rt         j                  |        |j                  d      dk(  rt"        j                  |        <|j                  d      dk(  rt$        j                  |        g|j                  d      dk(  rt&        j                  |        |j                  d      dk(  rt(        j                  |        |j                  d      dk(  rt*        j                  |        |j                  d      dk(  r)| j-                  dd      } t.        j                  |        %|j                  d      dk(  r)| j-                  dd      } t0        j                  |        b|j                  d      dk(  r)| j-                  dd      } t2        j                  |        |j                  d      dk(  r)| j-                  dd      } t4        j                  |        |j                  d      dk(  r)| j-                  dd      } t6        j                  |        |j                  d      dk(  rB|j                  d      dk(  rt8        j                  |        Xt:        j                  |        o|j                  d      dk(  rt<        j                  |        |j                  d      dk(  rt>        j                  |        |j                  d      dk(  r"tA        |       stB        j                  |        |j                  d      d k(  rtD        j                  |        &|j                  d      d!k(  rtF        j                  |        Q|j                  d      d"k(  rtH        j                  |        ||j                  d      d#k(  rtJ        j                  |        |j                  d      d$k(  rtL        j                  |        |j                  d      d%k(  r#d&| vsd'| vstN        j                  |        	|j                  d      d(k(  rd&| vs#tP        j                  |        :|j                  d      d)k(  rtR        j                  |        e|j                  d      d*k(  rtT        j                  |        |j                  d      d+k(  rtV        j                  |        |j                  d      d,k(  rtX        j                  |        |j                  d      d-k(  rtZ        j                  |        |j                  d      d.k(  rt\        j                  |        <|j                  d      d/k(  rt^        j                  |        g|j                  d      d0k(  rt`        j                  |        |j                  d      d1k(  rtb        j                  |        |j                  d      d2k(  rtd        j                  |        |j                  d      d3k(  rtf        j                  |        |j                  d      d4k(  rth        j                  |        >|j                  d      d5k(  rtj        j                  |        i|j                  d      d6k(  rtl        j                  |        |j                  d      d7k(  rtn        j                  |        |j                  d      d8k(  rtp        j                  |        |j                  d      d9k(  rtr        j                  |        	|j                  d      d:k(  rtt        j                  |        	@|j                  d      d;k(  rtv        j                  |        	k|j                  d      d<k(  rtx        j                  |        	|j                  d      d=k(  rtz        j                  |        	|j                  d      d>k(  rt|        j                  |        	|j                  d      d?k(  rt~        j                  |        
|j                  d      d@k(  rt        j                  |        
B|j                  d      dAk(  rt        j                  |        
m|j                  d      dBk(  rt        j                  |        
|j                  d      dCk(  rt        j                  |        
|j                  d      dDk(  rt        j                  |        
|j                  d      dEk(  rt        j                  |        |j                  d      dFk(  rt        j                  |        D|j                  d      dGk(  rt        j                  |        o|j                  d      dHk(  rt        j                  |        |j                  d      dIk(  rt        j                  |        |j                  d      dJk(  rt        j                  |        |j                  d      dKk(  st        j                  |         y )LNlitellm_provideropenaitext-completion-openai
azure_textcoherecohere_chatmistral	anthropicempower
openrouter	datarobotzvertex_ai-text-modelszvertex_ai-code-text-modelszvertex_ai-language-modelszvertex_ai-vision-modelszvertex_ai-chat-modelszvertex_ai-code-chat-modelszvertex_ai-embedding-modelszvertex_ai-anthropic_modelsz
vertex_ai/ zvertex_ai-llama_modelszvertex_ai-mistral_modelszvertex_ai-ai21_modelszvertex_ai-image-modelsai21modechat	nlp_cloudaleph_alphar   bedrock_converse	deepinfra
perplexityr   geminifireworks_aiz-to-zfireworks-ai-defaultzfireworks_ai-embedding-modelstext-completion-codestralxaideepseek
meta_llamanscaleazure_aivoyageinfinity
databricks
cloudflare	codestral
friendliaipalmgroqr   anyscalecerebras	galadriel	sambanovanovitaznebius-chat-modelsznebius-embedding-models
assemblyaijina_ai	snowflakefeatherless_aideepgram
elevenlabs	dashscopemoonshotv0morph	lambda_ai
hyperbolicrecraft)L
model_costitemsgetr  r2  appendr3  ra  r4  r5  r6  r8  r0   r9  r:  r@  rA  r;  r<  r=  r>  rB  replacerC  rD  rF  rE  r?  rH  rG  rI  rJ  r~  rK  rL  rO  rP  rQ  rR  rM  rN  r7  rS  rT  ri  rj  rU  rW  rX  rY  rZ  r[  r\  r^  r_  r`  rb  rc  rd  re  rf  rk  rl  rg  rV  rh  r]  rm  rn  ro  rp  rq  rr  rs  rt  ru  )rv  values     r$  add_known_modelsr    sN	    &&(
U99'(H4=U>
 +11#6YY)*.FF*11#6YY)*l:$$S)YY)*h6  %YY)*m;%%c*YY)*i7&&s+YY)*k9##C(YY)*i7!!#&YY)*l:$$S)YY)*k9##C(YY)*.EE%%c*YY)*.JJ#**3/YY)*.II"))#.YY)*.GG '',YY)*.EE%%c*YY)*.JJ#**3/YY)*.JJ#**3/YY)*.JJ++lB/C#**3/YY)*.FF++lB/C '',YY)*.HH++lB/C!((-YY)*.EE++lB/C!((-YY)*.FF++lB/C"))#.YY)*f4yy F* '',""3'YY)*k9##C(YY)*m;%%c*YY
<SA!!#&YY)*.@@#**3/YY)*k9##C(YY)*l:$$S)YY)*i7!!#&YY)*h6  %YY)*n<S %;3%F#**3/YY)*.MMS -44S9YY)*.II,33C8YY)*e3c"YY)*j8""3'YY)*l:$YY)*h6  %YY)*j8""3'YY)*h6  %YY)*j8""3'YY)*l:$$S)YY)*l:$$S)YY)*k9##C(YY)*l:$$S)YY)*f4s#YY)*f4s#YY)*g5$YY)*j8""3'YY)*j8""3'YY)*k9##C(YY)*k9##C(YY)*h6  %YY)*.BB  %YY)*.GG#**3/YY)*l:$$S)YY)*i7!!#&YY)*k9##C(YY)*.>>!((-YY)*j8""3'YY)*l:$$S)YY)*k9##C(YY)*j8""3'YY)*d2S!YY)*g5$YY)*k9##C(YY)*l:$$S)YY)*i7!!#&q )r&  zazure/gpt-35-turbozazure/gpt-35-turbo-16kzazure/gpt-35-turbo-instruct)zgpt-35-turbozgpt-35-turbo-16kzgpt-35-turbo-instructadaz	azure/adazpetals-team/StableBeluga2llama2maritalkprovider_listr  r  r  r  r  	replicatehuggingfacetogether_aibasetenr  r  r   r  r   petalsollamaollama_chatr  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  nebiusr  r  r  r  r  )
r  r  r  r  r  r  r  r  r  r  models_by_providerzgpt-3.5-turbo-16kzgpt-3.5-turbo-16k-0301zgpt-3.5-turbo-16k-0613z	gpt-4-32kzgpt-4-32k-0314zgpt-4-32k-0613zclaude-2zchat-bison-32kzcodechat-bison-32kz#openrouter/openai/gpt-3.5-turbo-16kzopenrouter/anthropic/claude-2)zgpt-3.5-turbozgpt-3.5-turbo-0301zgpt-3.5-turbo-0613zgpt-4z
gpt-4-0314z
gpt-4-0613zclaude-instant-1zclaude-instant-1.2z
chat-bisonzchat-bison@001zcodechat-bisonzcodechat-bison@001zopenrouter/openai/gpt-3.5-turboz&openrouter/anthropic/claude-instant-v1"longer_context_model_fallback_dictzdall-e-2zdall-e-3r  )completion_cost)Loggingmodify_integration)get_llm_provider)remove_index_from_tool_calls)get_modified_max_tokens))clientexception_typeget_optional_paramsget_response_stringtoken_countercreate_pretrained_tokenizercreate_tokenizersupports_function_callingsupports_web_searchsupports_url_contextsupports_response_schema"supports_parallel_function_callingsupports_visionsupports_audio_inputsupports_audio_outputsupports_system_messagessupports_reasoningget_litellm_paramsacreateget_max_tokensget_model_inforegister_prompt_templatevalidate_environmentcheck_valid_keyregister_modelencodedecode_calculate_retry_after_should_retryget_supported_openai_paramsget_api_baseget_first_chars_messagesModelResponseModelResponseStreamEmbeddingResponseImageResponseTranscriptionResponseTextCompletionResponseget_provider_fieldsModelResponseListIteratorget_valid_models)BytezChatConfig)	CustomLLM)AmazonConverseConfig)OpenAILikeChatConfig)AiohttpOpenAIChatConfig)GaladrielChatConfig)GithubChatConfig)EmpowerChatConfig)HuggingFaceChatConfig)HuggingFaceEmbeddingConfig)OobaboogaConfig)MaritalkConfig)OpenrouterConfig)DataRobotConfig)AnthropicConfig)AnthropicModelInfo)GroqSTTConfig)AnthropicTextConfig)TritonConfig)TritonGenerateConfig)TritonInferConfig)TritonEmbeddingConfig)HuggingFaceRerankConfig)DatabricksConfig)DatabricksEmbeddingConfig)PredibaseConfig)ReplicateConfig)CohereTextConfig)SnowflakeConfig)CohereRerankConfig)CohereRerankV2Config)AzureAIRerankConfig)InfinityRerankConfig)JinaAIRerankConfig)ClarifaiConfig)AI21ChatConfigr#  )LlamaAPIConfig)AnthropicMessagesConfig)$AmazonAnthropicClaude3MessagesConfig)TogetherAIConfig)TogetherAITextCompletionConfig)CloudflareChatConfig)NovitaConfig)
PalmConfig)NLPCloudConfig)PetalsConfig)AlephAlphaConfig)VertexGeminiConfigr/  )GeminiModelInfo)GoogleAIStudioGeminiConfigr1  )VertexAITextEmbeddingConfig)VertexAIAnthropicConfig)VertexAILlama3Config)VertexAIAi21Config)OllamaChatConfig)OllamaConfig)SagemakerConfig)SagemakerChatConfig)AmazonCohereChatConfigbedrock_tool_name_mappings)AmazonBedrockGlobalConfig)AmazonAI21Config)AmazonInvokeNovaConfig)AmazonAnthropicConfig)AmazonAnthropicClaude3Config)AmazonCohereConfig)AmazonLlamaConfig)AmazonDeepSeekR1Config)AmazonMistralConfig)AmazonTitanConfig)AmazonInvokeConfig)AmazonStabilityConfig)AmazonStability3Config)AmazonNovaCanvasConfig)AmazonTitanG1Config)&AmazonTitanMultimodalEmbeddingG1Config)AmazonTitanV2Config)CohereChatConfig)BedrockCohereEmbeddingConfig)OpenAIConfigMistralEmbeddingConfig)OpenAIImageVariationConfig)DeepInfraConfig) DeepgramAudioTranscriptionConfig)TopazModelInfo)TopazImageVariationConfig)OpenAITextCompletionConfig)GroqChatConfig)VoyageEmbeddingConfig)InfinityEmbeddingConfig)AzureAIStudioConfig)MistralConfig)OpenAIResponsesAPIConfig)AzureOpenAIResponsesAPIConfig)OpenAIOSeriesConfigr^  )OpenAIGPTConfig)%OpenAIWhisperAudioTranscriptionConfig)!OpenAIGPTAudioTranscriptionConfig)OpenAIGPTAudioConfig)NvidiaNimConfig)NvidiaNimEmbeddingConfig)FeatherlessAIConfig)CerebrasConfig)SambanovaConfig)r#  )FireworksAIConfig)FireworksAITextCompletionConfig)#FireworksAIAudioTranscriptionConfig)FireworksAIEmbeddingConfig)FriendliaiChatConfig)JinaAIEmbeddingConfig)XAIChatConfig)XAIModelInfo)VolcEngineConfig)CodestralTextCompletionConfig)AzureOpenAIErrorAzureOpenAIAssistantsAPIConfig)AzureOpenAIConfig)AzureOpenAITextConfig)HostedVLLMChatConfig)LlamafileChatConfig)LiteLLMProxyChatConfig)
VLLMConfig)DeepSeekChatConfig)LMStudioChatConfig)LmStudioEmbeddingConfig)NscaleConfig)PerplexityChatConfig)AzureOpenAIO1Config)IBMWatsonXAIConfig)IBMWatsonXChatConfig)IBMWatsonXEmbeddingConfig)GithubCopilotConfig)NebiusConfig)DashScopeChatConfig)MoonshotChatConfig)V0ChatConfig)MorphChatConfig)LambdaAIChatConfig)HyperbolicChatConfig)ro   )close_litellm_async_clients)AuthenticationErrorInvalidRequestErrorBadRequestErrorNotFoundErrorRateLimitErrorServiceUnavailableErrorOpenAIErrorContextWindowExceededErrorContentPolicyViolationErrorBudgetExceededErrorAPIErrorTimeoutAPIConnectionErrorUnsupportedParamsErrorAPIResponseValidationErrorUnprocessableEntityErrorInternalServerErrorJSONSchemaValidationErrorLITELLM_EXCEPTION_TYPESMockException)BudgetManager)
run_server)Router)
_arealtime)response_cost_calculatorcost_per_token)AdapterItemadapters)VectorStoreRegistryvector_store_registry)CustomLLMItem)GenericStreamingChunkcustom_provider_map_custom_providersdisable_hf_tokenizer_downloadglobal_disable_no_log_param)allm_passthrough_routellm_passthrough_route(  warningsfilterwarnings	threadingostypingr   r   r   r   r	   r
   r   r   &litellm.llms.custom_httpx.http_handlerr   r   litellm.caching.cachingr   r   r   r   #litellm.caching.llm_caching_handlerr   litellm.types.llms.bedrockr   litellm.types.utilsr   r   r   _litellm_completion_paramsr   litellm._loggingr   r   r   r   r   r   ry  litellm.constantsr   r    r!   r"   r#   r$   r%   r&   r'   _openai_completion_paramsr(   _openai_finish_reasonsr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   litellm.types.guardrailsr=   "litellm.types.secret_managers.mainr>   r?   /litellm.types.proxy.management_endpoints.ui_ssor@   rA   rB   rC   "litellm.integrations.custom_loggerrD   3litellm.litellm_core_utils.logging_callback_managerrE   httpxdotenv.litellm.llms.custom_httpx.async_client_cleanuprF   getenvlitellm_modeload_dotenvstrCALLBACK_TYPESrI   __annotations__rJ   rK   rL   logging_callback_manager+_custom_logger_compatible_callbacks_literalrp   listrq   rr   rs   intrt   ru   rv   boolrw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   store_audit_logsr   r   	telemetryr   drop_paramsmodify_paramsretryr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   dictr   r   r   r   r   r   r   r   r   r   r   r   r   AZURE_DEFAULT_API_VERSIONWATSONX_DEFAULT_API_VERSIONr   r   r   r   r   r   floatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _current_costr   r   r   Clientr   AsyncClientr   r   suppress_debug_infor   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  module_level_aclientmodule_level_clientr  r  r  r  r  r  r  r  r  r  r  r  r  -litellm.litellm_core_utils.get_model_cost_mapr  r  r  check_provider_endpointlocalr   r,  r.  r/  headersapi_versionorganizationr   config_pathr0  BEDROCK_CONVERSE_MODELSr2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  r~  r  r  
azure_llmsazure_embedding_modelspetals_modelsollama_modelsmaritalk_models
model_listsetmodel_list_setr  r  r  all_embedding_modelsopenai_image_generation_modelsr  cost_calculatorr  *litellm.litellm_core_utils.litellm_loggingr  r  1litellm.litellm_core_utils.get_llm_provider_logicr  'litellm.litellm_core_utils.core_helpersr  (litellm.litellm_core_utils.token_counterr  utilsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ALL_LITELLM_RESPONSE_TYPESllms.bytez.chat.transformationr   llms.custom_llmr  )llms.bedrock.chat.converse_transformationr  llms.openai_like.chat.handlerr  'llms.aiohttp_openai.chat.transformationr  "llms.galadriel.chat.transformationr  llms.github.chat.transformationr   llms.empower.chat.transformationr  $llms.huggingface.chat.transformationr  )llms.huggingface.embedding.transformationr	  "llms.oobabooga.chat.transformationr
  llms.maritalkr  #llms.openrouter.chat.transformationr  "llms.datarobot.chat.transformationr  "llms.anthropic.chat.transformationr  llms.anthropic.common_utilsr  llms.groq.stt.transformationr  (llms.anthropic.completion.transformationr  %llms.triton.completion.transformationr  r  r  $llms.triton.embedding.transformationr  &llms.huggingface.rerank.transformationr  #llms.databricks.chat.transformationr  $llms.databricks.embed.transformationr  "llms.predibase.chat.transformationr  "llms.replicate.chat.transformationr  %llms.cohere.completion.transformationr  CohereConfig"llms.snowflake.chat.transformationr  !llms.cohere.rerank.transformationr  $llms.cohere.rerank_v2.transformationr  #llms.azure_ai.rerank.transformationr  #llms.infinity.rerank.transformationr   "llms.jina_ai.rerank.transformationr!  !llms.clarifai.chat.transformationr"  llms.ai21.chat.transformationr#  
AI21Config#llms.meta_llama.chat.transformationr$  @llms.anthropic.experimental_pass_through.messages.transformationr%  Mllms.bedrock.messages.invoke_transformations.anthropic_claude3_transformationr&  llms.together_ai.chatr'  *llms.together_ai.completion.transformationr(  #llms.cloudflare.chat.transformationr)  llms.novita.chat.transformationr*  llms.deprecated_providers.palmr+  llms.nlp_cloud.chat.handlerr,  %llms.petals.completion.transformationr-  %llms.deprecated_providers.aleph_alphar.  8llms.vertex_ai.gemini.vertex_and_google_ai_studio_geminir/  VertexAIConfigllms.gemini.common_utilsr0  llms.gemini.chat.transformationr1  GeminiConfig/llms.vertex_ai.vertex_embeddings.transformationr2  vertexAITextEmbeddingConfig@llms.vertex_ai.vertex_ai_partner_models.anthropic.transformationr3  =llms.vertex_ai.vertex_ai_partner_models.llama3.transformationr4  ;llms.vertex_ai.vertex_ai_partner_models.ai21.transformationr5  llms.ollama.chat.transformationr6  %llms.ollama.completion.transformationr7  (llms.sagemaker.completion.transformationr8  "llms.sagemaker.chat.transformationr9   llms.bedrock.chat.invoke_handlerr:  r;  llms.bedrock.common_utilsr<  Cllms.bedrock.chat.invoke_transformations.amazon_ai21_transformationr=  Cllms.bedrock.chat.invoke_transformations.amazon_nova_transformationr>  Illms.bedrock.chat.invoke_transformations.anthropic_claude2_transformationr?  Illms.bedrock.chat.invoke_transformations.anthropic_claude3_transformationr@  Ellms.bedrock.chat.invoke_transformations.amazon_cohere_transformationrA  Dllms.bedrock.chat.invoke_transformations.amazon_llama_transformationrB  Gllms.bedrock.chat.invoke_transformations.amazon_deepseek_transformationrC  Fllms.bedrock.chat.invoke_transformations.amazon_mistral_transformationrD  Dllms.bedrock.chat.invoke_transformations.amazon_titan_transformationrE  Cllms.bedrock.chat.invoke_transformations.base_invoke_transformationrF  3llms.bedrock.image.amazon_stability1_transformationrG  3llms.bedrock.image.amazon_stability3_transformationrH  4llms.bedrock.image.amazon_nova_canvas_transformationrI  1llms.bedrock.embed.amazon_titan_g1_transformationrJ  9llms.bedrock.embed.amazon_titan_multimodal_transformationrK  1llms.bedrock.embed.amazon_titan_v2_transformationrL  llms.cohere.chat.transformationrM  (llms.bedrock.embed.cohere_transformationrN  llms.openai.openairO  rP  +llms.openai.image_variations.transformationrQ  "llms.deepinfra.chat.transformationrR  0llms.deepgram.audio_transcription.transformationrS  llms.topaz.common_utilsrT  *llms.topaz.image_variations.transformationrU  -litellm.llms.openai.completion.transformationrV  llms.groq.chat.transformationrW  $llms.voyage.embedding.transformationrX  &llms.infinity.embedding.transformationrY  !llms.azure_ai.chat.transformationrZ   llms.mistral.chat.transformationr[  $llms.openai.responses.transformationr\  #llms.azure.responses.transformationr]  (llms.openai.chat.o_series_transformationr^  OpenAIO1ConfigopenaiOSeriesConfig#llms.openai.chat.gpt_transformationr_  1llms.openai.transcriptions.whisper_transformationr`  -llms.openai.transcriptions.gpt_transformationra  openAIGPTConfig)llms.openai.chat.gpt_audio_transformationrb  openAIGPTAudioConfig#llms.nvidia_nim.chat.transformationrc  llms.nvidia_nim.embedrd  nvidiaNimConfignvidiaNimEmbeddingConfig'llms.featherless_ai.chat.transformationre  llms.cerebras.chatrf  llms.sambanova.chatrg  %llms.fireworks_ai.chat.transformationrh  +llms.fireworks_ai.completion.transformationri  4llms.fireworks_ai.audio_transcription.transformationrj  3llms.fireworks_ai.embed.fireworks_ai_transformationrk  #llms.friendliai.chat.transformationrl  %llms.jina_ai.embedding.transformationrm  llms.xai.chat.transformationrn  llms.xai.common_utilsro  llms.volcenginerp  (llms.codestral.completion.transformationrq  llms.azure.azurerr  rs  "llms.azure.chat.gpt_transformationrt  $llms.azure.completion.transformationru  $llms.hosted_vllm.chat.transformationrv  "llms.llamafile.chat.transformationrw  &llms.litellm_proxy.chat.transformationrx  #llms.vllm.completion.transformationry  !llms.deepseek.chat.transformationrz  "llms.lm_studio.chat.transformationr{  #llms.lm_studio.embed.transformationr|  llms.nscale.chat.transformationr}  #llms.perplexity.chat.transformationr~  'llms.azure.chat.o_series_transformationr  &llms.watsonx.completion.transformationr   llms.watsonx.chat.transformationr  !llms.watsonx.embed.transformationr  'llms.github_copilot.chat.transformationr  llms.nebius.chat.transformationr  "llms.dashscope.chat.transformationr  !llms.moonshot.chat.transformationr  llms.v0.chat.transformationr  llms.morph.chat.transformationr  "llms.lambda_ai.chat.transformationr  #llms.hyperbolic.chat.transformationr  mainintegrations&llms.custom_httpx.async_client_cleanupr  
exceptionsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  budget_managerr  proxy.proxy_clir  routerr  assistants.mainbatches.mainimages.mainvector_storesbatch_completion.mainrerank_api.main9llms.anthropic.experimental_pass_through.messages.handlerresponses.mainrealtime_api.mainr  fine_tuning.main
files.main	schedulerr  r  types.adapterr  litellm.anthropic_interfaceanthropic_interfacer  r  #vector_stores.vector_store_registryr  r  types.llms.custom_llmr  types.utilsr  r  r  r  r  passthroughr  r  r*  r&  r$  <module>r     s      *Q R  	 P P P P O O > C   
! ! ! ! ! ! ! ! !D 3 J ; V   Xryy/5F   $ sHl23')^$ ))+ $~& +)+ $~& +)+ $~& +13 .5!"#/ +H JN huT#Y-D'EF M26893 )4 
  
4	(?
MN  %& c %-1 xS	* 1&* hsm *7< $htn <49 !8D> 9$( HSM (!& & 
 H 

 
 H 
 ;? xS#X7 >  t	#x
%& 
  	#x
%& 
  	#x
%&  "$X #"$h $+0 (4. 0!& $ &05 x~ 5+0 (4. 0).  . 	 $X& 	  
 	 x 	
 	 x 	 	$
C $92992E:;YRYY6>?#  
HSM  (3-  $ $!%# %	8C= #x} ##x} #	8C=  
HSM  "hsm ""hsm ""hsm "(3-  
HSM   $ $#x} ##x} #!%# % $ $!%# %%) Xc] )$( HSM ($( HSM (!Xc] !#x} #!%# %#x} # $ $#x} # 
HSM  1O+ !4 
 
 4  
D #
E#t) #$( HSM (!%# %"' 4 '# t #16 ($ 6/4 & 4/3 $s), 3.<.> ^ > $ 05 x~ 50 * DU #%A U(*n% *'+ x} +/3 x} 3-1 Xc] 1:> & >6: $hsm :04 8E#t),- 437 huS$Y/0 7EJAB J68 4] 23 8 !&  %	   ', t + :> '$ >	 4T   ! T ! 	 x	 	 *. x -%) 8E? )48  (5/ 8"$c3h $(* tCH~ *7; h34 ;
E  	  	  U  -2 #T 1 
D $  $)-& -/3%++, 3"&$ &w C w %) Xc] )%) HTN )*. $ .)-  -.2 Xd^ 2PT )L M TAE "=> E/3 htn 3CG Xe$8$$>?@ G(, x~ ,#'% '48  (5/ 8,0 (5/ 0)+ x +/3 x} 37; 8Dl!234 ;'+ Xe_ +15  5AE . E@D -x~ D/1 !49 1$& S	 &,0 8D> 0	 d  -2 #T 1+/ Xd3i( /,. 4S> .37 htCJ/0 7 # t " 4 "' 4 '	 4  
D '*@  "/:  "Xc] !#x} #$( 8D> ( 	8D>  +/ (4. /+/ (4. /s  	  	 	 x 	 ,0 8C= /8< !45 <2G2I / I $  L L$67
&( DdO ( "ioo "
 )5 (3- 

,0 8D> 0 B (*  )')  )t  D  T )+  $ + $  4  $ !  ! d  D  "  "!  ! D  "  " "  " "  " d   t    t  T  $  $  D   7  7 T &( t ( $  4  t 
D    t   4  4  $  4   t  T T d  4    $  $ t  4  $ d t t  "  "  4  $  	4 d  $  4   s  t  (
<# 
<$ 
<Y'x   )0:
 
; 
   
, #$%  	
     	 
       !" #$ %& '( )* +, -. /0 12 '3'4 56 78 9: ;< => ?@ A B C!D E"F G#H I$J K%L M&N O'P Q(R S)T U*V W+X Y,Z [-\ ].^ _/` a0b c1d e2f g3h i4j k5l m6n o7p q8r s9 z Z04\0BtE,+,- BB,/MMB<B m00B %	B
 !B !B %B %B ~B #B !B #  	B" K#B$ ~ 77%B& m'B( m)B* =+B, !-B. #/B0 1B2 ~3B4 m5B6 '*GG7B8 %9B:  !A;B< 
:=B> ?B@ "ABB CBD mEBF GBH #IBJ #KBL !MBN !OBP #QBR KSBT KUBV \--WBX #YBZ [B\ ]B^ !_B` !aBb mcBd m55eBf #gBh ~iBj !kBl ,mBn moBp ,#!
!#CB D BN )22"""$"&*.'L.M%, "D 0   $	$
   #-j!9    , , R R N N P P L L* * * * * * * * * * * * * * * * * * * * * *Z   < ; & & K K ? ? L L C C = = ? ? G G Q Q ? ? ) ) A A ? ? ? ? ; ; 7 7 I I ? ? G G D D G G K K A A K K ? ? ? ? S S ? ? A A F F D D E E B B = = W W ? ?   4 3 V V E E 9 9  8 7 ? ? C C  6 5   :;     > = ? ? E E C C 
            W V W W X X R R   > = R R D D S S ? ?  4 3 Q Q T T 9 9 G G K K B B ; ; J J N N 
 @ ?)+     "#  ,-  @ @ ; ;!#35  H H . . 0 0 9 9 D D X X   F E H H 7 7 / / - - S S 
 B A G G F F C C J J ; ; A A B B H H 9 9 E E H H F F B B H H H H 9 9 C C A A 5 5 ; ; B B E E   O O          , * ) ' '       $  H  ) )    E E ' & / / ${
   E D7; x 34 ; 1 0 . .+- T-( -  4 
 	 x  	 %* T ) G Fr&  