
    p[i                     X/   d dl Z d dlZd dlmZmZmZmZmZmZ d dl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ  ej>                  d      Z deddfdZ!deddfdZ"deddfdZ#	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ'	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ(	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ)	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ*	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ+	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd Z,	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd!Z-	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd"Z.	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd#Z/	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd$Z0	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd%Z1	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd&Z2	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d'Z3	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d(Z4	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd)Z5	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd*Z6	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d+Z7	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d,Z8	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd-Z9	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd.Z:	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd/Z;	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d0Z<	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd1Z=	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd2Z>	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd3Z?	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d4Z@	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d5ZA	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd6ZB	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd7ZC	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd8ZD	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd9ZE	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd:ZF	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd;ZG	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd<ZH	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d=ZI	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d>ZJ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d?ZK	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d@ZL	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdAZM	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdBZN	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdCZO	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdDZP	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dEZQ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dFZR	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdGZS	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdHZT	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdIZU	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdJZV	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdKZW	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdLZX	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dMZY	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dNZZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdOZ[	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdPZ\	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdQZ]	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdRZ^	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdSZ_	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdTZ`	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdUZa	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdVZb	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdWZc	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdXZd	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dYZe	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZZf	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd[Zg	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd\Zh	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd]Zi	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd^Zj	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd_Zk	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd`Zl	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdaZm	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdbZn	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dcZo	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
ddZp	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
deZq	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dfZr	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdgZs	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdhZt	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdiZu	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdjZv	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdkZw	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdlZx	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdmZy	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdnZz	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
doZ{	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdpZ|	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdqZ}	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdrZ~	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdsZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdtZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fduZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdvZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdwZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dxZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdyZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdzZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd{Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd|Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd}Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd~Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ G d dej2                        Z G d dej2                        Zy)    N)AnyAsyncIterator	AwaitableIteratorOptionalUnion)	urlencode   )_api_module)_base_transformers)_common)_extra_utils)
_mcp_utils)_transformers)errors)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.models
enum_valuereturnc                 <    | t        dg      v rt        |  d      y )N	ALLOW_ALL+ enum value is not supported in Gemini API.set
ValueErrorr   s    L/mnt/data/GridWatch/venv/lib/python3.12/site-packages/google/genai/models.py(_PersonGeneration_to_mldev_enum_validater"   (   s)    3}%%

|#NO
PP &    c                 <    | t        dg      v rt        |  d      y )N
BLOCK_NONEr   r   r    s    r!   )_SafetyFilterLevel_to_mldev_enum_validater&   -   s)    3~&&

|#NO
PP 'r#   c                 <    | t        dg      v rt        |  d      y )NSTYLEr   r   r    s    r!   4_VideoGenerationReferenceType_to_mldev_enum_validater)   2   s*     3y>!

|#NO
PP "r#   from_objectparent_objectroot_objectc                 v   i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      t        | d	g      t        d
      t        | dg      t        d      t        | dg      t        d      |S )Napi_keyapiKeyapi_key_configz8api_key_config parameter is not supported in Gemini API.	auth_typez3auth_type parameter is not supported in Gemini API.google_service_account_configzGgoogle_service_account_config parameter is not supported in Gemini API.http_basic_auth_configz@http_basic_auth_config parameter is not supported in Gemini API.oauth_configz6oauth_config parameter is not supported in Gemini API.oidc_configz5oidc_config parameter is not supported in Gemini API.getvsetvr   r*   r+   r,   	to_objects       r!   _AuthConfig_to_mldevr;   9   s    
 !)	+	{#/XJ[9+ >?	+()*6
O
PP	+}%1
J
KK	+789E
	 
 
+012>
J  
+'(4
M
NN	+'3
L
MM	r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ndatadisplay_name6display_name parameter is not supported in Gemini API.	mime_typemimeTyper6   r9   s       r!   _Blob_to_mldevrB   \   sw    
 !)	+x ,VHd;9:	+'(4
M
NN	+}%1ZL${[M"BC	r#   c           
      >   i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )NcontentcitationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasongroundingMetadatagrounding_metadataavgLogprobsavg_logprobsindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratingsurlContextMetadataurl_context_metadata)r7   r8   _CitationMetadata_from_mldevr*   r+   r,   r:   items        r!   _Candidate_from_mldevrY   n   s   
 !)	+	{#/YKkI;!?@	+*+,8	$123Y	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	++,-9	[./0 
+'3^$d;&HI	+y!-WItK';<	+()*6&'k<L;M)NO	+()5	{_,=>?$? 
+,-.:	 [/01 
 	@s   "	Fc                 |    i }t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NcitationSources	citationsr7   r8   rW   s        r!   rV   rV      sQ    
 !)	+)*+7	{->,?@A$A 
 	Bs   	9
api_clientc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       |S c c}w )Nmodel_urlcontents)r7   r8   tt_model
t_contentsr^   r*   r+   r,   r:   rX   s         r!   "_ComputeTokensParameters_to_vertexrg      s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
 	Is   5	Bc                     i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NsdkHttpResponsesdk_http_response
tokensInfotokens_infor]   rW   s        r!   "_ComputeTokensResponse_from_vertexrm      s}    
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
 	=s   	Ac                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	truncatedrH   r]   r9   s       r!   '_ContentEmbeddingStatistics_from_vertexrp      s[    
 !)	+}%1[M4k]#CD	+'3]OT+%GH	r#   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nvalues
statistics)r7   r8   rp   r9   s       r!   _ContentEmbedding_from_vertexrt      sn    
 !)	+z".XJ[8* =>	+~&2	/|n-y+	
 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             |S c c}w )Npartsrole)r7   r8   _Part_to_mldevrW   s        r!   _Content_to_mldevry     s    
 !)	+y!-		 [7)4	
 4K8	
 
+x ,VHd;9:		
s   A*c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Ncontrol_typecontrolType enable_control_image_computationcomputeControlr]   r9   s       r!   !_ControlReferenceConfig_to_vertexr     si    
 !)	+'(4]OT+7G%HI	+:;<H	[=>? 
r#   c                     i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      |S )Nsystem_instructionz<system_instruction parameter is not supported in Gemini API.toolsz/tools parameter is not supported in Gemini API.generation_configz;generation_config parameter is not supported in Gemini API.)r7   r   r9   s       r!   _CountTokensConfig_to_mldevr   1  sp    
 !)	+,-.:
F  
+y!-
F
GG	++,-9
E  
r#   c                 f   i }t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      2t        |dgt        | dg      D cg c]  }t	        |||       c}       t        | dg      $t        |dgt        t        | dg      ||             |S c c}w )Nr   systemInstructionr   r   generationConfig)r7   r8   rc   	t_content_Tool_to_vertex_GenerationConfig_to_vertexrW   s        r!   _CountTokensConfig_to_vertexr   H  s    
 !)	+,-.:		D';&<=> 
+y!-		 [7)4	
 D)[9	
 
++,-9	#234i	
 
	
s    B.c                 x   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |dgt        j                  t        |dg            D cg c]  }t        |||       c}       t        |dg      t        t        |dg      ||       |S c c}w Nr`   ra   rb   config)r7   r8   rc   rd   re   ry   r   rf   s         r!   _CountTokensParameters_to_mldevr   l  s     !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI{;	
 
+z".[8*%y+ 
	
s   5B7c                 b   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       t        |dg      t        t        |dg      ||       |S c c}w r   )r7   r8   rc   rd   re   r   rf   s         r!    _CountTokensParameters_to_vertexr     s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
+z". [8*%y+ 
 	Is   5	B,c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nri   rj   totalTokenstotal_tokenscachedContentTokenCountcached_content_token_countr]   r9   s       r!   _CountTokensResponse_from_mldevr     s    
 !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	+123?	%&[456 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nri   rj   r   r   r]   r9   s       r!    _CountTokensResponse_from_vertexr     sg    
 !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S Nr`   ra   namer7   r8   rc   rd   r^   r*   r+   r,   r:   s        r!   _DeleteModelParameters_to_mldevr     J     !)	+y!-				*d;	:; 
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!    _DeleteModelParameters_to_vertexr     r   r#   c                 V    i }t        | dg      t        |dgt        | dg             |S Nri   rj   r]   r9   s       r!   _DeleteModelResponse_from_mldevr     @    
 !)	+)*+7'(${=N<O*P 
r#   c                 V    i }t        | dg      t        |dgt        | dg             |S r   r]   r9   s       r!    _DeleteModelResponse_from_vertexr     r   r#   c                 6   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g d t        | dg             |S )!Noutput_gcs_uri
parameters
storageUrinegative_promptnegativePromptnumber_of_imagessampleCountaspect_ratioaspectRatioguidance_scaleguidanceScaleseedsafety_filter_levelsafetySettingperson_generationpersonGenerationinclude_safety_attributesincludeSafetyAttributesinclude_rai_reasonincludeRaiReasonlanguageoutput_mime_typer   outputOptionsrA   output_compression_qualityr   r   compressionQualityadd_watermarkaddWatermarklabels	edit_modeeditMode
base_steps)r   
editConfig	baseStepsr]   r9   s       r!   _EditImageConfig_to_vertexr     sO   
 !)	+()*6	|$[+,- 
+)*+7	'([,-. 
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5	~&[?+, 
+z".
Dxj$AB	+}%1	z"[;-( 
+~&21[<.) 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      3t        |ddgt        |dg      D cg c]  }t	        |||       c}       t        |dg      t        t        |dg      ||       |S c c}w )Nr`   ra   promptinstances[0]reference_imagesreferenceImagesr   )r7   r8   rc   rd   _ReferenceImageAPI_to_vertexr   rf   s         r!   _EditImageParameters_to_vertexr     s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+*+,8	*+ [+=*>?	
 )y+F	
 
+z".[8*%y+ 
	
s   
Cc                     i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w Nri   rj   predictionsgenerated_imagesr7   r8   _GeneratedImage_from_vertexrW   s        r!   _EditImageResponse_from_vertexr         
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (iE	
 
	
   A*c                 T   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | d	g      t        d
      |S )N	task_type
requests[]taskTypetitleoutput_dimensionalityoutputDimensionalityr@   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r6   r9   s       r!   _EmbedContentConfig_to_mldevr     s    
 !)	+}%1	z"[;-( 
+y!-w/kG91MN	+/01=	-.[234 
+}%1
J
KK	+()5
N
OO	r#   c                    i }t        |dg      }|d}|dk(  r(t        | dg      Ft        |ddgt        | dg             n+|dk(  r&t        | dg      t        |dgt        | dg             t        |dg      }|d}|dk(  r(t        | dg      Ft        |ddgt        | dg             n+|dk(  r&t        | dg      t        |dgt        | dg             t        |dg      }|d}|dk(  r(t        | dg      Ft        |d	d
gt        | dg             n+|dk(  r&t        | dg      t        |d
gt        | dg             t        |dg      }|d}|dk(  r't        | dg      t        |ddgt        | dg             t        |dg      }|d}|dk(  r)t        | dg      t        |d	dgt        | dg             |S |dk(  r&t        | dg      t        |dgt        | dg             |S )Nembedding_api_typePREDICTr   instances[]EMBED_CONTENTr   r   r   r   r   r@   rA   r   autoTruncater]   )r*   r+   r,   r:   discriminators        r!   _EmbedContentConfig_to_vertexr     s   
 !){%9$:;-MiK+'3

+
&
{[M
*
 'K+'3
=:,[;-(HI{%9$:;-MiK'#/

-14gY3O 'K'#/
=7)T+y%AB{%9$:;-MiK123?

/
0
{45
6
 'K123?

!
"
{45
6 {%9$:;-MiK+'3

*
%
{[M
* {%9$:;-MiK/*+7


(
{_-
. 
 'K/*+7

.)4o=N+O 
r#   c                 2   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      <t        |ddgt        j                  | t        |dg            D cg c]  }| c}       t        |dg      +t        t        j                  t        |dg            ||       t        |dg      t        t        |dg      ||       t        |ddgt        j                  | t        |dg                   |S c c}w )Nr`   ra   rb   r   rD   r   )r7   r8   rc   rd   t_contents_for_embedry   r   r   rf   s         r!   '_EmbedContentParametersPrivate_to_mldevr   6  s+    !)	+y!-				*d;	:; 
+
|$0	y! ..Dzl;	
 	
	 
+	{#/	Dyk23Y 
+z". [8*%y+ Wii
Dwi89
 
/	
s   7	Dc                 0   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      }|d}|dk(  rIt        |dg      <t        |ddgt        j                  | t        |dg            D cg c]  }| c}       t        |dg      }|d}|dk(  r9t        |dg      ,t        |dgt        j
                  t        |dg                   t        |d	g      t        t        |d	g      ||       |S c c}w )
Nr`   ra   r   r   rb   r   rD   r   r   )r7   r8   rc   rd   r   r   r   )r^   r*   r+   r,   r:   r   rX   s          r!   (_EmbedContentParametersPrivate_to_vertexr   b  sB    !)	+y!-				*d;	:; {%9$:;-MiK*&2

)
$ 00d;= 	 {%9$:;-Mo%K)%1
9yk1;;tK)/M#NO	+z".![8*%y+ 
)s   	Dc                    i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )Nri   rj   
embeddingsmetadatar]   rW   s        r!    _EmbedContentResponse_from_mldevr     s    
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
+
|$0ZL${ZL"AB	 	=s   	Bc                    i }t        | dg      t        |dgt        | dg             t        | ddg      3t        |dgt        | ddg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             t        |dg      dk(  rat        | dg      }t        | d	g      }t        | d
g      }|r8i }|r|j                  d      r|d   |d<   |r||d
<   ||d<   t        |dg|g       |S c c}w )Nri   rj   zpredictions[]r   r   r   r   	embeddingusageMetadataro   promptTokenCountrH   rs   )r7   r8   rt   get)	r*   r+   r,   r:   rX   r   usage_metadataro   statss	            r!   !_EmbedContentResponse_from_vertexr     sJ   
 !)	+)*+7'(${=N<O*P 
+67C	 [?L*IJ	
 *$	;G	
 
+
|$0ZL${ZL"AB	+,-./A[;-0I+'89N[;-0Ie	N../AB-.@Am	&k %i
9|nyk2	-	
s   Dc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nendpointr   deployedModelIddeployed_model_idr]   r9   s       r!   _Endpoint_from_vertexr    sf    
 !)	+
|$0VHd;=>	+)*+7'(${=N<O*P 
r#   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr>   r?   file_urifileUrir@   rA   )r7   r   r8   r9   s       r!   _FileData_to_mldevr    sw    
 !)	+'(4
M
NN	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	r#   c                 N   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      |S )Nidargsr   partial_argsz6partial_args parameter is not supported in Gemini API.will_continuez7will_continue parameter is not supported in Gemini API.r6   r9   s       r!   _FunctionCall_to_mldevr    s    
 !)	+v*TFDtf56	+x ,VHd;9:	+x ,VHd;9:	+'(4
M
NN	+()5
N
OO	r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      |S )Nallowed_function_namesallowedFunctionNamesmodestream_function_call_argumentszHstream_function_call_arguments parameter is not supported in Gemini API.r6   r9   s       r!   _FunctionCallingConfig_to_mldevr  
  s    
 !)	+012>	 [345 
+x ,VHd;9:	+89:F
	 
 
r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        d
      |S )Ndescriptionr   r   parameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemabehaviorz1behavior parameter is not supported in Vertex AI.r6   r9   s       r!   _FunctionDeclaration_to_vertexr  #  s&   
 !)	+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	+012>	 [345 
+
|$0ZL${ZL"AB	+./0<	[123 
+
|$0
H
II	r#   c                 
   i }t        |dg      7t        |dgt        t        j                  t        |dg            ||             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      -t        |dgt        j
                  | t        |dg                   t        |dg      t        |dgt        |dg             t        |dg      t        d      t        |dg      t        d      t        |d g      2t        |d!gt        |d g      D cg c]  }t        |||       c}       t        |d"g      Zt        |d"gt        j                  | t        |d"g            D cg c]#  }t        t        j                  | |      ||      % c}       t        |d#g      $t        |d$gt        t        |d#g      ||             t        |d%g      t        d&      t        |d'g      -t        |d(gt        j                  | t        |d'g                   t        |d)g      t        |d*gt        |d)g             t        |d+g      t        |d,gt        |d+g             t        |d-g      ,t        |d.gt        j                  t        |d-g                   t        |d/g      t        d0      t        |d1g      t        |d2gt        |d1g             t        |d3g      $t        |d4gt        t        |d3g      ||             t        |d5g      t        |d6gt        |d5g             t        |d7g      t        d8      |S c c}w c c}w )9Nr   r   temperaturetop_ptopPtop_ktopKcandidate_countcandidateCountmax_output_tokensmaxOutputTokensstop_sequencesstopSequencesresponse_logprobsresponseLogprobslogprobspresence_penaltypresencePenaltyfrequency_penaltyfrequencyPenaltyr   response_mime_typeresponseMimeTyperesponse_schemaresponseSchemar  r  routing_configz8routing_config parameter is not supported in Gemini API.model_selection_configz@model_selection_config parameter is not supported in Gemini API.safety_settingssafetySettingsr   tool_config
toolConfigr   0labels parameter is not supported in Gemini API.cached_contentcachedContentresponse_modalitiesresponseModalitiesmedia_resolutionmediaResolutionspeech_configspeechConfigaudio_timestampz9audio_timestamp parameter is not supported in Gemini API.thinking_configthinkingConfigimage_configimageConfigenable_enhanced_civic_answersenableEnhancedCivicAnswersmodel_armor_configz<model_armor_config parameter is not supported in Gemini API.)r7   r8   ry   rc   r   t_schemar   _SafetySetting_to_mldevt_tools_Tool_to_mldevt_tool_ToolConfig_to_mldevt_cached_content_namet_speech_config_ImageConfig_to_mldevrf   s         r!   _GenerateContentConfig_to_mldevrU  I  s    !)	+,-.:	KK[+?*@AB	
 
+'3]OT+%GH	+y!-VHd;	:;	+y!-VHd;	:;	+)*+7%&[;L:M(NO	++,-9%&[;N:O(P 
+()*6_%tK:J9K'LM	++,-9	[./0 
+
|$0ZL${ZL"AB	+*+,8%&[;M:N(O 
++,-9	[./0 
+x ,VHd;9:	+,-.:	[/01 
+)*+7		

:tK2C1DEF 
+./0<	[123 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $D)[A	
 
+y!-		 		*d;	.JK	
 188J5y+N	
 
+'3	}o.	;	
 
+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7
C  
+)*+7%&[;L:M(NO	+'(4	~./K	
 
+789E	%&[:;< 
+,-.:
F  
k	
	
s   S<(Tc                 :
   i }t        |dg      ,t        |dgt        j                  t        |dg                   t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      -t        |dgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |d g      't        |d!gt        |d g      D cg c]  }| c}       t        |d"g      Zt        |d"gt        j
                  | t        |d"g            D cg c]#  }t        t        j                  | |      ||      % c}       t        |d#g      t        |d$gt        |d#g             t        |d%g      t        |d%gt        |d%g             t        |d&g      -t        |d'gt        j                  | t        |d&g                   t        |d(g      t        |d)gt        |d(g             t        |d*g      t        |d+gt        |d*g             t        |d,g      ,t        |d-gt        j                  t        |d,g                   t        |d.g      t        |d/gt        |d.g             t        |d0g      t        |d1gt        |d0g             t        |d2g      $t        |d3gt        t        |d2g      ||             t        |d4g      t        d5      t        |d6g      t        |d7gt        |d6g             |S c c}w c c}w )8Nr   r   r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r   r1  r2  r3  r4  r  r  r5  routingConfigr6  modelConfigr7  r8  r   r9  r:  r   r<  r=  r>  r?  r@  rA  rB  rC  rD  audioTimestamprE  rF  rG  rH  rI  Fenable_enhanced_civic_answers parameter is not supported in Vertex AI.rK  modelArmorConfig)r7   r8   rc   r   rL  rN  r   rP  rR  rS  _ImageConfig_to_vertexr   rf   s         r!    _GenerateContentConfig_to_vertexr]    s    !)	+,-.:		D';&<=> 
+'3]OT+%GH	+y!-VHd;	:;	+y!-VHd;	:;	+)*+7%&[;L:M(NO	++,-9%&[;N:O(P 
+()*6_%tK:J9K'LM	++,-9	[./0 
+
|$0ZL${ZL"AB	+*+,8%&[;M:N(O 
++,-9	[./0 
+x ,VHd;9:	+,-.:	[/01 
+)*+7		

:tK2C1DEF 
+./0<	[123 
+()*6_%tK:J9K'LM	+012>	[345 
+)*+7	{->,?@A$A 
+y!-		 		*d;	.JK	
 AHHZ6	;O	
 
+'3[=/(JK	+z".
Dxj$AB	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7%&[;L:M(NO	+)*+7%&[;L:M(NO	+'(4	~./K	
 
+789E
P  
+,-.:	[/01 
U 	B	
s   	T(Tc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |dgt        j                  t        |dg            D cg c]  }t        |||       c}       t        |dg      %t        |dgt        | t        |dg      ||             |S c c}w Nr`   ra   rb   r   r   )r7   r8   rc   rd   re   ry   rU  rf   s         r!   #_GenerateContentParameters_to_mldevr`    s     !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI{;	
 
+z".	'[8*5y+	
 
	
s   5Cc                 |   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       t        |dg      %t        |dgt        | t        |dg      ||             |S c c}w r_  )r7   r8   rc   rd   re   r]  rf   s         r!   $_GenerateContentParameters_to_vertexrb    s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
+z".	([8*5y+	
 
 	Is   5	B9c                    i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             |S c c}w )Nri   rj   
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idr   r   )r7   r8   rY   rW   s        r!   #_GenerateContentResponse_from_mldevrk    s5   
 !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 "$	;?	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	%	
s   Dc                 D   i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             |S c c}w )Nri   rj   rd  
createTimecreate_timere  rf  rg  rh  ri  rj  r   r   r]   rW   s        r!   $_GenerateContentResponse_from_vertexro    sH   
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	% 	=s   	Dc                    i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             t        | dg      t        d      t        | dg      0t        t        | dg             t        |ddgt        | dg             t        | dg      0t	        t        | dg             t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dd gt        | dg             t        | d!g      t        d"      |S )#Nr   8output_gcs_uri parameter is not supported in Gemini API.r   z9negative_prompt parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   .seed parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   r   r   r   r   r   r   z7add_watermark parameter is not supported in Gemini API.r   r;  
image_sizesampleImageSizeenhance_promptz8enhance_prompt parameter is not supported in Gemini API.)r7   r   r8   r&   r"   r9   s       r!   _GenerateImagesConfig_to_mldevrv  ;  s   
 !)	+()*6
O
PP	+)*+7
C  
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,
E
FF	+-./;-[012 		'[012 
++,-9,[./0 		)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5
N
OO	+z".
G
HH	+~&2	()[<.) 
+()*6
O
PP	r#   c                 6   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd gt        | dg             |S )!Nr   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   rs  rt  ru  enhancePromptr]   r9   s       r!   _GenerateImagesConfig_to_vertexry    sY   
 !)	+()*6	|$[+,- 
+)*+7	'([,-. 
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5	~&[?+, 
+z".
Dxj$AB	+~&2	()[<.) 
+()*6	'[+,- 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      t	        t        |dg      ||       |S Nr`   ra   r   r   r   )r7   r8   rc   rd   rv  r   s        r!   "_GenerateImagesParameters_to_mldevr|  %  s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z"."[8*%y+ 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      t	        t        |dg      ||       |S r{  )r7   r8   rc   rd   ry  r   s        r!   #_GenerateImagesParameters_to_vertexr~  >  s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".#[8*%y+ 
r#   c                 @   i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      $t        |dgt        t        | dg      ||             |S c c}w Nri   rj   r   r   positivePromptSafetyAttributes!positive_prompt_safety_attributes)r7   r8   _GeneratedImage_from_mldev_SafetyAttributes_from_mldevrW   s        r!   "_GenerateImagesResponse_from_mldevr  W  s    
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 'tYD	
 
+89:F	,-$?@A	
 
#	
   Bc                 @   i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      $t        |dgt        t        | dg      ||             |S c c}w r  )r7   r8   r   _SafetyAttributes_from_vertexrW   s        r!   #_GenerateImagesResponse_from_vertexr  z  s    
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (iE	
 
+89:F	,-%?@A	
 
#	
r  c                 j   i }t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dd	gt        | dg             t        | d
g      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t	        |||       c}       t        | dg      t        d      t        | d g      t        d!      |S c c}w )"Nnumber_of_videosr   r   r   rq  fpsz-fps parameter is not supported in Gemini API.duration_secondsdurationSecondsr   rr  r   r   
resolutionr   r   pubsub_topicz6pubsub_topic parameter is not supported in Gemini API.r   r   ru  rx  generate_audioz8generate_audio parameter is not supported in Gemini API.
last_framer   	lastFramer   r   maskz.mask parameter is not supported in Gemini API.compression_qualityz=compression_quality parameter is not supported in Gemini API.)r7   r8   r   _Image_to_mldev'_VideoGenerationReferenceImage_to_mldevrW   s        r!   _GenerateVideosConfig_to_mldevr    s   
 !)	+*+,8	}%[-./ 
+()*6
O
PP	+w+
D
EE	+*+,8	()[-./ 
+x ,
E
FF	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4
M
NN	+)*+7	'([,-. 
+()*6	'[+,- 
+()*6
O
PP	+~&2	%|n-y+	
 
+*+,8	*+
 [+=*>?		
  4i	
	 
+x ,
E
FF	+-./;
G  
!	
s   #H0c                 R   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd	gt        | d	g             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t        |||       c}       t        | dg      %t        |ddgt	        t        | dg      ||             t        | dg      t        |ddgt        | dg             |S c c}w )Nr  r   r   r   r   r  r  r  r   r   r   r  r   r   r  pubsubTopicr   r   ru  rx  r  generateAudior  r   r  r   r   r  r  r   )r7   r8   _Image_to_vertex(_VideoGenerationReferenceImage_to_vertex_VideoGenerationMask_to_vertexrW   s        r!   _GenerateVideosConfig_to_vertexr    sn   
 !)	+*+,8	}%[-./ 
+()*6	|$[+,- 
+w+u-tK%/IJ	+*+,8	()[-./ 
+x ,v.[6(0KL	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4	}%[>*+ 
+)*+7	'([,-. 
+()*6	'[+,- 
+()*6	'[+,- 
+~&2	%|n-y+	
 
+*+,8	*+
 [+=*>?		
  5i	
	 
+x ,	 &vh'K	
 
+-./;	+,[012 
1	
s   .J$c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | ddg      %t        |dgt        t        | ddg      ||             t        | ddg      %t        |dgt        t        | ddg      ||             |S )Nr   r   doneerrorr  generateVideoResponseresult)r7   r8   "_GenerateVideosResponse_from_mldevr9   s       r!   #_GenerateVideosOperation_from_mldevr    s-   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
$;<=I	*z+BCD	
 
+
$;<=I	
*z+BCD	
 
r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | dg      $t        |dgt        t        | dg      ||             |S )Nr   r   r  r  r  r  )r7   r8   #_GenerateVideosResponse_from_vertexr9   s       r!   $_GenerateVideosOperation_from_vertexr    s   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
|$0	+zl+Y	
 
+
|$0	
+zl+Y	
 
r#   c                 *   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      %t        |ddgt        t        |dg      ||             t        |dg      t        t        |dg      ||       t        |dg      t        t        |dg      ||       |S 	Nr`   ra   r   r   imagevideosourcer   )r7   r8   rc   rd   r  _Video_to_mldev_GenerateVideosSource_to_mldevr  r   s        r!   "_GenerateVideosParameters_to_mldevr    s7    !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	![7)4iM 
+y!-	![7)4iM 
+z"."[8*%y+ 
+z"."[8*%y+ 
r#   c                 *   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      %t        |ddgt        t        |dg      ||             t        |dg      t        t        |dg      ||       t        |dg      t        t        |dg      ||       |S r  )r7   r8   rc   rd   r  _Video_to_vertex_GenerateVideosSource_to_vertexr  r   s        r!   #_GenerateVideosParameters_to_vertexr    s7    !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	!kG95y+N 
+y!-	!kG95y+N 
+z".#[8*%y+ 
+z".#[8*%y+ 
r#   c                 *   i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S c c}w )NgeneratedSamplesgenerated_videosraiMediaFilteredCountrai_media_filtered_countraiMediaFilteredReasonsrai_media_filtered_reasons)r7   r8   _GeneratedVideo_from_mldevrW   s        r!   r  r  )	  s    
 !)	+*+,8	 [+=*>?	
 'tYD	
 
+/01=	#$[234 
+123?	%&[456 
)	
   Bc                 *   i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S c c}w )Nvideosr  r  r  r  r  )r7   r8   _GeneratedVideo_from_vertexrW   s        r!   r  r  J	  s    
 !)	+z".	 [8*5	
 (iE	
 
+/01=	#$[234 
+123?	%&[456 
)	
r  c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S Nr   r   r  r  )r7   r8   r  r  r9   s       r!   r  r  k	  s    
 !)	+z".14hZ3P 
+y!-	![7)4iM 
+y!-	![7)4iM 
r#   c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S r  )r7   r8   r  r  r9   s       r!   r  r  	  s    
 !)	+z".14hZ3P 
+y!-	!kG95y+N 
+y!-	!kG95y+N 
r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )N_selfr  r   )r7   r8   _Image_from_vertexrW   s        r!   _GeneratedImageMask_from_vertexr  	  s    
 !)	+y!-	wi()[	
 
+z".H:kH:1NOO 
  Ps   	A*c           
         i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  r  raiFilteredReasonrai_filtered_reasonsafety_attributes)r7   r8   _Image_from_mldevr  r9   s       r!   r  r  	  s    
 !)	+y!-		${WI6	;O 
++,-9	[./0 
+y!-	$wi()[	
 
r#   c           
      f   i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r  r   enhanced_prompt)r7   r8   r  r  r9   s       r!   r   r   	  s    
 !)	+y!-		wi()[	
 
++,-9	[./0 
+y!-	%wi()[	
 
+z".&'kH:)FG	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  )r7   r8   _Video_from_mldevr9   s       r!   r  r  	  sE    
 !)	+y!-		${WI6	;O 
r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  r  )r7   r8   _Video_from_vertexr9   s       r!   r  r  
  sH    
 !)	+y!-		wi()[	
 
r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
gt        | d	g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d gt        | dg             t        | d!g      t        |d"gt        | d!g             t        | d#g      t        |d#gt        | d#g             t        | d$g      t        |d%gt        | d$g             t        | d&g      t        |d'gt        | d&g             t        | d(g      t        |d)gt        | d(g             t        | d*g      t        d+      |S ),Nr6  rX  r  r  rD  rY  r$  r%  enable_affective_dialogenableAffectiveDialogr/  r0  r,  r&  r'  r@  rA  r-  r.  r*  r+  r1  r2  r>  r?  r3  r4  r5  rW  r   rB  rC  r(  r)  r  rE  rF  r"  r#  r   r!  rI  rZ  r6   r9   s       r!   r   r   !
  s   
 !)	+012>	[345 
+./0<	[123 
+)*+7%&[;L:M(NO	+)*+7%&[;L:M(NO	+123?	 ![456 
++,-9	[./0 
+
|$0ZL${ZL"AB	++,-9%&[;N:O(P 
+*+,8%&[;M:N(O 
+*+,8%&[;M:N(O 
++,-9	[./0 
+,-.:	[/01 
+-./;	[012 
+)*+7%&[;L:M(NO	+()*6_%tK:J9K'LM	+x ,VHd;9:	+()5^$d;8I&JK	+()*6_%tK:J9K'LM	+'3]OT+%GH	+)*+7%&[;L:M(NO	+y!-VHd;	:;	+y!-VHd;	:;	+789E
P  
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!   _GetModelParameters_to_mldevr  
  r   r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!   _GetModelParameters_to_vertexr  
  r   r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S )Nauth_config
authConfigenable_widgetenableWidget)r7   r8   r;   r9   s       r!   _GoogleMaps_to_mldevr  
  sq    
 !)	+'3	}o.	;	
 
+()5^$d;8I&JK	r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )	Nsearch_typessearchTypesblocking_confidencez=blocking_confidence parameter is not supported in Gemini API.exclude_domainsz9exclude_domains parameter is not supported in Gemini API.time_range_filtertimeRangeFilterr6   r9   s       r!   _GoogleSearch_to_mldevr  
  s    
 !)	+'(4]OT+7G%HI	+-./;
G  
+)*+7
C  
++,-9%&[;N:O(P 
r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | d	g      t        d
      t        | dg      t        d      t        | dg      t        d      |S )Nr   r   rs  	imageSizer   z;person_generation parameter is not supported in Gemini API.prominent_peoplez:prominent_people parameter is not supported in Gemini API.r   z:output_mime_type parameter is not supported in Gemini API.r   zDoutput_compression_quality parameter is not supported in Gemini API.image_output_optionsz>image_output_options parameter is not supported in Gemini API.r6   r9   s       r!   rT  rT  
  s   
 !)	+'(4]OT+7G%HI	+~&2[M4l^#DE	++,-9
E  
+*+,8
D  
+*+,8
D  
+456B
N  
+./0<
H  
r#   c                 "   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
dgt        | d	g             t        | dg      t        |d
dgt        | dg             t        | dg      t        |d
gt        | dg             |S )Nr   r   rs  r  r   r   r  prominentPeopler   imageOutputOptionsrA   r   r   r  r]   r9   s       r!   r\  r\    s[   
 !)	+'(4]OT+7G%HI	+~&2[M4l^#DE	++,-9	[./0 
+*+,8%&[;M:N(O 
+*+,8	z*[-./ 
+456B	34[789 
+./0<	[123 
r#   c           
          i }t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NbytesBase64Encodedimage_bytesrA   r@   r7   r8   base_tt_bytesr9   s       r!   r  r  =  so    
 !)	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NgcsUrigcs_urir  r  rA   r@   r  r9   s       r!   r  r  Q  s    
 !)	+z".YKkH:!>?	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r#   c           
          i }t        | dg      t        d      t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  z1gcs_uri parameter is not supported in Gemini API.r  r  r@   rA   )r7   r   r8   r  r  r9   s       r!   r  r  g  s    
 !)	+	{#/
H
II	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r@   rA   r  r9   s       r!   r  r  }  s    
 !)	+	{#/XJ[9+ >?	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c                 j   i }t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      .t        |dd	gt        j                  | t        |dg                   |S 
N	page_size_querypageSize
page_token	pageTokenfilter
query_basera   
models_urlr7   r8   rc   t_models_urlr   s        r!   _ListModelsConfig_to_mldevr         !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	+~&2		z4l^#DE 
r#   c                 j   i }t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      .t        |dd	gt        j                  | t        |dg                   |S r  r  r   s        r!   _ListModelsConfig_to_vertexr
    r  r#   c                 V    i }t        |dg      t        | t        |dg      ||       |S Nr   )r7   r  r   s        r!   _ListModelsParameters_to_mldevr    s:     !)	+z".Dxj19k 
r#   c                 V    i }t        |dg      t        | t        |dg      ||       |S r  )r7   r
  r   s        r!   _ListModelsParameters_to_vertexr    s:     !)	+z".Dxj19k 
r#   c                 P   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Et        |dgt        j                  t        | dg            D cg c]  }t	        |||       c}       |S c c}w Nri   rj   nextPageTokennext_page_tokenr  models)r7   r8   rc   t_extract_models_Model_from_mldevrW   s        r!   _ListModelsResponse_from_mldevr    s    
 !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 dI{;	
 
	
   B#c                 P   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Et        |dgt        j                  t        | dg            D cg c]  }t	        |||       c}       |S c c}w r  )r7   r8   rc   r  _Model_from_vertexrW   s        r!   _ListModelsResponse_from_vertexr    s    
 !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 tY<	
 
	
r  c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	mask_modemaskModesegmentation_classesmaskClassesmask_dilationdilationr]   r9   s       r!   _MaskReferenceConfig_to_vertexr#  )  s    
 !)	+}%1ZL${[M"BC	+./0<M?D7M6N$O 
+()5ZL${_4E"FG	r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   displayNamer>   r  versionr  tuned_model_infoinputTokenLimitinput_token_limitoutputTokenLimitoutput_token_limitsupportedGenerationMethodssupported_actionsr  maxTemperaturemax_temperaturer!  r   r#  r"  thinkingr]   r9   s       r!   r  r  =  s)   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+	{#/YKkI;!?@	+y!-'(${WI*FG	+)*+7'(${=N<O*P 
+*+,8	[-./ 
+456B	[789 
+'3]OT+%GH	+()*6&'k<L;M)NO	+x ,WItK&:;	+x ,WItK&:;	+
|$0ZL${ZL"AB	r#   c                 .   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | d	g      t        |d	gt        | d	g             t        | d
g      $t        |dgt        t        | d
g      ||             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w c c}w )Nr   r%  r>   r  	versionIdr&  deployedModels	endpointsr   r  r'  defaultCheckpointIddefault_checkpoint_idcheckpoints)r7   r8   r  _TunedModelInfo_from_vertexrW   s        r!   r  r  w  s   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+}%1YKkK=!AB	+()*6	 [+;*<=	
 "$	;?	
 
+z".XJ[8* =>	+y!-	#wi()[	
 
+-./;	 ![012 
+'3	{]O<=$= 
A	
: 	>s   ?F;	Fc           
         i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | d	g      $t        |d
gt        t        | d	g      ||             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt	        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr@  rA  code_execution_resultcodeExecutionResultexecutable_codeexecutableCode	file_datafileDatafunction_callfunctionCallfunction_responsefunctionResponseinline_data
inlineDatatextthoughtthought_signaturethoughtSignaturevideo_metadatavideoMetadata)r7   r8   r  r  rB   r9   s       r!   rx   rx     s'   
 !)	+*+,8%&[;M:N(O 
+/01=	[234 
+)*+7%&[;L:M(NO	+}%1	{m,i	
 
+()5	/0)[	
 
++,-9	[./0 
+'3	}o.	;	
 
+x ,VHd;9:	+	{#/YKkI;!?@	++,-9	[./0 
+()*6_%tK:J9K'LM	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nproduct_imager  r7   r8   r  r9   s       r!   _ProductImage_to_vertexrO    sJ    
 !)	+()5		/0)[	
 
r#   c                 b   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ru  rx  r   r]   r9   s       r!   _RecontextImageConfig_to_vertexrQ    s#   
 !)	+*+,8	}%[-./ 
+~&2	{#[<.) 
+()*6	|$[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+()5	~&[?+, 
+*+,83[-./ 
+456B=[789 
+()*6	'[+,- 
+z".
Dxj$AB	r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       t        |dg      t        t        |dg      ||       |S Nr`   ra   r  r   )r7   r8   rc   rd   _RecontextImageSource_to_vertexrQ  r   s        r!   #_RecontextImageParameters_to_vertexrU  [  s     !)	+y!-				*d;	:; 
+z".#[8*%y+ 
+z".#[8*%y+ 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   r   r   rW   s        r!   #_RecontextImageResponse_from_vertexrW  v  s`    
 !)	+'3	 [=/:	
 (iE	
 
	
   Ac                 F   i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |g dt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   r   person_image)r   personImager  product_imagesproductImages)r7   r8   r  rO  rW   s        r!   rT  rT    s    
 !)	+z".14hZ3P 
+'(40~./K	
 
+()*6	) [+;*<=	
 $D)[A	
 
	
s   Bc           
      `   i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | d	g      $t        |d
gt	        t        | d	g      ||             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nreference_imagereferenceImagereference_idreferenceIdreference_typereferenceTypemask_image_configmaskImageConfigcontrol_image_configcontrolImageConfigstyle_image_configstyleImageConfigsubject_image_configsubjectImageConfig)r7   r8   r  r#  r   r9   s       r!   r   r     s   
 !)	+)*+7	012I{	
 
+'(4]OT+7G%HI	+()*6_%tK:J9K'LM	++,-9	&234i	
 
+./0<	)567K	
 
+,-.:	[/01 
+./0<	[123 
r#   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S NsafetyAttributes
categoriesscorescontentTypecontent_typer]   r9   s       r!   r  r        
 !)	+*L9:F	[-|<= 
+*H56BH:tK2Dh1OP 
+'3^$d;&HI	r#   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S rn  r]   r9   s       r!   r  r    rt  r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ncategorymethodz0method parameter is not supported in Gemini API.	thresholdr6   r9   s       r!   rM  rM    sv    
 !)	+
|$0ZL${ZL"AB	+z".
G
HH	+}%1[M4k]#CD	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  rN  r9   s       r!   _ScribbleImage_to_vertexr{  $  sE    
 !)	+y!-		kG95y+N 
r#   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             t        | dg      t        |dgt        | dg             |S )Nr  r   max_predictionsmaxPredictionsconfidence_thresholdconfidenceThresholdr!  maskDilationbinary_color_thresholdbinaryColorThresholdr   r]   r9   s       r!   _SegmentImageConfig_to_vertexr  4  s/   
 !)	+x ,v.[6(0KL	+)*+7	'([,-. 
+./0<	,-[123 
+()5	~&[?+, 
+012>	-.[345 
+z".
Dxj$AB	r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       t        |dg      t        t        |dg      ||       |S rS  )r7   r8   rc   rd   _SegmentImageSource_to_vertexr  r   s        r!   !_SegmentImageParameters_to_vertexr  `  s     !)	+y!-				*d;	:; 
+z".![8*%y+ 
+z".![8*%y+ 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   generated_masks)r7   r8   r  rW   s        r!   !_SegmentImageResponse_from_vertexr  {  s`    
 !)	+'3	 [=/:	
 ,D)[I	
 
	
rX  c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S )Nr   r   r  scribble_imagescribble)r7   r8   r  r{  r9   s       r!   r  r    s    
 !)	+z".14hZ3P 
+y!-	!kG95y+N 
+()*6	$ /019k	
 
r#   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nretrieval_configretrievalConfigfunction_calling_configfunctionCallingConfig)r7   r8   r  r9   s       r!   rQ  rQ    s    
 !)	+*+,8%&[;M:N(O 
+123?	 !'89:	
 
r#   c           
         i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | d	g      $t        |d
gt	        t        | d	g      ||             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w c c}w )N	retrievalz3retrieval parameter is not supported in Gemini API.computer_usecomputerUsefile_search
fileSearchgoogle_searchgoogleSearchgoogle_maps
googleMapscode_executioncodeExecutionenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.function_declarationsfunctionDeclarationsgoogle_search_retrievalgoogleSearchRetrievalparallel_ai_searchz<parallel_ai_search parameter is not supported in Gemini API.url_context
urlContextmcp_servers
mcpServers)r7   r   r8   r  r  rW   s        r!   rO  rO    s6   
 !)	+}%1
J
KK	+'(4]OT+7G%HI	+'3\ND}o$FG	+()5	/0)[	
 
+'3	}o.	;	
 
+()*6_%tK:J9K'LM	+/01=
I  
+/01=	 {-D,EFG$G 
+123?	 ![456 
+,-.:
F  
+'3\ND}o$FG	+'3	{]O<=$= 
3 	H, 	>s   +	G	Gc                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      |S c c}w )Nr  r  r  r  z4file_search parameter is not supported in Vertex AI.r  r  r  r  r  r  r  enterpriseWebSearchr  r  r  r  r  parallelAiSearchr  r  r  z4mcp_servers parameter is not supported in Vertex AI.)r7   r8   r   r  rW   s        r!   r   r     s   
 !)	+}%1[M4k]#CD	+'(4]OT+7G%HI	+'3
K
LL	+()5^$d;8I&JK	+'3\ND}o$FG	+()*6_%tK:J9K'LM	+/01=	[234 
+/01=	  [+B*CD	
 +4KH	
 
+123?	 ![456 
+,-.:	[/01 
+'3\ND}o$FG	+'3
K
LL	5	
s   #G
c           	          i }t        | ddg      	 t        |dgt        | ddg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   z&google-vertex-llm-tuning-base-model-id
base_modelrm  rn  
updateTimeupdate_timer]   r9   s       r!   r8  r8  N  s    
 !)
;#KLM 		[8%MNO 
+~&2]OT+~%FG	+~&2]OT+~%FG	r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nr>   r%  r  r6  r5  r]   r9   s       r!   _UpdateModelConfig_to_mldevr  g      
 !)	+'(4kN;K)LM	+'3kM?)KL	+/01=	[234 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  r]   r9   s       r!   _UpdateModelConfig_to_vertexr  ~  r  r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       |S )Nr`   ra   r   r   )r7   r8   rc   rd   r  r   s        r!   _UpdateModelParameters_to_mldevr    ss     !)	+y!-				*d;	:; 
+z".[8*%y+ 
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       |S )Nr`   ra   r   )r7   r8   rc   rd   r  r   s        r!    _UpdateModelParameters_to_vertexr    ss     !)	+y!-				*d;	:; 
+z". [8*%y+ 
r#   c                 b   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |g dt        | d
g             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   enhance_input_image)r   upscaleConfigenhanceInputImageimage_preservation_factor)r   r  imagePreservationFactorr   r   r   r  r]   r9   s       r!    _UpscaleImageAPIConfig_to_vertexr    s    
 !)	+()*6	|$[+,- 
+-./;	'[012 
++,-9	)*[./0 
+,-.:	)*[/01 
+*+,83[-./ 
+456B=[789 
+-./;<[012 
+345AB[678 
+z".
Dxj$AB	+*+,8	}%[-./ 
+x ,v.[6(0KL	r#   c                 |   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      t        |g dt        |dg             t        |dg      t        t        |dg      ||       |S )Nr`   ra   r  r   upscale_factor)r   r  upscaleFactorr   )r7   r8   rc   rd   r  r  r   s        r!   $_UpscaleImageAPIParameters_to_vertexr    s     !)	+y!-				*d;	:; 
+y!-	!kG95y+N 
+()*68[+,- 
+z".$[8*%y+ 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w r   r   rW   s        r!   !_UpscaleImageResponse_from_vertexr  4  r   r   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  rN  r9   s       r!   r  r  L  sk    
 !)	+y!-		kG95y+N 
+}%1ZL${[M"BC	r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      /t        t        | dg             t        |dgt        | dg             |S Nr  rc  rd  )r7   r8   r  r)   r9   s       r!   r  r  _  s    
 !)	+y!-		[7)4iM 
+()*68[+,- 	_%tK:J9K'LM	r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S r  rN  r9   s       r!   r  r  u  sp    
 !)	+y!-		kG95y+N 
+()*6_%tK:J9K'LM	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NuriencodedVideovideo_bytesencodingr@   r  r9   s       r!   r  r    s    
 !)	+w+UGT+w78	+'(4	tK.)9:; 
+
|$0[M4j\#BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  rA   r@   r  r9   s       r!   r  r    s    
 !)	+z".UGT+z:;	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r@   r  r  r9   s       r!   r  r    s    
 !)	+w+UGT+w78	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r@   rA   r  r9   s       r!   r  r    s    
 !)	+w+XJ[5' :;	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c                   	   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deej                     fdZddddd	dedeeej                  ej                  f      d
eeej                  ej                  f      deej                      deej"                     dej$                  fdZdddededeej(                     dej*                  fdZdddededeej0                     deej2                     dej4                  f
dZdddedej8                  dedeej:                     dej<                  f
dZdddedej@                  deejB                     dejD                  fdZ#dddedejH                  deejJ                     dejL                  fdZ'dddedeejP                     dejR                  fdZ*dddeejV                     dejX                  fdZ-dddedeej\                     dejR                  fdZ/dddedeej`                     dejb                  fdZ2dddedeej                  ej                  f   deejf                     dejh                  fdZ5dddedeej                  ej                  f   deejl                     dejn                  fdZ8dddddddedee   deej8                     deejr                     deejt                     deejv                     dejx                  fdZ=dddedeej                  ej                  f   deej"                     dej$                  fd Z>dddedej                  deej                     dej                  fd!Z?dddedej                  deej                     deej                     fd"Z@dddededeej(                     dej*                  fd#ZAdddededeej0                     deej2                     dej4                  f
d$ZBdddedej8                  dedeej                     dej<                  f
d%ZDdddddddedee   deej8                     deejr                     deejt                     deejv                     dejx                  fd&ZEdddeejV                     deFejR                     fd'Zy)(ModelsNr   r`   rb   r   r   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  si nt)        j*                  |
j&                        }| j                  j                  rt-        |d |      }| j                  j                  st/        |d |      }t         j"                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j%                  |       |S Nr`   rb   r   ra   z{model}:generateContentr  ?r   postshould_return_http_response)rj   r  kwargsheaders)r   _GenerateContentParameters_api_clientvertexairb  r   
format_mapr`  r	   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestgetattrGenerateContentResponse_verify_responsebodyjsonloadsro  rk  _from_response
model_dumpHttpResponser  rj   selfr`   rb   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr  r  return_valueresponse_dicts                r!   _generate_contentzModels._generate_content  si    66O   9


OT?l &))&1	(334DE(8


OT?l &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH g-t 22XNl
''5&mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L &+%7%7  &L" 	%%l3r#   c             #     K   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }|t        |dd       rt!        d      | j                  j#                  d	|||	      D ]  }
|
j$                  si nt'        j(                  |
j$                        }| j                  j                  rt+        |d |      }| j                  j                  st-        |d |      }t         j.                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j;                  |       |  y w)Nr  ra   %{model}:streamGenerateContent?alt=sser  r  r   r  FAccessing the raw HTTP response is not supported in streaming methods.r  r  r  )r   r  r  r  rb  r   r  r`  r	   r  r   r  r   r  r  r  r   request_streamedr  r  r  ro  rk  r  r  r  r  r  rj   r  r  r`   rb   r   r  r  r  r  r  r  r  r  r  s                r!   _generate_content_streamzModels._generate_content_stream3  si     66O   9


OT?l &))&1	6AA
 78


OT?l &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 $$55lL  !)b4::hmm3Lm				"	"<4
 &&;4
 22AA )C)C)E B l (-'9'9""(l$ ''5/s   I+I-rb   rD   r   r   rD   r   c                   t        j                  |||||      }| j                  j                  rct	        | j                  |d|      }|j                  d      }t        j                  |j                        rdnd}	|r|	j                  |      }
nB|	}
n?t        | j                  |d|      }|j                  d      }|rdj                  |      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  d	d       d}|j                  ,|j                  j                  |j                  j                  }t        j                   |      }t        j"                  |      }| j                  j%                  d
|
||      }|j&                  si nt)        j*                  |j&                        }| j                  j                  rt-        |d|      }| j                  j                  st/        |d|      }t         j0                  j3                  ||j5                               }t        j6                  |j8                        |_        | j                  j=                  |       |S )aA  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r`   rb   rD   r   r   Nra   {model}:embedContent{model}:predict{model}:batchEmbedContentsr  r  r   r  r  r  )r   _EmbedContentParametersPrivater  r  r   r   rc   t_is_vertex_embed_content_modelr`   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   EmbedContentResponser  r  r  r  rj   r  r  r`   rb   rD   r   r   r  r  r  endpoint_urlr  r  r  r  r  r  s                   r!   _embed_contentzModels._embed_content  sK   H ::-O   =


OT?l &))&1/0/P/PQ`QfQf/g+m~l	&&'78<


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m $$6
m --<<'A'A'C = L &+%7%7  &L" 	%%l3r#   r   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S )z%Private method for generating images.r`   r   r   Nra   r  r  r  r   r  r  r  )r   _GenerateImagesParametersr  r  r~  r   r  r|  r	   r  r   r  r   r  r  r  r  r  r  r  r  GenerateImagesResponser  r  r  r  rj   r  r  r`   r   r   r  r  r  r  r  r  r  r  r  s                r!   _generate_imageszModels._generate_images  s'    55O   8


OT?l &))&1	 ++,<= 7


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9
m $$8
m //>>'A'A'C ? L &+%7%7  &L" 	%%l3r#   r   c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S )z$Private method for editing an image.r`   r   r   r   6This method is only supported in the Vertex AI client.Nra   r  r  r  r   r  r  r  )r   _EditImageParametersr  r  r   r   r   r  r	   r  r   r  r   r  r  r  r  r  r  r   EditImageResponser  r  r  r  rj   r  r  r`   r   r   r   r  r  r  r  r  r  r  r  r  s                 r!   _edit_imagezModels._edit_image?  s    00)	O $$OPP3


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  4
m **99'A'A'C : L &+%7%7  &L" 	%%l3r#   r  r  c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S )z&Private method for upscaling an image.r`   r  r  r   r  Nra   r  r  r  r   r  r  r  )r   _UpscaleImageAPIParametersr  r  r   r  r   r  r	   r  r   r  r   r  r  r  r  r  r  r  UpscaleImageResponser  r  r  r  rj   r  r  r`   r  r  r   r  r  r  r  r  r  r  r  r  s                 r!   _upscale_imagezModels._upscale_image  s    66%	O $$OPP9


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m --<<'A'A'C = L &+%7%7  &L" 	%%l3r#   r  c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S a  Recontextualizes an image.

    There are two types of recontextualization currently supported:
    1) Imagen Product Recontext - Generate images of products in new scenes
       and contexts.
    2) Virtual Try-On: Generate images of persons modeling fashion products.

    Args:
      model (str): The model to use.
      source (RecontextImageSource): An object containing the source inputs
        (prompt, person_image, product_images) for image recontext. prompt is
        optional for product recontext and disallowed for virtual try-on.
        person_image is required for virtual try-on, disallowed for product
        recontext. product_images is required for both product recontext and
        virtual try-on. Only one product image is supported for virtual try-on,
        and up to 3 product images (different angles of the same product) are
        supported for product recontext.
      config (RecontextImageConfig): Configuration for recontextualization.

    Usage:

      ```
      product_recontext_response = client.models.recontext_image(
          model="imagen-product-recontext-preview-06-30",
          source=types.RecontextImageSource(
              prompt="In a modern kitchen setting.",
              product_images=[types.ProductImage.from_file(IMAGE_FILE_PATH)],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = product_recontext_response.generated_images[0].image

      virtual_try_on_response = client.models.recontext_image(
          model="virtual-try-on-001",
          source=types.RecontextImageSource(
              person_image=types.Image.from_file(IMAGE1_FILE_PATH),
              product_images=[types.ProductImage.from_file(IMAGE2_FILE_PATH)],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = virtual_try_on_response.generated_images[0].image
      ```
    r`   r  r   r  Nra   r  r  r  r   r  r  )r   _RecontextImageParametersr  r  r   rU  r   r  r	   r  r   r  r   r  r  r  r  r  r  rW  RecontextImageResponser  r  r  r  r`   r  r   r  r  r  r  r  r  r  r  r  s                r!   recontext_imagezModels.recontext_image  s   n 55O $$OPP8


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9
m //>>'A'A'C ? L 	%%l3r#   c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S )a"  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(IMAGE_FILE_PATH),
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r#  r  Nra   r  r  r  r   r  r  )r   _SegmentImageParametersr  r  r   r  r   r  r	   r  r   r  r   r  r  r  r  r  r  r  SegmentImageResponser  r  r  r&  s                r!   segment_imagezModels.segment_image/  s   @ 33O $$OPP6


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m --<<'A'A'C = L 	%%l3r#   c                F   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S 	Nr`   r   ra   {name}r  r  r   r   r  )r   _GetModelParametersr  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  Modelr  r  r  r  r`   r   r  r  r  r  r  r  r  r  r  s               r!   r   z
Models.get  s    //O   2


OT?l &))&1	""#341


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3r#   c                   t        j                  |      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r=|j                  d      r,|j                  d      }| d| }|r$|dt        |       z  }n|r| dt        |       }|j                  d	d        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d
|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S Nr  ra   z{models_url}r  r  z?filter=&r  r   r   r  r  )r   _ListModelsParametersr  r  r  r   r  r  r  r	   r   r  r   r  r  r  r  r  r  r  r  ListModelsResponser  r  r  r  rj   r  r  r   r  r  r  r  r  query_param_filterr  r  r  r  s               r!   _listzModels._list  si    11O   4


OT?l &))&1	(()9:3


OT?l &))&1	(()9:##H-L((2'++H5vX012d	!Il+,--	vQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  5
m $$4
m ++::'A'A'C ; L &+%7%7  &L" 	%%l3r#   c                F   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 
Nr.  ra   z{model}r/  r  r  r   patchr  )r   _UpdateModelParametersr  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r1  r  r  r  r2  s               r!   updatezModels.update  s    22O   5


OT?l &))&1	##$454


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''|\H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3r#   c                   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                  	      |_        | j                  j7                  |       |S 
Nr.  ra   r/  r  r  r   deleter  r  )r   _DeleteModelParametersr  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   DeleteModelResponser  r  r  r  rj   r  r2  s               r!   rB  zModels.deleteJ  s$    22O   5


OT?l &))&1	""#344


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3r#   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S )a8  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = client.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    r  Nra   {model}:countTokensr  r  r   r  r  r  )r   _CountTokensParametersr  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   CountTokensResponser  r  r  r  rj   r  r   s                r!   count_tokenszModels.count_tokens  s'   8 22O   5


OT?l &))&1	$//0@A$4


OT?l &))&1	$//0@A$##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3r#   c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |
j0                        |_        | j                  j5                  |       |S )az  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.

    This method is not supported by the Gemini Developer API.

    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = client.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r  Nra   {model}:computeTokensr  r  r   r  r  r  )r   _ComputeTokensParametersr  r  r   rg   r   r  r	   r  r   r  r   r  r  r  r  r  r  rm   ComputeTokensResponser  r  r  r  rj   r  r   s                r!   compute_tokenszModels.compute_tokens  s   < 44O $$OPP7


OT?l &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  8
m ..=='A'A'C > L &+%7%7  &L" 	%%l3r#   r   r  r  r  r   r  c                N   t        j                  ||||||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nBd}
n?t        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|
||      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S )
z%Private method for generating videos.r`   r   r  r  r  r   Nra   {model}:predictLongRunningr  r  r   r  r  )r   _GenerateVideosParametersr  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  GenerateVideosOperationr  r  r  r  r`   r   r  r  r  r   r  r  r  r  r  r  r  r  r  s                   r!   _generate_videoszModels._generate_videosF  s    55O   8


OT?l &))&1	+667GH+7


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L 	%%l3r#   c                   | j                   j                  s| j                  |||      S t        j                  |      r_t        j
                  |      }t        |      dkD  rt        d      | j                  |d|d   t        j                  j                  |      S | j                  |d|t        j                  j                  |      S )a  Calculates embeddings for the given contents.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )

      # Multimodal embeddings are only supported for the Vertex AI API.
      multimodal_embeddings = client.models.embed_content(
          model='gemini-embedding-2-exp-11-2025',
          contents=[
              types.Part.from_uri(
                  file_uri='gs://generativeai-downloads/images/scones.jpg',
                  mime_type='image/jpeg',
              ),
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  r
   HThe embedContent API for this model only supports one content at a time.Nr   r  )r`   rD   rb   r   r   r  r  r  rc   r	  re   lenr   r   EmbeddingApiTyper   r   r  r`   rb   r   normalized_contentss        r!   embed_contentzModels.embed_content  s    V $$  ux OO((/LL2	 	!A	%
 	
   %a("33AA !     "33;; !  r#   c                   t        j                  |      }t        j                  |      }|r@|j                  r4t	        j
                  |j                        rt        j                  d      t        j                  |      r| j                  |||      S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj!                  t#        t$        |            }t&        j)                  d|       | j                  |||      S t        j*                  |      }	t&        j-                  d|	 d       g }
t        j.                         }d}|	dkD  r|d	z  }| j                  |||      }t        j0                  |      }|snR|snN|j2                  r<|j2                  d   j4                  r#|j2                  d   j4                  j6                  snt        j8                  ||      }|snt&        j-                  d
| d       |	d	z  }	|	dk(  rt&        j-                  d       |j2                  d   j4                  }t        j:                  d|      }t=        j>                  |      }|
s|
jA                  |       t        |tB              r"|jE                  |       |jE                  |       |
jE                  |       |
jE                  |       |	dkD  rt        jF                  |      r	||
|_$        |S )a  Makes an API request to generate content using a model.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      )
      print(response.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text(text='What is shown in this image?'),
          types.Part.from_uri(file_uri='gs://generativeai-downloads/images/scones.jpg',
          mime_type='image/jpeg')
        ]
      )
      print(response.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    6MCP sessions are not supported in synchronous methods.r  r   r   , Tools at indices [%s] are not compatible with automatic function calling (AFC). AFC is disabled. If AFC is intended, please include python callables in the tool list, and do not include function declaration and MCP server in the tool list.&AFC is enabled with max remote calls: .r
   AFC remote call 	 is done.8Reached max remote calls for automatic function calling.userrw   rv   )%r   "find_afc_incompatible_tool_indexesparse_config_for_mcp_usager   r   has_mcp_session_usager   UnsupportedFunctionErrorshould_disable_afcr  
isinstancer   GenerateContentConfigrZ  dictr   joinmapstrloggerwarningget_max_remote_calls_afcinfor  get_function_maprd  rD   rv   get_function_response_partsContentrc   re   extendlistappendshould_append_afc_history"automatic_function_calling_history)r  r`   rb   r   incompatible_tools_indexesparsed_configoriginal_tools_lengthr   indices_strremaining_remote_calls_afcr  r  ifunction_mapfunc_response_partsfunc_call_contentfunc_response_contents                    r!   generate_contentzModels.generate_content  s0   D 	77?  !;;FCM,,]-@-@A++
B  &&}5## $   "	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DED 	
 ## $   ".!F!F" KK
01K0LAN ?A&,,.H	A
$q
(1fa'' ( h "22=Al!!$$Q'//$$Q'//55(DD
L !kk$QCy12 A% 	#q	(NO"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFO %q
(R 	..}=  - 1 Or#   c             #     K   t        j                  |      }t        j                  |      }|r@|j                  r4t	        j
                  |j                        rt        j                  d      t        j                  |      r| j                  |||      E d{    y|rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj!                  t#        t$        |            }t&        j)                  d|       | j                  |||      E d{    yt        j*                  |       t        j,                  |      }	t&        j/                  d|	 d	       g }
d}d}d}|	dkD  rw|d
z  }| j                  |||      }t        j0                  |      }|d
k(  r|D ]  }|st        j2                  ||      }|  |j4                  r<|j4                  d   j6                  r#|j4                  d   j6                  j8                  s nt        j:                  ||      }|rt        j2                  ||      }|  n|D ]8  }t        j<                  |      r|
|_        t        j2                  ||      }| : |H|j4                  r<|j4                  d   j6                  r#|j4                  d   j6                  j8                  syt        j:                  ||      }|sy|syt&        j/                  d| d       |	d
z  }	|	dk(  rt&        j/                  d       ||j4                  |j4                  d   j6                  }t        j@                  d|      }tC        jD                  |      }|
s|
jG                  |       t        |tH              r$|"|jK                  |       |jK                  |       ||
jK                  |       |
jK                  |       |	dkD  rvyy7 7 ҭw)a  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    r`  r  Nr   r   ra  z_Tools at indices [%s] are not compatible with automatic function calling. AFC will be disabled.rc  rd  r
   re  rf  rg  rh  ri  )&r   rj  rk  r   r   rl  r   rm  rn  r  ro  r   rp  rZ  rq  r   rr  rs  rt  ru  rv  'raise_error_for_afc_incompatible_configrw  rx  ry  append_chunk_contentsrd  rD   rv   rz  r  r  r{  rc   re   r|  r}  r~  )r  r`   rb   r   r  r  r  r   r  r  r  chunkr  r  r  r  r  r  s                     r!   generate_content_streamzModels.generate_content_stream|  s2    D 	77?  !;;FCM,,]-@-@A++
B  &&}5.. /    !	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DE-	

 .. /     88G!-!F!F" KK
01K0LAN ?A&E	A
$q
(1fa.. / h "22=Al	
a  	E#99(EJHK $$''*22''*2288"."J"J|# '%;;HeLhk!	(  	E33MB2 4 "77%H(+	 M####A&..##A&..44
*FF<
  kk$QCy12 A% 	#q	(NO 
	u//;!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHU %q
(Q*s3   BP?P9CP?*P<+DP?9F<P?7P?<P?c                ,   | j                  |||      }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S )ap  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = client.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  NPositive Promptr   r  r  r   r  rs  r~  r   r  	r  r`   r   r   api_responser  r   generated_imager  s	            r!   generate_imageszModels.generate_images>  s    : (( ) L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH Or#   c                ,    | j                  ||||      S )aL  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = client.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  r  r  r`   r   r   r   s        r!   
edit_imagezModels.edit_imageu  s)    b )	   r#   c                h   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      |j                  d
d      |j                  dd      |j                  dd      
      }d|d<   d|d<   | j                  ||||      S )a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response=client.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  r  Nr   r   r   r   r   r   r  r  r   
r  r   r   r   r   r   r   r  r  r   upscaler  r
   r   	r   UpscaleImageParametersro  UpscaleImageConfigr  rq  _UpscaleImageAPIConfigDictr   r   r  r`   r  r  r   
config_dct
api_configs          r!   upscale_imagezModels.upscale_image  s8   B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=&NN+@$G$..)<dC%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
 ~~h-J$ #Jv%&J!"%	   r#   c          
      D   |s|s|r|rt        d      i }| j                  j                  s|rt        |t        j
                        r|j                         }nt        |      }|j                  d      r|j                  d      rt	        j
                  |j                  d      |j                  d            }nL| j                  j                  s5|r2t        |t        j                        r#|j                         }|j                  di       }nht        |      }t        |j                  d      t        j
                        r4|j                  dt	        j
                               }	|	j                         }|r|j                  d      rz|j                  d      rit	        j                  |j                  d      |j                  d      t	        j
                  |j                  d      |j                  d            	      }| j                  ||||||
      S )  Generates videos based on an input (text, image, or video) and configuration.

    The following use cases are supported:
    1. Text to video generation.
    2a. Image to video generation (additional text prompt is optional).
    2b. Image to video generation with frame interpolation (specify last_frame
    in config).
    3. Video extension (additional text prompt is optional)

    Args:
      model: The model to use.
      prompt: The text prompt for generating the videos. Optional for image to
        video and video extension use cases. This argument is deprecated, please
        use source instead.
      image: The input image for generating the videos. Optional if prompt is
        provided. This argument is deprecated, please use source instead.
      video: The input video for video extension use cases. Optional if prompt
        or image is provided. This argument is deprecated, please use source
        instead.
      source: The input source for generating the videos (prompt, image, and/or
        video)
      config: Configuration for generation.

    Usage:

      ```
      operation = client.models.generate_videos(
          model="veo-2.0-generate-001",
          source=types.GenerateVideosSource(
              prompt="A neon hologram of a cat driving at top speed",
          ),
      )
      while not operation.done:
          time.sleep(10)
          operation = client.operations.get(operation)

      operation.result.generated_videos[0].video.uri
      ```
    MSource and prompt/image/video are mutually exclusive. Please only use source.r  r  r@   r  r@   r  r   r  r   r  r  rQ  r   r  r  ro  r   Videor  rq  r   GenerateVideosSourcerV  
r  r`   r   r  r  r  r   	video_dct
source_dct	video_objs
             r!   generate_videoszModels.generate_videos  s   b 	%5f' 
 !#I$$	E5;;	'$$&	K		u	)--">e$	k0J
 &&6	FE66	7&&(
NN7B/	&\
jnnW-u{{;#->>'5;;=#I)**,)	y}}U+	m0L++>>(+..)++MM%(#--4
    !  r#   c                |   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |      |      S )a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response=client.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response=client.models.list(config={'page_size': 5, 'query_base': True})
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r  T&filter=labels.tune-type:*labels.tune-type:*r  )r   r6  r   ListModelsConfigr  r  r  copyr  r   r:  r  r   filter_values      r!   r}  zModels.listT  s    8 	##6299 	$!!#   f  {{}f}}  77% 	
 



&
!	 r#   )G__name__
__module____qualname__rt  r   r   ContentListUnionContentListUnionDictr   GenerateContentConfigOrDictr  r  r   r  ContentUnionContentUnionDictr[  EmbedContentConfigOrDictr
  r  GenerateImagesConfigOrDictr  r  r}  _ReferenceImageAPIOrDictEditImageConfigOrDictr  r  ImageOrDict_UpscaleImageAPIConfigOrDictr  r   RecontextImageSourceOrDictRecontextImageConfigOrDictr%  r'  SegmentImageSourceOrDictSegmentImageConfigOrDictr*  r+  GetModelConfigOrDictr1  r   ListModelsConfigOrDictr7  r:  UpdateModelConfigOrDictr?  DeleteModelConfigOrDictrD  rB  CountTokensConfigOrDictrH  rI  ComputeTokensConfigOrDictrM  rN  VideoOrDictGenerateVideosSourceOrDictGenerateVideosConfigOrDictrT  rV  r^  r  r  r  r  UpscaleImageConfigOrDictr  r  r    r#   r!   r  r    s!    =AO O e,,e.H.HHI	O
 u889O $$Ol =AT T e,,e.H.HHI	T
 u889T --.Tx  =A9=h h 
&&(B(BB
C	h 
""E$:$::
;h #5#9#9:h u556h !!h^ <@J J 	J
 u778J ##Jd 7;@ @ 	@
 U;;<@ u223@ @P >B@ @ 	@
 @ u99:@ !!@N <@j j ..	j
 u778j ##jb :>S S ,,	S
 u556S !!Sl KO;;#+E,F,F#G;{{;| AEE < <=EEV 9=	@ @ u445	@
 {{@L 9=	F F u445	F
   FZ 9=] ] e,,e.H.HHI	]
 u445]   ]H ;?S S e,,e.H.HHI	S
 u667S ""Sr #+/+/;?;?N N sm	N
 e''(N e''(N u778N u778N $$Nj :>C C e,,e.H.HHI	C
 u556C !!CT =A_ _ **	_
 u889_ $$_L =A@I @I **	@I
 u889@I --.@IN <@5 5 	5
 u7785 ##5z 7;6 6 	6
 U;;<6 u2236 6| :>H H 	H
 H u556H !!H\ #+/+/;?;?[ [ sm	[
 e''([ e''([ u778[ u778[ $$[@ 8<0 u3340 U[[	0r#   r  c                   6
   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deeej                        fdZddddd	dedeeej                  ej                  f      d
eeej                  ej                   f      deej"                     deej$                     dej&                  fdZdddededeej*                     dej,                  fdZdddededeej2                     deej4                     dej6                  f
dZdddedej:                  dedeej<                     dej>                  f
dZ dddedejB                  deejD                     dejF                  fdZ$dddedejJ                  deejL                     dejN                  fdZ(dddedeejR                     dejT                  fdZ+dddeejX                     dejZ                  fdZ.dddedeej^                     dejT                  fdZ0dddedeejb                     dejd                  fdZ3dddedeej                  ej                  f   deejh                     dejj                  fdZ6dddedeej                  ej                  f   deejn                     dejp                  fdZ9dddddddedee   deej:                     deejt                     deejv                     deejx                     dejz                  fdZ>dddedeej                  ej                  f   deej                     dej                  fd Z?dddedeej                  ej                  f   deej                     deej                     fd!Z@dddededeej2                     deej4                     dej6                  f
d"ZAdddeejX                     deBejT                     fd#Zdddededeej*                     dej,                  fd$ZCdddedej:                  dedeej                     dej>                  f
d%ZEdddddddedee   deej:                     deejt                     deejv                     deejx                     dejz                  fd&ZFdddedeej                  ej                  f   deej$                     dej&                  fd'ZGy)(AsyncModelsNr  r`   rb   r   r   c                4  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d {   }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  si nt)        j*                  |
j&                        }| j                  j                  rt-        |d |      }| j                  j                  st/        |d |      }t         j"                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j%                  |       |S 7 +wr  )r   r  r  r  rb  r   r  r`  r	   r  r   r  r   r  r  async_requestr  r  r  r  r  r  ro  rk  r  r  r  r  rj   r  s                r!   r  zAsyncModels._generate_content  sw     66O   9


OT?l &))&1	(334DE(8


OT?l &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H g-t 22XNl
''5&mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L &+%7%7  &L" 	%%l3=s   E(J*J+D+Jc                <   
K   t        j                  |||      
 j                  j                  r@t	         j                  
d 
      }|j                  d      }|rdj                  |      }nBd}n?t         j                  
d 
      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }
j                  ,
j                  j                  
j                  j                  }t        j                  |      }t        j                  |      }|t        |dd       rt!        d       j                  j#                  d	|||       d {   
 fd
}	 |	       S 7 w)Nr  ra   r  r  r  r   r  r  r  c                   K   2 3 d {   } | j                   si nt        j                  | j                         }j                  j                  rt        |d       }j                  j                  st        |d       }t        j                  j                  |j                               }t        j                  | j                        |_        j                  j                  |       | 7 6 y w)Nr  r  )r  r  r  r  r  ro  rk  r   r  r  r  r  r  rj   r  )r  r  r  r  response_streamr  s      r!   async_generatorz=AsyncModels._generate_content_stream.<locals>.async_generator  s     +  "*--TZZ5N$$>T?- ((=T?- 44CC"?+E+E+G D 
 */););$$*
& 	)),7+Os&   C;C9C7C9C)C;7C99C;)r   r  r  r  rb  r   r  r`  r	   r  r   r  r   r  r  r  r   async_request_streamed)r  r`   rb   r   r  r  r  r  r  r  r  r  s   `         @@r!   r  z$AsyncModels._generate_content_stream  s     66O   9


OT?l &))&1	6AA
 78


OT?l &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 !,,CClL O0 9s   FFFFr  rD   r   c                  K   t        j                  |||||      }| j                  j                  rct	        | j                  |d|      }|j                  d      }t        j                  |j                        rdnd}	|r|	j                  |      }
nB|	}
n?t        | j                  |d|      }|j                  d      }|rdj                  |      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  d	d       d}|j                  ,|j                  j                  |j                  j                  }t        j                   |      }t        j"                  |      }| j                  j%                  d
|
||       d{   }|j&                  si nt)        j*                  |j&                        }| j                  j                  rt-        |d|      }| j                  j                  st/        |d|      }t         j0                  j3                  ||j5                               }t        j6                  |j8                        |_        | j                  j=                  |       |S 7 w)aK  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  Nra   r  r  r  r  r  r   r  r  r  )r   r  r  r  r   r   rc   r	  r`   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   r
  r  r  r  r  rj   r  r  s                   r!   r  zAsyncModels._embed_content5  sY    H ::-O   =


OT?l &))&1/0/P/PQ`QfQf/g+m~l	&&'78<


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m $$6
m --<<'A'A'C = L &+%7%7  &L" 	%%l3/s   FI:I8C)I:r   c                  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S 7 w)z4Private method for generating images asynchronously.r  Nra   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  rj   r  r  s                r!   r  zAsyncModels._generate_images  s5     55O   8


OT?l &))&1	 ++,<= 7


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9
m $$8
m //>>'A'A'C ? L &+%7%7  &L" 	%%l3/   E(I*I+C)Ir   c                   K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 ŭw)z3Private method for editing an image asynchronously.r  r  Nra   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  rj   r  r  s                 r!   r  zAsyncModels._edit_image  s     00)	O $$OPP3


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  4
m **99'A'A'C : L &+%7%7  &L" 	%%l3%   D4G>6G<7CG>r  r  c                   K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 ŭw)z5Private method for upscaling an image asynchronously.r  r  Nra   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  rj   r  r  s                 r!   r   zAsyncModels._upscale_image-  s     66%	O $$OPP9


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m --<<'A'A'C = L &+%7%7  &L" 	%%l3%r  r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S 7 wr"  )r   r$  r  r  r   rU  r   r  r	   r  r   r  r   r  r  r  r  r  r  rW  r%  r  r  r  r&  s                r!   r'  zAsyncModels.recontext_imageo  s    n 55O $$OPP8


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9
m //>>'A'A'C ? L 	%%l3!   D3G5G6B!Gc                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S 7 w)a  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(IMAGE_FILE_PATH),
          ),
          config=types.SegmentImageConfig(
              mode=types.SegmentMode.foreground,
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r#  r  Nra   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&  s                r!   r+  zAsyncModels.segment_image  s    F 33O $$OPP6


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m --<<'A'A'C = L 	%%l3!r  c                b  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S 7 íwr-  )r   r0  r  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r1  r  r  r  r2  s               r!   r   zAsyncModels.get3  s     //O   2


OT?l &))&1	""#341


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3#   E'H/)H-*CH/c                (  K   t        j                  |      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r=|j                  d      r,|j                  d      }| d| }|r$|dt        |       z  }n|r| dt        |       }|j                  d	d        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d
|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S 7 wr4  )r   r6  r  r  r  r   r  r  r  r	   r   r  r   r  r  r  r  r  r  r  r  r7  r  r  r  r  rj   r  r8  s               r!   r:  zAsyncModels._listr  s|     11O   4


OT?l &))&1	(()9:3


OT?l &))&1	(()9:##H-L((2'++H5vX012d	!Il+,--	vQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  5
m $$4
m ++::'A'A'C ; L &+%7%7  &L" 	%%l3/s   F%J'J(C)Jc                b  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 7 íwr<  )r   r>  r  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r1  r  r  r  r2  s               r!   r?  zAsyncModels.update  s     22O   5


OT?l &))&1	##$454


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33|\ H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3#r  c                  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                  	      |_        | j                  j7                  |       |S 7 wrA  )r   rC  r  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   rD  r  r  r  r  rj   r  r2  s               r!   rB  zAsyncModels.delete  s2     22O   5


OT?l &))&1	""#344


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3/s   E'I)I*C)Ic                  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S 7 w)aB  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = await client.aio.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    r  Nra   rF  r  r  r   r  r  r  )r   rG  r  r  r   r   r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   rH  r  r  r  r  rj   r  r   s                r!   rI  zAsyncModels.count_tokensE  s5    8 22O   5


OT?l &))&1	$//0@A$4


OT?l &))&1	$//0@A$##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3/r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |
j0                        |_        | j                  j5                  |       |S 7 ŭw)aF  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.


    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = await client.aio.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r  Nra   rK  r  r  r   r  r  r  )r   rL  r  r  r   rg   r   r  r	   r  r   r  r   r  r  r  r  r  r  rm   rM  r  r  r  r  rj   r  r   s                r!   rN  zAsyncModels.compute_tokens  s    : 44O $$OPP7


OT?l &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  8
m ..=='A'A'C > L &+%7%7  &L" 	%%l3%s   D3G=5G;6CG=rO  r  c                j  K   t        j                  ||||||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nBd}
n?t        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|
||       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S 7 íw)
z4Private method for generating videos asynchronously.rQ  Nra   rR  r  r  r   r  r  )r   rS  r  r  r  r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  rT  r  r  r  rU  s                   r!   rV  zAsyncModels._generate_videos  s!     55O   8


OT?l &))&1	+667GH+7


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L 	%%l3+s   E+H3-H1.CH3c                R  K   t        j                  |      }t        j                  |       d{   \  }}t        j                  |      r| j	                  |||       d{   S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj                  t        t        |            }	t        j!                  d|	       | j	                  |||       d{   S t        j"                  |      }
t        j%                  d|
 d       g }t        j&                         }|
dkD  rx| j	                  |||       d{   }|
d	z  }
|
dk(  rt        j%                  d
       t        j(                  ||d      }|sn!|sn|j*                  r<|j*                  d   j,                  r#|j*                  d   j,                  j.                  snt        j0                  ||       d{   }|sn|j*                  d   j,                  }t        j2                  d|      }t5        j6                  |      }|s|j9                  |       t        |t:              r"|j=                  |       |j=                  |       |j=                  |       |j=                  |       |
dkD  rxt        j>                  |      r	|||_         |S 7 7 7 7 7 w)ad  Makes an API request to generate content using a model.

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = await client.aio.models.generate_content(
          model='gemini-2.0-flash',
          contents='User input: I like bagels. Answer:',
          config=types.GenerateContentConfig(
              system_instruction=
                [
                  'You are a helpful language translator.',
                  'Your mission is to translate text in English to French.'
                ]
          ),
      )
      print(response.text)
      # J'aime les bagels.
    Nr  r   r   ra  rb  rc  rd  r
   rg  Tis_caller_method_asyncrh  ri  )!r   rj  parse_config_for_mcp_sessionsrn  r  ro  r   rp  r   rZ  rq  r   rr  rs  rt  ru  rv  rw  rx  r  ry  rd  rD   rv   !get_function_response_parts_asyncr{  rc   re   r|  r}  r~  r  r  )r  r`   rb   r   r  r  mcp_to_genai_tool_adaptersr  r   r  r  r  r  r  r  r  r  s                    r!   r  zAsyncModels.generate_contentH  s$    P 	77?  88@@ .M- &&}5)) *    "	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DED 	
 )) *    ".!F!F" KK
01K0LAN ?A&,,.H
$q
(-- .  h !A% 	#q	(NO!22
3Dl !!$$Q'//$$Q'//55>>  
 !"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFQ %q
(V 	..}=  - 1 Oi 	A**sa   .L'L3L'$L%CL'2L3A%L'L"B%L'>L%?B8L'9!L'L'L'"L'%L'c                   K   t        j                  |      }t        j                  |       d{   \  }t        j                  |      r+ j	                  |||       d{   fd} ||||      S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj                  t        t        |            }	t        j!                  d|	        j	                  |||       d{   fd} ||||      S t        j"                  |        fd	}
 |
|||      S 7 J7 7 >w)
a2  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    Nr  c                6   K   2 3 d {   }| 7 
6 y wNr  r`   rb   r   r  r  s       r!   base_async_generatorzAAsyncModels.generate_content_stream.<locals>.base_async_generator  #     # 	 	%+	8   r   r   ra  rb  c                6   K   2 3 d {   }| 7 
6 y wr  r  r  s       r!   r  zAAsyncModels.generate_content_stream.<locals>.base_async_generator3  r  r  c                  K   t        j                  |      }t        j                  d| d       g }d }d }d}|dkD  r5|dz  }j	                  | ||       d {   }|dkD  rt        j                  d| d       |dz  }|dkD  r|dk(  rt        j                  d       t        j
                  |d	
      }	|dk(  r|2 3 d {   }|	st        j                  ||      }| '|j                  r<|j                  d   j                  r#|j                  d   j                  j                  s nt        j                  ||	       d {   }|rt        j                  ||      }| |2 3 d {   }t        j                  |      r||_        t        j                  ||      }| A|	sy |sy ||j                  d   j                  }
t        j                  d|      }t        j                   |      }|s|j#                  |       t%        |t&              r$|
"|j)                  |
       |j)                  |       |
|j)                  |
       |j)                  |       |dkD  r4y y 7 7 7 06 7 6 |H|j                  r<|j                  d   j                  r#|j                  d   j                  j                  sy t        j                  ||	       d {  7  }>w)Nrc  rd  r   r
   r  re  rf  rg  Tr  rh  ri  )r   rw  ru  rx  r  ry  r  rd  rD   rv   r  r  r  r   r{  rc   re   r|  ro  r}  r~  )r`   rb   r   r  r  r  r  r  r  r  r  r  r  r  s               r!   r  z<AsyncModels.generate_content_stream.<locals>.async_generator=  s
    #/#H#H#P kk23M2Na
P AC( e
a&*	Q66(6 7 
 
 q5
++(95
6"a'"q5/14
++H $44.t
 6 &  E%;;HeLhk &&))!,44))!,44::$FF\  "
 )'==hN &  E55f=4 6 $99(EJHK 
"
=
!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHm '*
( &,X m%%%%a(00%%a(0066 BB   s   AK1I6A%K1I?I9I?
BK1I<K1K12J6J7J:C8K14K19I?<K1?K1JA%K1)K,*K1)r   rj  r  rn  r  ro  r   rp  r   rZ  rq  r   rr  rs  rt  ru  rv  r  )r  r`   rb   r   r  r  r  r  r   r  r  r  r  s   `          @@r!   r  z#AsyncModels.generate_content_stream  s    F 	77? 
 88@@ .M- &&}544 5  h "%=AA!	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DED 	
 44 5  h "%=AA 88G_IB 5(M::] 	A8s4   .FE=3F'F (CFF9F FFc                H   K   | j                  ||||       d{   S 7 w)aV  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = await client.aio.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  Nr  r  s        r!   r  zAsyncModels.edit_image  s7     b !!)	 "    s   " "c                  K   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |       d{   |      S 7 	w)a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response = await client.aio.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response = await client.aio.models.list(
          config={'page_size': 5, 'query_base': True}
        )
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r  NTr  r  r  )r   r6  r   r  r  r  r  r  r  r   r:  r  s      r!   r}  zAsyncModels.list  s     < 	##6299 	$!!#   f  {{}f}}  77% 	
 

jjj''	  	(s   B<C
>C?
C
c                H  K   | j                  |||       d{   }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S 7 w)az  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = await client.aio.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  Nr  r  r  r  s	            r!   r  zAsyncModels.generate_images  s     : .. /  L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH O1s   B"B BB"c                  K   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      |j                  d
d      |j                  dd      |j                  dd      
      }d|d<   d|d<   | j                  ||||       d{   S 7 w)a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response = await client.aio.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  r  Nr   r   r   r   r   r   r  r  r   r  r  r  r
   r   r  r  s          r!   r  zAsyncModels.upscale_imageC  sF    B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=&NN+@$G$..)<dC%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
 ~~h-J$ #Jv%&J!"$$%	 %    s   D7E 9D>:E c          
      `  K   |s|s|r|rt        d      i }| j                  j                  s|rt        |t        j
                        r|j                         }nt        |      }|j                  d      r|j                  d      rt	        j
                  |j                  d      |j                  d            }nL| j                  j                  s5|r2t        |t        j                        r#|j                         }|j                  di       }nht        |      }t        |j                  d      t        j
                        r4|j                  dt	        j
                               }	|	j                         }|r|j                  d      rz|j                  d      rit	        j                  |j                  d      |j                  d      t	        j
                  |j                  d      |j                  d            	      }| j                  ||||||
       d{   S 7 w)r  r  r  r  r@   r  r  r   r  r  rQ  Nr  r  s
             r!   r  zAsyncModels.generate_videos  s    b 	%5f' 
 !#I$$	E5;;	'$$&	K		u	)--">e$	k0J
 &&6	FE66	7&&(
NN7B/	&\
jnnW-u{{;#->>'5;;=#I)**,)	y}}U+	m0L++>>(+..)++MM%(#--4
 && '    s   H%H.'H,(H.c                  K   | j                   j                  s| j                  |||       d{   S t        j                  |      rgt        j
                  |      }t        |      dkD  rt        d      | j                  |||d   t        j                  j                  |       d{   S | j                  ||t        j                  j                  |       d{   S 7 7 ;7 w)a  Calculates embeddings for the given contents.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )

      # Multimodal embeddings are only supported for the Vertex AI API.
      multimodal_embeddings = await client.aio.models.embed_content(
          model='gemini-embedding-2-exp-11-2025',
          contents=[
              types.Part.from_uri(
                  file_uri='gs://generativeai-downloads/images/scones.jpg',
                  mime_type='image/jpeg',
              ),
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  Nr
   rX  r   r  )r`   rb   r   r   rY  r\  s        r!   r^  zAsyncModels.embed_content  s    V $$&& '    	((/LL2	 	!A	%
 	
 &&%a("33AA '    &&"33;;	 '   %s4   .C,C&A;C,,C(-4C,!C*"C,(C,*C,)Hr  r  r  rt  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  r1  r   r  r7  r:  r  r?  r  rD  rB  r  rH  rI  r  rM  rN  r  r  r  rT  rV  r  r  r  r   r  r  r  r  r^  r  r#   r!   r  r    sA    =AO O e,,e.H.HHI	O
 u889O $$Ol =AY Y e,,e.H.HHI	Y
 u889Y u<<=>YB  =A9=h h 
&&(B(BB
C	h 
""E$:$::
;h #5#9#9:h u556h !!h^ <@J J 	J
 u778J ##Jd 7;@ @ 	@
 U;;<@ u223@ @P >B@ @ 	@
 @ u99:@ !!@N <@j j ..	j
 u778j ##jb :>V V ,,	V
 u556V !!Vr KO==#+E,F,F#G={{=@ AEG < <=GGZ 9=	@ @ u445	@
 {{@L 9=	F F u445	F
   FZ 9=] ] e,,e.H.HHI	]
 u445]   ]H ;?R R e,,e.H.HHI	R
 u667R ""Rp #+/+/;?;?N N sm	N
 e''(N e''(N u778N u778N $$Nj =A  e,,e.H.HHI	
 u889 $$L =AU; U; e,,e.H.HHI	U;
 u889U; U223U;z 7;6 6 	6
 U;;<6 u2236 6v 8<2 u3342 %++	2r <@5 5 	5
 u7785 ##5z :>H H 	H
 H u556H !!H\ #+/+/;?;?[ [ sm	[
 e''([ e''([ u778[ u778[ $$[D :>C C e,,e.H.HHI	C
 u556C !!Cr#   r  )NN)r  loggingtypingr   r   r   r   r   r   urllib.parser	    r   r   r  r   r   r   r   rc   r   r   r  r   r   r7   r   r8   pagersr   r   	getLoggerru  r"   r&   r)   rq  rt  objectr;   rB   rY   rV   rg   rm   rp   rt   ry   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  rU  r]  r`  rb  rk  ro  rv  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r  r  r  r  rT  r\  r  r  r  r  r  r
  r  r  r  r  r#  r  r  rx   rO  rQ  rU  rW  rT  r   r  r  rM  r{  r  r  r  r  rQ  rO  r   r8  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
BaseModuler  r  r  r#   r!   <module>r     s3  $   K K "  *        & . . % 
		0	1Q Q Q
Q# Q$ Q
QQ	Q /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?tCH~v-.DcN+ %S#X 678 
#s(^	& /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!N /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^F /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^> /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	  /3;?tCH~v-.DcN+ %S#X 678 
#s(^	  /3;?vtCH~v-.vDcN+v %S#X 678v 
#s(^	vx /3;?	  tCH~v-.  DcN+  %S#X 678	 
 
#s(^ J /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?NtCH~v-.NDcN+N %S#X 678N 
#s(^	Nh /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)^ /3;?	**tCH~v-.* DcN+* %S#X 678	*
 
#s(^*^ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?%tCH~v-.%DcN+% %S#X 678% 
#s(^	%T /3;?tCH~v-.DcN+ %S#X 678 
#s(^	& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?#tCH~v-.#DcN+# %S#X 678# 
#s(^	#R /3;?	vvtCH~v-.v DcN+v %S#X 678	v
 
#s(^vx /3;?	iitCH~v-.i DcN+i %S#X 678	i
 
#s(^i^ /3;?	!!tCH~v-.! DcN+! %S#X 678	!
 
#s(^!N /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^F /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?ntCH~v-.nDcN+n %S#X 678n 
#s(^	nf /3;?vtCH~v-.vDcN+v %S#X 678v 
#s(^	vx /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^8 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^6 /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;?dtCH~v-.dDcN+d %S#X 678d 
#s(^	dR /3;?xtCH~v-.xDcN+x %S#X 678x 
#s(^	xz /3;?(tCH~v-.(DcN+( %S#X 678( 
#s(^	(Z /3;?$tCH~v-.$DcN+$ %S#X 678$ 
#s(^	$T /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)^ /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)\ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?tCH~v-.DcN+ %S#X 678 
#s(^	< /3;?tCH~v-.DcN+ %S#X 678 
#s(^	< /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	D /3;?"tCH~v-."DcN+" %S#X 678" 
#s(^	"N /3;?tCH~v-.DcN+ %S#X 678 
#s(^	$ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?otCH~v-.oDcN+o %S#X 678o 
#s(^	oj /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?%tCH~v-.%DcN+% %S#X 678% 
#s(^	%T /3;?-tCH~v-.-DcN+- %S#X 678- 
#s(^	-d /3;?tCH~v-.DcN+ %S#X 678 
#s(^	, /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^$ /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	, /3;?7tCH~v-.7DcN+7 %S#X 6787 
#s(^	7x /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?GtCH~v-.GDcN+G %S#X 678G 
#s(^	GX /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?LtCH~v-.LDcN+L %S#X 678L 
#s(^	Ld /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?5tCH~v-.5DcN+5 %S#X 6785 
#s(^	5t /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?tCH~v-.DcN+ %S#X 678 
#s(^	$ /3;?)tCH~v-.)DcN+) %S#X 678) 
#s(^	)^ /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	@ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?FtCH~v-.FDcN+F %S#X 678F 
#s(^	FV /3;?=tCH~v-.=DcN+= %S#X 678= 
#s(^	=D /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^2 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^0 /3;?LtCH~v-.LDcN+L %S#X 678L 
#s(^	Ld /3;?	!!tCH~v-.! DcN+! %S#X 678	!
 
#s(^!L /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	,d[## dN=f+(( fr#   