
    ^h                         % S SK r \ R                  " SSS9  S SKrS SKrS SKJrJrJrJrJ	r	J
r
JrJr  S SKJrJr  S SKJrJrJrJr  S SKJr  S S	KJrJr  S S
KJrJrJrJrJrJ r   S SK!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  S SK)J*r*  S SK+J,r,J-r-J.r.  S SKJ/r/J0r0  S SK1J2r2  S SK3r3S SK4r4S SK5J6r6  \Rn                  " SS5      r8\8S:X  a  \4Rr                  " 5         \S:X  a  \" 5         / r:\\	\;\4      \<S'   / r=\\	\;\4      \<S'   / r>\\	\;\4      \<S'   / r?\\	\;\4      \<S'   \S   r@SrA\\	\\;   \S   4      \<S'   \B" \" \@5      5      rC\\<S'   / rD\\	\\@\24      \<S'   SrE\\\;      \<S'   SrF\\G   \<S'   SrH\\G   \<S'   S rI\\J   \<S!'   SrK\\\;\
4      \<S"'   / rL\\   \<S#'   / rM\\	\;\4      \<S$'   / rN\\   \<S%'   / rO\\   \<S&'   / rP\\   \<S''   S rQ\\J   \<S('   S rR\J\<S)'   S rS\\J   \<S*'   S rT\\J   \<S+'   SrU\\J   \<S,'   S rVSrW\\;   \<S-'   SrX\\;   \<S.'   SrYS/rZ\J" \Rn                  " S0S 5      5      r[S r\Sr]Sr^\\;   \<S1'   Sr_\\;   \<S2'   Sr`\\;   \<S3'   Sra\\;   \<S4'   Srb\\;   \<S5'   Src\\;   \<S6'   Srd\\;   \<S7'   Sre\\;   \<S8'   Srf\\;   \<S9'   Srg\\;   \<S:'   Srh\\;   \<S;'   Sri\\;   \<S<'   Srj\\;   \<S='   Srk\\;   \<S>'   Srl\\;   \<S?'   Srm\\;   \<S@'   Srn\\;   \<SA'   Sro\\;   \<SB'   Srp\\;   \<SC'   Srq\\;   \<SD'   Srr\\;   \<SE'   Srs\\;   \<SF'   Srt\\;   \<SG'   Sru\\;   \<SH'   Srv\\;   \<SI'   / SJQ/ SKQSL.rw\x\<SM'   S ry\J\<SN'   Srz\	\;\J4   \<SO'   Sr{\\;   \<SP'   S r|\J\<SQ'   \" 5       r}\\<SR'   S r~\J\<SS'   S r\\J   \<ST'   SUrSVrSWr\\<SX'   Sr\\;   \<SY'   Sr\\;   \<SZ'   Sr\\;   \<S['   Sr\\   \<S\'   Sr\\;   \<S]'   Sr\\	\;\4      \<S^'   Sr\\	\;\4      \<S_'   S`r\Sa   \<Sb'   0 r\\;\*4   \<Sc'   S r\J\<Sd'   S r\J\<Se'   S r\J\<Sf'   Sr\J\<Sg'   Sr\\J   \<Sh'   S r\J\<Si'   S r\J\<Sj'   S r\J\<Sk'   Sr\\   \<Sl'   Sr\\   \<Sm'   Sr\\   \<Sn'   Sr\\   \<So'   0 r\\;\;4   \<Sp'   0 r\\;\;4   \<Sq'   Srr\\<Ss'   Sr\\;   \<St'   Sur\\<Sv'   S r\J\<Sw'   / SxQr/ SyQr/ SzQrSrr0 r\\<S{'   S r\J\<S|'   Sr\\3GRL                     \<S}'   Sr\\3GRP                     \<S~'   Sr\\   \<S'   Sr\;\<S'   S rSr\\;   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\.   \<S'   Sr\\/   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\;   \<S'   Sr\\\;\4      \<S'   Sr\\   \<S'   Sr\\J   \<S'   Sr\\J   \<S'   Sr\\\;\4      \<S'   SrSr\\<S'   S r\J\<S'   \" \SS9r\" \S9rSr\\G   \<S'   Sr\\G   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\\   \<S'   Sr\G\<S'   Sr\\G   \<S'   Sr\\
   \<S'   Sr\\;   \<S'   Sr\\,   \<S'   \-" 5       r\-\<S'   S r\J\<S'   S\;4S jr\" \S9r0 r\\;\x4   \<S'    " S S\GR                  5      r\" 5       rS rSrSrSrSrSrSrSr\\x   \<S'   / SQr/ r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   \r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / r\\<S'   / Gr \\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr	\\<S'   / Gr
\\<S'   / Gr\\<S'   / Gr\\<S'   / Gr\\<S'   S GrG\" 5         / SQGr\\<S'   / SQGr\\<S'   / SQGr\\<S'   / SQGr\\<S'   / SQGr\\<S'   / SQGr\\<S'   / SQGr\\<S'   SS/r/ SQGr\\<S'   / SQGr\\<S'   SSSS.GrSS0GrS/GrS/GrS/Gr\\-   \-   \-   \-   G\-   \-   G\-   \-   \-   \-   \-   G\-   G\-   \-   \-   G\-   \-   \-   \-   G\-   \-   \-   \-   \-   \-   G\ -   G\-   G\-   G\-   G\-   G\-   G\-   G\-   G\-   G\	-   G\
-   G\-   G\-   G\-   Gr\B" \05      Gr\\	\0\;4      \<S'   0 GS \\-   _GS\_GS\\-   _GS\_GS\_GSG\_GSG\_GSG\_GSG\_GS	\_GS
\\-   \-   \-   \-   _GS\_GS\\-   _GSG\_GSG\_GS\_GS\_0 SG\_GS\_GS\_GS\\-   _GS\_GS\_GS\_GSG\ _GS\_GSG\_GSG\_GSG\_GSG\_GSG\_GS\_GSG\_GS G\_EG\G\	G\
G\G\G\GS!.EGr\x\<GS"'   GS#GS$GS%GS&GS'GS(GS)GS)GS*GS*GS+GS+GS,GS-GS..Gr \x\<GS/'   GS0/Gr!\\<GS1'   / GS2QGr"\\<GS3'   / GS4QGr#\\<GS5'   G\!G\"-   G\#-   \-   \-   Gr$GS6GS7/Gr%GS8SGK&GJ&Gr&  GS8GS9GK'GJ(Gr(  S GS:GK)GJ*Gr*GJ+Gr+  S GS;GK,GJ-Gr-  S GS<GK.GJ/Gr/  S GS=GK0GJ1Gr1  GS8GS>GK2GJ3Gr3GJ4Gr4GJ5Gr5GJ6Gr6GJ7Gr7GJ8Gr8GJ9Gr9GJ:Gr:GJ;Gr;GJ<Gr<GJ=Gr=GJ>Gr>GJ?Gr?GJ@Gr@GJAGrAGJBGrBGJCGrCGJDGrDGJEGrEGJFGrFGJGGrGGJHGrHGJIGrIGJJGrJGJKGrKGJLGrLGJMGrMGJNGrNGJOGrOGJPGrPGJQGrQGJRGrRGJSGrSGJTGrTGJUGrUGJVGrV  G\PG\QG\RG\SG\T/GrWGS8GS?GKXGJYGrY  GS8GS@GKZGJ[Gr[  GS8GSAGK\GJ]Gr]  GS8GSBGK^GJ_Gr_  GS8GSCGK`GJaGra  GS8GSDGKbGJcGrd  GS8GSEGKeGJfGrf  GS8GSFGKgGJhGrh  GS8GSGGKiGJjGrj  GS8GSHGKkGJlGrl  GS8GSIGKmGJnGrn  GS8GSJGKoGJpGrp  GS8GSKGKqGJrGrr  GS8GSLGKsGJtGrt  GS8GSMGKsGJuGru  GS8GSNGKsGJvGrv  GS8GSOGKwGJxGrx  GS8GSPGKyGJzGrz  GS8GSQGK{GJ|Gr|  GS8GSRGK}GJ~Gr~  GS8GSSGKGJGr  GS8GSTGKGJGr  GS8GSUGKGJGr  GS8GSVGKGJGr  GS8GSWGKGJGr  GS8GSXGKGJGr  GS8GSYGKGJGrGJGr  GS8GSZGKGJGr  GS8GS[GKGJGr  GS8GS\GKGJGr  GS8GS]GKGJGr  GS8GS^GKGJGr  GS8GS_GKGJGr  GS8GS`GKGJGrGJGrGJGrGJGr  GS8GSaGKGJGr  G\" 5       GrGS8GSbGKGJGr  GS8GScGKGJGr  GS8GSdGKGJGr  GS8GSeGKGJGr  GS8GSfGKGJGr  GS8GSgGKGJGr  GS8GShGKGJGr  GS8GSiGKGJGrGJGr  GS8GSjGKGJGr  GS8GSkGKGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGr  GS8GSlGKGJGr  GS8GSmGKGJGr  GS8GSnGKGJGr  GS8GSoGKGJGr  GS8GSpGKGJGr  GS8GSqGKGJGr  GS8GSrGKGJGr  GS8GSsGKGJGrGJGr  GS8GStGKGJGr  S GSuGKGJGr  GS8GSvGKGJGr  GS8GSwGKGJGr  GS8GSxGKGJGr  GS8GSyGKGJGr  GS8GSzGKGJGr  G\" 5       GrGS8GS{GKGJGr  G\" 5       GrGS8GS|GKGJGr  G\" 5       GrGS8GS}GKGJGr  GS8GS~GKGJGr  G\" 5       GrG\" 5       GrGS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGrGJGr  GS8GSGK GJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJ	Gr	  GS8GSGK
GJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGKGJGr  GS8GSGK7  GS8GSGK7  GS8GSGKGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ Gr GJ!Gr!GJ"Gr"GJ#Gr#GJ$Gr$GJ%Gr%GJ&Gr&GJ'Gr'GJ(Gr(GJ)Gr)GJ*Gr*GJ+Gr+GJ,Gr,  GS8GSGK-GJ.Gr.  GS8GSGK/GJ0Gr0  GS8GSGK1GJ2Gr2  GS8GSGK37  GS8GSGK47  GS8GSGK57  GS8GSGK67  GS8GSGK7GJ8Gr8  GS8GSGK97  GS8GSGK:7  GS8GSGK;7  GS8GSGK'GJ<Gr<GJ=Gr=  GS8GSGK>GJ?Gr?  / Gr@\G\?   \<GS'   GS8GSGKAGJBGrB  GS8GSGKCGJDGrD  / GrE\G\B   \<GS'   / GrF\\;   \<GS'   g(      Nignorez%.*conflict with protected namespace.*)message)CallableListOptionalDictUnionAnyLiteralget_args)AsyncHTTPHandlerHTTPHandler)Cache	DualCache
RedisCacheInMemoryCache)COHERE_EMBEDDING_INPUT_TYPES)ImageObjectBudgetConfig)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)GuardrailItem)KeyManagementSystemKeyManagementSettings#LiteLLM_UpperboundKeyGenerateParams)StandardKeyGenerationConfigLlmProviders)CustomLogger)EnumLITELLM_MODEDEVTinput_callbacksuccess_callbackfailure_callbackservice_callback)lago	openmeterlogfire	literalaidynamic_rate_limiter	langsmith
prometheusdatadogdatadog_llm_observabilitygalileo
braintrustarize	langtrace
gcs_bucketazure_storageopikargillamlflowlangfuse*logged_real_time_event_types)_known_custom_logger_compatible_callbacks	callbackslangfuse_default_tagslangsmith_batch_sizeargilla_batch_sizeFdatadog_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#add_user_information_to_llm_headersemailtoken   LITELLM_DROP_PARAMSapi_key
openai_keygroq_keydatabricks_keyopenai_like_key	azure_keyanthropic_keyreplicate_key
cohere_keyinfinity_keyclarifai_keymaritalk_keyai21_key
ollama_keyopenrouter_keypredibase_keyhuggingface_keyvertex_projectvertex_locationpredibase_tenant_idtogetherai_api_keycloudflare_api_keybaseten_keyaleph_alpha_keynlp_cloud_key)projectregion_namerX   )	vertex_aibedrockwatsonxazurevertex_ai_beta)params	providers!common_cloud_provider_auth_params
use_client
ssl_verifyssl_certificatedisable_streaming_loggingin_memory_llm_clients_cachesafe_memory_modeenable_azure_ad_token_refreshz2024-08-01-previewz
2024-03-13search_document#COHERE_DEFAULT_EMBEDDING_INPUT_TYPE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_mapg        
max_budgetbudget_durationg      I@default_soft_budget#forward_traceparent_to_llm_provider)stoplengthfunction_callcontent_filternull)	functionsr   temperaturer   top_pnstreamr   
max_tokenspresence_penaltyfrequency_penalty
logit_biasuserrequest_timeoutapi_baseapi_versionr[   deployment_idorganizationbase_urldefault_headerstimeoutresponse_formatseedtoolstool_choicemax_retries)%metadataacompletionr   mock_responser[   r   r   force_timeout	logger_fnverbosecustom_llm_providerlitellm_logging_objlitellm_call_idr~   id	fallbacksry   headers
model_listnum_retriescontext_window_fallback_dictrolesfinal_prompt_value	bos_token	eos_tokenr   complete_responseselfclientrpmtpminput_cost_per_tokenoutput_cost_per_tokenhf_model_name
model_infoproxy_server_requestpreset_cache_key
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generic_logger_headersdefault_key_generate_paramsupperbound_key_generate_paramskey_generation_settingsdefault_internal_user_paramsdefault_team_settingsmax_user_budget default_max_internal_user_budgetmax_internal_user_budgetinternal_user_budget_durationtag_budget_configmax_end_user_budgetdisable_end_user_cost_tracking.disable_end_user_cost_tracking_prometheus_onlypriority_reservationd   ip  r   
force_ipv4zmodule level aclient)r   client_aliasr   r   max_fallbacksdefault_fallbacksr   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urlc                 H   [         R                  " SS5      S:X  d  [         R                  " SS5      S:X  aA  SS KnSS KnUR                  R                  SS5       nUR                  U5      nUsS S S 5        $  [        R                  " U SS	9nUR                  5         UR                  5       nU$ ! , (       d  f       NF= f! [         aV    SS KnSS KnUR                  R                  SS5       nUR                  U5      nUsS S S 5        s $ ! , (       d  f        g = ff = f)
NLITELLM_LOCAL_MODEL_COST_MAPFTTruer   litellmz+model_prices_and_context_window_backup.json   r   )osgetenvimportlib.resourcesjson	resources	open_textloadhttpxgetraise_for_status	Exception)r  	importlibr  fcontentresponses         J/home/james-whalen/.local/lib/python3.13/site-packages/litellm/__init__.pyget_model_cost_mapr  V  s    
		0%8D@993U;vE"  **D
iilG	
 
99
 	!!#--/
 
  "  **D
iilG	
 
 
 
	s6   B096C 0
B>.D!/D
D!
D	D!D!)r  custom_prompt_dictc                       \ rS rSrS rSrg)MyLocali{  c                     SU l         g )NzHello Worldr   )r   s    r  __init__MyLocal.__init__|  s	    !	    r  N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r"  r  r  r  {  s    "r"  r  c                 .    SU ;   a  U S   [         l        g g )Nr   )_thread_contextr   )event_detailss    r  identifyr,    s    ,V4 r"  vertex_ai_safety_settings)z(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: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:0r.  zmistral.mistral-large-2407-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:0z meta.llama3-2-405b-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empower_modelsopenrouter_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voyage_modelsdatabricks_modelscloudflare_modelscodestral_modelsfriendliai_modelspalm_modelsgroq_modelsazure_modelsanyscale_modelscerebras_modelsgaladriel_modelssambanova_modelsc                     [         R                  5        GH  u  pUR                  S5      S:X  a  [        R	                  U 5        M2  UR                  S5      S:X  a  [
        R	                  U 5        M^  UR                  S5      S:X  a  [        R	                  U 5        M  UR                  S5      S:X  a  [        R	                  U 5        M  UR                  S5      S:X  a  [        R	                  U 5        M  UR                  S5      S:X  a  [        R	                  U 5        GM  UR                  S5      S:X  a  [        R	                  U 5        GM<  UR                  S5      S	:X  a  [        R	                  U 5        GMi  UR                  S5      S
:X  a  [        R	                  U 5        GM  UR                  S5      S:X  a  [        R	                  U 5        GM  UR                  S5      S:X  a  [        R	                  U 5        GM  UR                  S5      S:X  a  [        R	                  U 5        GM  UR                  S5      S:X  a  [         R	                  U 5        GMJ  UR                  S5      S:X  a  ["        R	                  U 5        GMw  UR                  S5      S:X  a  [$        R	                  U 5        GM  UR                  S5      S:X  a*  U R'                  SS5      n [(        R	                  U 5        GM  UR                  S5      S:X  a*  U R'                  SS5      n [*        R	                  U 5        GM"  UR                  S5      S:X  a*  U R'                  SS5      n [,        R	                  U 5        GMa  UR                  S5      S:X  a*  U R'                  SS5      n [.        R	                  U 5        GM  UR                  S5      S:X  a*  U R'                  SS5      n [0        R	                  U 5        GM  UR                  S5      S:X  aE  UR                  S5      S:X  a  [2        R	                  U 5        GM!  [4        R	                  U 5        GM9  UR                  S5      S:X  a  [6        R	                  U 5        GMf  UR                  S5      S:X  a  [8        R	                  U 5        GM  UR                  S5      S:X  a  [:        R	                  U 5        GM  UR                  S5      S:X  a  [<        R	                  U 5        GM  UR                  S5      S:X  a  [>        R	                  U 5        GM  UR                  S5      S :X  a  [@        R	                  U 5        GMG  UR                  S5      S!:X  a  [B        R	                  U 5        GMt  UR                  S5      S":X  a  [D        R	                  U 5        GM  UR                  S5      S#:X  a*  S$U ;  a!  S%U ;  a  [F        R	                  U 5        GM  GM  GM  UR                  S5      S&:X  a!  S$U ;  a  [H        R	                  U 5        GM  GM  UR                  S5      S':X  a  [J        R	                  U 5        GMC  UR                  S5      S(:X  a  [L        R	                  U 5        GMp  UR                  S5      S):X  a  [N        R	                  U 5        GM  UR                  S5      S*:X  a  [P        R	                  U 5        GM  UR                  S5      S+:X  a  [R        R	                  U 5        GM  UR                  S5      S,:X  a  [T        R	                  U 5        GM$  UR                  S5      S-:X  a  [V        R	                  U 5        GMQ  UR                  S5      S.:X  a  [X        R	                  U 5        GM~  UR                  S5      S/:X  a  [Z        R	                  U 5        GM  UR                  S5      S0:X  a  [\        R	                  U 5        GM  UR                  S5      S1:X  a  [^        R	                  U 5        GM  UR                  S5      S2:X  a  [`        R	                  U 5        GM2  UR                  S5      S3:X  a  [b        R	                  U 5        GM_  UR                  S5      S4:X  a  [d        R	                  U 5        GM  UR                  S5      S5:X  a  [f        R	                  U 5        GM  UR                  S5      S6:X  d  GM  [h        R	                  U 5        GM     g )7Nlitellm_provideropenaitext-completion-openaicoherecohere_chatmistral	anthropicempower
openrouterz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_alpharw   bedrock_converse	deepinfra
perplexityrx   geminifireworks_aiz-to-zfireworks-ai-defaultzfireworks_ai-embedding-modelstext-completion-codestralxaideepseekazure_aivoyage
databricks
cloudflare	codestral
friendliaipalmgroqry   anyscalecerebras	galadrielr^  )5
model_costitemsr  r/  appendr0  r1  r2  r3  r5  r6  r7  r=  r>  r8  r9  r:  r;  r?  replacer@  rA  rC  rB  r<  rE  rD  rF  rG  rH  rI  rL  rM  rN  rO  rJ  rK  r4  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  )keyvalues     r  add_known_modelsr    s    &&(
99'(H4*11#6YY)*.FF*11#6YY)*h6  %YY)*m;%%c*YY)*i7&&s+YY)*k9##C(YY)*i7!!#&YY)*l:$$S)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)*i7!!#&YY)*.@@#**3/YY)*k9##C(YY)*l:$$S)YY)*i7!!#&YY)*h6  %YY)*n<S %;3%F#**3/ &G YY)*.MMS -44S9 !YY)*.II,33C8YY)*e3c"YY)*j8""3'YY)*j8""3'YY)*h6  %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)*.@@##C(U )r"  )zapi.perplexity.aizapi.endpoints.anyscale.com/v1zapi.deepinfra.com/v1/openaizapi.mistral.ai/v1z(codestral.mistral.ai/v1/chat/completionsz'codestral.mistral.ai/v1/fim/completionszapi.groq.com/openai/v1z#https://integrate.api.nvidia.com/v1zapi.deepseek.com/v1zapi.together.xyz/v1zapp.empower.dev/api/v1zinference.friendli.ai/v1zapi.sambanova.ai/v1zapi.x.ai/v1zapi.galadriel.ai/v1openai_compatible_endpoints)r  re  r~  
nvidia_nimr  	sambanova	ai21_chatrj  
volcenginer{  rv  rp  rq  
xinferenceru  together_airs  rg  r|  rw  githublitellm_proxyhosted_vllm	lm_studior  openai_compatible_providers)r  rs  r  +openai_text_completion_compatible_providers)	predibasery  rx   _openai_like_providers)z[replicate/llama-2-70b-chat:2796ee9483c3fd7aa2e171d38f4ca12251a30609463dcfd4cd76703f22e96cdfz\a16z-infra/llama-2-13b-chat:2a7f981751ec7fdf87b5b91ad4db53683a98082e9ff7bfd12c8cd5ea85980a52zSmeta/codellama-13b:1c914d844307b0588599b8393480a3ba917b660c7e9dfae681542b5325f228dbzUreplicate/vicuna-13b:6282abe6a492de4145d7bb601023762212f9ddbbe78278bd6771c8b3b2f2a13bzajoehoover/instructblip-vicuna13b:c4c54e3c8c97cd50c2d2fec9be3b6065563ccf7d43787fb99f84151b867178fezXdaanelson/flan-t5-large:ce962b3f6792a57074a601d3979db5839697add2e4e02696b3ced4c022d4767fzWreplicate/dolly-v2-12b:ef0e1aefc61f8e096ebe4db6b2bacc297daf2ef6899f0f7e001ec445893500e5zYreplit/replit-code-v1-3b:b84f4c074b807211cd75e3e8b1589b6399052125b4c27106e43d47189e8415adreplicate_models)?z)clarifai/meta.Llama-3.Llama-3-8B-Instructz%clarifai/gcp.generate.gemma-1_1-7b-itz+clarifai/mistralai.completion.mixtral-8x22Bz'clarifai/cohere.generate.command-r-plusz&clarifai/databricks.drbx.dbrx-instructz+clarifai/mistralai.completion.mistral-largez,clarifai/mistralai.completion.mistral-mediumz+clarifai/mistralai.completion.mistral-smallz8clarifai/mistralai.completion.mixtral-8x7B-Instruct-v0_1z!clarifai/gcp.generate.gemma-2b-itz!clarifai/gcp.generate.gemma-7b-itz'clarifai/deci.decilm.deciLM-7B-instructz1clarifai/mistralai.completion.mistral-7B-Instructz clarifai/gcp.generate.gemini-proz'clarifai/anthropic.completion.claude-v1z0clarifai/anthropic.completion.claude-instant-1_2z,clarifai/anthropic.completion.claude-instantz'clarifai/anthropic.completion.claude-v2z(clarifai/anthropic.completion.claude-2_1z*clarifai/meta.Llama-2.codeLlama-70b-Pythonz,clarifai/meta.Llama-2.codeLlama-70b-Instructz1clarifai/openai.completion.gpt-3_5-turbo-instructz$clarifai/meta.Llama-2.llama2-7b-chatz%clarifai/meta.Llama-2.llama2-13b-chatz%clarifai/meta.Llama-2.llama2-70b-chatz+clarifai/openai.chat-completion.gpt-4-turboz(clarifai/microsoft.text-generation.phi-2z)clarifai/meta.Llama-2.llama2-7b-chat-vllmz+clarifai/upstage.solar.solar-10_7b-instructz,clarifai/openchat.openchat.openchat-3_5-1210z;clarifai/togethercomputer.stripedHyena.stripedHyena-Nous-7Bz clarifai/gcp.generate.text-bisonz#clarifai/meta.Llama-2.llamaGuard-7bz1clarifai/fblgit.una-cybertron.una-cybertron-7b-v2z%clarifai/openai.chat-completion.GPT-4z-clarifai/openai.chat-completion.GPT-3_5-turboz'clarifai/ai21.complete.Jurassic2-Grandez0clarifai/ai21.complete.Jurassic2-Grande-Instructz/clarifai/ai21.complete.Jurassic2-Jumbo-Instructz&clarifai/ai21.complete.Jurassic2-Jumboz&clarifai/ai21.complete.Jurassic2-Largez0clarifai/cohere.generate.cohere-generate-commandz1clarifai/wizardlm.generate.wizardCoder-Python-34Bz'clarifai/wizardlm.generate.wizardLM-70Bz*clarifai/tiiuae.falcon.falcon-40b-instructz<clarifai/togethercomputer.RedPajama.RedPajama-INCITE-7B-Chatz clarifai/gcp.generate.code-geckoz clarifai/gcp.generate.code-bisonz1clarifai/mistralai.completion.mistral-7B-OpenOrcaz5clarifai/mistralai.completion.openHermes-2-mistral-7Bz'clarifai/wizardlm.generate.wizardLM-13Bz4clarifai/huggingface-research.zephyr.zephyr-7B-alphaz*clarifai/wizardlm.generate.wizardCoder-15Bz*clarifai/microsoft.text-generation.phi-1_5z)clarifai/databricks.Dolly-v2.dolly-v2-12bzclarifai/bigcode.code.StarCoderz,clarifai/salesforce.xgen.xgen-7b-8k-instructz%clarifai/mosaicml.mpt.mpt-7b-instructz+clarifai/anthropic.completion.claude-3-opusz-clarifai/anthropic.completion.claude-3-sonnetz$clarifai/gcp.generate.gemini-1_5-prozclarifai/gcp.generate.imagen-2z=clarifai/salesforce.blip.general-english-image-caption-blip-2clarifai_models)zmeta-llama/Llama-2-7b-hfzmeta-llama/Llama-2-7b-chat-hfzmeta-llama/Llama-2-13b-hfzmeta-llama/Llama-2-13b-chat-hfzmeta-llama/Llama-2-70b-hfzmeta-llama/Llama-2-70b-chat-hfzmeta-llama/Llama-2-7bzmeta-llama/Llama-2-7b-chatzmeta-llama/Llama-2-13bzmeta-llama/Llama-2-13b-chatzmeta-llama/Llama-2-70bzmeta-llama/Llama-2-70b-chathuggingface_modelszempower/empower-functionszempower/empower-functions-small)z!togethercomputer/llama-2-70b-chatztogethercomputer/llama-2-70bztogethercomputer/LLaMA-2-7B-32Kz(togethercomputer/Llama-2-7B-32K-Instructztogethercomputer/llama-2-7bz$togethercomputer/falcon-40b-instructz#togethercomputer/falcon-7b-instructztogethercomputer/alpaca-7bzHuggingFaceH4/starchat-alphaztogethercomputer/CodeLlama-34bz'togethercomputer/CodeLlama-34b-Instructz%togethercomputer/CodeLlama-34b-Pythonzdefog/sqlcoderzNumbersStation/nsql-llama-2-7BzWizardLM/WizardCoder-15B-V1.0z$WizardLM/WizardCoder-Python-34B-V1.0z#NousResearch/Nous-Hermes-Llama2-13bzAustism/chronos-hermes-13bzupstage/SOLAR-0-70b-16bitzWizardLM/WizardLM-70B-V1.0together_ai_models)qvv0xeqq841o8w31dxrj3baseten_modelsz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_listra  rb  rc  rd  rf  	replicatehuggingfacer  basetenrh  rv   rj  rw   petalsollamarp  rq  rx   rr  rs  rn  rt  ru  rv  re  rw  rx  ry  rz  r{  rm  r|  r}  )r~  ry   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text-embedding-ada-002open_ai_embedding_models)zembed-english-v3.0zembed-english-light-v3.0zembed-multilingual-v3.0zembed-english-v2.0zembed-english-light-v2.0zembed-multilingual-v2.0cohere_embedding_models)zamazon.titan-embed-text-v1zcohere.embed-english-v3zcohere.embed-multilingual-v3bedrock_embedding_modelszdall-e-2zdall-e-3   )completion_cost)Loggingmodify_integration)get_llm_provider)remove_index_from_tool_calls)get_modified_max_tokens)$r   exception_typeget_optional_paramsget_response_stringtoken_countercreate_pretrained_tokenizercreate_tokenizersupports_function_callingsupports_response_schema"supports_parallel_function_callingsupports_visionsupports_audio_inputsupports_audio_outputsupports_system_messages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EmbeddingResponseImageResponseTranscriptionResponseTextCompletionResponseget_provider_fieldsModelResponseListIterator)	CustomLLM)OpenAILikeChatConfig)GaladrielChatConfig)GithubChatConfig)EmpowerChatConfig)HuggingfaceChatConfig)OobaboogaConfig)MaritalkConfig)OpenrouterConfig)AnthropicConfig)&AnthropicExperimentalPassThroughConfig)GroqSTTConfig)AnthropicTextConfig)TritonConfig)TritonGenerateConfig)TritonInferConfig)TritonEmbeddingConfig)DatabricksConfig)DatabricksEmbeddingConfig)PredibaseConfig)ReplicateConfig)CohereTextConfig)CohereRerankConfig)AzureAIRerankConfig)InfinityRerankConfig)ClarifaiConfig)AI21ChatConfigr  )TogetherAIConfig)CloudflareChatConfig)
PalmConfig)NLPCloudConfig)PetalsConfig)AlephAlphaConfig)VertexGeminiConfigGoogleAIStudioGeminiConfigVertexAIConfigr  )VertexAITextEmbeddingConfig)VertexAIAnthropicConfig)VertexAILlama3Config)VertexAIAi21Config)OllamaConfig)SagemakerConfig)SagemakerChatConfig)OllamaChatConfig)AmazonCohereChatConfigbedrock_tool_name_mappings)AmazonConverseConfig)AmazonTitanConfigAmazonAI21ConfigAmazonAnthropicConfigAmazonAnthropicClaude3ConfigAmazonCohereConfigAmazonLlamaConfigAmazonMistralConfigAmazonBedrockGlobalConfig)AmazonStabilityConfig)AmazonStability3Config)AmazonTitanG1Config)&AmazonTitanMultimodalEmbeddingG1Config)AmazonTitanV2Config)CohereChatConfig)BedrockCohereEmbeddingConfig)OpenAIConfigMistralEmbeddingConfig)DeepInfraConfig)OpenAITextCompletionConfig)GroqChatConfig)VoyageEmbeddingConfig)AzureAIStudioConfig)MistralConfig)OpenAIO1Config)OpenAIGPTConfig)OpenAIGPTAudioConfig)NvidiaNimConfig)NvidiaNimEmbeddingConfig)CerebrasConfig)SambanovaConfig)r  )FireworksAIConfig)FireworksAIEmbeddingConfig)FriendliaiChatConfig)JinaAIEmbeddingConfig)XAIChatConfig)VolcEngineConfig)CodestralTextCompletionConfig)AzureOpenAIErrorAzureOpenAIAssistantsAPIConfig)AzureOpenAIConfig)AzureOpenAITextConfig)HostedVLLMChatConfig)
VLLMConfig)DeepSeekChatConfig)LMStudioChatConfig)LmStudioEmbeddingConfig)PerplexityChatConfig)AzureOpenAIO1Config)IBMWatsonXAIConfig)IBMWatsonXChatConfig)rD   )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)CustomLLMItem)GenericStreamingChunkcustom_provider_map_custom_providers(G  warningsfilterwarnings	threadingr
  typingr   r   r   r   r	   r
   r   r   &litellm.llms.custom_httpx.http_handlerr   r   litellm.caching.cachingr   r   r   r   litellm.types.llms.bedrockr   litellm.types.utilsr   r   litellm._loggingr   r   r   r   r   r   litellm.constantsr   r   r   r   r    r!   r"   litellm.types.guardrailsr#   litellm.proxy._typesr$   r%   r&   r'   r(   "litellm.integrations.custom_loggerr)   r  dotenvenumr*   r  litellm_modeload_dotenvr-   str__annotations__r.   r/   r0   +_custom_logger_compatible_callbacks_literalrE   listrF   rG   rH   rI   intrJ   rK   boolrL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   store_audit_logsrW   rX   	telemetryr   drop_paramsmodify_paramsretryr[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   r}   dictr~   r   r   r   r   r   r   AZURE_DEFAULT_API_VERSIONWATSONX_DEFAULT_API_VERSIONr   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   _openai_finish_reasons_openai_completion_params_litellm_completion_params_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   REPEATED_STREAMING_CHUNK_LIMITr   r   module_level_aclientmodule_level_clientr   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  localr  r*  r,  r   r   r   r   rt   config_pathr-  BEDROCK_CONVERSE_MODELSr/  r0  r1  r2  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  r  r  r  r  r  r  r  r  
azure_llmsazure_embedding_modelspetals_modelsollama_modelsmaritalk_modelsr   r  r  r  r  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  ALL_LITELLM_RESPONSE_TYPESllms.custom_llmr  llms.openai_like.chat.handlerr  "llms.galadriel.chat.transformationr  llms.github.chat.transformationr   llms.empower.chat.transformationr  $llms.huggingface.chat.transformationr  HuggingfaceConfig"llms.oobabooga.chat.transformationr  llms.maritalkr  #llms.openrouter.chat.transformationr  "llms.anthropic.chat.transformationr  7llms.anthropic.experimental_pass_through.transformationr  llms.groq.stt.transformationr  (llms.anthropic.completion.transformationr  %llms.triton.completion.transformationr  r  r  $llms.triton.embedding.transformationr  #llms.databricks.chat.transformationr  $llms.databricks.embed.transformationr  "llms.predibase.chat.transformationr  "llms.replicate.chat.transformationr  %llms.cohere.completion.transformationr  CohereConfig!llms.cohere.rerank.transformationr  #llms.azure_ai.rerank.transformationr  #llms.infinity.rerank.transformationr  !llms.clarifai.chat.transformationr  llms.ai21.chat.transformationr  
AI21Configllms.together_ai.chatr  #llms.cloudflare.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  r  r  GeminiConfig/llms.vertex_ai.vertex_embeddings.transformationr  vertexAITextEmbeddingConfig@llms.vertex_ai.vertex_ai_partner_models.anthropic.transformationr  =llms.vertex_ai.vertex_ai_partner_models.llama3.transformationr  ;llms.vertex_ai.vertex_ai_partner_models.ai21.transformationr  %llms.ollama.completion.transformationr   (llms.sagemaker.completion.transformationr  "llms.sagemaker.chat.transformationr  llms.ollama_chatr   llms.bedrock.chat.invoke_handlerr  r  )llms.bedrock.chat.converse_transformationr  llms.bedrock.common_utilsr  r  r	  r
  r  r  r  r  3llms.bedrock.image.amazon_stability1_transformationr  3llms.bedrock.image.amazon_stability3_transformationr  1llms.bedrock.embed.amazon_titan_g1_transformationr  9llms.bedrock.embed.amazon_titan_multimodal_transformationr  1llms.bedrock.embed.amazon_titan_v2_transformationr  llms.cohere.chat.transformationr  (llms.bedrock.embed.cohere_transformationr  llms.openai.openair  r  "llms.deepinfra.chat.transformationr  -litellm.llms.openai.completion.transformationr  llms.groq.chat.transformationr  $llms.voyage.embedding.transformationr  !llms.azure_ai.chat.transformationr  (llms.mistral.mistral_chat_transformationr  "llms.openai.chat.o1_transformationr  openAIO1Config#llms.openai.chat.gpt_transformationr  openAIGPTConfig)llms.openai.chat.gpt_audio_transformationr   openAIGPTAudioConfigllms.nvidia_nim.chatr!  llms.nvidia_nim.embedr"  nvidiaNimConfignvidiaNimEmbeddingConfigllms.cerebras.chatr#  llms.sambanova.chatr$  %llms.fireworks_ai.chat.transformationr%  3llms.fireworks_ai.embed.fireworks_ai_transformationr&  #llms.friendliai.chat.transformationr'  %llms.jina_ai.embedding.transformationr(  llms.xai.chat.transformationr)  llms.volcenginer*  (llms.codestral.completion.transformationr+  llms.azure.azurer,  r-  "llms.azure.chat.gpt_transformationr.  $llms.azure.completion.transformationr/  $llms.hosted_vllm.chat.transformationr0  #llms.vllm.completion.transformationr1  !llms.deepseek.chat.transformationr2  "llms.lm_studio.chat.transformationr3  #llms.lm_studio.embed.transformationr4  #llms.perplexity.chat.transformationr5  !llms.azure.chat.o1_transformationr6  &llms.watsonx.completion.transformationr7   llms.watsonx.chat.transformationr8  mainintegrations
exceptionsr9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  budget_managerrM  proxy.proxy_clirN  routerrO  assistants.mainbatches.mainbatch_completion.mainrerank_api.mainrealtime_api.mainrP  fine_tuning.main
files.main	schedulerrQ  rR  types.adapterrS  rT  types.llms.custom_llmrU  types.utilsrV  rW  rX  r(  r"  r  <module>r     s"      *Q R  	 P P P P O O C 9    3 
 J ;   yy/5
$ .0U3=)* //1 $uS(]+, 1/1 $uS(]+, 1/1 $uS(]+, 1.5/ +* JN huT#Y-D'EF M26893 )4 
  
4	(?
MN  .2 xS	* 1&* hsm *$( HSM (!& &:> xS#X7 > tH~   eCM23   h  "$X #"$h $+0 (4. 0!& $ &05 x~ 5+0 (4. 0 $Xd^    	 x}  	 x}  	
2992E:;#  
HSM  (3-  $ $!%# %	8C= #x} ##x} # 
HSM  "hsm ""hsm ""hsm "(3-  
HSM   $ $#x} #!%# % $ $!%# %%) Xc] )$( HSM ($( HSM (!Xc] !!%# %#x} #1O+ !4  
D #
E#t) #!%# %"' 4 '-:_ ] < $ 05 x~ 50 * DU #%A U'+ 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~ *
E  #  	 U  -2 #T 1V  :& N 
D 	   *.& -/3%++, 3"&$ &a C   %) Xc] )%) HTN ))-  -.2 Xd^ 2PT )L M TAE "=> E/3 htn 3(, x~ ,#'% '48  (5/ 8,0 (5/ 0/3 x} 37; 8Dl!234 ;'+ Xe_ +15  5AE . E37 htCJ/0 7!$   	 D  (*@  "/:  "Xc] !#x} #$( 8D> ( 	8D>  +/ (4. /+/ (4. /s  # 
 	 x}  ,0 8C= /8< !45 <2G2I / I $ C @  $67
&( DdO ("ioo "
 )5 

,0 8D> 0 4 (*  )')  )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 d    $  $ k)\  % T &% T 8 ,T     $ @ @F D   %
 D >  )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' X 15\0BtE,+,- B-,/MM-<- m00- %	-
 !- !- %- %- ~- #- #  	-  K!-" ~ 77#-$ m%-& m'-( !)-* #+-, --. ~/-0 m1-2 '*GG3-4 %5-6  !A7-8 
:9-: ;-< "=-> ?-@ mA-B #C-D #E-F !G-H !I-J #K-L KM-N !!Y- D -d )22"""$"&*.'L.M%, "D , #;!; $ ;!  " $    $	$  #-j!9    , , R R N N P P L L% % % % % % % % % % % % % % % % % % %P   ' & ? ? C C = = ? ?  @ ? ) ) A A ? ?  8 7 I I ? ? G G D D G G A A K K ? ? ? ? S S A A D D E E = = W W 3 3 E E  8 7 ? ? C C    :;     @ ? E E C C . .  L K	 	 	 	 	 W V W W R R   > = R R D D ? ? T T 9 9 G G B B C C   !  "#  ,-  1 1 ; ;!#35  . . 0 0 9 9 D D  F E H H 7 7 - - S S 
 B A G G F F ; ; A A B B H H E E B B F F B B            , * ) ' '     $  ) )    E E ' & ${
   1 0 . .+- T-( - 49 r"  