§
    ÕóÉj�ð  ã                  ób  — d Z ddlmZ ddlZddlZddl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 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% ddl$m&Z& d d!lm'Z' d d"lm(Z( er<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m0Z0 dd*lm1Z1 dd+l!m2Z2 dd,l!m3Z3  e(j4        d-d.¦  «        Z5d|d3„Z6ed0e7eee7d4f                  ee7         f         Z8ed5e7e7ee7         f         Z9ed2e7d4ee7         f         Z:ee8         Z; G d6„ d7e¦  «        Z<d}dB„Z=dC„ Z>e	 	 	 	 d~ddO„¦   «         Z?ed€dP„¦   «         Z?	 	 	 	 d�d‚dS„Z?dT„ Z@dƒdV„ZAdW„ ZBdX„ ZCdY„ ZDdZ„ ZEd[„ ZFd\„ ZGd]„ ZHd„db„ZIdc„ ZJe	 d…d†dd„¦   «         ZKed‡dg„¦   «         ZK	 	 dˆd‰di„ZKe	 d…d†dj„¦   «         ZLed‡dk„¦   «         ZL	 	 dˆd‰dl„ZL G dm„ dnej/        e         ¦  «        ZMdŠdq„ZNdr„ ZOd‹dx„ZPdy„ ZQdz„ ZRd{„ ZSdS )ŒziFunctions used by compiler.py to determine the parameters rendered
within INSERT and UPDATE statements.

é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)ÚIterable)ÚList)ÚLiteral)ÚMutableMapping)Ú
NamedTuple)ÚOptional)Úoverload)ÚSequence)ÚSet)ÚTuple)ÚTYPE_CHECKING)ÚUnioné   )Ú	coercions)Údml)Úelements)Úroles)Ú_DefaultDescriptionTuple)Úisinsert)ÚColumnClause)Údefault_is_clause_element)Údefault_is_sequence)ÚSelect)ÚTableClauseé   )Úexc)Úutil)Ú_BindNameForColProtocol)ÚSQLCompiler)Ú_DMLColumnElement)ÚDMLState)Ú
ValuesBase)ÚColumnElement)ÚDMLTargetCopy)ÚKeyedColumnElement)Ú_SQLExprDefault)ÚColumnÚREQUIREDa8  
Placeholder for the value within a :class:`.BindParameter`
which is required to be present when the statement is passed
to :meth:`_engine.Connection.execute`.

This symbol is typically used when a :func:`_expression.insert`
or :func:`_expression.update` statement is compiled without parameter
values present.

ÚcúColumnElement[Any]ÚreturnúColumnClause[Any]c                ó^   — t          | t          ¦  «        st          j        d| ›�¦  «        ‚| S )Nz5Can't create DML statement against column expression )Ú
isinstancer   r!   ÚCompileError)r.   s    úx/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/sqlalchemy/sql/crud.pyÚ_as_dml_columnr6   M   s;   € Ý�a�Ñ&Ô&ð 
ÝÔØIÀAÐIÐIñ
ô 
ð 	
ð €Hó    r+   úKeyedColumnElement[Any]c                  óN   — e Zd ZU ded<   ded<   dZded<   dZded<   d	Zd
ed<   d	S )Ú_CrudParamszList[_CrudParamElementStr]Úsingle_paramsú$List[Sequence[_CrudParamElementStr]]Úall_multi_paramsFÚboolÚis_default_metavalue_onlyÚuse_insertmanyvaluesNzOptional[Sequence[Column[Any]]]Úuse_sentinel_columns)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r?   r@   rA   © r7   r5   r:   r:   m   s`   € € € € € € Ø-Ð-Ð-Ñ-Ø:Ð:Ð:Ñ:Ø&+ÐÐ+Ð+Ð+Ñ+Ø!&ÐÐ&Ð&Ð&Ñ&Ø<@ÐÐ@Ð@Ð@Ñ@Ð@Ð@r7   r:   Úcompilerr$   Ústmtr'   Úcompile_stater&   Útoplevelr>   Úkwr   c                ó*
  ‡ ‡‡— g ‰ _         g ‰ _        g ‰ _        g ‰ _        |                     dd¦  «        }|�|                     dd¦  «         d|vs
J d¦   «         ‚i }||d<   t          ‰ ||¦  «        \  Š}}|‰ _        |j        r|j	        rt          j        d¦  «        ‚|j        r)t          ‰ ||d|‰|dd||¦  «         t          g g ¦  «        S ‰ j        €-|j        r&t          ˆ fd„|j        j        D ¦   «         g ¦  «        S t'          |¦  «        rJ|j        rC|j        }	|	€J ‚|	d	         }
t-          |
                     ¦   «         ¦  «        }ˆfd
„|
D ¦   «         ŠnB|j        r7|j        }
t-          |
                     ¦   «         ¦  «        }ˆfd„|
D ¦   «         Šndx}Š‰ j        €i }n.|r‰€J ‚ˆˆfd„‰ j        D ¦   «         }nˆfd„‰ j        D ¦   «         }g }|�t3          ‰ |||‰||¦  «         i }t5          j        |¦  «        r|j        rt;          ‰ ||||||||¦	  «	         t'          |¦  «        r.|j        r'|j        rJ ‚t?          ‰ ||||‰|||||¦  «         d}d}ntA          ‰ ||||‰|||||¦  «        \  }}|�rm|�rjtC          |¦  «         "                    ˆfd„|D ¦   «         ¦  «         #                    |¦  «        }|�r&t5          j        |¦  «        rÞtC          d„ |D ¦   «         ¦  «         #                    |j$        g¦  «        }| #                    |j%        ¦  «        }|rQ|j        r‰ j&        sC‰ j&        sd}nd}t          j        |› dd '                    d„ |D ¦   «         ¦  «        › d�¦  «        ‚|r=‰ j&        sJ ‚t          j        dd '                    d„ |D ¦   «         ¦  «        › �¦  «        ‚t          j        dd '                    d„ |D ¦   «         ¦  «        z  ¦  «        ‚d}t'          |¦  «        r|j        rx|j        rJ ‚tQ          ‰ ||tS          d|¦  «        tS          d‰¦  «        |¦  «        }|r-tU          ‰ ‰||||¦  «         |D ]}tU          ‰ ‰||||¦  «         Œt          ||¦  «        S |sk‰ j+        rd‰ j,        j-        rXt]          |j        j        d	         ¦  «        ‰ j/         0                    |j        j        d	         ¦  «        ‰ j,        j1        dfg}d}|rtU          ‰ ‰||||¦  «         t          |g |||¬¦  «        S )aQ  create a set of tuples representing column/string pairs for use
    in an INSERT or UPDATE statement.

    Also generates the Compiled object's postfetch, prefetch, and
    returning column collections, used for default handling and ultimately
    populating the CursorResult's prefetch_cols() and postfetch_cols()
    collections.

    Úvisiting_cteNÚaccumulate_bind_namesz;Don't know how to handle insert within insert without a CTEÚbindmarkerszVCan't compile statement that includes returning() and return_defaults() simultaneouslyrF   c           
     óˆ   •— g | ]>}|j         °	|‰j                             |¦  «        t          ‰|d d¬¦  «        |j        ff‘Œ?S )NT)Úrequired)Ú_omit_from_statementsÚpreparerÚformat_columnÚ_create_bind_paramÚkey)Ú.0r.   rG   s     €r5   ú
<listcomp>z$_get_crud_params.<locals>.<listcomp>Õ   sh   ø€ ð 	ð 	ð 	ð ØÔ.ð	àØÔ%×3Ò3°AÑ6Ô6Ý& x°°DÀ4ÐHÑHÔHØ”U�Hð	ð	ð 	ð 	r7   r   c                ó&   •— h | ]} ‰|¦  «        ’ŒS rF   rF   ©rW   rV   Ú_column_as_keys     €r5   ú	<setcomp>z#_get_crud_params.<locals>.<setcomp>ï   ó#   ø€ Ð:Ð:Ð:¨s�~�~ cÑ*Ô*Ð:Ð:Ð:r7   c                ó&   •— h | ]} ‰|¦  «        ’ŒS rF   rF   rZ   s     €r5   r\   z#_get_crud_params.<locals>.<setcomp>ó   r]   r7   c                ó:   •— i | ]}|‰v¯ ‰|¦  «        t           “ŒS rF   ©r-   )rW   rV   r[   Úspd_str_keys     €€r5   ú
<dictcomp>z$_get_crud_params.<locals>.<dictcomp>ý   s:   ø€ ð 
ð 
ð 
àØ˜+Ð%Ð%ð ˆN˜3ÑÔ¥à%Ð%Ð%r7   c                ó2   •— i | ]} ‰|¦  «        t           “ŒS rF   r`   rZ   s     €r5   rb   z$_get_crud_params.<locals>.<dictcomp>  s2   ø€ ð 
ð 
ð 
Ø.1ˆNˆN˜3ÑÔ¥ð
ð 
ð 
r7   Fc              3  ó4   •K  — | ]\  }} ‰|¦  «        V — Œd S ©NrF   )rW   ÚkÚvr[   s      €r5   ú	<genexpr>z#_get_crud_params.<locals>.<genexpr>L  s1   øè è € ÐNÐN±°°1˜.˜.¨Ñ+Ô+ÐNÐNÐNÐNÐNÐNr7   c              3  ób   K  — | ]*\  }}t          |t          ¦  «        r|j        ®!|j        V — Œ+d S re   )r3   r   Útable)rW   r.   rg   s      r5   rh   z#_get_crud_params.<locals>.<genexpr>R  sP   è è € ð 'ð 'á˜˜1Ý! !¥\Ñ2Ô2ð'ð 89´wÐ7Jð ”Gà7JÐ7JÐ7JÐ7Jð'ð 'r7   z<Backend does not support additional tables in the SET clausez/Statement is not a multi-table UPDATE statementz'; cannot include columns from table(s) ú, c              3  ó,   K  — | ]}d |j         › d �V — ŒdS ©ú'N©Údescription©rW   Úts     r5   rh   z#_get_crud_params.<locals>.<genexpr>m  sK   è è € ð &Að &AØ*+ð ';¨!¬-Ð&:Ð&:Ð&:ð &Að &Að &Að &Að &Að &Ar7   z in SET clausez7Multi-table UPDATE statement does not include table(s) c              3  ó,   K  — | ]}d |j         › d �V — ŒdS rm   ro   rq   s     r5   rh   z#_get_crud_params.<locals>.<genexpr>x  sC   è è € ð &8ð &8à !ð !5 A¤MÐ 4Ð 4Ð 4ð&8ð &8ð &8ð &8ð &8ð &8r7   zUnconsumed column names: %sc              3  ó   K  — | ]}|›V — Œd S re   rF   )rW   r.   s     r5   rh   z#_get_crud_params.<locals>.<genexpr>€  s$   è è € Ð8Ð8¨Q Q QÐ8Ð8Ð8Ð8Ð8Ð8r7   úSequence[_CrudParamElementStr]úCallable[..., str]T)r?   r@   rA   )2Ú	postfetchÚinsert_prefetchÚupdate_prefetchÚimplicit_returningÚgetÚpopÚ_key_getters_for_crud_columnÚ_get_bind_name_for_colÚ
_returningÚ_return_defaultsr!   r4   ÚisdeleteÚ_setup_delete_return_defaultsr:   Úcolumn_keysÚ_no_parametersrj   ÚcolumnsÚ_compile_state_isinsertÚ_has_multi_parametersÚ_multi_parametersÚlistÚitemsÚ_dict_parametersÚ!_get_stmt_parameter_tuples_paramsr   ÚisupdateÚis_multitableÚ_get_update_multitable_paramsÚ_select_namesÚ_scan_insert_from_select_colsÚ
_scan_colsÚsetÚintersectionÚ
differenceÚ	dml_tableÚ_extra_fromsÚ'render_table_with_column_in_update_fromÚjoinÚ_extend_values_for_multiparamsr   Ú_replace_bindmarkersÚfor_executemanyÚdialectÚsupports_default_metavaluer6   rS   rT   Údefault_metavalue_token)rG   rH   rI   rJ   rK   rM   rO   Ú_getattr_col_keyÚ_col_bind_nameÚmpÚspdÚstmt_parameter_tuplesÚ
parametersÚvaluesÚcheck_columnsr@   rA   ÚcheckÚtables_mentionedÚmulti_not_in_fromÚpreambler?   Úmulti_extended_valuesÚm_vr[   ra   s   `                       @@r5   Ú_get_crud_paramsr®   u   sÉ  øøø€ ðP €HÔØ!€HÔØ!€HÔØ"$€HÔà—6’6˜.¨$Ñ/Ô/€LØÐð
 	�ŠÐ&¨Ñ-Ô-Ð-à rÐ)Ð)Ð)ØDñ 	*Ô)Ð)ð KM€KØ#€B€}Ñõ 	% X¨t°]ÑCÔCñ	ØØØð '5€HÔ#à„ð 
˜4Ô0ð 
ÝÔð/ñ
ô 
ð 	
ð
 Ôð #Ý%ØØØØØØØØØØØñ	
ô 	
ð 	
õ ˜2˜rÑ"Ô"Ð"ð ÔÐ#¨Ô(DÐ#Ýð	ð 	ð 	ð 	ð œÔ+ð	ñ 	ô 	ð ñ
ô 
ð 	
õ( 	  Ñ.Ô.ð3àÔ/ð3ð Ô,ˆØˆ~ˆ~ˆ~Ø�ŒeˆÝ $ S§Y¢Y¡[¤[Ñ 1Ô 1ÐØ:Ð:Ð:Ð:°cÐ:Ñ:Ô:ˆˆØ	Ô	'ð 3ØÔ,ˆÝ $ S§Y¢Y¡[¤[Ñ 1Ô 1ÐØ:Ð:Ð:Ð:°cÐ:Ñ:Ô:ˆˆà.2Ð2Ð ð ÔÐ#Øˆ
ˆ
Ø	ð 

ØÐ&Ð&Ð&ð
ð 
ð 
ð 
ð 
àÔ+ð
ñ 
ô 
ˆ
ˆ
ð
ð 
ð 
ð 
Ø5=Ô5Ið
ñ 
ô 
ˆ
ð
 *,€FàÐ(Ý)ØØØØ!ØØØñ	
ô 	
ð 	
ð 35€Mõ „|�MÑ"Ô"ð 
 }Ô'Bð 
Ý%ØØØØ!ØØØØØñ
	
ô 
	
ð 
	
õ ˜}Ñ-Ô-ð !
°$Ô2Dð !
ð !Ô6Ð6Ð6Ð6å%ØØØØØØØØØØØñ	
ô 	
ð 	
ð  %ÐØ#ÐÐå5?ØØØØØØØØØØØñ6
ô 6
Ñ2ÐÐ2ð ñ 8Ð+ñ 8å�
‰OŒOßŠ\ÐNÐNÐNÐNÐ8MÐNÑNÔNÑNÔNßŠZ˜Ñ&Ô&ð 	ð
 ñ 2	åŒ|˜MÑ*Ô*ð +Ý#&ð 'ð 'à 5ð'ñ 'ô 'ñ $ô $÷ ’*˜mÔ5Ð6Ñ7Ô7ð	 !ð %5×$?Ò$?Ø!Ô.ñ%ô %Ð!ð $ð  Ø%Ô3ð à#ÔKð ð $ÔKð ð7ð !˜ð Nð !õ Ô*Ø#ð +ð +à ŸIšIð &Að &AØ/?ð&Añ &Aô &Añ Aô Að+ð +ð +ñô ð ð 'ð 
Ø#ÔKÐKÐKÐKÝÔ*ðð !ŸIšIð &8ð &8à%6ð&8ñ &8ô &8ñ 8ô 8ðð ñô ð õ Ô"Ø-Ø—9’9Ð8Ð8°%Ð8Ñ8Ô8Ñ8Ô8ñ:ñô ð ð
 !&Ðõ 	  Ñ.Ô.ð7)àÔ/ð7)ð
 Ô%Ð%Ð%Ð%Ý >ØØØÝØ0Øñô õ Ð% ~Ñ6Ô6Øñ
!
ô 
!
Ðð ð 	Ý ØØØØØØñô ð ð -ð ð �Ý$ØØ"ØØ!ØØñô ð ð õ ˜6Ð#8Ñ9Ô9Ð9àð)àÔ$ð)ð ÔÔ7ð)õ ˜tœzÔ1°!Ô4Ñ5Ô5ØÔ!×/Ò/°´
Ô0BÀ1Ô0EÑFÔFØÔ Ô8Øð	ð
ˆð %)Ð!àð 
ÝØ�n k°=À&È"ñ	
ô 	
ð 	
õ ØØ
Ø";Ø1Ø1ðñ ô ð r7   c                óh   ‡ ‡‡‡‡‡‡— ˆfd„|D ¦   «         Šˆˆˆˆ ˆfd„Šˆfd„|D ¦   «         |d d …<   d S )Nc                ó2   •— i | ]\  }}}} ‰|¦  «        |“ŒS rF   rF   )rW   ÚcolÚ_Úcompiled_strr[   s       €r5   rb   z(_replace_bindmarkers.<locals>.<dictcomp>Î  s:   ø€ ð ð ð Ù.E¨c°1°lÀAˆˆ�sÑÔ˜\ðð ð r7   c                ó@  •— 	 ‰|                       d¦  «                 S # t          $ ru}t          j        ‰¦  «        r1 ‰j        ‰|                       d¦  «                 j        fi ‰¤ŽcY d }~S t          j        d|                       d¦  «        ›�¦  «        |‚d }~ww xY w)Nr   z:Can't resolve referenced column name in INSERT statement: )ÚgroupÚKeyErrorr   r�   ÚprocessÚcolumnr!   r4   )ÚmÚkeÚ_expr_by_col_keyrO   rI   rG   rK   s     €€€€€r5   Úreplace_markerz,_replace_bindmarkers.<locals>.replace_markerÒ  sÀ   ø€ ð		Ø# A§G¢G¨A¡J¤JÔ/Ð/øÝð 	ð 	ð 	ÝŒ|˜MÑ*Ô*ð Ø'�xÔ'¨°A·G²G¸A±J´JÔ(?Ô(FÐMÐMÈ"ÐMÐMÐMÐMÐMÐMÐMÐMåÔ&ð8Ø)*¯ª°©¬ð8ð 8ñô ð ðøøøøð		øøøs    ƒ ž
B¨?BÁ'BÁ-+BÂBc           	     óN   •— g | ]!\  }}}}||t          j        d ‰|¦  «        |f‘Œ"S )z__BINDMARKER_~~(.+?)~~)ÚreÚsub)rW   r±   Ú	col_valuer³   Úaccumulated_bind_namesr¼   s        €r5   rX   z(_replace_bindmarkers.<locals>.<listcomp>Þ  s\   ø€ ð ð ð ñ
ØØØØ"ð ØÝŒFØ)ØØñô ð
 #ð		
ðð ð r7   rF   )rG   r[   rO   rI   r¦   rK   r»   r¼   s   ```` `@@r5   r›   r›   Ë  s•   øøøøøøø€ ðð ð ð ØIOðñ ô Ðð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð  ð!ñ ô €Fˆ1ˆ1ˆ1�I€I€Ir7   .Fr±   Úvaluer·   úLiteral[True]rQ   ÚnameúOptional[str]Úforce_anonymousÚstrc                ó   — d S re   rF   )rG   r±   rÂ   r·   rQ   rÄ   rÆ   rK   s           r5   rU   rU   ò  s	   € ð ˆ#r7   c                ó   — d S re   rF   )rG   r±   rÂ   rK   s       r5   rU   rU   ÿ  ó	   € ð ˆ#r7   Tú'Union[str, elements.BindParameter[Any]]c                óŠ   — |rd }n	|€|j         }t          j        |||j        |¬¦  «        }d|_        |r |j        | fi |¤ŽS |S )N)Útype_rQ   T)rV   r   ÚBindParameterÚtypeÚ_is_crudÚ_compiler_dispatch)	rG   r±   rÂ   r·   rQ   rÄ   rÆ   rK   Ú	bindparams	            r5   rU   rU     st   € ð ð ØˆˆØ	ˆØŒwˆåÔ&Øˆe˜3œ8¨hðñ ô €Ið €IÔØð Ø+ˆyÔ+¨HÐ;Ð;¸Ð;Ð;Ð;àÐr7   c                óä   — d|v }|s7|j         r0t          |j        t          j        ¦  «        r|| j        d|j        f<   |j        j        r|                     |j        ¦  «        } |j	        | fi |¤ŽS )NrM   rÒ   )
Úuniquer3   rV   r   Ú_truncated_labelÚtruncated_namesrÏ   Ú_isnullÚ_with_binary_element_typerÑ   )rG   r±   rÂ   rÄ   rK   Úis_ctes         r5   Ú_handle_values_anonymous_paramrÚ   !  s”   € ð( ˜rÐ!€Fð ðBàŒLðBõ �u”y¥(Ô";Ñ<Ô<ðBð
 >BˆÔ  +¨u¬yÐ!9Ñ:à„zÔð :ð ×/Ò/°´Ñ9Ô9ˆà#ˆ5Ô# HÐ3Ð3°Ð3Ð3Ð3r7   ú¢Tuple[Callable[[Union[str, ColumnClause[Any]]], Union[str, Tuple[str, str]]], Callable[[ColumnClause[Any]], Union[str, Tuple[str, str]]], _BindNameForColProtocol]c                óf  ‡‡— t          j        |¦  «        rX|j        rQt          |j        ¦  «        Št	          j        t          j        t          j	        ¦  «        Šdˆˆfd„}dˆfd„}dˆfd
„}n?t	          j        t          j        t          j	        ¦  «        }t          j        d¦  «        x}}|||fS )NrV   úUnion[ColumnClause[Any], str]r0   úUnion[str, Tuple[str, str]]c                ól   •—  ‰| ¦  «        }t          | d¦  «        r| j        ‰v r| j        j        |fS |S )Nrj   )Úhasattrrj   rÄ   )rV   Ústr_keyÚ_etÚ
c_key_roles     €€r5   r[   z4_key_getters_for_crud_column.<locals>._column_as_key[  sD   ø€ ð !�j ‘o”oˆGÝ�s˜GÑ$Ô$ð ¨¬°cÐ)9Ð)9Øœ	œ¨Ð0Ð0à�r7   r±   r1   c                óJ   •— | j         ‰v r| j         j        | j        fS | j        S re   )rj   rÄ   rV   ©r±   râ   s    €r5   r    z6_key_getters_for_crud_column.<locals>._getattr_col_keyd  s*   ø€ ð Œy˜CÐÐØœ	œ¨¬Ð0Ð0à”w�r7   rÇ   c                ó–   •— | j         ‰v r9t          rt          | j         t          ¦  «        sJ ‚| j         j        ›d| j        ›�S | j        S )Nr²   )rj   r   r3   r   rÄ   rV   rå   s    €r5   r¡   z4_key_getters_for_crud_column.<locals>._col_bind_namel  sN   ø€ ØŒy˜CÐÐÝ ð >Ý% c¤iµÑ=Ô=Ð=Ð=Ð=Ø"%¤)¤. . .°#´'°'Ð:Ð:à”w�r7   )rV   rÝ   r0   rÞ   )r±   r1   r0   rÞ   )r±   r1   r0   rÇ   )r   r�   r—   r“   Ú	functoolsÚpartialr   Úexpect_as_keyr   ÚDMLColumnRoleÚoperatorÚ
attrgetter)rG   rH   rI   r[   r    r¡   râ   rã   s         @@r5   r}   r}   G  sü   øø€ õ „|�MÑ"Ô"ð *G }Ô'Að *Gõ �-Ô,Ñ-Ô-ˆåÔ&ÝÔ#¥UÔ%8ñ
ô 
ˆ
ð	ð 	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	ð 	õ #Ô*ÝÔ#¥UÔ%8ñ
ô 
ˆõ -5Ô,?ÀÑ,FÔ,FÐFÐ˜>àÐ+¨^Ð;Ð;r7   c                ó”  ‡‡— ˆˆfd„‰j         D ¦   «         }| j        d         d         ‰u sJ ‚‰j        | j        d         d<   g }‰j        rJt	          |¦  «        }‰j        j        D ].}||vr(|j        r!|j        j        s| 	                    |¦  «         Œ/|D ]o} ||¦  «        }||v rK||vrG| 
                    |¦  «         | 	                    || j                             |¦  «        d df¦  «         Œ\t          | ‰|||
¦  «         Œp|r¾|                     |¦  «         | j        d         d         }t          |t           ¦  «        s5t#          j        dd                     d„ |D ¦   «         ¦  «        › d	�¦  «        ‚|                     ¦   «         }t+          |j        ¦  «        d
„ |D ¦   «         z   |_        || j        d         d<   d S d S )Nc                óF   •— g | ]}‰j         j         ‰|¦  «                 ‘ŒS rF   )rj   r.   )rW   rÄ   r[   rH   s     €€r5   rX   z1_scan_insert_from_select_cols.<locals>.<listcomp>Š  s,   ø€ ÐNÐNÐN°4ˆDŒJŒL˜˜¨Ñ-Ô-Ô.ÐNÐNÐNr7   éÿÿÿÿÚ
selectableÚinsert_from_selectrF   z_Can't extend statement for INSERT..FROM SELECT to include additional default-holding column(s) rk   c              3  ó>   K  — | ]\  }}}}t          |¦  «        V — Œd S re   )Úrepr)rW   r²   rV   s      r5   rh   z0_scan_insert_from_select_cols.<locals>.<genexpr>µ  s0   è è € ÐLÐL©L¨A¨s°A°q�d 3™iœiÐLÐLÐLÐLÐLÐLr7   z~.  Convert the selectable to a subquery() first, or pass include_defaults=False to Insert.from_select() to skip these columns.c                ó   — g | ]	\  }}}}|‘Œ
S rF   rF   )rW   r²   Úexprs      r5   rX   z1_scan_insert_from_select_cols.<locals>.<listcomp>¼  s3   € ð M
ð M
ð M
Ù"�Q˜˜4 ˆDðM
ð M
ð M
r7   )r�   ÚstackÚselectÚ#include_insert_from_select_defaultsr“   rj   r…   ÚdefaultÚis_sentinelÚappendr|   rS   rT   Ú&_append_param_insert_select_hasdefaultÚextendr3   r   r!   r4   r™   Ú	_generater‰   Ú_raw_columns)rG   rH   rI   r¥   r    r[   r¡   r§   r¦   rJ   rK   ÚcolsÚadd_select_colsÚcol_setr±   r.   Úcol_keyÚins_from_selects    `   `            r5   r‘   r‘   }  sS  øø€ ð OÐNÐNÐNÐN¸4Ô;MÐNÑNÔN€DàŒ>˜"Ô˜lÔ+¨tÐ3Ð3Ð3Ð3à/3¬{€H„N�2ÔÐ+Ñ,à68€OØÔ/ð !Ý�d‘)”)ˆØ”:Ô%ð 	!ð 	!ˆCð ˜7Ð"Ð"Ø”Kð #àœÔ/ð #ð —’˜CÑ Ô Ð øàð ð ˆØ"Ð" 1Ñ%Ô%ˆØ�jÐ Ð  W°MÐ%AÐ%AØ�NŠN˜7Ñ#Ô#Ð#Ø�MŠM˜1˜hÔ/×=Ò=¸aÑ@Ô@À$ÈÐKÑLÔLÐLÐLå2Ø˜$  ?°Bñô ð ð ð ð CØ�Š�oÑ&Ô&Ð&Ø"œ.¨Ô,Ð-AÔBˆÝ˜/­6Ñ2Ô2ð 		ÝÔ"ðð —I’IÐLÐL¸OÐLÑLÔLÑLÔLðð ð ñô ð ð *×3Ò3Ñ5Ô5ˆå'+¨OÔ,HÑ'IÔ'Ið M
ð M
Ø&5ðM
ñ M
ô M
ñ (
ˆÔ$ð 4CˆŒ�rÔÐ/Ñ0Ð0Ð0ð%Cð Cr7   c                ó  ‡‡‡‡— t          | ‰||	¦  «        \  }}}}}}|j        s	|j        sJ ‚|j        rJˆfd„|j        D ¦   «         }t          |¦  «        Šˆfd„|D ¦   «         ˆfd„‰j        j        D ¦   «         z   }n‰j        j        }t          |¦  «        }|r |j
        s‰j        j        }| j        j        }nd x}}‰j        rt          ‰j        ¦  «        }nt          ¦   «         }| j        }|D �]Y} ||¦  «        }||v r"||vrt!          | ‰||||||||||||
¦  «         �n|rê|j        r,|r*|rt%          | ‰|||
¦  «         nçt'          | ‰|||
¦  «         nÓ|j        �#|j        j        r|�t-          | ‰||||
¦  «         n©|j        �>|r||v r|                     |¦  «         n†|j        s| j                             |¦  «         nd|r||v r|                     |¦  «         nH|j        r$|‰j        j        ur|j        st7          |¦  «         n|j        rt9          | |‰||||
¦  «         ||v r||vr|                     |¦  «         �Œ[|r;|                     |¦  «        Š|                     ˆfd„‰j        D ¦   «         ¦  «         ||fS )Nc                ó&   •— g | ]} ‰|¦  «        ‘ŒS rF   rF   rZ   s     €r5   rX   z_scan_cols.<locals>.<listcomp>Û  s0   ø€ ð 
ð 
ð 
Ø$'ˆNˆN˜3ÑÔð
ð 
ð 
r7   c                óz   •— g | ]7}t          |t          ¦  «        r |‰j        j        v ¯%‰j        j        |         ‘Œ8S rF   )r3   rÇ   rj   r.   )rW   rV   rH   s     €r5   rX   z_scan_cols.<locals>.<listcomp>ß  sO   ø€ ð 
ð 
ð 
àÝ˜#�sÑ#Ô#ð
ð ),¨t¬z¬|Ð(;Ð(;ð ŒJŒL˜Ôà(;Ð(;Ð(;r7   c                ó&   •— g | ]}|j         ‰v¯|‘ŒS rF   )rV   )rW   r.   Úordered_keyss     €r5   rX   z_scan_cols.<locals>.<listcomp>ã  s%   ø€ ÐBÐBÐB�1¨¬°\Ð(AÐ(AˆQÐ(AÐ(AÐ(Ar7   c              3  ó$   •K  — | ]
}|‰v ¯|V — Œd S re   rF   )rW   r.   Úremaining_supplementals     €r5   rh   z_scan_cols.<locals>.<genexpr>p  s;   øè è € ð +
ð +
àØÐ*Ð*Ð*ð à*Ð*Ð*Ð*ð+
ð +
r7   )Ú_get_returning_modifiersr�   r   Ú_maintain_values_orderingr‹   r“   rj   r.   r…   r†   r‡   Ú_autoincrement_columnr�   Ú#insert_null_pk_still_autoincrementsÚ_supplemental_returningrz   Ú_append_param_parameterÚprimary_keyÚ!_append_param_insert_pk_returningÚ$_append_param_insert_pk_no_returningrù   rú   Ú_append_param_insert_hasdefaultÚserver_defaultrû   rw   ÚnullableÚ"_warn_pk_with_no_anticipated_valueÚ_append_param_updater•   rý   )rG   rH   rI   r¥   r    r[   r¡   r§   r¦   rJ   rK   Úneed_pksrz   Úimplicit_return_defaultsÚpostfetch_lastrowidr@   rA   Úparameter_orderingr   r   Úautoincrement_colr  Úsupplemental_returningÚcompiler_implicit_returningr.   r  r	  r  s    `   `                    @@r5   r’   r’   Â  s)  øøøø€ õ( 	! ¨4°ÀÑIÔIñØØØ ØØØð Ô!Ð; ]Ô%;Ð;Ð;Ð;àÔ.ð "ð
ð 
ð 
ð 
Ø+8Ô+Ið
ñ 
ô 
Ðõ Ð-Ñ.Ô.ˆð
ð 
ð 
ð 
à)ð
ñ 
ô 
ð CÐBÐBÐB˜œ
œÐBÑBÔBñ	Cˆˆð ŒzÔ!ˆå& }Ñ5Ô5€HØð 	G˜Ô;ð 	Gð !œJÔ<ÐàÔÔ@ð 	,Ð+ð CGÐFÐÐ?àÔ#ð 'Ý!$ TÔ%AÑ!BÔ!BÐÐå!$¡¤Ðà"*Ô"=Ðð
 ð i2ñ i2ˆð #Ð" 1Ñ%Ô%ˆà�jÐ Ð  W°MÐ%AÐ%Aõ $ØØØØØØØØ"Ø(Ø#ØØ!Ø3Øñô ð ñ ð( ð C	ð Œ}ð 36 ð 36ð
 &ð õ
 6Ø  $¨¨6°2ñô ð ð õ 9Ø  $¨¨6°2ñô ð ð ð ”Ð&ð ”yÔ,ð Ø(Ð4å3Ø  $¨Ð+CÀVÈRñô ð øð Ô!Ð-ð ,ð 1°Ð5MÐ0MÐ0MØ/×6Ò6°qÑ9Ô9Ð9Ð9Øœð 1ØÔ&×-Ò-¨aÑ0Ô0Ð0øà)ð 6¨aÐ3KÐ.KÐ.KØ+×2Ò2°1Ñ5Ô5Ð5Ð5ð ”ð6à˜TœZÔ=Ð=Ð=Øœ
ð >õ 3°1Ñ5Ô5Ð5øàÔ#ð 	õ !ØØØØØ(ØØñô ð ð Ð'Ð'Ð'ØÐ4Ð4Ð4à'×.Ò.¨qÑ1Ô1Ð1ùàð 
ð "8×!BÒ!BØ'ñ"
ô "
Ðð 	$×*Ò*ð +
ð +
ð +
ð +
àÔ1ð+
ñ +
ô +
ñ 	
ô 	
ð 	
ð& !Ð"6Ð7Ð7r7   c                ó  ‡— t          | |||	¦  «        ^}}}}|sd S |j        r| j                             |¦  «         |j        rAt          | j        ¦  «        Š| j                             ˆfd„|j        D ¦   «         ¦  «         d S d S )Nc              3  ó$   •K  — | ]
}|‰v¯|V — Œd S re   rF   )rW   r.   Úir_sets     €r5   rh   z0_setup_delete_return_defaults.<locals>.<genexpr>Ÿ  s0   øè è € ð +
ð +
Ø°qÀ°°ˆA°°°°ð+
ð +
r7   )r  Ú_return_defaults_columnsrz   rý   r  r“   )rG   rH   rI   r¥   r    r[   r¡   r§   r¦   rJ   rK   r²   r  r#  s                @r5   r‚   r‚   †  sÎ   ø€ õ *BØ�$˜ xñ*ô *Ð&€A€qÐ
" Qð $ð ØˆàÔ$ð EØÔ#×*Ò*Ð+CÑDÔDÐDàÔ#ð 
Ý�XÔ0Ñ1Ô1ˆØÔ#×*Ò*ð +
ð +
ð +
ð +
ØÔ3ð+
ñ +
ô +
ñ 	
ô 	
ð 	
ð 	
ð 	
ð
ð 
r7   c                óÖ  — |                      |¦  «        }|                     d¦  «        d u}| j                             ||j        ¬¦  «        }t          ¦   «         }t          j        |¦  «        r}|r1|j        r*||u r&|	rd| _	        n|r| j
                             |¦  «         t          | ||f|t          u t          |¦  «        r|j        s ||¦  «        nd ||¦  «        z  ||dœ|¤Ž}�nc|j        r„|rB|j        €;|j        r4||u r0|r| j
                             |¦  «         n| j        j	        rd| _	        t'          | ||ft          |¦  «        r|j        s ||¦  «        nd ||¦  «        z  |dœ|¤Ž}nØ | j        |                     ¦   «         fd|i|¤Ž}|j        r<|r||v r| j
                             |¦  «         nŽ| j                             |¦  «         ns|j        r1|r| j
                             |¦  «         nO| j        j	        rd| _	        n;|r||v r| j
                             |¦  «         n| j                             |¦  «         |
                     ||||f¦  «         d S )NrM   ©Ú	use_tableTz%s_m0)rQ   rÄ   rN   rÆ   )rÄ   rN   rN   )r|   r{   rS   rT   Úinclude_table_with_column_exprsr“   r   Ú_is_literalr  r  rz   rû   rU   r-   r†   r‡   Ú_is_bind_parameterrÂ   r�   rÚ   r·   Ú
self_groupr�   rw   )rG   rH   rI   r.   r  r¥   r¡   rz   r  r  r¦   r  r  rK   rÂ   Úhas_visiting_cterÀ   rÁ   s                     r5   r  r  ¤  s^  € ð  �NŠN˜7Ñ#Ô#€Eà—v’v˜nÑ-Ô-°TÐ9ÐØÔ!×/Ò/Ø	�]ÔBð 0ñ ô €Iõ (+¡u¤uÐåÔ˜UÑ#Ô#ð W-à/ð	6à”ð	6ð Ð&Ð&Ð&ð
 #ð 6Ø/3�Ô,Ð,Ø#ð 6ØÔ+×2Ò2°1Ñ5Ô5Ð5å"ØØØð
ð �hÐ&õ /¨}Ñ=Ô=ð1à$Ô:ð1��˜qÑ!Ô!Ð!ð ˜~˜~¨aÑ0Ô0Ñ0à"8Ø,ð
ð 
ð ð
ð 
ˆ‰ð 
Ô	!ð :-à/ð	4à”Ð#Ø”ð $àÐ&Ð&Ð&ð "ð 4ØÔ+×2Ò2°1Ñ5Ô5Ð5Ð5ØÔ!Ô5ð 4Ø/3�Ô,å.ØØØð
õ /¨}Ñ=Ô=ð1à$Ô:ð1��˜qÑ!Ô!Ð!ð ˜~˜~¨aÑ0Ô0Ñ0à"8ð
ð 
ð ð
ð 
ˆˆð !�Ô Ø×ÒÑÔð
ð 
à"8ð
ð ð
ð 
ˆð Ô!ð 	-Ø'ð -¨AÐ1IÐ,IÐ,IØÔ+×2Ò2°1Ñ5Ô5Ð5Ð5ð Ô"×)Ò)¨!Ñ,Ô,Ð,Ð,àŒ}ð -Ø%ð 8ØÔ/×6Ò6°qÑ9Ô9Ð9Ð9ØÔ%Ô9ð 8Ø37�HÔ0øà)ð 
-¨qÐ4LÐ/LÐ/LØÔ+×2Ò2°1Ñ5Ô5Ð5Ð5ð Ô"×)Ò)¨!Ñ,Ô,Ð,à
‡M‚M�1�i Ð(>Ð?Ñ@Ô@Ð@Ð@Ð@r7   c           	     ó�  — |j         ��t|j         j        r’| j        j        rj|j         j        r| j        j        sRt          ¦   «         }|                     || j         	                    |¦  «         | j
        |j         fd|i|¤Ž|f¦  «         | j                             |¦  «         dS |j         j        r…t          ¦   «         }|                     || j         	                    |¦  «         | j
        |j         j                             ¦   «         fd|i|¤Ž|f¦  «         | j                             |¦  «         dS |                     || j         	                    |¦  «        t          | |fi |¤Ž|j        ff¦  «         dS ||j        j        u s|j        �| j                             |¦  «         dS |j        st+          |¦  «         dS dS )z—Create a primary key expression in the INSERT statement where
    we want to populate result.inserted_primary_key and RETURNING
    is available.

    NrN   )rù   Úis_sequencer�   Úsupports_sequencesÚoptionalÚsequences_optionalr“   rû   rS   rT   r·   rz   Úis_clause_elementÚargr+  Ú"_create_insert_prefetch_bind_paramrV   rj   r  r  r  r  )rG   rH   r.   r¦   rK   rÁ   s         r5   r  r    s6  € ð 	„yÑØŒ9Ô ð -	ØÔÔ2ð Ø”IÔ&ðàÔ'Ô:ðõ 47±5´5Ð&Ø—’àØ Ô)×7Ò7¸Ñ:Ô:Ø(˜Ô(ØœIðð à2Hðð !ðð ð
 /ð	ñô ð ð Ô'×.Ò.¨qÑ1Ô1Ð1Ð1Ð1ØŒYÔ(ð 	Ý%(¡U¤UÐ"Ø�MŠMàØÔ%×3Ò3°AÑ6Ô6Ø$�HÔ$Øœ	œ×0Ò0Ñ2Ô2ðð à.Dðð ðð ð
 +ð	ñô ð ð Ô'×.Ò.¨qÑ1Ô1Ð1Ð1Ð1ð
 �MŠMàØÔ%×3Ò3°AÑ6Ô6Ý6°xÀÐIÐIÀbÐIÐIØ”U�Hð	ñô ð ð ð ð 
ˆdŒjÔ.Ð	.Ð	.°!Ô2BÐ2NØÔ#×*Ò*¨1Ñ-Ô-Ð-Ð-Ð-ØŒZð .õ 	+¨1Ñ-Ô-Ð-Ð-Ð-ð.ð .r7   c           	     ó(  — |j         �0|j         j        rp| j        j        r|j         j        rX| j        j        rL||j        j        u rƒ| j        j        sw|j         �|j         j        r| j        j        s|j         €Q| j        j	        rE| 
                    || j                             |¦  «        t          | |fi |¤Ž|j        ff¦  «         dS |j         €-|j        €&|j        s||j        j        urt#          |¦  «         dS | j        j        r	d| _        dS dS )ao  Create a primary key expression in the INSERT statement where
    we want to populate result.inserted_primary_key and we cannot use
    RETURNING.

    Depending on the kind of default here we may create a bound parameter
    in the INSERT statement and pre-execute a default generation function,
    or we may use cursor.lastrowid if supported by the dialect.


    NT)rù   r.  r�   r/  r0  r1  rj   r  r  Ú"preexecute_autoincrement_sequencesrû   rS   rT   r4  rV   r  r  r  ©rG   rH   r.   r¦   rK   s        r5   r  r  V  sn  € ð 	
Œ	Ðð ”	Ô%ð	 	ð Ô Ô3ð 	ð œ	Ô*ð 	ð $Ô+Ô>ð 	ð 	
ˆTŒZÔ-Ð-Ð-ð Ô Ô4ð 	.ð ”IÐ)Øœ	Ô-ð *à Ô(Ô;ð *ð ”IÐ%Ø Ô(ÔKð &ð 	�ŠàØÔ!×/Ò/°Ñ2Ô2Ý2°8¸QÐEÐEÀ"ÐEÐEØ”�ð	ñ	
ô 	
ð 	
ð 	
ð 	
ð 	
Œ	ÐØÔÐ$Ø”
ð %à�T”ZÔ5Ð5Ð5õ 	+¨1Ñ-Ô-Ð-Ð-Ð-Ø	Ô	Ô	-ð ,ð
 (,ˆÔ$Ð$Ð$ð,ð ,r7   c           	     óž  — |j         j        rÁ| j        j        r¯|j         j        r| j        j        s™t          ¦   «         }|                     || j         	                    |¦  «         | j
        |j         fd|i|¤Ž|f¦  «         |r ||v r| j                             |¦  «         d S |j        s | j                             |¦  «         d S d S d S d S |j         j        r°t          ¦   «         }|                     || j         	                    |¦  «         | j
        |j         j                             ¦   «         fd|i|¤Ž|f¦  «         |r ||v r| j                             |¦  «         d S |j        s| j                             |¦  «         d S d S |                     || j         	                    |¦  «        t#          | |fi |¤Ž|j        ff¦  «         d S )NrN   )rù   r.  r�   r/  r0  r1  r“   rû   rS   rT   r·   rz   r  rw   r2  r3  r+  r4  rV   )rG   rH   r.   r  r¦   rK   rÁ   s          r5   r  r  £  si  € ð 	„yÔð 1
ØÔÔ.ð 	-Ø”	Ô"ð	-Ø*2Ô*:Ô*Mð	-õ 03©u¬uÐ"Ø�MŠMàØÔ%×3Ò3°AÑ6Ô6Ø$�HÔ$Øœ	ðð à.Dðð ðð ð
 +ð	ñô ð ð (ð -¨AÐ1IÐ,IÐ,IØÔ+×2Ò2°1Ñ5Ô5Ð5Ð5Ð5Ø”]ð -ØÔ"×)Ò)¨!Ñ,Ô,Ð,Ð,Ð,ð'	-ð 	-ð 	-ð 	-ð$-ð -à	
ŒÔ	$ð 
Ý!$¡¤ÐØ�ŠàØÔ!×/Ò/°Ñ2Ô2Ø �Ô Ø”I”M×,Ò,Ñ.Ô.ðð à*@ðð ðð ð
 'ð	ñ	
ô 	
ð 	
ð $ð 	)¨Ð-EÐ(EÐ(EØÔ'×.Ò.¨qÑ1Ô1Ð1Ð1Ð1Ø”ð 	)àÔ×%Ò% aÑ(Ô(Ð(Ð(Ð(ð	)ð 	)ð 	�ŠàØÔ!×/Ò/°Ñ2Ô2Ý2°8¸QÐEÐEÀ"ÐEÐEØ”�ð	ñ	
ô 	
ð 	
ð 	
ð 	
r7   r¦   úList[_CrudParamElementSQLExpr]úDict[str, Any]ÚNonec           	     ób  — t          |j        ¦  «        rr| j        j        rb|j        j        r| j        j        sL|                     || j                             |¦  «        |j         	                    ¦   «         df¦  «         d S d S d S t          |j        ¦  «        rO|                     || j                             |¦  «        |j        j                             ¦   «         df¦  «         d S |                     || j                             |¦  «        t          | |fddi|¤Ž|j        ff¦  «         d S )NrF   r·   F)r   rù   r�   r/  r0  r1  rû   rS   rT   Ú
next_valuer   r3  r+  r4  rV   r7  s        r5   rü   rü   Ú  sy  € õ ˜1œ9Ñ%Ô%ð 
ØÔÔ.ð 
	Ø”	Ô"ð
	Ø*2Ô*:Ô*Mð
	ð �MŠMàØÔ%×3Ò3°AÑ6Ô6Ø”I×(Ò(Ñ*Ô*Øð	ñô ð ð ð ð
	ð 
	ð 
	ð 
	õ 
# 1¤9Ñ	-Ô	-ð 
Ø�ŠàØÔ!×/Ò/°Ñ2Ô2Ø”	”×(Ò(Ñ*Ô*Øð	ñ	
ô 	
ð 	
ð 	
ð 	
ð 	�ŠàØÔ!×/Ò/°Ñ2Ô2Ý2Ø˜aðð Ø).ðØ24ðð ð ”�ðñ		
ô 		
ð 		
ð 		
ð 		
r7   c           	     ó  — |j         }|j        �ø|j        j        sì|j        j        r™|                     || j                             ||¬¦  «         | j        |j        j         	                    ¦   «         fi |¤Ždf¦  «         |r ||v r| j
                             |¦  «         d S | j                             |¦  «         d S |                     || j                             ||¬¦  «        t          | |fi |¤Ž|j        ff¦  «         d S |j        �>|r ||v r| j
                             |¦  «         d S | j                             |¦  «         d S |r.|j        s|j        s$||v r| j
                             |¦  «         d S d S d S d S )Nr&  rF   )r(  Úonupdater.  r2  rû   rS   rT   r·   r3  r+  rz   rw   Ú"_create_update_prefetch_bind_paramrV   Úserver_onupdater$  r€   )rG   rI   rH   r.   r  r¦   rK   Úinclude_tables           r5   r  r    s
  € ð "ÔA€MØ„zÐ a¤jÔ&<ÐØŒ:Ô'ð 	Ø�MŠMàØÔ%×3Ò3ØØ"/ð 4ñ ô ð %�HÔ$ Q¤Z¤^×%>Ò%>Ñ%@Ô%@ÐGÐGÀBÐGÐGØðñ
ô 
ð 
ð (ð -¨AÐ1IÐ,IÐ,IØÔ+×2Ò2°1Ñ5Ô5Ð5Ð5Ð5àÔ"×)Ò)¨!Ñ,Ô,Ð,Ð,Ð,à�MŠMàØÔ%×3Ò3ØØ"/ð 4ñ ô õ 7°xÀÐIÐIÀbÐIÐIØ”U�Hðñ
ô 
ð 
ð 
ð 
ð 
Ô	Ð	&Ø#ð 	)¨Ð-EÐ(EÐ(EØÔ'×.Ò.¨qÑ1Ô1Ð1Ð1Ð1àÔ×%Ò% aÑ(Ô(Ð(Ð(Ð(à ð.àÔ*ð.à26Ô2Gð.ð Ð)Ð)Ð)àÔ#×*Ò*¨1Ñ-Ô-Ð-Ð-Ð-ð.ð .ð *Ð)ð.ð .r7   c                ó   — d S re   rF   ©rG   r.   r·   rK   s       r5   r4  r4  1  rÊ   r7   úLiteral[False]úelements.BindParameter[Any]c                ó   — d S re   rF   rD  s       r5   r4  r4  :  ó	   € ð #& #r7   ú'Union[elements.BindParameter[Any], str]c                ó^   — t          | |d f||dœ|¤Ž}| j                             |¦  «         |S ©N)r·   rÄ   )rU   rx   rû   ©rG   r.   r·   rÄ   rK   Úparams         r5   r4  r4  C  óO   € õ Ø�!�TðØ#*°ðð Ø9;ðð €Eð Ô×#Ò# AÑ&Ô&Ð&Ø€Lr7   c                ó   — d S re   rF   rD  s       r5   r@  r@  Q  rÊ   r7   c                ó   — d S re   rF   rD  s       r5   r@  r@  Z  rH  r7   c                ó^   — t          | |d f||dœ|¤Ž}| j                             |¦  «         |S rK  )rU   ry   rû   rL  s         r5   r@  r@  c  rN  r7   c                  ón   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zej	        dd„¦   «         Z
ej	        dd	„¦   «         Zd
S )Ú_multiparam_columnTc                óz   — || _         d|j        |dz   fz  | _        || _        |j        | _        |j        | _        d S )Nú%s_m%dr   )ÚindexrV   Úoriginalrù   rÏ   )ÚselfrW  rV  s      r5   Ú__init__z_multiparam_column.__init__t  s>   € ØˆŒ
Ø˜xœ|¨U°Q©YÐ7Ñ7ˆŒØ ˆŒØÔ'ˆŒØ”MˆŒ	ˆ	ˆ	r7   c                ó   — t          ¦   «         ‚re   ©ÚNotImplementedError)rX  ÚotherrK   s      r5   Úcomparez_multiparam_column.compare{  ó   € Ý!Ñ#Ô#Ð#r7   c                ó   — t          ¦   «         ‚re   r[  )rX  rK   s     r5   Ú_copy_internalsz"_multiparam_column._copy_internals~  r_  r7   c                ól   — t          |t          ¦  «        o|j        | j        k    o|j        | j        k    S re   )r3   rS  rV   rW  )rX  r]  s     r5   Ú__eq__z_multiparam_column.__eq__�  s7   € å�uÕ0Ñ1Ô1ð 0Ø”	˜TœXÒ%ð0à” $¤-Ò/ð	
r7   r0   r   c                ó4   — t          j        | j        ¦  «        S ©z1used by default.py -> _process_execute_defaults())r   Ú_from_column_defaultrù   ©rX  s    r5   Ú_default_description_tuplez-_multiparam_column._default_description_tupleˆ  s   € õ (Ô<¸T¼\ÑJÔJÐJr7   c                ó4   — t          j        | j        ¦  «        S re  )r   rf  r?  rg  s    r5   Ú_onupdate_description_tuplez._multiparam_column._onupdate_description_tupleŽ  s   € õ (Ô<¸T¼]ÑKÔKÐKr7   N)r0   r   )rB   rC   rD   Ú_is_multiparam_columnrY  r^  ra  rc  r"   Úmemoized_propertyrh  rj  rF   r7   r5   rS  rS  q  s¨   € € € € € Ø Ðð"ð "ð "ð$ð $ð $ð$ð $ð $ð
ð 
ð 
ð 
ÔðKð Kð Kñ ÔðKð
 
ÔðLð Lð Lñ ÔðLð Lð Lr7   rS  rV  Úintc                óp  — |j         st          j        d|z  ¦  «        ‚t          |j         ¦  «        r* | j        |j         j                             ¦   «         fi |¤ŽS |j         j        r | j        |j         fi |¤ŽS t          ||¦  «        }t          |t          j        ¦  «        sJ ‚t          | |fddi|¤ŽS )Nz�INSERT value for column %s is explicitly rendered as a boundparameter in the VALUES clause; a Python-side value or SQL expression is requiredr·   T)rù   r!   r4   r   r·   r3  r+  r.  rS  r3   r   ÚInsertr4  )rG   rH   r.   rV  rK   r±   s         r5   Ú _process_multiparam_default_bindrp  •  sð   € ð Œ9ð 
ÝÔð@àBCñDñ
ô 
ð 	
õ
 
# 1¤9Ñ	-Ô	-ð 
ØˆxÔ ¤	¤× 8Ò 8Ñ :Ô :ÐAÐA¸bÐAÐAÐAØ	
ŒÔ	ð 
ð  ˆxÔ ¤	Ð0Ð0¨RÐ0Ð0Ð0å   EÑ*Ô*ˆÝ˜$¥¤
Ñ+Ô+Ð+Ð+Ð+Ý1Ø�cð
ð 
Ø#'ð
Ø+-ð
ð 
ð 	
r7   c	                ó$  — d„ |pdD ¦   «         }	|j         }
t          ¦   «         }|j        D �]N}|
 o|j                             |¦  «         }|j        D �]$}||	v �r|rt          j        d|j        › d�¦  «        ‚| 	                    |¦  «         || ||¦  «        <   |	|         }|  
                    ||
¬¦  «        }t          j        |¦  «        r+t          | ||f|t          u  ||¦  «        dœ|¤Ž}|j        f}nc|j        r  ||¦  «        }t#          | ||fd|i|¤Ž}|f}n<| j                             |¦  «          | j
        |                     ¦   «         fi |¤Ž}d}|                     ||||f¦  «         �Œ&�ŒP|D �]}|j        D �]}||	v rŒ|j        �Õ|j        j        sÉ|j        j        rq|                     ||  
                    ||
¬¦  «         | j
        |j        j                             ¦   «         fi |¤Ždf¦  «         | j                             |¦  «         Œ˜|                     ||  
                    ||
¬¦  «        t3          | |fd ||¦  «        i|¤Ž|j        ff¦  «         Œä|j        �| j                             |¦  «         �Œ�Œd S )Nc                óT   — i | ]%\  }}t          j        t          j        |¦  «        |“Œ&S rF   )r   Úexpectr   rê   )rW   r.   rM  s      r5   rb   z1_get_update_multitable_params.<locals>.<dictcomp>Á  s>   € ð ð ð áˆAˆuõ 	Ô�Ô,¨aÑ0Ô0°%ðð ð r7   rF   zdBackend does not support additional tables in the SET clause; cannot include columns from table(s) 'z' in SET clause©rB  )rQ   rÄ   rÄ   )r(  r“   r—   r–   Úis_derived_fromr.   r!   r4   rp   Úaddr·   r   r)  rU   r-   rV   r*  rÚ   rw   rû   r+  r?  r.  r2  r3  r@  rA  )rG   rH   rI   r¤   r§   r¡   r    r¦   rK   Únormalized_paramsrB  Úaffected_tablesrr   Ú$we_shouldnt_be_here_if_columns_foundr.   rÂ   rÀ   rÁ   Úcbns                      r5   r�   r�   ¶  s¸  € ðð à-Ð3°ðñ ô Ðð
 "ÔA€Må‘e”e€OØÔ'ð /Mñ /Mˆð
 Ðð ?Ø!Ô+×;Ò;¸AÑ>Ô>Ð>ð 	-ð
 ”ð &	Mñ &	MˆAØÐ%Ð%Ñ%à7ð ÝÔ*ð%ð œMð%ð %ð %ñô ð ð  ×#Ò# AÑ&Ô&Ð&à56�Ð.Ð.¨qÑ1Ô1Ñ2Ø)¨!Ô,�à$×,Ò,¨Q¸mÐ,ÑLÔL�	ÝÔ(¨Ñ/Ô/ð 0Ý.Ø ØØðð "'­(Ð!2Ø+˜^¨AÑ.Ô.ðð ð ðð �Eð >?¼U¸HÐ*Ð*ØÔ-ð 	0Ø(˜.¨Ñ+Ô+�CÝ:Ø  ! Uðð Ø14ðØ8:ðð �Eð /2¨VÐ*Ð*àÔ&×-Ò-¨aÑ0Ô0Ð0Ø,˜HÔ,¨U×-=Ò-=Ñ-?Ô-?ÐFÐFÀ2ÐFÐF�EØ-/Ð*Ø—’˜q )¨UÐ4JÐKÑLÔLÐLùñM&	MðT ð -ñ -ˆØ”ð 	-ñ 	-ˆAØÐ%Ð%Ð%ØØ”Ð'°´
Ô0FÐ'Ø”:Ô/ð Ø—M’MàØ$×,Ò,¨Q¸mÐ,ÑLÔLØ,˜HÔ,Ø !¤
¤× 9Ò 9Ñ ;Ô ;ðð Ø?Aðð ð ðñ	ô 	ð 	ð Ô&×-Ò-¨aÑ0Ô0Ð0Ð0à—M’MàØ$×,Ò,¨Q¸mÐ,ÑLÔLÝ>Ø (¨!ðð Ø2@°.ÀÑ2CÔ2CðØGIðð ð œU˜Hðñ	ô 	ð 	ð 	ð Ô"Ð.ØÔ"×)Ò)¨!Ñ,Ô,Ð,ùñ9	-ð-ð -r7   Úinitial_valuesru   r[   rv   r<   c           	     óX  ‡— |}|g}|                      d¦  «        d u}|j        }	|	€J ‚t          |	dd …         ¦  «        D ]é\  }
}g }ˆfd„|                     ¦   «         D ¦   «         }|D ]ª\  }}}}|j        |v rn|j        }t          j        ||         ¦  «        r&t          | |||         fd|j        |
dz   fz  |dœ|¤Ž}n: | j        ||          	                    ¦   «         fi |¤Ž}nt          | |||
|¦  «        }|                     ||||f¦  «         Œ«|                     |¦  «         Œê|S )NrM   r   c                ó.   •— i | ]\  }} ‰|¦  «        |“ŒS rF   rF   )rW   rV   rg   r[   s      €r5   rb   z2_extend_values_for_multiparams.<locals>.<dictcomp>-  s)   ø€ Ð@Ð@Ð@©&¨#¨qˆ~ˆ~˜cÑ"Ô" AÐ@Ð@Ð@r7   rU  )rÄ   rÆ   )r{   rˆ   Ú	enumeraterŠ   rV   r   r)  rU   r·   r+  rp  rû   )rG   rH   rI   r{  r[   rK   Úvalues_0r¦   r,  r¢   ÚiÚrowÚ	extensionr±   Úcol_exprrM  Úaccumulated_namesrV   Ú	new_params       `              r5   rš   rš     s—  ø€ ð €HØÐ€Fà—v’v˜nÑ-Ô-°TÐ9ÐØ	Ô	(€BØˆ>ˆ>ˆ>Ý˜B˜q˜r˜rœFÑ#Ô#ð !ð !‰ˆˆ3Ø02ˆ	à@Ð@Ð@Ð@°C·I²I±K´KÐ@Ñ@Ô@ˆà7?ð 	Lð 	LÑ3ˆC�˜5Ð"3ØŒw˜#ˆ~ˆ~Ø”g�åÔ(¨¨S¬Ñ2Ô2ð 
NÝ 2Ø ØØ˜Cœð!ð '¨#¬'°1°q±5Ð)9Ñ9Ø(8ð!ð !ð ð!ð !�I�Ið !1 Ô 0°°S´×1DÒ1DÑ1FÔ1FÐ MÐ MÈ"Ð MÐ M�I�Iå<Ø˜d C¨¨Bñô �	ð ×Ò˜c 8¨YÐ8IÐJÑKÔKÐKÐKà�Š�iÑ Ô Ð Ð à€Mr7   c                óÜ  — |D ]è\  }} ||¦  «        }	|	�|                      |	|¦  «         Œ)|                      ||j        ¬¦  «        }
t          j        |¦  «        r) | j        t          j        d ||j        ¬¦  «        fi |¤Ž}nM|j        r&|j        j	        r| 
                    |j        ¦  «        } | j        |                     ¦   «         fi |¤Ž}|                     ||
|df¦  «         Œéd S )Nrt  )rÍ   rF   )Ú
setdefaultr·   r(  r   r)  r   rÎ   rÏ   r*  r×   rØ   r+  rû   )rG   rI   r¥   r¤   r[   r¦   rK   rf   rg   Úcolkeyrƒ  s              r5   rŒ   rŒ   J  s3  € ð &ð 0ð 0‰ˆˆ1Ø� Ñ"Ô"ˆØÐØ×!Ò! &¨!Ñ,Ô,Ð,Ð,ð  ×'Ò'Ø Ô!Nð (ñ ô ˆHõ Ô$ QÑ'Ô'ð ;Ø$�HÔ$ÝÔ*¨4°¸!¼&ÐAÑAÔAðð ØEGðð ��ð Ô'ð <¨A¬F¬Nð <ð ×3Ò3°A´FÑ;Ô;�Aà$�HÔ$ Q§\¢\¡^¤^Ð:Ð:°rÐ:Ð:�ð �MŠM˜1˜h¨¨2Ð.Ñ/Ô/Ð/Ð/ð=0ð 0r7   c                óX  — | j         }|o<t          |¦  «        o-|j         o%| j         p|j        o|j        o|j         o|j         }|o|j        o|j	        j
        du}|o1|j        o*|j        j        o|j        o| p|j        p|j        p|j        }|rd}t          |¦  «        rc|o|j        }|p|j        p|j        }	|o| j        o|j        o|	p|j        o|j        du }
d}|
r#|	r!|j        r|                      |j	        ¦  «        }n`|j        r&|j        o|j        j        o|j        o|j        }d}
d}n3|j        r&|j        o|j        j        o|j        o|j        }d}
d}nd}d}
d}|r6|j        st7          |j	        j        ¦  «        }nt7          |j        ¦  «        }nd}||p||||
|fS )z´determines RETURNING strategy, if any, for the statement.

    This is where it's determined what we need to fetch from the
    INSERT or UPDATE statement after it's invoked.

    NF)r�   r†   Ú_inlinerœ   Úinsert_executemany_returningr€   r   r‡   r  rj   r  Úinsert_returningÚ_primary_tablerz   Ú_supports_implicit_returningÚfavor_returning_over_lastrowidr  r@   Ú!use_insertmanyvalues_wo_returningÚ_post_values_clauseÚ_sort_by_parameter_orderÚ_get_sentinel_column_for_tabler�   Úupdate_returningr�   Údelete_returningr$  r“   r.   )rG   rH   rI   rJ   r�   r  r  rz   Úshould_implicit_return_defaultsÚexplicit_returningr@   rA   r  s                r5   r  r  t  sì  € ð Ô€Gð 	ð 		4Ý# MÑ2Ô2ð		4à”Ðð		4ð Ô(Ð(ð PØÔ4ÐN¸Ô9Nð		4ð ”Ðð		4ð Ô3Ð3ð ð  	ð 	9ØÔ'ð	9àŒJÔ,°DÐ8ð ð 	ð 	
ð Ô$ð	
ð
 Ô(Ô;ð	
ð Ô6ð	
ð$ %Ð$ÐN¨Ô(Nð %ØÔ2ð%àÔ$ð- ð2 ð $Ø#Ðå˜}Ñ-Ô-ð 9$àÐ8 4Ô#8ð 	(ð ,ð ,ØŒð,àÔ+ð 	ð ð ØÔ(ðàÔ,ðð #ð àÔ=ð 9ð
 Ô0°DÐ8ð 	ð"  $Ðà ð	à"ð	ð Ô-ð	ð
 $,×#JÒ#JØ”
ñ$ô $Ð øð 
Ô	ð $àÔ!ð )ØÔ,Ô?ð)àÔ:ð)ð Ô(ð	 	(ð  %ÐØ#ÐÐØ	Ô	ð $àÔ!ð )ØÔ,Ô?ð)àÔ:ð)ð Ô(ð	 	(ð  %ÐØ#ÐÐà*/Ð'Ø$ÐØ#Ðà&ð (ØÔ,ð 		Jõ (+¨4¬:¬<Ñ'8Ô'8Ð$Ð$å'*¨4Ô+HÑ'IÔ'IÐ$Ð$à#'Ð ð 	ØÐ=Ð=Ø ØØØðð r7   c                ó¼   — d| j         j        ›d| j        ›d| j         j        ›d�}t          | j         j        ¦  «        dk    r|dz  }t          j        |¦  «         d S )NzColumn 'ú.z6' is marked as a member of the primary key for table 'z×', but has no Python-side or server-side default generator indicated, nor does it indicate 'autoincrement=True' or 'nullable=True', and no explicit value is passed.  Primary key columns typically may not store NULL.r   a0   Note that as of SQLAlchemy 1.1, 'autoincrement=True' must be indicated explicitly for composite (e.g. multicolumn) primary keys if AUTO_INCREMENT/SERIAL/IDENTITY behavior is expected for one of the columns in the primary key. CREATE TABLE statements are impacted by this change as well on most backends.)rj   ÚfullnamerÄ   Úlenr  r"   Úwarn)r.   Úmsgs     r5   r  r    so   € € ð Œ7ÔÐÐ˜QœV˜V˜V Q¤WÔ%5Ð%5Ð%5ð	7ð õ ˆ1Œ7ÔÑÔ !Ò#Ð#Øðñ	
ˆõ 	„Iˆc�N„N€N€N€Nr7   )r.   r/   r0   r1   )rG   r$   rH   r'   rI   r&   rJ   r>   rK   r   r0   r:   ).FNF)rG   r$   r±   r/   rÂ   r   r·   rÃ   rQ   r>   rÄ   rÅ   rÆ   r>   rK   r   r0   rÇ   )
rG   r$   r±   r/   rÂ   r   rK   r   r0   rÇ   )TFNF)rG   r$   r±   r/   rÂ   r   r·   r>   rQ   r>   rÄ   rÅ   rÆ   r>   rK   r   r0   rË   )rG   r$   rH   r'   rI   r&   r0   rÛ   )rG   r$   rH   r'   r.   r1   r¦   r9  rK   r:  r0   r;  ).)
rG   r$   r.   r/   r·   rÃ   rK   r   r0   rÇ   )
rG   r$   r.   r/   r·   rE  rK   r   r0   rF  )TN)rG   r$   r.   r/   r·   r>   rÄ   rÅ   rK   r   r0   rI  )rG   r$   rH   r'   r.   r8   rV  rm  rK   r:  r0   rÇ   )rG   r$   rH   r'   rI   r&   r{  ru   r[   rv   rK   r:  r0   r<   )TÚ__doc__Ú
__future__r   rç   rë   r¾   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Ú r   r   r   r   Úbaser   r   r†   r   Úschemar   r   rð   r   r   r!   r"   rG   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Úsymbolr-   r6   rÇ   Ú_CrudParamElementÚ_CrudParamElementStrÚ_CrudParamElementSQLExprÚ_CrudParamSequencer:   r®   r›   rU   rÚ   r}   r‘   r’   r‚   r  r  r  r  rü   r  r4  r@  rS  rp  r�   rš   rŒ   r  r  rF   r7   r5   ú<module>r©     sé  ððð ð
 #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø "Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àð 
Ø1Ð1Ð1Ð1Ð1Ð1Ø%Ð%Ð%Ð%Ð%Ð%Ø&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐØÐÐÐÐÐØ'Ð'Ð'Ð'Ð'Ð'Ø'Ð'Ð'Ð'Ð'Ð'Ø,Ð,Ð,Ð,Ð,Ð,Ø'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐàˆ4Œ;Øð	ñô €ðð ð ð ð ØØØØˆcÐ$Ð$Ô%ôð ˆS„MðôÐ ð ØØØØˆS„MðôÐ ð !ØØØØˆS„MðôÐ ð Ð+Ô,Ð ðAð Að Að Að A�*ñ Aô Að AðSð Sð Sð Sðl
$ð $ð $ðN 
ð
 !ØØØ!ð	ð 	ð 	ð 	ñ 
„ð	ð 
ðð ð ñ 
„ðð ØØØ!ðð ð ð ð ð2#4ð #4ð #4ðL3<ð 3<ð 3<ð 3<ðlBCð BCð BCðJA8ð A8ð A8ðH
ð 
ð 
ð<rAð rAð rAðj:.ð :.ð :.ðzJ,ð J,ð J,ðZ4
ð 4
ð 4
ðn&
ð &
ð &
ð &
ðR+.ð +.ð +.ð\ 
ð !ðð ð ð ñ 
„ðð 
ð&ð &ð &ñ 
„ð&ð Øð	ð ð ð ð ð 
ð !ðð ð ð ñ 
„ðð 
ð&ð &ð &ñ 
„ð&ð Øð	ð ð ð ð ð!Lð !Lð !Lð !Lð !L˜Ô/°Ô4ñ !Lô !Lð !LðH
ð 
ð 
ð 
ðBc-ð c-ð c-ðL+ð +ð +ð +ð\'0ð '0ð '0ðTNð Nð Nðbð ð ð ð r7   