§
    $Âi°g  ã                   ó  — U d Z ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl	m
Z
mZmZmZmZmZmZ ddlZddlZddlZddlmZ ddlmZ  ej        d¦  «        Zeee
f         Zeed<    G d„ d	e¦  «        Zd
eee
e
f                  dee         de
ddfd„Z ddœd
e
dee         de
de
fd„Z!d
e
deeef         ddfd„Z"d
e
dee         dee         de#de$e         ddfd„Z%dFdede&defd„Z'dGde(de&de
fd „Z)d!e*de&fd"„Z+d#e
d$eee(f         ddfd%„Z, e	j-        d&d'¬(¦  «        Z.dd)d*d+d,dd-œde
d.e#d/e#d0e#d1e#d2e#d3eee#                  defd4„Z/de
d.e#d/e#d0e#d1e#d2e#d3ee#         defd5„Z0 G d6„ d'ej1        ¦  «        Z1 G d7„ d8eej2        ¦  «        Z3defd9„Z4d
eee(f         deee(f         fd:„Z5d;edeed<e
f         ged<e
f         f         fd=„Z6d>edefd?„Z7d@edAedefdB„Z8d@edAeddfdC„Z9de
dDe*ej1                 de&fdE„Z:dS )HzCommon utilities for the SDK.é    N)ÚAnyÚCallableÚ	FrozenSetÚOptionalÚUnionÚget_argsÚ
get_origin)Úalias_generators)Ú	TypeAliaszgoogle_genai._commonÚ
StringDictc                   ó   — e Zd ZdZdS )ÚExperimentalWarningz"Warning for experimental features.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú^/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/google/genai/_common.pyr   r   &   s   € € € € € Ø*Ð*Ð*Ð*r   r   ÚdataÚkeysÚvalueÚreturnc           	      óê  — |€dS t          |dd…         ¦  «        D �]p\  }}|                     d¦  «        rå|dd…         }| �X|| vrTt          |t          ¦  «        r*d„ t	          t          |¦  «        ¦  «        D ¦   «         | |<   nt          d|› d|› �¦  «        ‚t          |t          ¦  «        r@| �>t          | |         ¦  «        D ]'\  }}t          |||dz   d…         ||         ¦  «         Œ(n)| �'| |         D ]}t          |||dz   d…         |¦  «         Œ dS |                     d	¦  «        rC|dd
…         }| �
|| vri g| |<   | �(t          | |         d         ||dz   d…         |¦  «          dS | �|                      |i ¦  «        } �Œr| �ã|  	                    |d         ¦  «        }|�l|sdS ||k    rdS t          |t          ¦  «        r,t          |t          ¦  «        r|                     |¦  «         dS t          d|d         › d|› d|› d�¦  «        ‚|d         dk    rAt          | t          ¦  «        r,t          |t          ¦  «        r|                      |¦  «         dS || |d         <   dS dS )a9  Examples:

  set_value_by_path({}, ['a', 'b'], v)
    -> {'a': {'b': v}}
  set_value_by_path({}, ['a', 'b[]', c], [v1, v2])
    -> {'a': {'b': [{'c': v1}, {'c': v2}]}}
  set_value_by_path({'a': {'b': [{'c': v1}, {'c': v2}]}}, ['a', 'b[]', 'd'], v3)
    -> {'a': {'b': [{'c': v1, 'd': v3}, {'c': v2, 'd': v3}]}}
  Néÿÿÿÿú[]éþÿÿÿc                 ó   — g | ]}i ‘ŒS r   r   )Ú.0Ú_s     r   ú
<listcomp>z%set_value_by_path.<locals>.<listcomp>=   s   € Ð:Ð:Ð: 1˜BÐ:Ð:Ð:r   zvalue z$ must be a list given an array path é   ú[0]éýÿÿÿr   z+Cannot set value for an existing key. Key: z; Existing value: z; New value: ú.Ú_self)Ú	enumerateÚendswithÚ
isinstanceÚlistÚrangeÚlenÚ
ValueErrorÚset_value_by_pathÚ
setdefaultÚgetÚdictÚupdate)	r   r   r   ÚiÚkeyÚkey_nameÚjÚdÚexisting_datas	            r   r.   r.   *   s$  € ð €]Ø
€FÝ˜$˜s ˜sœ)Ñ$Ô$ð &ñ &�f€aˆØ
‡|‚|�DÑÔð Ø�S�b�S”€hØ	Ð	˜h¨dÐ2Ð2Ý�e�TÑ"Ô"ð 	Ø:Ð:­­c°%©j¬jÑ(9Ô(9Ð:Ñ:Ô:ˆ$ˆx‰.ˆ.åØG�uÐGÐGÀ#ÐGÐGñô ð õ 
�E�4Ñ	 Ô	 ð 7 TÐ%5Ý˜d 8œnÑ-Ô-ð 	8ð 	8‰DˆAˆqÝ
˜A˜t A¨¡E G Gœ}¨e°A¬hÑ
7Ô
7Ð
7Ð
7ð	8ð ÐØ˜”>ð 7ð 7ˆaÝ˜a  a¨!¡e g g¤°Ñ6Ô6Ð6Ð6Ø€f€fØ	�Š�eÑ	Ô	ð Ø�S�b�S”€hØ	Ð	˜h¨dÐ2Ð2Ø˜ˆˆX‰Ø	Ð	Ý˜$˜xœ.¨Ô+¨T°!°a±%°'°'¬]¸EÑBÔBÐBØ€f€fØÐØ�_Š_˜S "Ñ%Ô%€dùà	ÐØ—H’H˜T "œXÑ&Ô&€MàÐ ð ð 
Øˆà�MÒ!Ð!Øˆõ �m¥TÑ*Ô*ð 
­z¸%ÅÑ/FÔ/Fð 
à×Ò˜UÑ#Ô#Ð#Ð#Ð#åðE¸$¸r¼(ð Eð EØ -ðEð EØ<AðEð Eð Eñ
ô 
ð 	
ð ˆrŒ(�gÒ
Ð
Ý˜�tÑ$Ô$ð å˜¥Ñ%Ô%ð ð 	�Š�EÑÔÐÐÐàˆˆT�"ŒX‰ˆˆð; Ðr   ©Údefault_valuer:   c                ó  ‡‡‡— ‰dgk    r| S t          ‰¦  «        D ]ê\  Š}| s‰c S |                     d¦  «        r*|dd…         }|| v rˆˆˆfd„| |         D ¦   «         c S ‰c S |                     d¦  «        rE|dd…         }|| v r3| |         r+t          | |         d         ‰‰d	z   d…         ‰¬
¦  «        c S ‰c S || v r	| |         } Œ±t          | t          ¦  «        r!t          | |¦  «        rt          | |¦  «        } Œç‰c S | S )z¤Examples:

  get_value_by_path({'a': {'b': v}}, ['a', 'b'])
    -> v
  get_value_by_path({'a': {'b': [{'c': v1}, {'c': v2}]}}, ['a', 'b[]', 'c'])
    -> [v1, v2]
  r&   r   Nr   c                 óJ   •— g | ]}t          |‰‰d z   d…         ‰¬¦  «        ‘Œ S )r"   Nr9   )Úget_value_by_path)r   r7   r:   r3   r   s     €€€r   r!   z%get_value_by_path.<locals>.<listcomp>†   sD   ø€ ð 
ð 
ð 
àõ ˜a  a¨!¡e g g¤¸mÐLÑLÔLð
ð 
ð 
r   r#   r$   r   r"   r9   )r'   r(   r=   r)   Ú	BaseModelÚhasattrÚgetattr)r   r   r:   r4   r5   r3   s    ``  @r   r=   r=   t   sœ  øøø€ ð 
ˆgˆYÒÐØ€KÝ˜$‘”ð ð �f€aˆØð ØÐÐÐØ
‡|‚|�DÑÔð Ø�S�b�S”€hØ	�TÐ	Ð	ð
ð 
ð 
ð 
ð 
ð 
à˜(”^ð
ñ 
ô 
ð 	
ð 	
ð 	
ð
 ÐÐÐØ	�Š�eÑ	Ô	ð Ø�S�b�S”€hØ	�TÐ	Ð	˜d 8œnÐ	Ý Ø�ŒN˜1Ô˜t A¨¡E G Gœ}¸Mð
ñ 
ô 
ð 	
ð 	
ð 	
ð ÐÐÐà	�ˆˆØ�CŒyˆˆÝ�d�IÑ&Ô&ð ­7°4¸Ñ+=Ô+=ð Ý�t˜SÑ!Ô!ˆˆàÐÐÐØ	€+r   Úpathsc                 ó  — |                      ¦   «         D ]÷\  }}|                     d¦  «        }|                     d¦  «        }t          ¦   «         }d}t          |¦  «        D ]\  }}	|	dk    r|} nŒ|dk    r€t	          |¦  «        |k    rmt          |t	          |¦  «        ¦  «        D ]O}||         }	|	dk    r?|	                     d¦  «        s*|	                     d¦  «        s|                     |	¦  «         ŒPt          | ||d|¦  «         ŒødS )a#  Moves values from source paths to destination paths.

  Examples:
    move_value_by_path(
      {'requests': [{'content': v1}, {'content': v2}]},
      {'requests[].*': 'requests[].request.*'}
    )
      -> {'requests': [{'request': {'content': v1}}, {'request': {'content':
      v2}}]}
  r%   r   Ú*r   r#   r   N)	ÚitemsÚsplitÚsetr'   r,   r+   r(   ÚaddÚ_move_value_recursive)
r   rA   Úsource_pathÚ	dest_pathÚsource_keysÚ	dest_keysÚexclude_keysÚwildcard_idxr3   r4   s
             r   Úmove_value_by_pathrO   ž   s5  € ð !&§¢¡¤ð Ið IÑ€k�9Ø×#Ò# CÑ(Ô(€KØ—’ Ñ$Ô$€Iõ ‘5”5€LØ€LÝ˜KÑ(Ô(ð ð ‰ˆˆ3Ø	�ŠˆØˆØˆð 
ð �rÒÐ�c )™nœn¨|Ò;Ð;õ �\¥3 y¡>¤>Ñ2Ô2ð  ð  ˆ!Ø˜ŒlˆØ�#Š:ˆ:˜cŸlšl¨4Ñ0Ô0ˆ:¸¿ºÀeÑ9LÔ9Lˆ:Ø
×
Ò
˜3Ñ
Ô
Ð
øõ ˜$ ¨Y¸¸<ÑHÔHÐHÐHð-Ið Ir   rK   rL   Úkey_idxrM   c                 óì  ‡ ‡— |t          |¦  «        k    rdS ||         }|                     d¦  «        rP|dd…         }|‰ v r<t          ‰ |         t          ¦  «        r#‰ |         D ]}t	          ||||dz   ‰¦  «         ŒdS dS dS |dk    rÇt          ‰ t
          ¦  «        r®ˆfd„t          ‰                      ¦   «         ¦  «        D ¦   «         }ˆ fd„|D ¦   «         }	|	                     ¦   «         D ]V\  }
}g }||d…         D ]3}|dk    r|                     |
¦  «         Œ|                     |¦  «         Œ4t          ‰ ||¦  «         ŒW|D ]}
‰ |
= ŒdS dS |‰ v rt	          ‰ |         |||dz   ‰¦  «         dS dS )z>Recursively moves values from source path to destination path.Nr   r   r"   rC   c                 óF   •— g | ]}|                      d ¦  «        s|‰v¯|‘ŒS )r    )Ú
startswith)r   ÚkrM   s     €r   r!   z)_move_value_recursive.<locals>.<listcomp>Û   sD   ø€ ð ð ð àØ—’˜cÑ"Ô"ðð ()°Ð'<Ð'<ð à'<Ð'<Ð'<r   c                 ó"   •— i | ]}|‰|         “ŒS r   r   )r   rT   r   s     €r   ú
<dictcomp>z)_move_value_recursive.<locals>.<dictcomp>â   s   ø€ Ð9Ð9Ð9 q˜˜4 œ7Ð9Ð9Ð9r   )
r,   r(   r)   r*   rH   r1   r   rD   Úappendr.   )r   rK   rL   rP   rM   r4   r5   ÚitemÚkeys_to_moveÚvalues_to_moverT   ÚvÚnew_dest_keysÚdks   `   `         r   rH   rH   Â   s!  øø€ ð •�KÑ Ô Ò Ð Ø
€Fà�GÔ€#à‡\‚\�$ÑÔð (à�3�B�3Œx€HØ�4ÐÐ�J t¨H¤~µtÑ<Ô<ÐØ�x”.ð 
ð 
ˆ$ÝØ�+˜y¨'°A©+°|ñ	
ô 	
ð 	
ð 	
ð ÐÐÐð
ð 
ð ˆc‚z€zå�$�ÑÔð ðð ð ð å˜Ÿ	š	™œÑ$Ô$ðñ ô €lð :Ð9Ð9Ð9¨LÐ9Ñ9Ô9€nð !×&Ò&Ñ(Ô(ð 2ð 2‰$ˆ!ˆQàˆØ˜G˜H˜HÔ%ð 	%ð 	%ˆBØ�3ŠYˆYØ× Ò  Ñ#Ô#Ð#Ð#à× Ò  Ñ$Ô$Ð$Ð$Ý˜$ ¨qÑ1Ô1Ð1Ð1ð ð ð ˆ!Ø�ˆGˆGð1ð ð.ð ð ˆd€{€{ÝØ
ˆsŒ)�[ )¨W°q©[¸,ñô ð ð ð ð €{r   TÚ	snake_strÚconvertc                 ó8   — |s| S t          j        dd„ | ¦  «        S )z>Converts a snake_case string to CamelCase, if convert is True.z_([a-zA-Z])c                 óP   — |                       d¦  «                             ¦   «         S )Nr"   )ÚgroupÚupper)Úmatchs    r   ú<lambda>z&maybe_snake_to_camel.<locals>.<lambda>þ   s   € ¨e¯kªk¸!©n¬n×.BÒ.BÑ.DÔ.D€ r   )ÚreÚsub)r^   r_   s     r   Úmaybe_snake_to_camelrh   ú   s(   € à	ð ØÐÝ	Œ�Ð DÐ DÀiÑ	PÔ	PÐPr   FÚobjÚconvert_keysc                 ó4  ‡— t          | t          j        ¦  «        r$t          |                      d¬¦  «        ‰¦  «        S t          | t
          ¦  «        r ˆfd„|                      ¦   «         D ¦   «         S t          | t          ¦  «        rˆfd„| D ¦   «         S | S )a±  Recursively converts a given object to a dictionary.

  If the object is a Pydantic model, it uses the model's `model_dump()` method.

  Args:
    obj: The object to convert.
    convert_keys: Whether to convert the keys from snake case to camel case.

  Returns:
    A dictionary representation of the object, a list of objects if a list is
    passed, or the object itself if it is not a dictionary, list, or Pydantic
    model.
  T)Úexclude_nonec                 óR   •— i | ]#\  }}t          |‰¦  «        t          |¦  «        “Œ$S r   )rh   Úconvert_to_dict)r   r4   r   rj   s      €r   rV   z#convert_to_dict.<locals>.<dictcomp>  sA   ø€ ð ð ð áˆC�õ 	˜S ,Ñ/Ô/µÀÑ1GÔ1Gðð ð r   c                 ó0   •— g | ]}t          |‰¦  «        ‘ŒS r   )rn   )r   rX   rj   s     €r   r!   z#convert_to_dict.<locals>.<listcomp>  s#   ø€ Ð@Ð@Ð@°D�O˜D ,Ñ/Ô/Ð@Ð@Ð@r   )r)   Úpydanticr>   rn   Ú
model_dumpr1   rD   r*   )ri   rj   s    `r   rn   rn     s°   ø€ õ �•XÔ'Ñ(Ô(ð 
Ý˜3Ÿ>š>°t˜>Ñ<Ô<¸lÑKÔKÐKÝ�#•tÑÔð ðð ð ð àŸ)š)™+œ+ðñ ô ð õ �#•tÑÔð Ø@Ð@Ð@Ð@¸CÐ@Ñ@Ô@Ð@à€Jr   Ú
annotationc                 óJ  — t          | ¦  «        }t          | ¦  «        }|t          urdS |rt          |¦  «        dk    rdS |d         }t          |¦  «        }t          |¦  «        }|t          urdS |rt          |¦  «        dk    rdS |\  }}|t
          u o|t          j        u S )z™Checks if the given annotation is list[dict[str, typing.Any]]

  or typing.List[typing.Dict[str, typing.Any]].

  This maps to Struct type in the API.
  Fr"   r   é   )r	   r   r*   r,   r1   ÚstrÚtypingr   )rr   Úouter_originÚ
outer_argsÚinner_annotationÚinner_originÚ
inner_argsÚkey_typeÚ
value_types           r   Ú_is_struct_typer~     sÀ   € õ ˜JÑ'Ô'€,Ý˜
Ñ#Ô#€*à�ÐÐØˆ5à	ð •s˜:‘”¨!Ò+Ð+Øˆ5à ”]ÐåÐ,Ñ-Ô-€,ÝÐ(Ñ)Ô)€*à�ÐÐØˆ5à	ð •s˜:‘”¨!Ò+Ð+àˆ5ð $Ñ€(ˆJØ	•SˆÐ	5˜Z­6¬:Ð5Ð5r   ÚmodelÚresponsec                 óô  — t          |                     ¦   «         ¦  «        }|D �]R\  }}d„ | j                             ¦   «         D ¦   «         }|| j        vr||vr|                     |¦  «         ŒL|                     ||¦  «        }| j        |         j        }t          j        |¦  «        t          u rt          j	        |¦  «        d         }t          |t          ¦  «        r,t          j        |¦  «        t          urt          ||¦  «         Œêt          |t           ¦  «        rSt          |¦  «        r�Œ|D ]?}t          |t          ¦  «        r(t          t          j	        |¦  «        d         |¦  «         Œ@�ŒTdS )zfRemoves extra fields from the response that are not in the model.

  Mutates the response in place.
  c                 ó$   — i | ]\  }}|j         |“ŒS r   )Úalias)r   r4   Ú
field_infos      r   rV   z(_remove_extra_fields.<locals>.<dictcomp>H  s.   € ð ð ð Ù"1 # zˆ
Ô˜#ðð ð r   r   N)r*   rD   Úmodel_fieldsÚpopr0   rr   rv   r	   r   r   r)   r1   Ú_remove_extra_fieldsr~   )r   r€   Ú
key_valuesr4   r   Ú	alias_maprr   rX   s           r   r‡   r‡   =  s�  € õ �H—N’NÑ$Ô$Ñ%Ô%€*àð Eñ E�j€cˆ5ðð Ø5:Ô5G×5MÒ5MÑ5OÔ5Oðñ ô €Ið �%Ô$Ð$Ð$¨°IÐ)=Ð)=Ø‡l‚l�3ÑÔÐØà
�-Š-˜˜SÑ
!Ô
!€CàÔ# CÔ(Ô3€Jõ Ô˜Ñ$Ô$­Ð-Ð-Ý”? :Ñ.Ô.¨qÔ1€jõ �%�ÑÔð 	E¥6Ô#4°ZÑ#@Ô#@ÍÐ#LÐ#LÝ˜: uÑ-Ô-Ð-Ð-Ý	�E�4Ñ	 Ô	 ð EÝ	˜Ñ	$Ô	$ð Ùàð Eð Eˆ$å�d�DÑ!Ô!ð 	EÝ
�vœ¨zÑ:Ô:¸1Ô=¸tÑ
DÔ
DÐ
Døùð=Eð Er   ÚTr>   )Úboundrt   éd   é   é   ©Úindent_levelÚindent_deltaÚmax_lenÚ	max_itemsÚdepthÚvisitedr�   r‘   r’   r“   r”   r•   c          
      óZ  — |€t          ¦   «         }t          | ¦  «        }||v rdS |dk     rdS t          t          |¦  «        |gz   ¦  «        }d|z  }d||z   z  }	t          | t          j        ¦  «        rÜ| j        j        }
g }t          t          | ¦  «        j
        ¦  «        }|D ]�}t          | ¦  «        j
        |         }|j        sŒ$	 t          | |¦  «        }n# t          $ r Y ŒBw xY w|€ŒIt          |||z   ||||dz
  |¬¦  «        }|                     |	› |› d|› �¦  «         Œ‚|s|
› d	�S |
› d
�d                     |¦  «        z   d|› d�z   S t          | t"          ¦  «        r/d| v r|                      dd¦  «        }d|› d�S t          | ¦  «        S t          | t&          ¦  «        rGt)          | ¦  «        |k    r%t          | d|dz
  …         ¦  «        dd…         › d�S t          | ¦  «        S t          | t*          j        j        ¦  «        �r<| sdS |dk    r/t)          | ¦  «        › dt)          | ¦  «        dk    rdnd› �}d|› d�S t)          | ¦  «        |k    rdt)          | ¦  «        › d�S g }	 t          |                      ¦   «         t"          ¬¦  «        }n1# t2          $ r$ t          |                      ¦   «         ¦  «        }Y nw xY w|D ]^}| |         }t          |||z   ||||dz
  |¬¦  «        }t          |||z   ||||dz
  |¬¦  «        }|                     |	› |› d|› �¦  «         Œ_dd                     |¦  «        z   d|› d�z   S t          | t          t4          t6          f¦  «        rt9          | ||||||¬¦  «        S t          | ¦  «        }|                     dd|	› �¦  «        S )z-Returns a representation of the given object.Nz<... Circular reference ...>r   z<... Max depth ...>ú r"   r�   ú=z()z(
ú,
ú
ú)z"""z\"\"\"é   r   z...'z{}ú itemÚsÚ z{<... z at Max depth ...>}z
<dict len=ú>)r4   z: z{
Ú})Ú	frozensetÚidr*   r)   rp   r>   Ú	__class__r   ÚsortedÚtyper…   Úreprr@   ÚAttributeErrorÚ_pretty_reprrW   Újoinru   ÚreplaceÚbytesr,   ÚcollectionsÚabcÚMappingr   Ú	TypeErrorÚtuplerF   Ú_format_collection)ri   r�   r‘   r’   r“   r”   r•   Úobj_idÚindentÚnext_indent_strÚcls_namerD   ÚfieldsÚ
field_namer„   r   Ú
value_reprÚescapedÚitem_count_strÚsorted_keysrT   r[   Úk_reprÚv_reprÚraw_reprs                            r   r©   r©   i  sŒ  € ð €_Ý‰kŒk€Gåˆc‰7Œ7€&ØˆwÐÐØ)Ð)à
ˆQ‚Y€YØ Ð å•d˜7‘m”m v hÑ.Ñ/Ô/€'à�Ñ€&Ø˜<¨,Ñ6Ñ7€/å�•XÔ'Ñ(Ô(ð a:ØŒ}Ô%€HØ€Eå•D˜‘I”IÔ*Ñ+Ô+€Fàð Bð Bˆ
Ý˜‘9”9Ô)¨*Ô5€jØŒ_ð ØðÝ˜˜ZÑ(Ô(ˆˆøÝð ð ð Øˆðøøøð 
ˆØåØ
Ø# lÑ2Ø#ØØØ˜‘	Øðñ ô €jð ‡l‚l�oÐ@ zÐ@Ð@°JÐ@Ð@ÑAÔAÐAÐAàð Øˆ_ˆ_ˆ_ÐØÐÐÐ˜eŸjšj¨Ñ/Ô/Ñ/°.°v°.°.°.Ñ@Ð@Ý�#•sÑÔð @:Øˆs€{€{Ø—’˜E ;Ñ/Ô/€gà�7ÐÐÐÐÝ�‰9Œ9ÐÝ�#•uÑÔð ::Ý
ˆ3�x„x�'ÒÐÝ�S˜˜' !™)˜”_Ñ%Ô% c r cÔ*Ð0Ð0Ð0Ð0Ý�‰9Œ9ÐÝ�#•{”Ô.Ñ/Ô/ñ 6:Øð ØˆTð �‚z€zÝ˜c™(œ(ÐGÐGµ°C±´¸A²°¨¨À2ÐGÐG€nØ;�~Ð;Ð;Ð;Ð;å
ˆ3�x„x�)ÒÐØ%�#˜c™(œ(Ð%Ð%Ð%Ð%à€Eð%Ý˜3Ÿ8š8™:œ:­3Ð/Ñ/Ô/€k€køÝð %ð %ð %Ý˜Ÿš™œÑ$Ô$€k€k€kð%øøøð ð ;ð ;ˆØ
ˆaŒ&€aÝØ
Ø# lÑ2Ø#ØØØ˜‘	Øðñ ô €fõ Ø
Ø# lÑ2Ø#ØØØ˜‘	Øðñ ô €fð ‡l‚l�oÐ9 vÐ9Ð9°Ð9Ð9Ñ:Ô:Ð:Ð:Ø�U—Z’Z Ñ&Ô&Ñ&¨¨f¨¨¨Ñ8Ð8Ý�#��e¥SÐ)Ñ*Ô*ð :ÝØØ!Ø!ØØØØðñ ô ð õ �C‰yŒy€Hà×Ò˜DÐ"8 Ð"8Ð"8Ñ9Ô9Ð9s$   ÃCÃ
C)Ã(C)É3(J Ê+K
Ë	K
c                ó’  — t          | t          ¦  «        rd}| }nrt          | t          ¦  «        rd}t          | ¦  «        }nKt          | t          ¦  «        rt          | ¦  «        }| rd}n"d}nt	          dt          | ¦  «        › �¦  «        ‚|s|d         |d         z   S |dk    r>t          |¦  «        › dd	t          |¦  «        dk    z  › �}	|d         › d
|	› d|d         › �S d|z  }
d||z   z  }g }t          t          |¦  «        |¦  «        }t          |¦  «        D ]<}||         }| 	                    |t          |||z   ||||dz
  |¬¦  «        z   ¦  «         Œ=t          |¦  «        |k    r+| 	                    |› d
t          |¦  «        |z
  › d�¦  «         |d         › d�d                     |¦  «        z   d|
› |d         › �z   S )z(Formats a collection (list, tuple, set).)ú[ú])ú(r›   )Ú{r¡   )zset(r›   zUnsupported collection type: r   r"   r�   rž   z<... z at Max depth ...>r—   r�   z more items ...>rš   r™   )r)   r*   r±   rF   r-   r¦   r,   Úminr+   rW   r©   rª   )ri   r�   r‘   r’   r“   r”   r•   ÚbracketsÚinternal_objr»   r´   rµ   ÚelementsÚnum_to_showr3   Úelems                   r   r²   r²   ç  sA  € õ �•TÑÔð BØ€HØ€L€LÝ�#•uÑÔð 
BØ€HÝ˜‘9”9€L€LÝ�#•sÑÔð BÝ˜‘9”9€LØ
ð Ø€h€hà€h€hå
Ð@µT¸#±Y´YÐ@Ð@Ñ
AÔ
AÐAà	ð %Ø�AŒ;˜ !œÑ$Ð$ð ˆa‚Z€ZÝ˜LÑ)Ô)ÐLÐL°µS¸Ñ5FÔ5FÈÒ5IÑ0JÐLÐL€NØ�qŒkÐOÐO ÐOÐOÀ(È1Ä+ÐOÐOÐOà�Ñ€&Ø˜<¨,Ñ6Ñ7€/Ø€(Ý•C˜Ñ%Ô% yÑ1Ô1€+å�ÑÔð ð €aØ˜Œ?€DØ‡O‚OØÝ
ØØ%¨Ñ4Ø%ØØØ˜!‘)Øð
ñ 
ô 
ñ		
ñô ð ð õ 	ˆÑÔ˜Ò"Ð"Ø‡O‚OØÐPÐP¥ \Ñ!2Ô!2°YÑ!>ÐPÐPÐPñô ð ð �QŒKÐ	Ð	Ð	˜eŸjšj¨Ñ2Ô2Ñ	2Ð5P¸6Ð5PÀ8ÈAÄ;Ð5PÐ5PÑ	PÐPr   c                   ó4  ‡ — e Zd Z ej        ej        dddddddej        f¬¦	  «	        Z	 ej
        d¬¦  «        eded	efd
„¦   «         ¦   «         Zd	efˆ fd„Zedej        e         deeef         deeef         d	efd„¦   «         Zd	eeef         fd„Zˆ xZS )r>   Tr   ÚforbidÚbase64)	Úalias_generatorÚpopulate_by_nameÚfrom_attributesÚprotected_namespacesÚextraÚarbitrary_types_allowedÚser_json_bytesÚval_json_bytesÚignored_typesÚbefore)Úmoder   r   c                 ó
  — t          |t          t          j        f¦  «        s|S | j                             ¦   «         D �]D\  }}t          |t          ¦  «        r|                     |¦  «        }nt          ||d¦  «        }|€ŒE|j        }t          |¦  «        }|t          u r6t          |¦  «        }d„ |D ¦   «         }t          |¦  «        dk    r|d         }t          |t          ¦  «        r•t          |¦  «        €†t          |t          j        ¦  «        rlt          |t          j        ¦  «        rRt          ||¦  «        sBt                               d| j        › d|› d|j        › dt          |¦  «        j        › �¦  «         �ŒF|S )	zFCheck for type mismatches and warn before Pydantic processes the data.Nc                 ó4   — g | ]}|t          d ¦  «        u¯|‘ŒS ©N)r¦   )r   Úargs     r   r!   z:BaseModel._check_field_type_mismatches.<locals>.<listcomp>J  s(   € ÐGÐGÐG #°½DÀ¹J¼JÐ1FÐ1F˜#Ð1FÐ1FÐ1Fr   r"   r   zType mismatch in r%   z: expected z, got )r)   r1   rp   r>   r…   rD   r0   r@   rr   r	   r   r   r,   r¦   Ú
issubclassÚloggerÚwarningr   )	Úclsr   r¸   r„   r   Úexpected_typeÚoriginÚargsÚnon_none_typess	            r   Ú_check_field_type_mismatchesz&BaseModel._check_field_type_mismatches4  s«  € õ
 �d�T¥8Ô#5Ð6Ñ7Ô7ð Ø€kà"%Ô"2×"8Ò"8Ñ":Ô":ð 
ñ 
Ñˆ
�JÝ	�D�$Ñ	Ô	ð 0Ø—’˜Ñ$Ô$ˆˆå˜˜j¨$Ñ/Ô/ˆà	ˆØà Ô+€mÝ˜-Ñ(Ô(€fà	•5ˆˆÝ˜Ñ&Ô&ˆØGÐG¨ÐGÑGÔGˆÝˆ~ÑÔ !Ò#Ð#Ø(¨Ô+ˆ-å
�]¥DÑ
)Ô
)ð 
Ý
�]Ñ
#Ô
#Ð
+Ý
�]¥HÔ$6Ñ
7Ô
7ð ,å
�U�HÔ.Ñ
/Ô
/ð ,õ ˜ Ñ.Ô.ð ,õ 	�ŠðM ¤ð Mð M¨zð Mð MØ%Ô.ðMð MÝ6:¸5±k´kÔ6JðMð Mñ	
ô 	
ð 	
ùð
 €Kr   c                 ó„   •— 	 t          | ¦  «        S # t          $ r# t          ¦   «                              ¦   «         cY S w xY wrÛ   )r©   Ú	ExceptionÚsuperÚ__repr__)Úselfr¤   s    €r   ré   zBaseModel.__repr__Z  sM   ø€ ð Ý˜$ÑÔÐøÝð  ð  ð  Ý‰WŒW×ÒÑÔÐÐÐð øøøs   ƒ ’*?¾?rà   r€   Úkwargsc                óÞ   — |d uo@d|v o<|d         d uo2t          |d         t          ¦  «        od|d         v o|d         d         }|st          | |¦  «         |                      |¦  «        }|S )NÚconfigÚinclude_all_fields)r)   r1   r‡   Úmodel_validate)rà   r€   rë   Úshould_skip_removing_fieldsÚvalidated_responses        r   Ú_from_responsezBaseModel._from_response`  s¦   € ð 	�dÐð 	3Ø˜Ðð	3à�8Ô DÐ(ð	3õ �v˜hÔ'­Ñ.Ô.ð	3ð ! F¨8Ô$4Ð4ð		3ð
 �8ÔÐ1Ô2ð  ð 'ð *Ý˜3 Ñ)Ô)Ð)Ø×+Ò+¨HÑ5Ô5ÐØÐr   c                 ó0   — |                       dd¬¦  «        S )NTÚjson)rl   rØ   )rq   )rê   s    r   Úto_json_dictzBaseModel.to_json_dict|  s   € Ø�?Š?¨°6ˆ?Ñ:Ô:Ð:r   )r   r   r   rp   Ú
ConfigDictr
   Úto_camelrv   ÚTypeVarÚmodel_configÚmodel_validatorÚclassmethodr   rå   ru   ré   ÚTyperŠ   r1   Úobjectrò   rõ   Ú__classcell__©r¤   s   @r   r>   r>   %  sL  ø€ € € € € à$�Ô$Ø&Ô/ØØØØà"ØØØ”^Ð%ðñ ô €,ð €8Ô Ð*Ñ*Ô*Øð"¨cð "°cð "ð "ð "ñ „;ñ +Ô*ð"ðH ˜ð  ð  ð  ð  ð  ð  ð ðØŒ;�qŒ>ðð �S˜&�[Ô!ðð �3˜�;Ôð	ð
 	ðð ð ñ „;ðð6;˜D  f Ô-ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;r   c                   ó<   ‡ — e Zd ZdZededefˆ fd„¦   «         Zˆ xZS )ÚCaseInSensitiveEnumzCase insensitive enum.r   r   c                 ó„  •— 	 | |                      ¦   «                  S # t          $ r˜ 	 | |                     ¦   «                  cY S # t          $ rm t          j        |› d| j        › �¦  «         	 t          ¦   «                              | |¦  «        }t          |¦  «        |_	        ||_
        |cY cY S #  Y Y Y d S xY ww xY ww xY w)Nz is not a valid )rc   ÚKeyErrorÚlowerÚwarningsÚwarnr   rè   Ú__new__ru   Ú_name_Ú_value_)rà   r   Úunknown_enum_valr¤   s      €r   Ú	_missing_zCaseInSensitiveEnum._missing_ƒ  sì   ø€ ðØ�—’‘”ÔÐøÝð ð ð ðØ�5—;’;‘=”=Ô!Ð!Ð!Ð!øÝð 
ð 
ð 
ÝŒ˜Ð>Ð>°´Ð>Ð>Ñ?Ô?Ð?ð	õ #™WœWŸ_š_¨S°%Ñ8Ô8Ð
Ý$'¨¡J¤JÐ
Ô
!Ø%*Ð
Ô
"Ø!Ð
!Ð
!Ð
!Ð
!Ð
!øð	Ø����øøøð
øøøðøøøsJ   ƒ �
B?¨AÁB?Á(B;Á->B0Â+B;Â,B?Â0B7Â2B;Â3B?Â7B;Â;B?)r   r   r   r   rû   r   r  rþ   rÿ   s   @r   r  r  €  s[   ø€ € € € € ØÐàð˜Cð  Cð ð ð ð ð ñ „;ðð ð ð ð r   r  c                  ó²   — t           j                              ¦   «                              d¦  «        } t          j        ¦   «         j        dd…         }| › d|› �S )z]Composes a timestamped unique name.

  Returns:
      A string representing a unique name.
  z%Y%m%d%H%M%Sr   r�   r    )ÚdatetimeÚnowÚstrftimeÚuuidÚuuid4Úhex)Ú	timestampÚ	unique_ids     r   Útimestamped_unique_namer  —  sQ   € õ Ô×#Ò#Ñ%Ô%×.Ò.¨~Ñ>Ô>€)ÝŒj‰lŒlÔ˜q ˜sÔ#€)ØÐ	#Ð	#˜	Ð	#Ð	#Ð#r   c                 óž  — i }t          | t          ¦  «        s| S |                      ¦   «         D �]\  }}t          |t          ¦  «        r+t	          j        |¦  «                             d¦  «        ||<   ŒFt          |t          j        ¦  «        r|                     ¦   «         ||<   Œxt          |t          ¦  «        rt          |¦  «        ||<   Œ t          |t          ¦  «        rct          d„ |D ¦   «         ¦  «        rd„ |D ¦   «         ||<   t          d„ |D ¦   «         ¦  «        rd„ |D ¦   «         ||<   �Œd„ |D ¦   «         ||<   �Œ|||<   �Œ|S )a°  Converts unserializable types in dict to json.dumps() compatible types.

  This function is called in models.py after calling convert_to_dict(). The
  convert_to_dict() can convert pydantic object to dict. However, the input to
  convert_to_dict() is dict mixed of pydantic object and nested dict(the output
  of converters). So they may be bytes in the dict and they are out of
  `ser_json_bytes` control in model_dump(mode='json') called in
  `convert_to_dict`, as well as datetime deserialization in Pydantic json mode.

  Returns:
    A dictionary with json.dumps() incompatible type (e.g. bytes datetime)
    to compatible type (e.g. base64 encoded string, isoformat date string).
  Úasciic              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S rÛ   )r)   r¬   ©r   r[   s     r   ú	<genexpr>z.encode_unserializable_types.<locals>.<genexpr>»  s,   è è € Ð1Ð1 a�Z˜�5Ñ!Ô!Ð1Ð1Ð1Ð1Ð1Ð1r   c                 ó\   — g | ])}t          j        |¦  «                             d ¦  «        ‘Œ*S )r  )rÍ   Úurlsafe_b64encodeÚdecoder  s     r   r!   z/encode_unserializable_types.<locals>.<listcomp>¼  s>   € ð 
ð 
ð 
Ø<=�FÔ$ QÑ'Ô'×.Ò.¨wÑ7Ô7ð
ð 
ð 
r   c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S rÛ   )r)   r  r  s     r   r  z.encode_unserializable_types.<locals>.<genexpr>¿  s/   è è € Ð=Ð=°!�Z˜�8Ô,Ñ-Ô-Ð=Ð=Ð=Ð=Ð=Ð=r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )Ú	isoformatr  s     r   r!   z/encode_unserializable_types.<locals>.<listcomp>À  s    € Ð<Ð<Ð<°˜qŸ{š{™}œ}Ð<Ð<Ð<r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )Úencode_unserializable_typesr  s     r   r!   z/encode_unserializable_types.<locals>.<listcomp>Â  s!   € ÐMÐMÐMÀ!Õ:¸1Ñ=Ô=ÐMÐMÐMr   )r)   r1   rD   r¬   rÍ   r  r  r  r   r"  r*   Úall)r   Úprocessed_datar4   r   s       r   r"  r"  ¢  s…  € ð ')€.Ý	�D�$Ñ	Ô	ð Ø€KØ—J’J‘L”Lð "ñ "�j€cˆ5Ý�%�ÑÔð "Ý"Ô4°UÑ;Ô;×BÒBÀ7ÑKÔK€n�SÑÐÝ	�E�8Ô,Ñ	-Ô	-ð "Ø!ŸOšOÑ-Ô-€n�SÑÐÝ	�E�4Ñ	 Ô	 ð "Ý7¸Ñ>Ô>€n�SÑÐÝ	�E�4Ñ	 Ô	 ð 
"Ý	Ð1Ð1¨5Ð1Ñ1Ô1Ñ	1Ô	1ð 
ð
ð 
ØAFð
ñ 
ô 
ˆ�sÑõ 
Ð=Ð=°uÐ=Ñ=Ô=Ñ	=Ô	=ð NØ<Ð<°eÐ<Ñ<Ô<ˆ�sÑÑàMÐMÀuÐMÑMÔMˆ�sÑÑà!€n�SÑÑØ	Ðr   Úmessage.c                 ód   ‡ — dt           dt          f         dt           dt          f         fˆ fd„}|S )z&Experimental warning, only warns once.Úfunc.r   c                 ó~   •‡ ‡— dŠt          j        ‰ ¦  «        dt          dt          dt          fˆ ˆˆfd„¦   «         }|S )NFrã   rë   r   c                  óT   •— ‰sdŠt          j        ‰t          d¬¦  «          ‰| i |¤ŽS )NTrt   )r%  ÚcategoryÚ
stacklevel)r  r  r   )rã   rë   r'  r%  Úwarning_dones     €€€r   Úwrapperz8experimental_warning.<locals>.decorator.<locals>.wrapperÐ  sK   ø€ ð ð 
ØˆÝŒØÝ(Øð	
ñ 	
ô 	
ð 	
ð
 ˆT�4Ð"˜6Ð"Ð"Ð"r   )Ú	functoolsÚwrapsr   )r'  r-  r,  r%  s   ` @€r   Ú	decoratorz'experimental_warning.<locals>.decoratorÍ  sc   øøø€ Ø€Lå„_�TÑÔð	#•sð 	#¥cð 	#­cð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ñ Ôð	#ð €Nr   )r   r   )r%  r0  s   ` r   Úexperimental_warningr1  È  sI   ø€ ð
•h˜s¥C˜xÔ(ð ­X°c½3°hÔ-?ð ð ð ð ð ð ð" 
Ðr   Úkey_strc                 óR   — |                       dd¦  «                             ¦   «         S )z?Normalizes a key for case-insensitive and snake/camel matching.r    rŸ   )r«   r  )r2  s    r   Ú_normalize_key_for_matchingr4  á  s"   € à	�Š˜˜bÑ	!Ô	!×	'Ò	'Ñ	)Ô	)Ð)r   Útarget_dictÚupdate_dictc                 óô  — i }d„ |                       ¦   «         D ¦   «         }|                     ¦   «         D ]Â\  }}t          |¦  «        }||v r	||         }n|}t          |t          ¦  «        rBt          |                      |¦  «        t          ¦  «        rt          | |         |¦  «        ||<   Œzt          |t          ¦  «        r.t          |                      |¦  «        t          ¦  «        r|||<   Œ½|||<   ŒÃ|S )a  Aligns the keys of update_dict to the case of target_dict keys.

  Args:
      target_dict: The dictionary with the target key casing.
      update_dict: The dictionary whose keys need to be aligned.

  Returns:
      A new dictionary with keys aligned to target_dict's key casing.
  c                 ó.   — i | ]}t          |¦  «        |“ŒS r   )r4  )r   r4   s     r   rV   z"align_key_case.<locals>.<dictcomp>ó  s0   € ð ð ð Ø03Õ! #Ñ&Ô&¨ðð ð r   )r   rD   r4  r)   r1   r0   Úalign_key_caser*   )r5  r6  Úaligned_update_dictÚtarget_keys_mapr4   r   Únormalized_update_keyÚaligned_keys           r   r9  r9  æ  s2  € ð %'Ððð Ø7B×7GÒ7GÑ7IÔ7Iðñ ô €/ð  ×%Ò%Ñ'Ô'ð /ð /�j€cˆ5Ý7¸Ñ<Ô<Ðà Ð/Ð/Ø#Ð$9Ô:€k€kà€kå�%�ÑÔð /¥:Ø�Š˜Ñ$Ô$¥dñ$ô $ð /õ *8Ø
�kÔ
" Eñ*ô *Ð˜+Ñ&Ð&õ 
�E�4Ñ	 Ô	 ð /¥ZØ�Š˜Ñ$Ô$¥dñ&ô &ð /ð */Ð˜+Ñ&Ð&à).Ð˜+Ñ&Ð&Ø	Ðr   c                 óÜ  — t          | |¦  «        }|                     ¦   «         D ]Æ\  }}|| v rGt          | |         t          ¦  «        r,t          |t          ¦  «        rt	          | |         |¦  «         ŒP|| v rmt          | |         t          |¦  «        ¦  «        sJt                               d|› dt          | |         ¦  «        › dt          |¦  «        › d�¦  «         || |<   ŒÁ|| |<   ŒÇdS )a�  Recursively updates a target dictionary with values from an update dictionary.

  We don't enforce the updated dict values to have the same type with the
  target_dict values except log warnings.
  Users providing the update_dict should be responsible for constructing correct
  data.

  Args:
      target_dict (dict): The dictionary to be updated.
      update_dict (dict): The dictionary containing updates.
  zType mismatch for key 'z'. Existing type: z, new type: z. Overwriting.N)r9  rD   r)   r1   Úrecursive_dict_updater¦   rÞ   rß   )r5  r6  r:  r4   r   s        r   r?  r?    s-  € õ$ ' {°KÑ@Ô@ÐØ'×-Ò-Ñ/Ô/ð ð �j€cˆ5àˆ{ÐÐÝ�{ 3Ô'­Ñ.Ô.ð 	å�u�dÑ#Ô#ð 	õ ˜K¨Ô,¨eÑ4Ô4Ð4Ð4Ø	�Ð	Ð	¥J¨{¸3Ô/?ÅÀeÁÄÑ$MÔ$MÐ	Ý‡n‚nðN Cð Nð NÝ�;˜sÔ#Ñ$Ô$ðNð NÝ26°u±+´+ðNð Nð Nñô ð ð €k�#ÑÐà€k�#ÑÐðð r   rà   c                 ód  ‡ ‡— t          ‰ t          ¦  «        st          |d¦  «        sdS t          ˆ fd„|j        D ¦   «         ¦  «        }|sdt          ‰ t
          j        ¦  «        rJ	  |¦   «         Št          ˆfd„t          ‰ ¦  «        j        D ¦   «         ¦  «        }n# t          $ r Y dS w xY w|S )a¹  Checks if an object has all of the fields of a Pydantic model.

  This is a duck-typing alternative to `isinstance` to solve dual-import
  problems. It returns False for dictionaries, which should be handled by
  `isinstance(obj, dict)`.

  Args:
    obj: The object to check.
    cls: The Pydantic model class to duck-type against.

  Returns:
    True if the object has all the fields defined in the Pydantic model, False
    otherwise.
  r…   Fc              3   ó8   •K  — | ]}t          ‰|¦  «        V — Œd S rÛ   ©r?   )r   Úfieldri   s     €r   r  z"is_duck_type_of.<locals>.<genexpr>F  s-   øè è € ÐFÐF¨E•G˜C Ñ'Ô'ÐFÐFÐFÐFÐFÐFr   c              3   ó8   •K  — | ]}t          ‰|¦  «        V — Œd S rÛ   rB  )r   ÚfÚobj_privates     €r   r  z"is_duck_type_of.<locals>.<genexpr>L  s-   øè è € ÐPÐP°A� ¨QÑ/Ô/ÐPÐPÐPÐPÐPÐPr   )	r)   r1   r?   r#  r…   rp   r>   r¦   r-   )ri   rà   Úall_matchedrF  s   `  @r   Úis_duck_type_ofrH  3  sÖ   øø€ õ �•TÑÔð ¥'¨#¨~Ñ">Ô">ð Øˆ5õ ÐFÐFÐFÐF°SÔ5EÐFÑFÔFÑFÔF€+Ø	ð � C­Ô);Ñ<Ô<ð ðØ�C‘E”E€kÝÐPÐPÐPÐP½¸c¹¼Ô9OÐPÑPÔPÑPÔP€k€køÝð ð ð ØˆUˆUðøøøà	Ðs   Á'7B Â
B-Â,B-)T)F);r   rÍ   Úcollections.abcr­   r  Úenumr.  Úloggingrf   rv   r   r   r   r   r   r   r	   r  r  rp   r
   Útyping_extensionsr   Ú	getLoggerrÞ   r1   ru   r   Ú__annotations__ÚWarningr   r*   r.   r=   rO   ÚintrF   rH   Úboolrh   rý   rn   r¦   r~   r‡   rø   rŠ   r©   r²   r>   ÚEnumr  r  r"  r1  r4  r9  r?  rH  r   r   r   ú<module>rS     sâ  ðð  $Ð #Ð #à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ €€€Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à	ˆÔ	Ð1Ñ	2Ô	2€à˜S #˜Xœ€
ˆIÐ &Ð &Ñ &ð+ð +ð +ð +ð +˜'ñ +ô +ð +ðGØ
�4˜˜S˜”>Ô
"ðGØ*.¨s¬)ðGØ<?ðGà	ðGð Gð Gð GðV 9=ð'ð 'ð 'Ø
ð'Ø˜#”Yð'Ø25ð'àð'ð 'ð 'ð 'ðT!I˜Sð !I¨¨c°3¨h¬ð !I¸Dð !Ið !Ið !Ið !IðH5Ø
ð5à�c”ð5ð �CŒyð5ð ð	5ð
 �c”(ð5ð 
ð5ð 5ð 5ð 5ðpQð Q Cð Q°$ð QÀ#ð Qð Qð Qð Qðð ˜ð ¨tð Àð ð ð ð ð66 ð 6¨ð 6ð 6ð 6ð 6ðB&E ð &E¨t°C¸°KÔ/@ð &EÀTð &Eð &Eð &Eð &EðR €F„N�3˜kÐ*Ñ*Ô*€ð ØØØØØ(,ð{:ð {:ð {:Ø	ð{:ð ð{:ð ð	{:ð
 ð{:ð ð{:ð ð{:ð �i ”nÔ%ð{:ð 	ð{:ð {:ð {:ð {:ð|;QØ	ð;Qð ð;Qð ð	;Qð
 ð;Qð ð;Qð ð;Qð �sŒ^ð;Qð 	ð;Qð ;Qð ;Qð ;Qð|X;ð X;ð X;ð X;ð X;�Ô"ñ X;ô X;ð X;ðvð ð ð ð ˜#˜tœyñ ô ð ð.$ ð $ð $ð $ð $ð# d¨3°¨;Ô&7ð #¸DÀÀfÀÔ<Mð #ð #ð #ð #ðLØðàˆx˜˜S˜Ô!Ð" H¨S°#¨XÔ$6Ð6Ô7ðð ð ð ð2*¨ð *°ð *ð *ð *ð *ð
&Øð&Ø*4ð&àð&ð &ð &ð &ðR!Øð!Ø*4ð!à	ð!ð !ð !ð !ðH˜ð  4¨Ô(:Ô#;ð Àð ð ð ð ð ð r   