§
    
 @g„½ ã                  óò	  — d Z ddlm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) 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
mZ d%dl2mZ3 d%d*l2m4Z4 d%d+l5m6Z6 d%d,l5m7Z7 e	rdd-lm8Z8 d%d.l9m:Z: 	 	 	 	 	 	 d`d0„Z;ej<         =                    d/d/¬1¦  «         G d2„ d3e$¦  «        ¦   «         Z>e1j?        ej<         =                    d4d/¬1¦  «         G d5„ d6e$¦  «        ¦   «         ¦   «         Z@e1j?        ej<         =                    d4¬7¦  «         G d8„ d9e@¦  «        ¦   «         ¦   «         ZAe1j?        ej<         =                    d4d4¬:¦  «        ej<         =                    d4d4d4¬;¦  «        ej<         =                    d4¬<¦  «         G d=„ d>e$¦  «        ¦   «         ¦   «         ¦   «         ¦   «         ZB G d?„ d@¦  «        ZC G dA„ dBe$¦  «        ZDe1j?        ej8         =                    d4¬<¦  «         G dC„ dDe$¦  «        ¦   «         ¦   «         ZEe1j?        ej8         =                    dE¬F¦  «        ej8         =                    d¬F¦  «         G dG„ dHeD¦  «        ¦   «         ¦   «         ¦   «         ZFe1j?        ej8         =                    d4¬F¦  «        ej8         =                    dI¬F¦  «        ej8         =                    dJ¬F¦  «        ej8         =                    dK¬F¦  «        ej8         =                    dL¬F¦  «         G dM„ dNeDejG        e1jH        ¦  «        ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZI G dO„ dP¦  «        ZJ G dQ„ dReD¦  «        ZKej8         =                    dS¬F¦  «         G dT„ dUeK¦  «        ¦   «         ZLe1j?        ej8         =                    dV¬F¦  «         G dW„ dXeK¦  «        ¦   «         ¦   «         ZMe1j?        ej8         =                    dY¬F¦  «        ej8         =                    d/¬F¦  «         G dZ„ d[eD¦  «        ¦   «         ¦   «         ¦   «         ZNe1j?        ej8         =                    d\¬F¦  «         G d]„ d^eKejG        ¦  «        ¦   «         ¦   «         ZOd_„ ZPdS )azWsqlalchemy.orm.interfaces.LoaderStrategy
   implementations, and related MapperOptions.é    )ÚannotationsN)ÚAny)ÚDict)ÚTuple)ÚTYPE_CHECKINGé   )Ú
attributes)Úexc)Ú
interfaces)Úloading)Úpath_registry)Ú
properties)Úquery)Úrelationships)Ú
unitofwork)Úutil)Ú_DEFER_FOR_STATE)Ú_RAISE_FOR_STATE)Ú_SET_DEFERRED_EXPIRED)ÚATTR_WAS_SET)ÚLoaderCallableStatus)ÚPASSIVE_OFF)ÚPassiveFlag)Ú_column_descriptions)ÚORMCompileState)ÚORMSelectCompileState)ÚQueryContext)ÚLoaderStrategy)ÚStrategizedProperty)Ú_state_session)ÚInstanceState)ÚLoad)Ú	_none_set)ÚAliasedClassé   )Úevent)Úinspect)Úlog)Úsql)Úvisitors)ÚLABEL_STYLE_TABLENAME_PLUS_COL)ÚSelect)ÚRelationshipProperty)ÚColumnElementFc	                óæ  ‡‡‡‡— g }
|o| j         Š|r!| j        r|
                     t          ¦  «         | j        | j        j        v r3| j        j        | j                 \  ŠŠ|
                     ˆˆfd„¦  «         |r|
                     t          j        ¦  «         |r)| j	        Š‰r | j
        r|
                     ˆˆfd„¦  «         |j        D ]¤}| |j                             | j        ¦  «        u r�|j                             | j        ¦  «        sbt!          j        |j        | j        f| ‰|||o| j        p| j        t(          j        u ||||| p| j         | j        dœ|	¤Ž}|
D ]} ||| ¦  «         ŒŒ¥d S )Nc                ó6   •— t          j        | |j        ‰fi ‰¤ŽS ©N)Úorm_utilÚ_validator_eventsÚkey)ÚdescÚpropÚfnÚoptss     €€úM/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/orm/strategies.pyú<lambda>z%_register_attribute.<locals>.<lambda>X   s*   ø€ �xÔ9Ø�d”h ð ð  Ø&*ð ð  € ó    c                ó0   •— t          j        | ‰‰¦  «        S r1   )r	   Úbackref_listeners)r5   r6   ÚbackrefÚuselists     €€r9   r:   z%_register_attribute.<locals>.<lambda>f   s   ø€ ¥:Ô#?Ø˜' 7ñ$ô $€ r;   )Úparent_tokenr?   Úcompare_functionÚ	useobjectÚtrackparentÚtypecallableÚ	callable_Úactive_historyÚ
impl_classÚsend_modified_eventsÚdoc)r?   Úsingle_parentÚappendÚsingle_parent_validatorr4   ÚparentÚ
validatorsr   Útrack_cascade_eventsÚback_populatesÚ_effective_sync_backrefÚself_and_descendantsÚ_propsÚgetÚclass_managerÚ_attr_has_implr	   Úregister_attribute_implÚclass_Ú	directionr   Ú	ONETOMANYÚviewonlyrI   )r6   ÚmapperrB   rA   rD   rE   Úproxy_propertyrF   rG   ÚkwÚlisten_hooksÚmr5   Úhookr>   r7   r8   r?   s                 @@@@r9   Ú_register_attributerb   B   s  øøøø€ ð €LàÐ(˜DœL€Gàð 5�TÔ'ð 5Ø×ÒÕ3Ñ4Ô4Ð4à„x�4”;Ô)Ð)Ð)Ø”;Ô)¨$¬(Ô3‰ˆˆDØ×Òðð ð ð ð ñ	
ô 	
ð 	
ð ð =Ø×Ò�JÔ;Ñ<Ô<Ð<ð ð ØÔ%ˆØð 	�tÔ3ð 	Ø×Òðð ð ð ð ñô ð ð" Ô(ð !ð !ˆØ�1”8—<’<ØŒHñ
ô 
ð 
ð 
à”/×0Ò0°´Ñ:Ô:ð
õ Ô5Ø”Ø”ðð "ØØ!1Ø#Ø%ð àÔ&ð >Ø”~­Ô)=Ð=à)Ø#Ø-Ø%Ø)2 ]Ð%G¸$¼-Ð6GØ”Hð#ð ð$ ð%ð ˆDð* %ð !ð !�Ø��T˜4Ñ Ô Ð Ð øð5!ð !r;   )Ú
instrumentÚdeferredc                  ó6   ‡ — e Zd ZdZdZˆ fd„Z	 dd„Zd„ Zˆ xZS )ÚUninstrumentedColumnLoaderz¶Represent a non-instrumented MapperProperty.

    The polymorphic_on argument of mapper() often results in this,
    if the argument is against the with_polymorphic selectable.

    ©Úcolumnsc                ón   •— t          ¦   «                              ||¦  «         | j        j        | _        d S r1   )ÚsuperÚ__init__Úparent_propertyrh   ©ÚselfrM   Ústrategy_keyÚ	__class__s      €r9   rk   z#UninstrumentedColumnLoader.__init__ž   s.   ø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.ØÔ+Ô3ˆŒˆˆr;   Nc                ód   — | j         D ]'}|r|j         |         }|                     ||¦  «         Œ(d S r1   )rh   Ú_append_dedupe_col_collection)	rn   Úcompile_stateÚquery_entityÚpathÚloadoptÚadapterÚcolumn_collectionÚkwargsÚcs	            r9   Úsetup_queryz&UninstrumentedColumnLoader.setup_query¢   sQ   € ð ”ð 	Nð 	NˆAØð 'Ø”O AÔ&�Ø×7Ò7¸Ð;LÑMÔMÐMÐMð	Nð 	Nr;   c	                ó   — d S r1   © ©	rn   Úcontextrt   ru   rv   r\   Úresultrw   Ú
populatorss	            r9   Úcreate_row_processorz/UninstrumentedColumnLoader.create_row_processor±   s	   € ð 	ˆr;   r1   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__rk   r{   r‚   Ú__classcell__©rp   s   @r9   rf   rf   “   su   ø€ € € € € ðð ð €Ið4ð 4ð 4ð 4ð 4ð ðNð Nð Nð Nðð ð ð ð ð ð r;   rf   Tc                  ó<   ‡ — e Zd ZdZdZˆ fd„Z	 dd„Zd„ Zd„ Zˆ xZ	S )	ÚColumnLoaderz8Provide loading behavior for a :class:`.ColumnProperty`.)rh   Úis_compositec                ó¢   •— t          ¦   «                              ||¦  «         | j        j        | _        t	          | j        d¦  «        | _        d S )NÚcomposite_class)rj   rk   rl   rh   ÚhasattrrŒ   rm   s      €r9   rk   zColumnLoader.__init__Æ   sF   ø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.ØÔ+Ô3ˆŒÝ# DÔ$8Ð:KÑLÔLˆÔÐÐr;   Fc	                óò   — | j         D ]D}
|r*|r|                     |
¦  «        }
|
€ d S n|j         |
         }
|                     |
|¦  «         ŒE| j         d         }|r|j         |         }|€d S ||| j        <   d S ©Nr   )rh   Úadapt_check_presentrr   rl   )rn   rs   rt   ru   rv   rw   rx   Úmemoized_populatorsÚcheck_for_adaptry   rz   Úfetchs               r9   r{   zColumnLoader.setup_queryË   s²   € ð ”ð 		Nð 		NˆAØð +Ø"ð +Ø×3Ò3°AÑ6Ô6�AØ�yØ˜˜ð !ð  œ¨Ô*�Aà×7Ò7¸Ð;LÑMÔMÐMÐMà”˜Q”ˆØð 	Ø”O EÔ*ˆEØˆ}ð �à49Ð˜DÔ0Ñ1Ð1Ð1r;   c                ó  — d| _         | j        d         j        }| j        j        pA| j        d         j        p/|j        d uo&|j                             |j        d ¦  «        | j        u }t          | j        |d|j
        |¬¦  «         d S )NTr   F)rB   rA   rF   )Úis_class_levelrh   Útyperl   rF   Úprimary_keyÚversion_id_colÚ_columntopropertyrT   rb   Úcompare_values)rn   r\   ÚcoltyperF   s       r9   Úinit_class_attributez!ColumnLoader.init_class_attributeì   s¬   € Ø"ˆÔØ”,˜q”/Ô&ˆð Ô Ô/ð ØŒ|˜AŒÔ*ðð Ô%¨TÐ1ð (ØÔ,×0Ò0°Ô1FÈÑMÔMØÔ'ð(ð 	õ 	ØÔ ØØØ$Ô3Ø)ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r;   c	                óö   — | j         D ]N}	|r|j         |	         }	|                     |	d¦  «        }
|
r%|d                              | j        |
f¦  «          d S ŒO|d                              | j        df¦  «         d S ©NFÚquickÚexpireT)rh   Ú_getterrK   r4   )rn   r   rt   ru   rv   r\   r€   rw   r�   ÚcolÚgetters              r9   r‚   z!ColumnLoader.create_row_processor  s˜   € ð ”<ð 	:ð 	:ˆCØð +Ø”o cÔ*�Ø—^’^ C¨Ñ/Ô/ˆFØð Ø˜7Ô#×*Ò*¨D¬H°fÐ+=Ñ>Ô>Ð>Ø��ðð �xÔ ×'Ò'¨¬°4Ð(8Ñ9Ô9Ð9Ð9Ð9r;   ©F)
rƒ   r„   r…   r†   r‡   rk   r{   rž   r‚   rˆ   r‰   s   @r9   r‹   r‹   ¿   sƒ   ø€ € € € € ð CÐBà)€IðMð Mð Mð Mð Mð ð:ð :ð :ð :ðB
ð 
ð 
ð,:ð :ð :ð :ð :ð :ð :r;   r‹   )Úquery_expressionc                  ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚExpressionColumnLoaderc                óî   •‡— t          ¦   «                              ||¦  «         t          j        ¦   «                              d ¦  «        Št          ˆfd„| j        j        D ¦   «         ¦  «        | _        d S )Nc              3  óD   •K  — | ]}|                      ‰¦  «         V — Œd S r1   )Úcompare)Ú.0rz   Únulls     €r9   ú	<genexpr>z2ExpressionColumnLoader.__init__.<locals>.<genexpr>%  sA   øè è € ð ,
ð ,
Ø$%�—	’	˜$‘”Ðð,
ð ,
ð ,
ð ,
ð ,
ð ,
r;   )	rj   rk   r)   r®   ÚlabelÚanyrl   rh   Ú_have_default_expression)rn   rM   ro   r®   rp   s      @€r9   rk   zExpressionColumnLoader.__init__  s}   øø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.õ
 Œx‰zŒz×Ò Ñ%Ô%ˆÝ(+ð ,
ð ,
ð ,
ð ,
Ø)-Ô)=Ô)Eð,
ñ ,
ô ,
ñ )
ô )
ˆÔ%Ð%Ð%r;   c                óø   — d }	|r|j         r|j         }	n| j        r| j        j        }	|	€d S |	D ]'}
|r|j        |
         }
|                     |
|¦  «         Œ(|	d         }|r|j        |         }|€d S ||| j        <   d S r‘   )Ú_extra_criteriar²   rl   rh   rr   )rn   rs   rt   ru   rv   rw   rx   r“   ry   rh   rz   r•   s               r9   r{   z"ExpressionColumnLoader.setup_query)  sÁ   € ð ˆØð 	3�wÔ.ð 	3ØÔ-ˆGˆGàÔ*ð 	3ØÔ*Ô2ˆGàˆ?ØˆFàð 	Nð 	NˆAØð 'Ø”O AÔ&�Ø×7Ò7¸Ð;LÑMÔMÐMÐMà˜”
ˆØð 	Ø”O EÔ*ˆEØˆ}ð �à49Ð˜DÔ0Ñ1Ð1Ð1r;   c	                ó  — |rƒ|j         r~|j         }	|	D ]N}
|r|j        |
         }
|                     |
d¦  «        }|r%|d                              | j        |f¦  «          d S ŒO|d                              | j        df¦  «         d S d S d S r    )r´   rh   r£   rK   r4   )rn   r   rt   ru   rv   r\   r€   rw   r�   rh   r¤   r¥   s               r9   r‚   z+ExpressionColumnLoader.create_row_processorN  sÄ   € ð ð 	>�wÔ.ð 	>ØÔ-ˆGàð >ð >�Øð /Ø!œ/¨#Ô.�CØŸš¨¨UÑ3Ô3�Øð Ø˜wÔ'×.Ò.°´¸&Ð/AÑBÔBÐBØ�E�Eðð ˜8Ô$×+Ò+¨T¬X°tÐ,<Ñ=Ô=Ð=Ð=Ð=ð	>ð 	>ð 	>ð 	>r;   c                óp   — d| _         t          | j        |d| j        d         j        j        d¬¦  «         d S )NTFr   )rB   rA   Úaccepts_scalar_loader)r—   rb   rl   rh   r˜   rœ   ©rn   r\   s     r9   rž   z+ExpressionColumnLoader.init_class_attributeh  sI   € Ø"ˆÔåØÔ ØØØ!œ\¨!œ_Ô1Ô@Ø"'ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r;   )rƒ   r„   r…   rk   r{   r‚   rž   rˆ   r‰   s   @r9   r©   r©     sf   ø€ € € € € ð	
ð 	
ð 	
ð 	
ð 	
ð#:ð #:ð #:ðJ>ð >ð >ð4	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
r;   r©   )rd   rc   )rd   rc   Ú	raiseload)Ú
do_nothingc                  óH   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Z	 d
d„Zd„ Z	d	„ Z
ˆ xZS )ÚDeferredColumnLoaderzAProvide loading behavior for a deferred :class:`.ColumnProperty`.)rh   Úgroupr¹   c                ó  •— t          ¦   «                              ||¦  «         t          | j        d¦  «        rt	          d¦  «        ‚| j                             dd¦  «        | _        | j        j        | _        | j        j	        | _	        d S )NrŽ   z8Deferred loading for composite types not implemented yetr¹   F)
rj   rk   r�   rl   ÚNotImplementedErrorÚstrategy_optsrT   r¹   rh   r½   rm   s      €r9   rk   zDeferredColumnLoader.__init__  s‚   ø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.Ý�4Ô'Ð):Ñ;Ô;ð 	Ý%ØMñô ð ð Ô+×/Ò/°¸UÑCÔCˆŒØÔ+Ô3ˆŒØÔ)Ô/ˆŒ
ˆ
ˆ
r;   c	           
     ó¬  — |j         r_|j        j        j        rN| j        |j        j        j        v r6| j                             d¦  «                             ||||||||¦  «         d S | j        sD| j	        r| j        j
        }	n| j        j        }	|d                              | j        |	f¦  «         d S |d                              | j        df¦  «         d S )N©)rd   F©rc   TÚnewr¢   F)Úrefresh_stater   Ú_compile_optionsÚ_only_load_propsr4   rl   Ú_get_strategyr‚   r—   r¹   Ú_raise_column_loaderÚ_deferred_column_loaderrK   )
rn   r   rt   ru   rv   r\   r€   rw   r�   Úset_deferred_for_local_states
             r9   r‚   z)DeferredColumnLoader.create_row_processor‰  s  € ð* Ô!ð	;à”Ô.Ô?ð	;ð ”˜GœMÔ:ÔKÐKÐKàÔ ×.Ò.Ø;ñô ç"Ò"ØØØØØØØØñ	ô 	ð 	ð 	ð 	ð Ô$ð 	;ØŒ~ð àÔ(Ô=ð -Ð,ð
 Ô(Ô@ð -ð �uÔ×$Ò$ d¤hÐ0LÐ%MÑNÔNÐNÐNÐNà�xÔ ×'Ò'¨¬°5Ð(9Ñ:Ô:Ð:Ð:Ð:r;   c                ó|   — d| _         t          | j        |d| j        d         j        j        | j        d¬¦  «         d S )NTFr   )rB   rA   rE   Úload_on_unexpire)r—   rb   rl   rh   r˜   rœ   Ú_load_for_stater¸   s     r9   rž   z)DeferredColumnLoader.init_class_attribute¼  sO   € Ø"ˆÔåØÔ ØØØ!œ\¨!œ_Ô1Ô@ØÔ*Ø"ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r;   Nc	           	     óä  — |j         j        r| j        j        sj|r1t	          | j        ¦  «                             | j        j        ¦  «        s7|r*| j	        r#|j
                             d| j	        z  d¦  «        s|r7| j        |v r. | j                             d¦  «        j        |||||||fi |	¤Ž d S | j        rt           || j        <   d S | j        st$          || j        <   d S t&          || j        <   d S )Nzundefer_group_%sFrÂ   )Úcompile_optionsÚ_render_for_subqueryrl   Ú_renders_in_subqueriesÚsetrh   ÚintersectionrM   Ú_should_undefer_in_wildcardr½   Ú
local_optsrT   r4   rÈ   r{   r—   r   r¹   r   r   )
rn   rs   rt   ru   rv   rw   rx   r“   Úonly_load_propsr^   s
             r9   r{   z DeferredColumnLoader.setup_queryÈ  sj  € ð Ô-ÔBð%	Ið Ô(Ô?ð%	Ið ð%	Iõ ˜œÑ%Ô%×2Ò2Ø”KÔ;ñô ð%	Ið ð%	Ið ”Jð%	Ið Ô&×*Ò*Ø&¨¬Ñ3°Uñô ð%	Ið$  ð%%	Ið$ %)¤H°Ð$?Ð$?ðˆDÔ ×.Ò.Ø;ñô äØØØØØØ!Ø#ðð ð ðð ð ð ð ð Ô ð 	IÝ8MÐ Ô 4Ñ5Ð5Ð5Ø”ð 	IÝ8HÐ Ô 4Ñ5Ð5Ð5å8HÐ Ô 4Ñ5Ð5Ð5r;   c                ó  ‡ ‡— ‰j         st          j        S |t          j        z  st          j        S ‰j        j        }‰ j        rˆ fd„|j	        D ¦   «         }n‰ j         g}ˆfd„|D ¦   «         }t          ‰¦  «        }|€2t          j        dt          j        ‰¦  «        ›d‰ j         ›d�¦  «        ‚‰ j        r‰                      ‰|d¦  «         t#          j        ‰j        ‰t'          |¦  «        t(          ¦  «         t          j        S )Nc                óœ   •— g | ]H}t          |t          ¦  «        r1t          |j        t          ¦  «        r|j        ‰j        k    ¯A|j        ‘ŒIS r}   )Ú
isinstancer   Ústrategyr¼   r½   r4   )r­   Úprn   s     €r9   ú
<listcomp>z8DeferredColumnLoader._load_for_state.<locals>.<listcomp>  sb   ø€ ð ð ð àÝ˜aÕ!4Ñ5Ô5ðõ ˜qœzÕ+?Ñ@Ô@ð	ð
 ”G˜tœzÒ)Ð)ð	 ”ð *Ð)Ð)r;   c                ó&   •— g | ]}|‰j         v ¯|‘ŒS r}   )Ú
unmodified)r­   ÚkÚstates     €r9   rÝ   z8DeferredColumnLoader._load_for_state.<locals>.<listcomp>  s&   ø€ Ð<Ð<Ð<�q a¨5Ô+;Ð&;Ð&;�Ð&;Ð&;Ð&;r;   úParent instance zB is not bound to a Session; deferred load operation of attribute 'ú' cannot proceedÚraise)r4   r   Ú
ATTR_EMPTYr   ÚSQL_OKÚPASSIVE_NO_RESULTÚmanagerr\   r½   Úiterate_propertiesr    Úorm_excÚDetachedInstanceErrorr2   Ú	state_strr¹   Ú_invoke_raise_loadr   Úload_scalar_attributesrÓ   r   r   )rn   rá   ÚpassiveÚlocalparentÚtoloadr½   Úsessions   ``     r9   rÎ   z$DeferredColumnLoader._load_for_stateû  s9  øø€ ØŒyð 	3Ý'Ô2Ð2à�Ô+Ñ+ð 	:Ý'Ô9Ð9à”mÔ*ˆàŒ:ð 		 ðð ð ð à$Ô7ðñ ô ˆFˆFð ”h�ZˆFð =Ð<Ð<Ð<˜FÐ<Ñ<Ô<ˆå  Ñ'Ô'ˆØˆ?ÝÔ/Ð/õ Ô% eÑ,Ô,Ð,Ð,¨d¬h¨h¨hð8ñô ð ð Œ>ð 	=Ø×#Ò# E¨7°GÑ<Ô<Ð<åÔ&ØŒL˜%¥ U¡¤­[ñ	
ô 	
ð 	
õ $Ô0Ð0r;   c                ó2   — t          j        d| ›d�¦  «        ‚)Nú'z(' is not available due to raiseload=True©Úsa_excÚInvalidRequestError©rn   rá   rï   Úlazys       r9   rí   z'DeferredColumnLoader._invoke_raise_load#  s$   € ÝÔ(Ð(Ø=A¸T¸TÐCñ
ô 
ð 	
r;   r1   )rƒ   r„   r…   r†   r‡   rk   r‚   rž   r{   rÎ   rí   rˆ   r‰   s   @r9   r¼   r¼   t  s¢   ø€ € € € € ð LÐKà/€Ið0ð 0ð 0ð 0ð 0ð1;ð 1;ð 1;ðf

ð 

ð 

ð* ð1Ið 1Ið 1Ið 1Iðf&1ð &1ð &1ðP
ð 
ð 
ð 
ð 
ð 
ð 
r;   r¼   c                  ó0   — e Zd ZdZd
dd„Zej        fd„Zd	S )ÚLoadDeferredColumnsz7serializable loader object used by DeferredColumnLoaderFr4   Ústrr¹   Úboolc                ó"   — || _         || _        d S r1   )r4   r¹   )rn   r4   r¹   s      r9   rk   zLoadDeferredColumns.__init__,  s   € ØˆŒØ"ˆŒˆˆr;   c                ó°   — | j         }|j        j        }|j        |         }| j        rd}nd}|                     |¦  «        }|                     ||¦  «        S )N)©rd   TrÃ   )r¹   T)r   rÃ   )r4   rè   r\   rS   r¹   rÈ   rÎ   )rn   rá   rï   r4   rð   r6   ro   rÛ   s           r9   Ú__call__zLoadDeferredColumns.__call__0  se   € ØŒhˆà”mÔ*ˆØÔ! #Ô&ˆØŒ>ð 	FðˆLˆLð FˆLØ×%Ò% lÑ3Ô3ˆØ×'Ò'¨¨wÑ7Ô7Ð7r;   Nr¦   )r4   rü   r¹   rý   )rƒ   r„   r…   r†   rk   r	   r   r  r}   r;   r9   rû   rû   )  sO   € € € € € ØAÐAð#ð #ð #ð #ð #ð '1Ô&<ð 8ð 8ð 8ð 8ð 8ð 8r;   rû   c                  ó,   ‡ — e Zd ZdZdZˆ fd„Zd„ Zˆ xZS )ÚAbstractRelationshipLoaderz0LoaderStratgies which deal with related objects.)r\   Útargetr?   Úentityc                óÔ   •— t          ¦   «                              ||¦  «         | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        d S r1   )rj   rk   rl   r\   r  r  r?   rm   s      €r9   rk   z#AbstractRelationshipLoader.__init__F  sU   ø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.ØÔ*Ô1ˆŒØÔ*Ô1ˆŒØÔ*Ô1ˆŒØÔ+Ô3ˆŒˆˆr;   c	           
     ój   — | j                              d¦  «                             ||||||||¦  «        S )N))rù   Ú	immediate)rl   rÈ   r‚   r~   s	            r9   Ú#_immediateload_create_row_processorz>AbstractRelationshipLoader._immediateload_create_row_processorM  sJ   € ð Ô#×1Ò1Ø$ñ
ô 
ç
Ò
ØØØØØØØØñ	
ô 	
ð	
r;   )rƒ   r„   r…   r†   r‡   rk   r	  rˆ   r‰   s   @r9   r  r  A  sR   ø€ € € € € Ø:Ð:à7€Ið4ð 4ð 4ð 4ð 4ð
ð 
ð 
ð 
ð 
ð 
ð 
r;   r  c                  ó   — e Zd ZdZdS )ÚDoNothingLoaderzßRelationship loader that makes no change to the object's state.

    Compared to NoLoader, this loader does not initialize the
    collection/attribute to empty/none; the usual default LazyLoader will
    take effect.

    N)rƒ   r„   r…   r†   r}   r;   r9   r  r  f  s   € € € € € ðð ð ð r;   r  Únoload)rù   c                  ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚNoLoaderzQProvide loading behavior for a :class:`.Relationship`
    with "lazy=None".

    r}   c                óX   — d| _         t          | j        |d| j        j        ¬¦  «         d S )NT)rB   rD   )r—   rb   rl   Úcollection_classr¸   s     r9   rž   zNoLoader.init_class_attribute}  s@   € Ø"ˆÔåØÔ ØØØÔ-Ô>ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r;   c	                óV   ‡ — ˆ fd„}	|d                               ‰ j        |	f¦  «         d S )Nc                ód   •— ‰j         rt          j        | |‰j        ¦  «         d S d |‰j        <   d S r1   )r?   r	   Úinit_state_collectionr4   )rá   Údict_Úrowrn   s      €r9   Úinvoke_no_loadz5NoLoader.create_row_processor.<locals>.invoke_no_load’  s9   ø€ ØŒ|ð 'ÝÔ0°¸¸t¼xÑHÔHÐHÐHÐHà"&��d”h‘��r;   rÄ   )rK   r4   )
rn   r   rt   ru   rv   r\   r€   rw   r�   r  s
   `         r9   r‚   zNoLoader.create_row_processor‡  sD   ø€ ð	'ð 	'ð 	'ð 	'ð 	'ð 	�5Ô× Ò  $¤(¨NÐ!;Ñ<Ô<Ð<Ð<Ð<r;   N)rƒ   r„   r…   r†   r‡   rž   r‚   r}   r;   r9   r  r  r  sC   € € € € € ðð ð
 €Ið
ð 
ð 
ð=ð =ð =ð =ð =r;   r  Úselecträ   Úraise_on_sqlÚbaked_selectc                  óÎ   ‡ — e Zd ZU dZdZded<   ded<   ded<   ded<   d	ed
<   dˆ fd„Zd„ Zd„ Zd„ Z	d„ Z
ddddej        fd„Zd„ Z ej        d¦  «        d„ ¦   «         Zd„ Zˆ xZS )Ú
LazyLoaderztProvide loading behavior for a :class:`.Relationship`
    with "lazy=True", that is loads when first accessed.

    )Ú
_lazywhereÚ_rev_lazywhereÚ_lazyload_reverse_optionÚ	_order_byÚuse_getÚis_aliased_classÚ_bind_to_colÚ_equated_columnsÚ_rev_bind_to_colÚ_rev_equated_columnsÚ_simple_lazy_clauseÚ_raise_alwaysÚ_raise_on_sqlzColumnElement[bool]r  zDict[str, ColumnElement[Any]]r"  r  r$  úRelationshipProperty[Any]rl   rM   ro   úTuple[Any, ...]c                óÜ  •— t          ¦   «                              ||¦  «         | j        d         dk    | _        | j        d         dk    | _        t          | j        ¦  «        j        | _        | j        j	        }| 
                    ¦   «         \  | _        | _        | _        | 
                    d¬¦  «        \  | _        | _        | _        | j        j        r.d„ t%          j        | j        j        ¦  «        D ¦   «         | _        nd | _        | j                             d| | j        ¦  «         | j         o?| j         o7| j        j        d                              | j        dd	| j        j        ¬
¦  «        | _        | j        rlt;          | j        ¦  «        D ]:}|| j        j        v r*| j        j        |         D ]}| j        |         | j        |<   ŒŒ;| j                             d| ¦  «         d S d S )Nrù   rä   r  T)Úreverse_directionc                ó<   — g | ]}t          j        |d di¦  «        ‘ŒS )Ú
_orm_adaptT)Úsql_utilÚ_deep_annotate)r­   Úelems     r9   rÝ   z'LazyLoader.__init__.<locals>.<listcomp>×  s:   € ð ð ð àõ Ô'¨¨|¸TÐ.BÑCÔCðð ð r;   z%s lazy loading clause %sr   F©Úuse_proxiesÚcompare_keysÚequivalentsz4%s will use Session.get() to optimize instance loads)rj   rk   rÀ   r'  r(  r'   r  r!  rl   Ú_join_conditionÚcreate_lazy_clauser  r"  r#  r  r$  r%  Úorder_byr   Úto_listr  ÚloggerÚinfor?   Ú_get_clauser¬   r\   Ú_equivalent_columnsr   Úlist)rn   rM   ro   Újoin_conditionr¤   rz   rp   s         €r9   rk   zLazyLoader.__init__À  s  ø€ õ 	‰Œ×Ò˜ Ñ.Ô.Ð.Ø!Ô/°Ô7¸7ÒBˆÔØ!Ô/°Ô7¸>ÒIˆÔå '¨¬Ñ 4Ô 4Ô EˆÔàÔ-Ô=ˆð
 ×-Ò-Ñ/Ô/ñ		
ØŒOØÔØÔ!ð ×-Ò-ÀÐ-ÑEÔEñ		
ØÔØÔ!ØÔ%ð ÔÔ(ð 	"ðð å œL¨Ô)=Ô)FÑGÔGðñ ô ˆDŒNˆNð
 "ˆDŒNàŒ×ÒÐ4°d¸D¼OÑLÔLÐLð Ô%Ð%ð Ø”LÐ ðà”Ô'¨Ô*×2Ò2Ø”Ø Ø"Ø œKÔ;ð	 3ñ ô ð 	Œð Œ<ð 	Ý˜DÔ1Ñ2Ô2ð Nð N�Ø˜$œ+Ô9Ð9Ð9Ø!œ[Ô<¸SÔAð Nð N˜Ø37Ô3HÈÔ3M˜Ô-¨aÑ0Ð0øàŒK×ÒØIÈ4ñô ð ð ð ð	ð 	r;   c           	     ó   — d| _         | j        j        }| j        j        rd}d}n/| j        j        t
          j        us| j        s|rd}d}n	d}d}ndx}}t          | j        |d| j	        | j        j
        ||¬¦  «         d S )NTF)rB   rE   rD   rF   Ú_deferred_history)r—   rl   Ú_legacy_inactive_history_stylerF   rY   r   Ú	MANYTOONEr   rb   rÎ   r  )rn   r\   rB  rF   rA  s        r9   rž   zLazyLoader.init_class_attributeü  sÌ   € Ø"ˆÔð Ô Ô?ð 	'ð ÔÔ.ð 	7Ø!ˆNØ %ÐÐð Ô Ô*µ*Ô2FÐFÐFØ”<ð Gð .ð )Ø!%�Ø$)Ð!Ð!à!&�Ø$(Ð!Ð!à16Ð6ˆNÐ.åØÔ ØØØÔ*ØÔ-Ô>Ø)Ø/ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r;   c                óÐ   ‡‡— t          j        | j        ddi¦  «        }|| j        c}Šg Šd„ }t	          j        |i d|i¦  «         ˆˆfd„}t	          j        |i d|i¦  «        }|‰fS )Nr.  Tc                ó   — d| _         d S )NF)Úunique)Ú	bindparams    r9   Úvisit_bindparamzFLazyLoader._memoized_attr__simple_lazy_clause.<locals>.visit_bindparam'  s   € Ø$ˆIÔÐÐr;   rG  c                óÄ   •— | j         ‰v r*‰                     | j        ‰| j                  d f¦  «         d S | j        €$‰                     | j        d | j        f¦  «         d S d S r1   )Ú_identifying_keyrK   r4   ÚcallableÚvalue)rG  Úbind_to_colÚparamss    €€r9   rH  zFLazyLoader._memoized_attr__simple_lazy_clause.<locals>.visit_bindparam,  s   ø€ ØÔ)¨[Ð8Ð8Ø—’à!œØ# IÔ$>Ô?Øðñô ð ð ð ð Ô#Ð+Ø—’˜yœ}¨d°I´OÐDÑEÔEÐEÐEÐEð ,Ð+r;   )r/  r0  r  r"  r*   ÚtraverseÚcloned_traverse)rn   Ú	lazywhereÚ	criterionrH  rM  rN  s       @@r9   Ú"_memoized_attr__simple_lazy_clausez-LazyLoader._memoized_attr__simple_lazy_clause  s´   øø€ ÝÔ+ØŒO˜l¨DÐ1ñ
ô 
ˆ	ð #,¨TÔ->Ðˆ	�;àˆð	%ð 	%ð 	%õ 	Ô˜) R¨+°Ð)GÑHÔHÐHð
	Fð 
	Fð 
	Fð 
	Fð 
	Fð 
	Fõ Ô,Ø�r˜K¨Ð9ñ
ô 
ˆ	ð ˜&Ð Ð r;   c                ó¬  — | j         \  }}|€t          j        |d„ |D ¦   «         ¦  «        S | j        j        }|                     ¦   «         }t          j        |¦  «        }|t          j	        z  r|t          j	        z  }i }|D ]O\  }	}
}|
�B|r(|t          j
        z  r|                     |||
|¦  «        }n|                     |||
|¦  «        }|||	<   ŒP||fS )Nc                ó   — g | ]\  }}}|‘Œ	S r}   r}   )r­   r4   ÚidentrL  s       r9   rÝ   z4LazyLoader._generate_lazy_clause.<locals>.<listcomp>C  s   € ÐDÐDÐDÑ$5 C¨°˜CÐDÐDÐDr;   )r&  r/  Úadapt_criterion_to_nullrl   rM   Úobjr	   Úinstance_dictr   ÚINIT_OKÚLOAD_AGAINST_COMMITTEDÚ#_get_committed_state_attr_by_columnÚ_get_state_attr_by_column)rn   rá   rï   rR  Ú
param_keysr\   Úor  rN  r4   rV  rL  s               r9   Ú_generate_lazy_clausez LazyLoader._generate_lazy_clause>  s  € Ø $Ô 8Ñˆ	�:àˆ=ÝÔ3ØÐDÐD¸ÐDÑDÔDñô ð ð Ô%Ô,ˆà�IŠI‰KŒKˆÝÔ(¨Ñ+Ô+ˆà•[Ô(Ñ(ð 	+Ø•{Ô*Ñ*ˆGàˆØ!+ð 	 ð 	 ÑˆC�˜ØÐ Øð ˜w­Ô)KÑKð Ø"×FÒFØ˜u e¨Wñô �E�Eð #×<Ò<Ø˜u e¨Wñô �Eð  ˆF�3‰KˆKà˜&Ð Ð r;   c                ó8   — t          j        d| ›d|›d�¦  «        ‚)Nrô   z ' is not available due to lazy='rõ   rø   s       r9   rí   zLazyLoader._invoke_raise_load^  s*   € ÝÔ(Ð(Ø8<¸¸¸d¸d¸dÐCñ
ô 
ð 	
r;   Nr}   c                ó2  — |j         s&| j        j        s|j        r|j        st
          j        S |j          }d }	| j        o
| p|j         }
|t          j
        z  s|
r|t          j        z  s|rt
          j        S | j        r7|t          j        z  s(|
r|t          j        z  r|                      ||d¦  «         t%          |¦  «        }|sM|t          j        z  rt
          j        S t'          j        dt+          j        |¦  «        ›d| j         ›d�¦  «        ‚|
ræ|                      |||¦  «        }	t
          j        |	v rt
          j        S t
          j        |	v rt
          j        S t3          j        |	¦  «        rd S | j         |j        v r|t          j        z  st
          j        S |                     | j        |	||¬¦  «        }|�|t
          j         u rd S |S |t          j
        z  r|t          j        z  st
          j        S |  !                    |||	||||||¦	  «	        S )Nrä   râ   z> is not bound to a Session; lazy load operation of attribute 'rã   )rï   Úlazy_loaded_from)"r4   rl   Úload_on_pendingÚ_load_pendingÚ
session_idr   rå   r   r´   r   ræ   r	   ÚNON_PERSISTENT_OKrç   r'  ÚNO_RAISEÚRELATED_OBJECT_OKrí   r    rê   rë   r2   rì   Ú_get_ident_for_use_getÚ	NEVER_SETr#   Ú
issupersetÚdictÚDEFERRED_HISTORY_LOADr   Ú_identity_lookupr  ÚPASSIVE_CLASS_MISMATCHÚ_emit_lazyload)rn   rá   rï   rv   Úextra_criteriaÚextra_optionsÚalternate_effective_pathÚexecution_optionsÚpendingÚprimary_key_identityr   rò   Úinstances                r9   rÎ   zLazyLoader._load_for_statec  s¨  € ð Œyð 	3àÔ(Ô8ð	3ð Ô+ð	3ð
 Ô#ð	3õ (Ô2Ð2à”i�-ˆØ#Ðà”,ÐO¨ KÐ$N°wÔ7NÐ3Nˆà�+Ô,Ñ,ð 	:°Wð 	:Ø�*Ô6Ñ6ð	:Ø;Bð	:õ (Ô9Ð9ð Ôð	=ð �kÔ2Ñ2ð		=ð ð	=ð �[Ô:Ñ:ð	=ð ×#Ò# E¨7°GÑ<Ô<Ð<å  Ñ'Ô'ˆØð 	Ø�Ô-Ñ-ð >Ý+Ô=Ð=åÔ/Ð/õ Ô% eÑ,Ô,Ð,Ð,¨d¬h¨h¨hð8ñô ð ð ð '	>Ø#'×#>Ò#>Ø˜ ñ$ô $Ð õ $Ô5Ð9MÐMÐMÝ+Ô=Ð=Ý%Ô/Ð3GÐGÐGÝ+Ô5Ð5åÔ#Ð$8Ñ9Ô9ð Ø�tð ”˜EœJÐ&Ð&Ø¥+Ô"CÑCð 'õ ,Ô8Ð8ð ×/Ò/Ø”Ø$ØØ!&ð	 0ñ ô ˆHð Ð#ØÕ3ÔJÐJÐJØ˜4à#�Oà�kÔ0Ñ0ð>à¥Ô!>Ñ>ð>õ ,Ô=Ð=à×"Ò"ØØØ ØØØØØ$Øñ

ô 

ð 
	
r;   c                ó¦   ‡ ‡‡‡‡— ‰j         j        }‰t          j        z  r|j        Šn|j        Š‰j        Šˆˆˆˆ ˆfd„‰ j        j        D ¦   «         S )Nc                óD   •— g | ]} ‰‰‰‰j         |         ‰¬ ¦  «        ‘ŒS )©rï   ©r#  )r­   Úpkr  Úget_attrrï   rn   rá   s     €€€€€r9   rÝ   z5LazyLoader._get_ident_for_use_get.<locals>.<listcomp>Ý  sD   ø€ ð 
ð 
ð 
àð ˆH�U˜E 4Ô#8¸Ô#<ÀgÐNÑNÔNð
ð 
ð 
r;   )rè   r\   r   r[  r\  r]  rm  r™   )rn   rò   rá   rï   Úinstance_mapperr  r~  s   ` `` @@r9   rj  z!LazyLoader._get_ident_for_use_getÓ  s   øøøøø€ Øœ-Ô.ˆà•[Ô7Ñ7ð 	AØ&ÔJˆHˆHà&Ô@ˆHà”
ˆð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
à”kÔ-ð
ñ 
ô 
ð 	
r;   zsqlalchemy.orm.strategy_optionsc
                óN  ‡ ‡— t           j        j        Š‰ j                             ¦   «         }
t          j        |
g|
j        t          t          j
        ¬¦  «        }t          j        }|d|dœz  }‰ j        j        �%|                     ‰ j        ‰ j        j        ¦  «        }|j         }|s|t$          j        z  rt          j        ddi¦  «        |_        ‰ j        }|j        s	|ra|j        rZ|€|j        ‰ j                 }n|‰ j                 }|j        }|r'|j        r d}|t5          j        ‰ j        |¦  «        fz  }||_        n'|€|j        j        ‰ j                 }n|‰ j                 }|r|xj        |z  c_        |xj        d|iz  c_        |rF‰ j        r&|t@          j!        z  s‰  "                    ||d¦  «         tG          j$        |||||	¬¦  «        S ‰ j%        r‰ j%        |_&        ˆ ˆfd„}|xj'        |‰ j        ffz  c_'        ‰  (                    ||¦  «        \  }}|	r#t           j)         *                    |	d	|i¦  «        }	nd	|i}	‰ j        |j+        v r|t@          j,        z  stZ          j.        S |r4t          j/        t4          j0        | 1                    ¦   «         ¦  «        rd S n3t          j/        t4          j2        | 1                    ¦   «         ¦  «        rd S ‰ j        r&|t@          j!        z  s‰  "                    ||d¦  «         |f|_3        | 4                    |||	¬
¦  «        }| 5                    ¦   «          6                    ¦   «          7                    ¦   «         }‰ j8        r|S ts          |¦  «        }|r*|dk    rt          j:        d‰ j        z  ¦  «         |d         S d S )N)Ú_raw_columnsÚ_propagate_attrsÚ_label_stylerÆ   F)Ú_invoke_all_eagersÚ_lazy_loaded_fromÚ	autoflushÚ_current_pathr  )Úload_optionsru  c                ó8  •— ‰j         j        D ]‹}|j        t          j        u rv|j        rot          |j        t          ¦  «        sU‰j	         
                    | j        j        |j                 ¦  «                             |¦  «                             | ¦  «         ŒŒd S r1   )rl   Ú_reverse_propertyrY   r   rC  Ú_use_getrÚ   rÛ   r  r"   Ú_construct_for_existing_pathrÐ   r‡  rM   ÚlazyloadÚprocess_compile_state)Úcompile_contextÚrevrn   Ústrategy_optionss     €€r9   Ú_lazyload_reversez4LazyLoader._emit_lazyload.<locals>._lazyload_reverse7  s    ø€ ØÔ+Ô=ð Kð K�ð ”M¥ZÔ%9Ð9Ð9Øœð :å& s¤|µZÑ@Ô@ð :ð %Ô)×FÒFØ'Ô7ÔEØœJôñô ÷ ’h˜s‘m”m×$9Ò$9¸/Ñ$JÔ$JÐ$JøðKð Kr;   Ú_sa_orm_load_options)ru  r   zKMultiple rows returned with uselist=False for lazily-loaded attribute '%s' r   );r   Ú	preloadedÚorm_strategy_optionsr  Ú__clause_element__r,   Ú_create_raw_selectr‚  r+   r   Údefault_compile_optionsr   Údefault_load_optionsrl   Ú	secondaryÚselect_fromr\   r4   r	   ÚNO_AUTOFLUSHÚimmutabledictÚ_execution_optionsr   rˆ  r´   Ú	load_pathr2   ÚLoaderCriteriaOptionÚ_with_optionsÚ_path_registryrÆ   r(  r   rh  rí   r   Úload_on_pk_identityr  Ú_order_by_clausesÚ_with_context_optionsr`  Ú
EMPTY_DICTÚ
merge_withrm  rn  r   r   Úhas_intersectionr#   ÚvaluesÚ
_never_setÚ_where_criteriaÚexecuterF  ÚscalarsÚallr?   ÚlenÚwarn)rn   rò   rá   rw  rï   rv   rr  rs  rt  ru  ÚclauseelementÚstmtrˆ  rv  r   Úeffective_pathr8   r’  Úlazy_clauserN  r€   Úlr‘  s   `                     @r9   rq  zLazyLoader._emit_lazyloadâ  sc  øø€ õ  œ>Ô>Ðàœ×6Ò6Ñ8Ô8ˆÝÔ(Ø'˜Ø*Ô;Ý7Ý,ÔDð	
ñ 
ô 
ˆõ $Ô8ˆàØ"'Ø!&ð
ð 
ñ 	
ˆð
 ÔÔ)Ð5Ø×#Ò#Ø”˜TÔ1Ô;ñô ˆDð ”i�-ˆð ð 	O�g¥
Ô 7Ñ7ð 	OÝ&*Ô&8¸+ÀuÐ9MÑ&NÔ&NˆDÔ#à”,ˆàÔð 	L 'ð 	L¨gÔ.Eð 	LØ'Ð/Ø!&¤°Ô1EÔ!F��à!9¸$Ô:NÔ!O�àÔ%ˆDàð ˜7Ô2ð Ø�ØÝÔ1°$´+¸~ÑNÔNðñ �ð "&ˆDÔÐØ%Ð-ð #œ\Ô8¸Ô9MÔNˆNˆNð 6°dÔ6JÔKˆNàð 	0ØÐÔ -Ñ/ÐÔàÐÔ /°>Ð!BÑBÐÔàð 
	ØÔ!ð H¨'µKÔ4HÑ*Hð HØ×'Ò'¨¨w¸ÑGÔGÐGåÔ.ØØØ$Ø)Ø"3ðñ ô ð ð Œ>ð 	4Ø%)¤^ˆDÔ"ð	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Ð"Ô"Ø Ô 4Ð5ð'
ñ 	
Ð"Ô"ð #×8Ò8¸ÀÑHÔHÑˆ�Vàð 
	Ý $¤× :Ò :Ø!à*¨Lðñ!ô !ÐÐð '¨ð!Ðð
 ŒH˜œ
Ð"Ð"Ø�kÔ?Ñ?ð #õ (Ô4Ð4àð 	ÝÔ$¥XÔ%7¸¿º¹¼ÑIÔIð Ø�tðõ Ô"¥8Ô#6¸¿º¹¼ÑHÔHð 	Ø�4àÔð 	D gµÔ0DÑ&Dð 	DØ×#Ò# E¨7°NÑCÔCÐCà +˜~ˆÔà—’Ø�&Ð,=ð !ñ 
ô 
ˆð —’‘”×(Ò(Ñ*Ô*×.Ò.Ñ0Ô0ˆàŒ<ð 	ØˆMå�F‘”ˆAØð 
Ø�q’5�5Ý”IðJàÔ.ñ/ñô ð ð ˜a”yÐ à�tr;   c	                ó  ‡— | j         Š|j        j        rE|j        j        j        r4| j         |j        j        j        v r|                      ||||||||¦  «        S | j        r	|rr|j        rkt          j
        |j        t          ‰| ||j        r|                     |¦  «        nd ¦  «        ‰¦  «        }	|d                              | j         |	f¦  «         d S |j        s|j        r)ˆfd„}
|d                              | j         |
f¦  «         d S d S )NrÄ   c                ó4   •— |                       |‰¦  «         d S r1   )Ú_reset)rá   r  r  r4   s      €r9   Úreset_for_lazy_callablez@LazyLoader.create_row_processor.<locals>.reset_for_lazy_callable¸  s   ø€ ð —’˜U CÑ(Ô(Ð(Ð(Ð(r;   )r4   rˆ  Ú_is_user_refreshr   rÆ   rÇ   r	  r—   r´   r!   Ú"_instance_level_callable_processorrU   ÚLoadLazyAttributeÚ_generate_extra_criteriarK   Úpopulate_existingÚalways_refresh)rn   r   rt   ru   rv   r\   r€   rw   r�   Úset_lazy_callabler¹  r4   s              @r9   r‚   zLazyLoader.create_row_processor€  sy  ø€ ð Œhˆð Ô Ô1ð	à”Ô.Ô?ð	ð ”˜GœMÔ:ÔKÐKÐKà×;Ò;ØØØØØØØØñ	ô 	ð 	ð Ô"ð &	J wð &	J°7Ô3Jð &	Jõ Ô@àÔ$Ý!ØØØàÔ.ð�G×4Ò4°WÑ=Ô=Ð=àñô ð ñ!ô !Ðð �uÔ×$Ò$ d¤hÐ0AÐ%BÑCÔCÐCÐCÐCØÔ&ð 	J¨&Ô*?ð 	Jð	)ð 	)ð 	)ð 	)ð 	)ð �uÔ×$Ò$ d¤hÐ0GÐ%HÑIÔIÐIÐIÐIð	Jð 	Jr;   )rM   r)  ro   r*  )rƒ   r„   r…   r†   r‡   Ú__annotations__rk   rž   rS  r`  rí   r   r¦  rÎ   rj  Úpreload_modulerq  r‚   rˆ   r‰   s   @r9   r  r  ›  sT  ø€ € € € € € ðð ð
€Ið  $Ð#Ð#Ñ#Ø/Ð/Ð/Ñ/Ø'Ð'Ð'Ñ'Ø3Ð3Ð3Ñ3à.Ð.Ð.Ñ.ð:ð :ð :ð :ð :ð :ðx 
ð  
ð  
ðD!ð !ð !ð@!ð !ð !ð@
ð 
ð 
ð ØØØ!%Øœ/ðn
ð n
ð n
ð n
ð`
ð 
ð 
ð €TÔÐ:Ñ;Ô;ð[ð [ñ <Ô;ð[ðzCJð CJð CJð CJð CJð CJð CJr;   r  c                  ó2   — e Zd ZdZd„ Zd„ Zej        fd„ZdS )r¼  a¦  semi-serializable loader object used by LazyLoader

    Historically, this object would be carried along with instances that
    needed to run lazyloaders, so it had to be serializable to support
    cached instances.

    this is no longer a general requirement, and the case where this object
    is used is exactly the case where we can't really serialize easily,
    which is when extra criteria in the loader option is present.

    We can't reliably serialize that as it refers to mapped entities and
    AliasedClass objects that are local to the current process, which would
    need to be matched up on deserialize e.g. the sqlalchemy.ext.serializer
    approach.

    c                óH   — || _         |j        | _        || _        || _        d S r1   ©r4   ro   rv   rr  )rn   r4   Úinitiating_strategyrv   rr  s        r9   rk   zLoadLazyAttribute.__init__Ø  s)   € ØˆŒØ/Ô<ˆÔØˆŒØ,ˆÔÐÐr;   c                ód   — | j         �t          j        d¦  «         | j        | j        | j        ddœS )NzvCan't reliably serialize a lazyload() option that contains additional criteria; please use eager loading for this caser}   rÅ  )rr  r   r°  r4   ro   rv   )rn   s    r9   Ú__getstate__zLoadLazyAttribute.__getstate__Þ  sH   € ØÔÐ*ÝŒIð ñô ð ð ”8Ø Ô-Ø”|Ø ð	
ð 
ð 	
r;   c                ó¬   — | j         }|j        j        }|j        |         }|j        | j                 }|                     ||| j        | j        ¬¦  «        S )N)rv   rr  )	r4   rè   r\   rS   Ú_strategiesro   rÎ   rv   rr  )rn   rá   rï   r4   r  r6   rÛ   s          r9   r  zLoadLazyAttribute.__call__ì  s^   € ØŒhˆØœ-Ô.ˆØÔ% cÔ*ˆØÔ# DÔ$5Ô6ˆà×'Ò'ØØØ”LØÔ.ð	 (ñ 
ô 
ð 	
r;   N)	rƒ   r„   r…   r†   rk   rÈ  r	   r   r  r}   r;   r9   r¼  r¼  Æ  sX   € € € € € ðð ð"-ð -ð -ð
ð 
ð 
ð '1Ô&<ð 
ð 
ð 
ð 
ð 
ð 
r;   r¼  c                  ó   — e Zd ZdZdZdd„ZdS )Ú
PostLoaderz;A relationship loader that emits a second SELECT statement.r}   Nc                óB  — |j         j        pt          j        j        |z   }|                     ¦   «         }t          j        d|i¦  «        }|r"|j         	                    dd ¦  «        }|dk    }	nd }d}	|�Ž| j
        j        st          j        d| j
        › d�¦  «        ‚|j         	                    dt          | ¦  «        › �|¦  «        }|	s|dk     r|d||fS |	s*|                     dt          | ¦  «        › �|d	z
  i¦  «        }t"          j                             ||| j
        ¦  «        r|d||fS || j
                 }
|| j
                 }|
                     |j        d
¦  «        s7|r|j        dz  |k    r|d||fS n |                     | j        ¦  «        r|d||fS |d||fS )NÚsa_top_level_orm_contextÚrecursion_depthéÿÿÿÿFz'recursion_depth option on relationship z0 not valid for non-self-referential relationshipÚ_recursion_depth_r   r   Úloaderr%   T)rs   Úcurrent_pathr2   ÚPathRegistryÚrootÚ_get_top_level_contextr   r�  rÖ   rT   rl   Ú_is_self_referentialrö   r÷   ru  ÚidÚunionr   ÚPostLoadÚpath_existsÚcontainsr	   ÚlengthÚcontains_mapperr\   )rn   r   ru   rv   Ú
join_depthr³  Útop_level_contextru  rÏ  Úunlimited_recursionÚpath_w_propÚeffective_path_w_props               r9   Ú_setup_for_recursionzPostLoader._setup_for_recursionÿ  sL  € àÔ!Ô.ÐLµ(Ô2GÔ2LØñˆð $×:Ò:Ñ<Ô<ÐÝ Ô.Ø'Ð):Ð;ñ
ô 
Ðð ð 	(Ø%Ô0×4Ò4Ð5FÈÑMÔMˆOØ"1°RÒ"7ÐÐà"ˆOØ"'ÐàÐ&ØÔ'Ô<ð ÝÔ0ð8ØÔ+ð8ð 8ð 8ñô ð ð
 &Ô7×;Ò;Ø.¥B t¡H¤HÐ.Ð.°ñô ˆOð 'ð ¨?¸QÒ+>Ð+>à"ØØ%Ø#ð	ð ð 'ð Ø$5×$;Ò$;à6­B¨t©H¬HÐ6Ð6¸È!Ñ8Kðñ%ô %Ð!õ Ô×'Ò'Ø�^ TÔ%9ñ
ô 
ð 	Mð " 5Ð*;¸_ÐLÐLà˜4Ô/Ô0ˆØ .¨tÔ/CÔ DÐà×#Ò# GÔ$6¸ÑAÔAð 	Øð Ø(Ô/°!Ñ3°jÒ@Ð@à&ØØ)Ø'ð	ð ð Að '×6Ò6°t´{ÑCÔCð à"ØØ%Ø#ð	ð ð ˜tÐ%6¸ÐGÐGr;   r1   )rƒ   r„   r…   r†   r‡   rä  r}   r;   r9   rÌ  rÌ  ú  s?   € € € € € ØEÐEà€IðDHð DHð DHð DHð DHð DHr;   rÌ  r  c                  ó4   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚImmediateLoader©rß  c                ón   •— t          ¦   «                              ||¦  «         | j        j        | _        d S r1   ©rj   rk   rl   rß  rm   s      €r9   rk   zImmediateLoader.__init__J  ó.   ø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.ØÔ.Ô9ˆŒˆˆr;   c                ó`   — | j                              d¦  «                             |¦  «         d S ©N©)rù   r  ©rl   rÈ   rž   r¸   s     r9   rž   z$ImmediateLoader.init_class_attributeN  ó2   € ØÔ×*Ò*Ø!ñ	
ô 	
ç
Ò
˜vÑ
&Ô
&Ð
&Ð
&Ð
&r;   c	                ó   — |                       |||| j        ¦  «        \  }	}
}}|
st          j        t          j        z  }nt          j        t          j        z  }t          j         	                    ||	| j
        | j        | j        ||||¦	  «	         d S r1   )rä  rß  r	   ÚPASSIVE_NO_FETCH_RELATEDr   rh  r   r   rÚ  Úcallable_for_pathrM   rl   Ú_load_for_path)rn   r   rt   ru   rv   r\   r€   rw   r�   r³  Ú
run_loaderru  rÏ  Úflagss                 r9   r‚   z$ImmediateLoader.create_row_processorS  s£   € ð  ×%Ò% g¨t°W¸d¼oÑNÔNñ	
ØØØØàð 	Bõ
 Ô7½+Ô:NÑNˆEˆEåÔ*­[Ô-AÑAˆEåÔ×*Ò*ØØØŒKØÔ ØÔØØØØñ
	
ô 
	
ð 
	
ð 
	
ð 
	
r;   c	                óÌ  — |rLt          |j        j        ¦  «        }	||                     ¦   «         f|	_        |                     ¦   «         }
|	f}nd }	|}
d}| j        }| j                             d¦  «        }|D ]k\  }}|j	        }|s||vrY| 
                    ||||
|¬¦  «        }|t          t          j        fvr*|                     |¦  «                             |||¦  «         Œld S )Nr}   rí  )rs  rt  ru  )r"   ru   r  Ú_recurser   Ú_truncate_recursiver4   rl   rÈ   rm  rÎ   r   r   rç   Úget_implÚset_committed_value)rn   r   ru   ÚstatesÚ	load_onlyrv   rõ  rÏ  ru  Únew_optrt  rs  r4   Ú
lazyloaderrá   Ú	overwriter  rL  s                     r9   ró  zImmediateLoader._load_for_pathy  s/  € ð ð 	Ý˜7œ<Ô.Ñ/Ô/ˆGàØ× Ò Ñ"Ô"ðˆGŒOð (,×'?Ò'?Ñ'AÔ'AÐ$Ø$˜JˆMˆMàˆGØ'+Ð$ØˆMàŒhˆØÔ)×7Ò7Ð8MÑNÔNˆ
Ø &ð 	ð 	ÑˆE�9Ø”JˆEàð ˜C uÐ,Ð,Ø"×2Ò2ØØØ"/Ø-EØ&7ð 3ñ ô �ð Ý Ý(Ô:ð!ð ð ð —N’N 3Ñ'Ô'×;Ò;Ø˜u eñô ð øð	ð 	r;   )	rƒ   r„   r…   r‡   rk   rž   r‚   ró  rˆ   r‰   s   @r9   ræ  ræ  F  sk   ø€ € € € € à€Ið:ð :ð :ð :ð :ð'ð 'ð 'ð
$
ð $
ð $
ðL+ð +ð +ð +ð +ð +ð +r;   ræ  Úsubqueryc                  ó~   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Z G d
„ d¦  «        Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚSubqueryLoaderrç  c                ón   •— t          ¦   «                              ||¦  «         | j        j        | _        d S r1   ré  rm   s      €r9   rk   zSubqueryLoader.__init__¬  rê  r;   c                ó`   — | j                              d¦  «                             |¦  «         d S rì  rî  r¸   s     r9   rž   z#SubqueryLoader.init_class_attribute°  rï  r;   c                óè  ‡‡— |}|j         }t          j        |d         ¦  «        }| j                             |¦  «        r| j        |d         u r| j        | j        cŠ}n||d         cŠ}|rj|j        |         j        j        |         Št          |¦  «        t          ‰¦  «        z
  }|r+‰t          j                             || d …         ¦  «        z  Šn|Š|j        }	ˆˆfd„|	D ¦   «         }
‰|
|‰fS )Nr   r   c                óp   •— g | ]2}t          ‰j        d          j        ‰j        |         j        ¦  «        ‘Œ3S ©r   )Úgetattrru   r  r›   r4   )r­   rz   Úleftmost_mapperÚnew_subq_paths     €€r9   rÝ   z0SubqueryLoader._get_leftmost.<locals>.<listcomp>Ü  sQ   ø€ ð 
ð 
ð 
ð
 õ	 ØÔ" 1Ô%Ô,ØÔ1°!Ô4Ô8ñô ð
ð 
ð 
r;   )ru   r2   Ú_class_to_mapperrM   Úisarl   Ú	_entitiesÚentity_zeror¢  r¯  r   rÔ  ÚcoerceÚlocal_columns)rn   Úorig_query_entity_indexÚ	subq_pathÚcurrent_compile_stateÚis_rootÚgiven_subq_pathÚsubq_mapperÚleftmost_propÚ
additionalÚleftmost_colsÚleftmost_attrr	  r
  s              @@r9   Ú_get_leftmostzSubqueryLoader._get_leftmostµ  s9  øø€ ð $ˆØ”Nˆ	ÝÔ/°	¸!´Ñ=Ô=ˆð ŒK�OŠO˜KÑ(Ô(ð	GàÔ$¨	°!¬Ð4Ð4à-1¬[¸$Ô:NÐ*ˆO˜]˜]à-8¸)ÀA¼,Ð*ˆO˜]àð 	,ð 2Ô;Ø'ôäœ.¨ô8ˆMõ ˜Y™œ­#¨mÑ*<Ô*<Ñ<ˆJØð Ø¥Ô!;×!BÒ!BØ˜z˜k˜l˜lÔ+ñ"ô "ñ �øð ,ˆMà%Ô3ˆð
ð 
ð 
ð 
ð 
ð
 #ð
ñ 
ô 
ˆð  ¨}¸mÐKÐKr;   c                ó   — |                      ¦   «                              d ¦  «        }t          j                             t          j        ¦  «        }|j                             |j        ¦  «         |}|j        s3d|_         |j	        j
        |gd„ t          ||¬¦  «        D ¦   «         ¢R Ž  |                     d„ |D ¦   «         |                     ¦   «         ¦  «        }	|	|_        |j        }
|
du rd|_        nA|
€?d„ |	D ¦   «         D ]2}t#          |	¦  «                             |j        ¦  «        s	d|_         nŒ3|j        sd|_        |j        du r;|j        r4t-          j        |	|j        ¦  «        }|r|                     |	|z   ¦  «         |                     t4          ¦  «                             ¦   «         }t9          j        ||d¬¦  «        }|S )	NFc                ó.   — h | ]}|d          ®
|d          ’ŒS )r  r}   )r­   Úents     r9   ú	<setcomp>z?SubqueryLoader._generate_from_original_query.<locals>.<setcomp>  s4   € ð ð ð àð ˜8”}Ð0ð	 ˜”Mð 1Ð0Ð0r;   )rs   c                ól   — g | ]1}t           j                             t           j        j        |¦  «        ‘Œ2S r}   )r)   Ú	coercionsÚexpectÚrolesÚColumnsClauseRole)r­   r_  s     r9   rÝ   z@SubqueryLoader._generate_from_original_query.<locals>.<listcomp>  s?   € ð ð ð àõ ”×$Ò$¥S¤YÔ%@À!ÑDÔDðð ð r;   Tc                ó   — h | ]	}|j         ’Œ
S r}   )Útable©r­   rz   s     r9   r  z?SubqueryLoader._generate_from_original_query.<locals>.<setcomp>.  s   € Ð3Ð3Ð3 !�a”gÐ3Ð3Ð3r;   r}   ©Úuse_mapper_path)Ú_cloneÚ	correlater   ÚQueryÚ__new__Ú__dict__ÚupdateÚ	_from_objÚ_enable_assertionsr›  Únon_generativer   Ú_adapt_col_listÚ_get_current_adapterr�  Údistinct_target_keyÚ	_distinctrÓ   rl  r™   Ú_has_row_limiting_clauser¤  r/  Ú expand_column_list_from_order_byÚ_set_entitiesÚset_label_styler+   r   r2   r$   )rn   Úorig_compile_stateÚ
orig_queryr	  r  Úleftmost_relationshipÚorig_entityÚqÚq2Útarget_colsr5  ÚtÚto_addÚembed_qÚ
left_aliass                  r9   Ú_generate_from_original_queryz,SubqueryLoader._generate_from_original_queryæ  s3  € ð ×ÒÑÔ×)Ò)¨$Ñ/Ô/ˆõ Œ[× Ò ¥¤Ñ-Ô-ˆØ
Œ×Ò˜1œ:Ñ&Ô&Ð&Øˆð Œ{ð 	Ø#(ˆAÔ Ø(ˆAŒMÔ(Øð	ðð å3Ø"Ð2Dð ñ  ô  ðñ ô ð	ð 	ð 	ð 	ð0 )×8Ò8ðð à&ðñ ô ð ×3Ò3Ñ5Ô5ñ
ô 
ˆð %ˆŒà3ÔGÐà $Ð&Ð&ØˆAŒKˆKØ Ð(ð 4Ð3 {Ð3Ñ3Ô3ð ð �Ý˜;Ñ'Ô'×2Ò2°1´=ÑAÔAð Ø"&�A”KØ�Eðð
 Ô)ð 	%Ø"$ˆAÔàŒ;˜$ÐÐ 1Ô#6Ðõ Ô>Ø˜QÔ0ñô ˆFð ð 6Ø—’ ¨fÑ 4Ñ5Ô5Ð5ð ×#Ò#Õ$BÑCÔC×LÒLÑNÔNˆÝÔ*Ø˜W°dð
ñ 
ô 
ˆ
ð Ðr;   c                ó  ‡ ‡— g }t          |                     ¦   «         ¦  «        }t          |¦  «        D ]\\  }\  }}|dk    r0||dz
           d         j        }|                     |¦  «        r|n|}	n|}	|                     |	|j        f¦  «         Œ]t          |¦  «        dk     r|ŠnEt          |d         d         ¦  «        }
|
j	        r|
j
        Šnt          j        |
j
        d¬¦  «        Š‰ j        j        }ˆˆ fd„|D ¦   «         }||‰fS )Nr   r   r%   rÐ  Tr(  c                óZ   •— g | ]'}t          ‰‰j        j        |         j        ¦  «        ‘Œ(S r}   )r  rM   r›   r4   )r­   rz   Úparent_aliasrn   s     €€r9   rÝ   z2SubqueryLoader._prep_for_joins.<locals>.<listcomp>s  s@   ø€ ð 
ð 
ð 
àõ �L $¤+Ô"?ÀÔ"BÔ"FÑGÔGð
ð 
ð 
r;   )r>  ÚpairsÚ	enumerater\   r  rK   r4   r¯  r'   r!  r  r2   r$   rl   r  )rn   rE  r  Úto_joinrJ  Úir\   r6   Úprev_mapperÚ	to_appendr;  Ú
local_colsÚ
local_attrrI  s   `            @r9   Ú_prep_for_joinszSubqueryLoader._prep_for_joinsJ  sJ  øø€ àˆÝ�Y—_’_Ñ&Ô&Ñ'Ô'ˆå!*¨5Ñ!1Ô!1ð 	2ð 	2ÑˆA‰~�˜Ø�1Šuˆuð $ A¨¡Eœl¨1œoÔ4�Ø+6¯?ª?¸6Ñ+BÔ+BÐN˜K˜KÈ�	�	à"�	à�NŠN˜I t¤xÐ0Ñ1Ô1Ð1Ð1õ
 ˆw‰<Œ<˜!ÒÐð &ˆLˆLå˜7 2œ; qœ>Ñ*Ô*ˆDØÔ$ð Ø#œ{��õ  (Ô4Ø”K°ð ñ  ô  �ð Ô)Ô7ˆ
ð
ð 
ð 
ð 
ð 
àð
ñ 
ô 
ˆ
ð ˜
 LÐ0Ð0r;   c                ó²  — t          |¦  «        }|dk    r2t          ||d         d         ¦  «                             |¦  «        g}�nu|dk    r`t          ||d         d         ¦  «                             |¦  «        t          ||d         d         ¦  «                             |¦  «        g}�n|dk    �rd„ |dd…         D ¦   «         }g }|r�|                     d¦  «        }	t          |	d         |	d         ¦  «        }
|r"|
                     |d         d         ¦  «        }
n|
                     |¦  «        }
|                     |
¦  «         |°�t          ||d         d         ¦  «                             |d         j        ¦  «        g|z   t          ||d         d         ¦  «                             |¦  «        gz   }|D ]}
|                     |
¦  «        }Œ|S )Nr   r   r%   rÐ  c                ó    — g | ]K}t          |d          ¦  «        j        st          j        |d          ¦  «        n|d          j        |d         f‘ŒLS )r   r   )r'   r!  r2   r$   r  )r­   Úitems     r9   rÝ   z/SubqueryLoader._apply_joins.<locals>.<listcomp>‰  sg   € ð ð ð ð õ	 # 4¨¤7Ñ+Ô+Ô<ð(•HÔ)¨$¨q¬'Ñ2Ô2Ð2à˜aœœØ˜”Gð	ðð ð r;   )r¯  r  Úof_typeÚpoprK   rM   Újoin)rn   r?  rL  rE  rI  Úeffective_entityÚltjÚmiddleÚinnerrU  Úattrs              r9   Ú_apply_joinszSubqueryLoader._apply_joinsy  sò  € õ �'‰lŒlˆØ�!Š8ˆ8å˜
 G¨A¤J¨q¤MÑ2Ô2×:Ò:Ð;KÑLÔLðˆG‰Gð �AŠXˆXå˜
 G¨A¤J¨q¤MÑ2Ô2×:Ò:¸<ÑHÔHÝ˜ g¨b¤k°!¤nÑ5Ô5×=Ò=Ø$ñô ðˆG‰Gð �1ŠW‰Wðð ð $ A b DœMðñ ô ˆFð ˆEàð #Ø—z’z !‘}”}�Ý˜t Aœw¨¨Q¬Ñ0Ô0�Øð 6ØŸ<š<¨¨q¬	°!¬Ñ5Ô5�D�DàŸ<š<¨Ñ5Ô5�Dà—’˜TÑ"Ô"Ð"ð ð #õ ˜ W¨Q¤Z°¤]Ñ3Ô3×;Ò;¸EÀ!¼H¼OÑLÔLÐMØñõ ˜L¨'°"¬+°a¬.Ñ9Ô9×AÒAØ(ñô ðñð ð ð 	ð 	ˆDØ—’�t‘”ˆAˆAàˆr;   c                óÆ   — |j         }|r8|j        r1|t          j        | j        |                     |¦  «        ¦  «        fz  }|                     |¦  «        } |j        |Ž }|S r1   )r¡  r´   r2   r   r  r½  Ú_with_current_pathÚoptions)	rn   r   r?  r  Úrewritten_pathr<  rY  rv   Únew_optionss	            r9   Ú_setup_optionszSubqueryLoader._setup_options­  s{   € ð" !Ô.ˆàð 	�wÔ.ð 	ØÝÔ-Ø”KØ×4Ò4°WÑ=Ô=ñô ðñ ˆKð × Ò  Ñ0Ô0ˆØˆAŒI�{Ð#ˆàˆr;   c                ó`   ‡ — ‰ j         j        r ˆ fd„}|                     |‰ j         ¦  «        }|S )Nc                óz   •— | xj         t          t          j        ‰j        j        ¦  «        ¦  «        z  c_         d S r1   ©Úeager_order_byÚtupler   r9  rl   r8  ©r�  rn   s    €r9   Ú_setup_outermost_orderbyzISubqueryLoader._setup_outermost_orderby.<locals>._setup_outermost_orderbyÒ  s<   ø€ ØÐ.Ô.µ%Ý”L Ô!5Ô!>Ñ?Ô?ñ3ô 3ñ Ð.Ô.Ð.Ð.r;   )rl   r8  Ú_add_context_option)rn   r?  rk  s   `  r9   rk  z'SubqueryLoader._setup_outermost_orderbyÏ  sP   ø€ ØÔÔ(ð 		ðð ð ð ð ð
 ×%Ò%Ø(¨$Ô*>ñô ˆAð ˆr;   c                  ó.   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ ZdS )úSubqueryLoader._SubqCollectionsz±Given a :class:`_query.Query` used to emit the "subquery load",
        provide a load interface that executes the query at the
        first moment a value is needed.

        ©rò   ru  rˆ  rN  ÚsubqÚ_datac                ó†   — |j         | _         |j        | _        |j        | _        |j        pi | _        || _        d | _        d S r1   ro  )rn   r   rp  s      r9   rk   z(SubqueryLoader._SubqCollections.__init__í  sC   € ð #œ?ˆDŒLØ%,Ô%>ˆDÔ"Ø 'Ô 4ˆDÔØ!œ.Ð.¨BˆDŒKØˆDŒIØˆDŒJˆJˆJr;   c                ón   — | j         €|                      ¦   «          | j                              ||¦  «        S r1   )rq  Ú_loadrT   )rn   r4   Údefaults      r9   rT   z#SubqueryLoader._SubqCollections.get÷  s-   € ØŒzÐ!Ø—
’
‘”�Ø”:—>’> # wÑ/Ô/Ð/r;   c                ó°  — t          j        t          ¦  «        | _        | j        }|j        �J ‚|                     | j        ¦  «        }| j        j        r| 	                    ¦   «         }t          | 
                    | j
        ¦  «        ¦  «        }t          j        |d„ ¦  «        D ]/\  }}| j        |                              d„ |D ¦   «         ¦  «         Œ0d S )Nc                ó   — | dd …         S )Nr   r}   ©Úxs    r9   r:   z7SubqueryLoader._SubqCollections._load.<locals>.<lambda>
  s   € ¸!¸A¸B¸B¼%€ r;   c              3  ó&   K  — | ]}|d          V — ŒdS )r   Nr}   ©r­   Úvvs     r9   r¯   z8SubqueryLoader._SubqCollections._load.<locals>.<genexpr>  s&   è è € Ð$7Ð$7¨r R¨¤UÐ$7Ð$7Ð$7Ð$7Ð$7Ð$7r;   )ÚcollectionsÚdefaultdictr>  rq  rp  rò   Úwith_sessionrˆ  Ú_populate_existingr¾  rN  Ú	itertoolsÚgroupbyÚextend)rn   r?  Úrowsrà   Úvs        r9   rt  z%SubqueryLoader._SubqCollections._loadü  sÐ   € Ý$Ô0µÑ6Ô6ˆDŒJà”	ˆAØ”9Ð$Ð$Ð$à—’˜tœ|Ñ,Ô,ˆAàÔ Ô3ð *Ø×'Ò'Ñ)Ô)�õ ˜Ÿš ¤Ñ-Ô-Ñ.Ô.ˆDÝ!Ô)¨$°°Ñ@Ô@ð 8ð 8‘��1Ø”
˜1”×$Ò$Ð$7Ð$7°QÐ$7Ñ$7Ô$7Ñ7Ô7Ð7Ð7ð8ð 8r;   c                ó@   — | j         €|                      ¦   «          d S d S r1   )rq  rt  )rn   rá   r  r  s       r9   rÒ  z&SubqueryLoader._SubqCollections.loader  s#   € ØŒzÐ!Ø—
’
‘”���ð "Ð!r;   N)	rƒ   r„   r…   r†   r‡   rk   rT   rt  rÒ  r}   r;   r9   Ú_SubqCollectionsrn  Ý  sa   € € € € € ð	ð 	ð
ˆ	ð	ð 	ð 	ð	0ð 	0ð 	0ð
	8ð 	8ð 	8ð"	ð 	ð 	ð 	ð 	r;   r‡  c           	     óÖ  — |j         }|j        j        r|j        j        rd S |j                             |¦  «        }d|_        || j                 }|                     |j	        dd ¦  «        }	|	�|	}
n| j
        }
|j        j                             dt          j        j        t          j        j        f¦  «        \  }}|t          j        j        u }||z   }||z   }|j        j                             dt           f|j        ¦  «        }t#          j        |d¦  «        }|j        r.|j        j        €t-          j        d| ›d|›d�¦  «         |j        }|                     |d	¬
¦  «        }|                      ||||¦  «        \  }}}}|                      ||||||¦  «        }t          j        |
¦  «        }|j        j                             |j        dt           f|d||fi¦  «        |_        |                     d	¦  «        }|                       ||¦  «        \  }}} |j!        |Ž }|  "                    |||||
¦  «        }|  #                    ||||||
|¦  «        }|  $                    |¦  «        }|S )NTÚpath_with_polymorphic)Úsubquery_pathsNr<  Úormzsubqueryloader for "z!" must invoke lambda callable at z  in order to produce a new query, decreasing the efficiency of caching for this statement.  Consider using selectinload() for more effective full-lambda cachingF)Úlegacy)%rs   rÐ   Ú_enable_eagerloadsÚ_for_refresh_stater  ÚindexÚloaders_require_bufferingrl   rT   r	   r  r   rž  r2   rÔ  rÕ  r  r   Ú_get_plugin_class_for_pluginÚ_is_lambda_elementrˆ  r…  r   r°  Ú	_resolvedÚ_create_entities_collectionr  rF  r,  r§  ru  Ú_set_enable_single_critrR  Úadd_columnsr^  rd  rk  )rn   r   rt   ru   r  rv   rw   rs   r  Úwith_poly_entityrY  r  rb  r  r<  Úcompile_state_clsr;  r	  r  r=  rE  r?  rL  rQ  rI  s                            r9   Ú_setup_query_from_rowprocz(SubqueryLoader._setup_query_from_rowproc  sù  € ð  Ô-ˆàÔ-Ô@ð	àÔ,Ô?ð	ð ˆFà"/Ô"9×"?Ò"?ÀÑ"MÔ"MÐØ,0ˆÔ)à�DÔ(Ô)ˆð  Ÿ8š8ØÔ$Ð&=¸tñ
ô 
Ðð Ð'Ø/ÐÐà#œ{Ðà$+¤MÔ$D×$HÒ$HØ$ÝÔ"Ô'­Ô)>Ô)CÐDñ%
ô %
Ñ!ˆ	�>ð �xÔ4Ô9Ð9ˆØ Ñ$ˆ	Ø'¨$Ñ.ˆð ”]Ô5×9Ò9Ø�>Ð*¨G¬Mñ
ô 
ˆ
õ ,ÔHØ˜ñ
ô 
Ðð Ô(ð 
	.ØÔ#Ô5Ð=Ý”	�	ð �t�t˜Z˜Z˜Zð)ñô ð ð $Ô-ˆJð
 /×JÒJØ˜uð Kñ 
ô 
Ðð ×ÒØ#ØØØñ	
ô 
ñ	
ØØØ!Øð ×7Ò7ØØØØØ!Øñ
ô 
ˆ
õ ŒKÐ(Ñ)Ô)ˆà&œ}Ô?×JÒJØÔ%à�~Ð.°
Ø(¨9°nÐ*Eðñ 
ô  
ˆÔð ×%Ò% eÑ,Ô,ˆØ,0×,@Ò,@Ø˜	ñ-
ô -
Ñ)ˆ�˜\ð ˆAŒM˜:Ð&ˆØ×ÒØˆw˜
 LÐ2Bñ
ô 
ˆð ×ÒØØØØØØØñ
ô 
ˆð ×)Ò)¨!Ñ,Ô,ˆàˆr;   c	           
     ó°  ‡— |j         r|                      ||||||‰|¦  «        S |                      |||| j        ¦  «        \  }	}
}	}	|
sd S t	          |j        t          ¦  «        sd S | j        j        | j	                 j
        j        st          j        d| z  ¦  «        ‚t          |¦  «        dk    r"t          j        |j        | j        ¦  «        sd S n"t          j        |d         | j        ¦  «        sd S |                      ||||d         |‰¦  «        }|€d S |j        �J ‚|| j                 }| j        j        }|                     |j        d¦  «        }|€2|                      ||¦  «        }|                     |j        d|¦  «         ‰rˆfd„|D ¦   «         }| j        r|                      |||||¦  «         d S |                      |||||¦  «         d S )NúJ'%s' does not support object population - eager loading cannot be applied.r   rÐ  r}  c                ó*   •— g | ]}‰j         |         ‘ŒS r}   rg   )r­   rz   rw   s     €r9   rÝ   z7SubqueryLoader.create_row_processor.<locals>.<listcomp>ç  s    ø€ ÐAÐAÐA°˜'œ/¨!Ô,ÐAÐAÐAr;   )rÅ   r	  rä  rß  rÚ   rs   r   rM   rU   r4   ÚimplÚsupports_populationrö   r÷   r¯  r2   Ú_entity_isar  r™  rò   rl   r  rT   r	   r‡  rÓ   r?   Ú_create_collection_loaderÚ_create_scalar_loader)rn   r   rt   ru   rv   r\   r€   rw   r�   Ú_rô  rp  rP  r}  s          `      r9   r‚   z#SubqueryLoader.create_row_processor™  s[  ø€ ð Ô ð 
	Ø×;Ò;ØØØØØØØØñ	ô 	ð 	ð #×7Ò7Ø�T˜7 D¤Oñ
ô 
Ñˆˆ:�q˜!ð ð 	ØˆFå˜'Ô/Õ1FÑGÔGð 	ð ˆFàŒ{Ô(¨¬Ô2Ô7ÔKð 	ÝÔ,ð@ØBFñGñô ð õ ˆt‰9Œ9˜Š>ˆ>ÝÔ'¨Ô(@À$Ä+ÑNÔNð Ø�ðåÔ% d¨2¤h°´Ñ<Ô<ð 	ØˆFà×-Ò-ØØØØ�ŒHØØñ
ô 
ˆð ˆ<ØˆFàŒ|Ð#Ð#Ð#à�DÔ(Ô)ˆàÔ)Ô7ˆ
ð
 —h’h˜wÔ1°=ÑAÔAˆØÐØ×/Ò/°¸Ñ>Ô>ˆKØ�HŠH�WÔ'¨¸ÑDÔDÐDàð 	BØAÐAÐAÐA°jÐAÑAÔAˆJàŒ<ð 	Ø×*Ò*Ø˜ ¨j¸*ñô ð ð ð ð ×&Ò&Ø˜ ¨j¸*ñô ð ð ð r;   c                ó:  ‡ ‡‡‡— |                      |¦  «        Šˆˆ ˆfd„Šˆˆ fd„}|d                              ‰ j        ‰f¦  «         |d                              ‰ j        |f¦  «         |j        r)|d                              ‰ j        ‰j        f¦  «         d S d S )Nc                óš   •—  ‰j          ‰|¦  «        d¦  «        }|                      ‰j        ¦  «                             | ||¦  «         d S )Nr}   )rT   rù  r4   rú  )rá   r  r  Ú
collectionr}  rn   Útuple_getters       €€€r9   Úload_collection_from_subqzKSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq÷  sW   ø€ Ø(˜œ¨¨°cÑ):Ô):¸BÑ?Ô?ˆJØ�NŠN˜4œ8Ñ$Ô$×8Ò8Ø�u˜jñô ð ð ð r;   c                ó8   •— ‰j         |vr ‰| ||¦  «         d S d S r1   ©r4   )rá   r  r  r§  rn   s      €€r9   Ú&load_collection_from_subq_existing_rowzXSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq_existing_rowý  s3   ø€ ØŒx˜uÐ$Ð$Ø)Ð)¨%°¸Ñ<Ô<Ð<Ð<Ð<ð %Ð$r;   rÄ   ÚexistingÚeager©Ú_tuple_getterrK   r4   Úinvoke_all_eagersrÒ  )	rn   r   r€   r}  rP  r�   rª  r§  r¦  s	   `  `   @@r9   r   z(SubqueryLoader._create_collection_loaderò  sê   øøøø€ ð ×+Ò+¨JÑ7Ô7ˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	�5Ô× Ò  $¤(Ð,EÐ!FÑGÔGÐGØ�:Ô×%Ò%ØŒXÐ=Ð>ñ	
ô 	
ð 	
ð Ô$ð 	GØ�wÔ×&Ò&¨¬°+Ô2DÐ'EÑFÔFÐFÐFÐFð	Gð 	Gr;   c                ó:  ‡ ‡‡‡— |                      |¦  «        Šˆˆ ˆfd„Šˆˆ fd„}|d                              ‰ j        ‰f¦  «         |d                              ‰ j        |f¦  «         |j        r)|d                              ‰ j        ‰j        f¦  «         d S d S )Nc                óþ   •—  ‰j          ‰|¦  «        d¦  «        }t          |¦  «        dk    rt          j        d‰z  ¦  «         |d         }|                      ‰j        ¦  «                             | ||¦  «         d S )Nr1   r   úLMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' r   )rT   r¯  r   r°  rù  r4   rú  )rá   r  r  r¥  Úscalarr}  rn   r¦  s        €€€r9   Úload_scalar_from_subqzCSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq  s‹   ø€ Ø(˜œ¨¨°cÑ):Ô):¸GÑDÔDˆJÝ�:‰Œ Ò"Ð"Ý”	ðGØIMñNñô ð ð
   ”]ˆFØ�NŠN˜4œ8Ñ$Ô$×8Ò8¸ÀÀvÑNÔNÐNÐNÐNr;   c                ó8   •— ‰j         |vr ‰| ||¦  «         d S d S r1   r©  )rá   r  r  r´  rn   s      €€r9   Ú"load_scalar_from_subq_existing_rowzPSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq_existing_row  s3   ø€ ØŒx˜uÐ$Ð$Ø%Ð% e¨U°CÑ8Ô8Ð8Ð8Ð8ð %Ð$r;   rÄ   r«  r¬  r­  )	rn   r   r€   r}  rP  r�   r¶  r´  r¦  s	   `  `   @@r9   r¡  z$SubqueryLoader._create_scalar_loader	  sñ   øøøø€ ð ×+Ò+¨JÑ7Ô7ˆð		Oð 		Oð 		Oð 		Oð 		Oð 		Oð 		Oð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	�5Ô× Ò  $¤(Ð,AÐ!BÑCÔCÐCØ�:Ô×%Ò%ØŒXÐ9Ð:ñ	
ô 	
ð 	
ð Ô$ð 	GØ�wÔ×&Ò&¨¬°+Ô2DÐ'EÑFÔFÐFÐFÐFð	Gð 	Gr;   )rƒ   r„   r…   r‡   rk   rž   r  rF  rR  r^  rd  rk  r‡  r™  r‚   r   r¡  rˆ   r‰   s   @r9   r  r  §  s*  ø€ € € € € ð  €Ið:ð :ð :ð :ð :ð'ð 'ð 'ð
/Lð /Lð /Lðbbð bð bðH-1ð -1ð -1ð^2ð 2ð 2ðh ð  ð  ðDð ð ð2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ðhFð Fð FðPWð Wð WðrGð Gð Gð.Gð Gð Gð Gð Gð Gð Gr;   r  Újoinedc                  ót   ‡ — e Zd ZdZdZˆ fd„Zd„ Z	 	 	 dd„Zd„ Zd	„ Z	d
„ Z
d„ Z	 dd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚJoinedLoaderz[Provide loading behavior for a :class:`.Relationship`
    using joined eager loading.

    rß  c                ón   •— t          ¦   «                              ||¦  «         | j        j        | _        d S r1   ré  rm   s      €r9   rk   zJoinedLoader.__init__0  rê  r;   c                ó`   — | j                              d¦  «                             |¦  «         d S rì  rî  r¸   s     r9   rž   z!JoinedLoader.init_class_attribute4  rï  r;   NFc	                óR  — |j         j        sdS | j        rd|_        || j                 }d}
|r|                      |||j        ¦  «        nd}|dur|                      |||||¦  «        \  }}}n||                     |j        d¦  «        s9| j	        r|j
        dz  | j	        k    rdS n|                     | j        ¦  «        rdS |                      ||||||||¦  «        \  }}}}d|_        |                     |j        dd¦  «        }|�t!          |¦  «        j        }
nd}
|| j                 }t'          j        || j        |||||
| j        |¬¦	  «	         t*          j                             |j        ¦  «        }|r.|�t3          j        d¦  «        ‚d	„ |j        D ¦   «         |_        dS dS )
z@Add a left outer join to the statement that's being constructed.NTFrÒ  r%   r‰  )Úwith_polymorphicÚparentmapperÚchained_from_outerjoinz–Detected unaliased columns when generating joined load.  Make sure to use aliased=True or flat=True when using joined loading with with_polymorphic().c                ó   — g | ]}|®|‘ŒS r1   r}   r'  s     r9   rÝ   z,JoinedLoader.setup_query.<locals>.<listcomp>¬  s    € ð 3ð 3ð 3ØÀ!À-�AÀ-À-À-r;   )rÐ   r�  r?   Úmulti_row_eager_loadersrl   Ú_init_user_defined_eager_procr	   Ú$_setup_query_on_user_defined_adapterrÜ  rß  rÝ  rÞ  r\   Ú_generate_row_adapterÚeager_adding_joinsrT   r'   Úwith_polymorphic_mappersr  r   Ú_setup_entity_queryr   ÚNONE_SETrÔ   Úsecondary_columnsrö   r÷   )rn   rs   rt   ru   rv   rw   rx   r¾  r¿  ry   r½  Úuser_defined_adapterÚclausesÚadd_to_collectionr—  Ú	has_noness                   r9   r{   zJoinedLoader.setup_query9  s`  € ð Ô,Ô?ð 	9ØˆFØŒ\ð 	9Ø48ˆMÔ1à�DÔ(Ô)ˆàÐð ðˆD×.Ò.Ø˜¨Ô(@ñô ð ð ð 	ð   uÐ,Ð,ð ×9Ò9ØØØØØ$ñô ñ	ØØØ!Ð!ð  —=’= Ô!9¸8ÑDÔDð Ø”?ð Ø”{ Q‘¨¬Ò8Ð8Ø˜ð 9à×)Ò)¨$¬+Ñ6Ô6ð Ø�Fð ×*Ò*ØØØØØØ!ØØ&ñ	ô 	ñØØØ!Ø&ð 04ˆMÔ,àŸ8š8ØÔ$Ð&=¸tñ
ô 
Ðð Ð'Ý&Ø ñ ô  ä&ð Ðð  $Ðà�D”KÔ ˆåÔ#ØØŒKØØØØØ-ØœØ#9ð
	
ñ 
	
ô 
	
ð 
	
õ ”M×.Ò.¨}Ô/NÑOÔOˆ	àð 
	ØÐ+ÝÔ0ðIñô ð ð3ð 3Ø,Ô>ð3ñ 3ô 3�Ô/Ð/Ð/ð
	ð 
	r;   c                óº  — d|j         vrdS |j        j        }|                     |j        dd¦  «        }|dur|S |j         d         }|dd …         \  }}|�gt          |t          ¦  «        r|j                             |¦  «        }t          j
        t          j        j        |j        ||j        j        d¬¦  «        }n‡|                     |j        d¦  «        rL|                     |j        d¦  «        }	t          j
        t          j        j        |	|j        j        ¬¦  «        }n |j                             |j        d ¦  «        }|                     |d|¦  «         |S )NÚeager_from_aliasFÚ user_defined_eager_row_processoréþÿÿÿ)Ú
selectabler5  Úlimit_on_entityr‰  )r5  )rÖ   ru   rM   rT   r	   rÚ   rü   r  Úaliasr2   Ú
ORMAdapterÚ_TraceAdaptRoleÚJOINEDLOAD_USER_DEFINED_ALIASr\   r=  rÜ  Ú JOINEDLOAD_PATH_WITH_POLYMORPHICÚ_polymorphic_adaptersrÓ   )
rn   rv   rs   Útarget_attributesru   rw   rÔ  Úroot_mapperr6   r—  s
             r9   rÂ  z*JoinedLoader._init_user_defined_eager_proc°  s�  € ð  WÔ%7Ð7Ð7à�5àŒ|Ô"ˆð —(’(ØÔ$Ð&HÈ%ñ
ô 
ˆð ˜%ÐÐàˆNð Ô"Ð#5Ô6ˆØ    œIÑˆ�TàÐÝ˜%¥Ñ%Ô%ð 1Øœ×)Ò)¨%Ñ0Ô0�ÝÔ)ÝÔ(ÔFØ”Ø Ø œKÔ;Ø %ðñ ô ˆGˆGð �}Š}ØÔ(Ð*Añô ð ð $(§8¢8Ø!Ô,Ð.Eñ$ô $Ð õ #Ô-ÝÔ,ÔMØ$Ø $¤Ô ?ðñ ô ��ð (Ô=×AÒAØ”K ñô �ð 	�ŠØØ.Øñ	
ô 	
ð 	
ð ˆr;   c                óð   — |                      |¦  «        }|r4|r2|                     |¦  «        }|                     |j        d|¦  «         n |r|}|                     |j        d|¦  «         |j        }|||fS )NrÐ  )Ú_get_entity_clausesÚwraprÓ   r	   Úprimary_columns)rn   r   r  ru   rw   rÊ  rÌ  s          r9   rÃ  z1JoinedLoader._setup_query_on_user_defined_adapteré  s­   € ð
 ×,Ò,¨WÑ5Ô5ˆàð 	Ð+ð 	Ø#7×#<Ò#<¸WÑ#EÔ#EÐ Ø�HŠHØÔ"Ø2Ø$ñô ð ð ð
 ð 	Ø#*Ð Ø�HŠHØÔ"Ø2Ø$ñô ð ð $Ô3ÐØ# WÐ.?Ð?Ð?r;   c	                óÎ  — |                      |j        dd ¦  «        }	|	r|	}
nZt          | j        ¦  «        }|j        r|j        }nd }t          j        | j        |�| 	                    d¬¦  «        nd dd¬¦  «        }
t          |
¦  «        }| 
                    d| ft          j        t          j        j        || j        j        ddd¬¦  «        }|j        sJ ‚|�%|j                              d| j        j        ¦  «        n| j        j        }|sd}|j                             | j        ||||||||r|j        nd	f	¦  «         |j        }|                     |j        d
|¦  «         ||||fS )Nr‰  T)Úflat)rÔ  rá  r)  Újoinedloader_ormadapterF)r5  Úadapt_requiredÚallow_label_resolveÚanonymize_labelsÚ	innerjoinr}   Úeager_row_processor)rT   r	   r'   r  r!  rÒ  r2   r$   r\   Ú_anonymous_fromclauseÚ_memorÕ  rÖ  ÚJOINEDLOAD_MEMOIZED_ADAPTERr=  rÖ   rl   ræ  Úcreate_eager_joinsrK   Ú_create_eager_joinr´   rÉ  rÓ   )rn   rs   r  ru   rv   rw   rx   r¾  r¿  r—  Úto_adaptÚinspÚalt_selectableÚto_adapt_insprË  ræ  rÌ  s                    r9   rÄ  z"JoinedLoader._generate_row_adapter	  sÏ  € ð  Ÿ8š8ØÔ$Ð&=¸tñ
ô 
Ðð ð 	Ø'ˆHˆHå˜4œ;Ñ'Ô'ˆDØÔ$ð &Ø!%¤��à!%�åÔ,Ø”à!Ð-ð %×:Ò:ÀÐ:ÑEÔEÐEàØØ $ðñ ô ˆHõ   Ñ)Ô)ˆà×%Ò%Ø&¨Ð-ÝÔÝÔ$Ô@ØØœÔ7ØØ %Ø!ð &ñ 	
ô 	
ˆð Ô'Ð'Ð'Ð'ð Ð"ð Ô×"Ò" ;°Ô0DÔ0NÑOÔOÐOàÔ%Ô/ð 	ð ð 	*ð &*Ð"àÔ(×/Ò/àÔ'ØØØØØØØ&Ø+2Ð:�Ô'Ð'¸ð
ñ	
ô 	
ð 	
ð *Ô;ÐØ�Š�Ô)Ð+@À'ÑJÔJÐJà˜Ð!2Ð4JÐJÐJr;   c
           	     óF  ‡ — |€|j         }
n|}
|j        o|j        }d }||j        vrn|sl|j        ret          j        |j        |j        ¦  «        }t          |¦  «        dk    rt          j
        d¦  «        ‚|r|j        |d                  }|d         |}}|€	||j        }}|j                             ||¦  «        }|r¨t          |dd¦  «        r\|j                             |
                     ‰ j        ¦  «        r|
n‰ j        ¦  «        }t          |j        ‰ j        ‰ j        ¦  «        }nBt          t)          j        ‰ j        |j        d¬¦  «        ‰ j        ‰ j        ¦  «        }n‰ j        }|j        sJ ‚| p| p|dk    p|j        j        }|	}|j                             d	‰ j         fd
¦  «        }|r|t7          ˆ fd„|D ¦   «         ¦  «        z  }|rTt)          j        ||j        || p'|j        j        p|ot;          |t<          j        ¦  «        ‰ j        ‰ j         |¬¦  «        }n‰                       |||||¦  «        }||j        |<   |j        |_!        |sjt          j"        ‰ j        j#        ¦  «        D ]K}|
j$        j%         &                    |¦  «        r*|r|j'        |         }| (                    ||j)        ¦  «         ŒL‰ j        j*        rS|xj+        t7          |j,         -                    t]          j/        ‰ j        j*        ¦  «        ¦  «        ¦  «        z  c_+        d S d S )Nr   z€Can't identify which query entity in which to joined eager load from.   Please use an exact match when specifying the join path.r   r!  FTr(  ÚunnestedÚadditional_entity_criteriar}   c              3  óZ   •K  — | ]%}|j         ¯	|                     ‰j        ¦  «        V — Œ&d S r1   )Úpropagate_to_loadersÚ_resolve_where_criteriar\   )r­   Úaern   s     €r9   r¯   z2JoinedLoader._create_eager_join.<locals>.<genexpr>·	  sP   øè è € ð )ð )àØÔ*ð)Ø×*Ò*¨4¬;Ñ7Ô7ð)ð )ð )ð )ð )ð )r;   ©ÚisouterÚ
_left_memoÚ_right_memor´   )0r\   rÁ  Ú_should_nest_selectableÚeager_joinsÚfrom_clausesr/  Ú#find_left_clause_that_matches_givenrÒ  r¯  rö   r÷   Ú
setdefaultr  Úaliased_inspÚ_entity_for_mapperr  rM   r  r4   rl   r2   r$   r!  r  Úrepresents_outer_joinÚglobal_attributesrT   ri  Ú_ORMJoinrÚ   r)   ÚJoinÚ_splice_nested_inner_joinÚstop_onÚ_find_columnsÚprimaryjoinÚpersist_selectablerz   Úcontains_columnrh   rr   rß  r8  rh  Ú_target_adapterÚcopy_and_processr   r9  )rn   rs   rt   ru   rw   r¾  rË  ræ  r¿  rr  rð   Úshould_nest_selectableÚquery_entity_keyÚindexesÚclauseÚdefault_towrapÚtowrapÚefmÚonclauseÚattach_on_outsideÚextra_join_criteriaró  Ú	eagerjoinr¤   s   `                       r9   rì  zJoinedLoader._create_eager_joinO	  s  ø€ ð ÐØ&Ô-ˆKˆKà&ˆKð Ô1ð 6ØÔ5ð 	ð
  Ðð  Ô 9Ð9Ð9Ø*ð :àÔ*ð :õ ÔBØÔ*¨LÔ,Cñô ˆGõ �7‰|Œ|˜aÒÐõ Ô0ð0ñô ð ð ð FØ&Ô3°G¸A´JÔ?�ð
 4;¸1´:¸v .Ð àÐ#àØÔ'ð -Ðð
 Ô*×5Ò5Ø˜nñ
ô 
ˆð ð 	,Ý�wÐ 2°EÑ:Ô:ð ð
 Ô*×=Ò=à"—’ t¤{Ñ3Ô3ð%�K�Kàœñô �õ # 3¤:¨t¬x¸Ô9MÑNÔN��å"ÝÔ)Øœ WÔ%7Èðñ ô ð ”HØÔ(ñô ��ð Ô+ˆHàÔ'Ð'Ð'Ð'ð 'Ð&ð >Øˆ}ð>à˜JÒ&ð>ð Ô'Ô=ð	 	ð -ÐØ%2Ô%D×%HÒ%HØ)¨4¬;Ð7¸ñ&
ô &
Ð"ð &ð 	Ø¥5ð )ð )ð )ð )à4ð)ñ )ô )ñ $ô $ñ Ðð ð 	å Ô)ØØÔ$ØØ%˜ð MØÔ+ÔAðMà*ÐK­z¸&Å#Ä(Ñ/KÔ/KØœ;Ø œKØ 3ð
ñ 
ô 
ˆIˆIð ×6Ò6Ø�f˜g xÐ1Dñô ˆIð 7@ˆÔ!Ð"2Ñ3ð )Ô3ˆ	Ôàð 	õ  Ô-ØÔ$Ô0ñô ð ð �ð Ô1Ô3×CÒCÀCÑHÔHð Øð 3Ø%œo¨cÔ2˜Ø!×?Ò?Ø˜]Ô:ñô ð øð ÔÔ(ð 	ØÐ(Ô(­EØÔ*×;Ò;Ý”L Ô!5Ô!>Ñ?Ô?ñô ñ-ô -ñ Ð(Ô(Ð(Ð(ð	ð 	r;   c           	     ód  — |du rt          |t          j        ¦  «        sJ ‚n t          |t          j        j        ¦  «        r|                      ||j        ||||¦  «        S t          |t          j        ¦  «        sH|d                              |¦  «        r+t          j        ||j	        |d||d         j
        |¬¦  «        S d S |                      ||j        ||||j        ¦  «        }|€9d}|                      ||j        ||||j        ¦  «        }|€|dus
J d¦   «         ‚d S nd}|rR|j        s|j        s|                     |¦  «        }	n[t          j        |j        ||j        |j        |j        ¬¦  «        }	n-t          j        ||j        |j        |j        |j        ¬¦  «        }	|j        |	_        |	S )	NFrÑ  rÐ  rø  z9assertion failed attempting to produce joined eager loadsT)rù  rú  )rù  rû  )rÚ   r2   r  r)   rÒ  ÚFromGroupingr  Úelementr  r  r\   Úrightrû  Úleftrú  rù  Ú_splice_into_centerr  r  )
rn   ru   Újoin_objrË  r  rr  ÚsplicingÚtarget_joinÚright_splicer  s
             r9   r  z&JoinedLoader._splice_nested_inner_joinî	  s(  € ð �uÐÐõ ˜h­Ô(9Ñ:Ô:Ð:Ð:Ð:Ð:Ý˜¥#¤.Ô"=Ñ>Ô>ð 	Ø×1Ò1ØØÔ ØØØØñô ð õ ˜H¥hÔ&7Ñ8Ô8ð 	Ø�BŒx�|Š|˜HÑ%Ô%ð ÝÔ(ØØÔ(ØØ!Ø'Ø $ R¤¤Ø$2ðñ ô ð ð �tà×4Ò4ØØŒNØØØØÔ ñ
ô 
ˆð ÐØ ˆLØ×8Ò8ØØ”ØØØØÔ#ñô ˆKð Ð"ð  EÐ)Ð)Ð)ØNñ *Ô)Ð)à�tð #ð  ˆLàð 	ð Ô#ð 	¨KÔ,?ð 	Ø$×8Ò8¸ÑEÔE�	�	å$Ô-Ø”MØØÔ%Ø$Ô,Ø'Ô2ðñ ô �	�	õ !Ô)ØØ”ØÔ!Ø Ô(Ø$Ô0ðñ ô ˆIð %0Ô$?ˆ	Ô!ØÐr;   c                ó>  — |j         }|r|                      |||j        ¦  «        nd}|dur5|}|j        r|r|                     |j        ¦  «        }n.|j        r|j        }n|                     |j        d¦  «        }|€dS | j                             ||¦  «        r|S dS )NFrç  )rs   rÂ  r	   Úcompound_eager_adapterrÞ  rT   r\   Ú_result_has_identity_key)	rn   r   r€   rw   ru   rv   rs   rÊ  Ú	decorators	            r9   Ú_create_eager_adapterz"JoinedLoader._create_eager_adapterG
  sé   € ØÔ-ˆð ðˆD×.Ò.Ø˜¨Ô(:ñô ð ð ð 	ð   uÐ,Ð,Ø,ˆIð Ô3ð A¸	ð AØ%ŸNšNØ!Ô8ñô �	�	ð Ô5ð AØ)Ô@�	øàŸšØÔ(Ð*?ñô ˆIð Ð Ø�uàŒ;×/Ò/°¸	ÑBÔBð 	ØÐð �5r;   c	           
     ó$  — | j         j        | j                 j        j        st          j        d| z  ¦  «        ‚| j        rd|_        || j	                 }	|  
                    ||||	|¦  «        }
|
durk| j        }t          j        || j        |||	| j                 |
¦  «        }| j        s|                      ||||¦  «         d S |                      ||||¦  «         d S | j	                             d¦  «                             ||||||||¦  «         d S )Nr›  TFrí  )rM   rU   r4   r�  rž  rö   r÷   r?   Úloaders_require_uniquingrl   r(  r   Ú_instance_processorr\   r  r¡  r   rÈ   r‚   )rn   r   rt   ru   rv   r\   r€   rw   r�   Úour_pathÚeager_adapterr4   Ú	_instances                r9   r‚   z!JoinedLoader.create_row_processork
  sm  € ð Œ{Ô(¨¬Ô2Ô7ÔKð 	ÝÔ,ð@ØBFñGñô ð ð
 Œ<ð 	4Ø/3ˆGÔ,à˜Ô,Ô-ˆà×2Ò2Ø�V˜W h°ñ
ô 
ˆð  Ð%Ð%Ø”(ˆCåÔ3ØØ”ØØØ˜œÔ%Øñô ˆIð ”<ð Ø×*Ò*¨7°C¸ÀJÑOÔOÐOÐOÐOà×.Ò.Ø˜S )¨Zñô ð ð ð ð Ô ×.Ò.Ø%ñô ç"Ò"ØØØØØØØØñ	ô 	ð 	ð 	ð 	r;   c                ó  ‡‡‡— ˆˆˆfd„}ˆˆˆfd„}ˆfd„}|d                               | j        |f¦  «         |d                               | j        |f¦  «         ‰j        r$|d                               | j        |f¦  «         d S d S )Nc                ó¾   •— t          j        | |‰¦  «        }t          j        |d¦  «        }|‰j         | ‰f<    ‰|¦  «        }|�|                     |¦  «         d S d S ©NÚappend_without_event©r	   r  r   ÚUniqueAppenderrK   )	rá   r  r  r¥  Úresult_listÚinstr.  r   r4   s	         €€€r9   Ú#load_collection_from_joined_new_rowzSJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_new_row¦
  sy   ø€ õ $Ô9¸%ÀÈÑLÔLˆJÝÔ-ØÐ2ñô ˆKð 0;ˆGÔ  s˜|Ñ,Ø�9˜S‘>”>ˆDØÐØ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(ð  Ðr;   c                óô   •— | ‰f‰j         v r‰j         | ‰f         }n7t          j        | |‰¦  «        }t          j        |d¦  «        }|‰j         | ‰f<    ‰|¦  «        }|�|                     |¦  «         d S d S r1  r3  )	rá   r  r  r5  r¥  r6  r.  r   r4   s	         €€€r9   Ú(load_collection_from_joined_existing_rowzXJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_existing_row³
  s¥   ø€ Ø�sˆ|˜wÔ1Ð1Ð1Ø%Ô0°%¸°Ô>��õ (Ô=Ø˜5 #ñô �
õ #Ô1ØÐ 6ñô �ð 4?�Ô" E¨3 <Ñ0Ø�9˜S‘>”>ˆDØÐØ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(ð  Ðr;   c                ó   •—  ‰|¦  «         d S r1   r}   ©rá   r  r  r.  s      €r9   Ú load_collection_from_joined_execzPJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_execÆ
  ó   ø€ ØˆI�c‰NŒNˆNˆNˆNr;   rÄ   r«  r¬  ©rK   r4   r¯  )rn   r   r4   r.  r�   r7  r9  r<  s    ```    r9   r   z&JoinedLoader._create_collection_loader¥
  s  øøø€ ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð&	ð 	ð 	ð 	ð 	ð 	�5Ô× Ò ØŒXÐ:Ð;ñ	
ô 	
ð 	
ð 	�:Ô×%Ò%ØŒXÐ?Ð@ñ	
ô 	
ð 	
ð Ô$ð 	Ø�wÔ×&Ò&Ø”Ð;Ð<ñô ð ð ð ð	ð 	r;   c                ó  ‡ ‡‡— ˆˆfd„}ˆˆˆ fd„}ˆfd„}|d                               ‰ j        |f¦  «         |d                               ‰ j        |f¦  «         |j        r$|d                               ‰ j        |f¦  «         d S d S )Nc                ó$   •—  ‰|¦  «        |‰<   d S r1   r}   )rá   r  r  r.  r4   s      €€r9   Úload_scalar_from_joined_new_rowzKJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_new_rowÕ
  s   ø€ ð #˜ 3™œˆE�#‰JˆJˆJr;   c                óz   •—  ‰|¦  «        }‰|v r%||‰         urt          j        d‰z  ¦  «         d S d S ||‰<   d S )Nr²  )r   r°  )rá   r  r  r«  r.  r4   rn   s       €€€r9   Ú$load_scalar_from_joined_existing_rowzPJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_existing_rowÚ
  so   ø€ ð !�y ‘~”~ˆHð �eˆ|ˆ|Ø 5¨¤:Ð-Ð-Ý”IðKàññô ð ð ð ð .Ð-ð &��c‘
�
�
r;   c                ó   •—  ‰|¦  «         d S r1   r}   r;  s      €r9   Úload_scalar_from_joined_execzHJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_execí
  r=  r;   rÄ   r«  r¬  r>  )rn   r   r4   r.  r�   rA  rC  rE  s   ` ``    r9   r¡  z"JoinedLoader._create_scalar_loaderÔ
  só   øøø€ ð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð
	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð&	ð 	ð 	ð 	ð 	ð 	�5Ô× Ò  $¤(Ð,KÐ!LÑMÔMÐMØ�:Ô×%Ò%ØŒXÐ;Ð<ñ	
ô 	
ð 	
ð Ô$ð 	Ø�wÔ×&Ò&Ø”Ð7Ð8ñô ð ð ð ð	ð 	r;   )NNFr¦   )rƒ   r„   r…   r†   r‡   rk   rž   r{   rÂ  rÃ  rÄ  rì  r  r(  r‚   r   r¡  rˆ   r‰   s   @r9   r¹  r¹  %  s&  ø€ € € € € ðð ð
 €Ið:ð :ð :ð :ð :ð'ð 'ð 'ð ØØ$ðuð uð uð uðn7ð 7ð 7ðr@ð @ð @ð2KKð KKð KKðZ]ð ]ð ]ð@ KPðWð Wð Wð Wðr"ð "ð "ðH8ð 8ð 8ðt-ð -ð -ð^#ð #ð #ð #ð #ð #ð #r;   r¹  Úselectinc                  ó|   ‡ — e Zd ZdZ ej        dg d¢¦  «        ZdZˆ fd„Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )ÚSelectInLoader)rß  Ú	omit_joinÚ_parent_aliasÚ_query_infoÚ_fallback_query_infoÚ	queryinfo)Úload_only_childÚload_with_joinÚin_exprÚpk_colsÚzero_idxÚchild_lookup_colsiô  c                óˆ  •— t          ¦   «                              ||¦  «         | j        j        | _        | j        j        t
          j        u }| j        j        �| j        j        | _        nf| j                             d¦  «        }|r|j	        | _        n=| j
        j        d                              |j        dd| j
        j        ¬¦  «        | _        | j        rQ|r4|                      ¦   «         | _        |                      ¦   «         | _        d S |                      ¦   «         | _        d S |                      ¦   «         | _        d S )Nrí  r   TFr2  )rj   rk   rl   rß  rY   r   rC  rI  rÈ   r   rM   r<  r¬   r  r=  Ú_init_for_omit_join_m2orK  Ú_init_for_joinrL  Ú_init_for_omit_join)rn   rM   ro   Úis_m2orþ  rp   s        €r9   rk   zSelectInLoader.__init__  s:  ø€ Ý‰Œ×Ò˜ Ñ.Ô.Ð.ØÔ.Ô9ˆŒØÔ%Ô/µ:Ô3GÐGˆàÔÔ)Ð5Ø!Ô1Ô;ˆDŒNˆNàÔ-×;Ò;Ø%ñô ˆJð ð Ø!+Ô!3�”�à!%¤Ô!8¸Ô!;×!CÒ!CØÔ-Ø $Ø!&Ø $¤Ô ?ð	 "Dñ "ô "�”ð Œ>ð 	5Øð >Ø#'×#?Ò#?Ñ#AÔ#A�Ô Ø,0×,?Ò,?Ñ,AÔ,A�Ô)Ð)Ð)à#'×#;Ò#;Ñ#=Ô#=�Ô Ð Ð à#×2Ò2Ñ4Ô4ˆDÔÐÐr;   c                ód  ‡ ‡— t          ‰ j        j        j        ¦  «        Š‰                     ˆˆ fd„t          ‰¦  «        D ¦   «         ¦  «         ˆfd„‰ j        j        D ¦   «         x}}t          |¦  «        dk    rt          j
        |Ž }d}n
|d         }d}‰                      dd|||d ¦  «        S )Nc              3  ór   •K  — | ]1}‰j         j                             |d ¦  «        D ]}|‰|         fV — ŒŒ2dS )r}   N)rM   r=  rT   )r­   rà   ÚequivÚpk_to_fkrn   s      €€r9   r¯   z5SelectInLoader._init_for_omit_join.<locals>.<genexpr>5  sl   øè è € ð 
ð 
àØœÔ8×<Ò<¸QÀÑCÔCð
ð 
ð ð �H˜Q”KÐ ð
ð 
ð 
ð 
ð 
ð 
ð 
r;   c                ó(   •— g | ]}|‰v ¯‰|         ‘ŒS r}   r}   )r­   r¤   r\  s     €r9   rÝ   z6SelectInLoader._init_for_omit_join.<locals>.<listcomp>;  s)   ø€ ð 
ð 
ð 
Ø!ÀÀxÀÀˆH�SŒMÀÀÀr;   r   Fr   T)rm  rl   r6  Úlocal_remote_pairsr/  r>  rM   r™   r¯  r)   Útuple_Ú
query_info)rn   rQ  Úfk_colsrP  rR  r\  s   `    @r9   rW  z"SelectInLoader._init_for_omit_join1  sì   øø€ ÝØÔ Ô0ÔCñ
ô 
ˆð 	�Šð 
ð 
ð 
ð 
ð 
å˜(‘^”^ð
ñ 
ô 
ñ 	
ô 	
ð 	
ð
ð 
ð 
ð 
Ø%)¤[Ô%<ð
ñ 
ô 
ð 	
ˆ�'õ ˆw‰<Œ<˜!ÒÐÝ”j 'Ð*ˆGØˆHˆHà˜a”jˆGØˆHà�Š˜u e¨W°g¸xÈÑNÔNÐNr;   c                óü   ‡— | j         j        }t          |¦  «        dk    rt          j        |Ž }d}n
|d         }d}| j                             d¦  «        Šˆfd„|D ¦   «         }|                      dd||||¦  «        S )Nr   Fr   Trí  c                ó*   •— g | ]}‰j         |         ‘ŒS r}   r|  )r­   r}  rþ  s     €r9   rÝ   z:SelectInLoader._init_for_omit_join_m2o.<locals>.<listcomp>Q  s!   ø€ ÐIÐIÐI¸2�zÔ2°2Ô6ÐIÐIÐIr;   )r\   r™   r¯  r)   r_  rl   rÈ   r`  )rn   rQ  rP  rR  Úlookup_colsrþ  s        @r9   rU  z&SelectInLoader._init_for_omit_join_m2oG  s’   ø€ Ø”+Ô)ˆÝˆw‰<Œ<˜!ÒÐÝ”j 'Ð*ˆGØˆHˆHà˜a”jˆGØˆHàÔ)×7Ò7Ð8MÑNÔNˆ
ØIÐIÐIÐIÀÐIÑIÔIˆà�ŠØ�%˜ '¨8°[ñ
ô 
ð 	
r;   c                ó(  ‡— t          | j        j        ¦  «        | _        t	          | j        ¦  «        Šˆfd„| j        j        D ¦   «         }t          |¦  «        dk    rt          j        |Ž }d}n
|d         }d}|  	                    dd|||d ¦  «        S )Nc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r}   ©Ú_adapt_element)r­   r¤   Úpa_insps     €r9   rÝ   z1SelectInLoader._init_for_join.<locals>.<listcomp>Z  s4   ø€ ð 
ð 
ð 
Ø,/ˆG×"Ò" 3Ñ'Ô'ð
ð 
ð 
r;   r   Fr   T)
r$   rM   rX   rJ  r'   r™   r¯  r)   r_  r`  )rn   rQ  rP  rR  ri  s       @r9   rV  zSelectInLoader._init_for_joinW  s¥   ø€ Ý)¨$¬+Ô*<Ñ=Ô=ˆÔÝ˜$Ô,Ñ-Ô-ˆð
ð 
ð 
ð 
Ø37´;Ô3Jð
ñ 
ô 
ˆõ ˆw‰<Œ<˜!ÒÐÝ”j 'Ð*ˆGØˆHˆHà˜a”jˆGØˆHØ�Š˜u d¨G°W¸hÈÑMÔMÐMr;   c                ó`   — | j                              d¦  «                             |¦  «         d S rì  rî  r¸   s     r9   rž   z#SelectInLoader.init_class_attributee  rï  r;   c	                ó¬  — |j         r|                      ||||||||¦  «        S |                      |||| j        ¬¦  «        \  }	}
}}|
sd S | j        j        | j                 j        j        st          j
        d| z  ¦  «        ‚t          |¦  «        dk    r"t          j        |j        | j        ¦  «        sd S n"t          j        |d         | j        ¦  «        sd S |	}|| j                 }|                     |j        dd ¦  «        }|�t%          |¦  «        }n| j        }t(          j                             ||| j        | j        | j        ||||¦	  «	         d S )Nrç  r›  r   rÐ  r‰  )rÅ   r	  rä  rß  rM   rU   r4   r�  rž  rö   r÷   r¯  r2   rŸ  r  rl   rT   r	   r'   r  r   rÚ  rò  ró  )rn   r   rt   ru   rv   r\   r€   rw   r�   r³  rô  ru  rÏ  Úselectin_pathrâ  r—  rY  s                    r9   r‚   z#SelectInLoader.create_row_processorj  s´  € ð Ô ð 
	Ø×;Ò;ØØØØØØØØñ	ô 	ð 	ð  ×%Ò%Ø�T˜7¨t¬ð &ñ 
ô 
ñ	
ØØØØð
 ð 	ØˆFàŒ{Ô(¨¬Ô2Ô7ÔKð 	ÝÔ,ð@ØBFñGñô ð õ ˆt‰9Œ9˜Š>ˆ>ÝÔ'¨Ô(@À$Ä+ÑNÔNð Ø�ðåÔ% d¨2¤h°´Ñ<Ô<ð 	ØˆFà&ˆà˜4Ô/Ô0ˆð 'Ÿ?š?ØÔÐ 7¸ñ
ô 
Ðð Ð'Ý&Ð'7Ñ8Ô8ÐÐà#œ{ÐåÔ×*Ò*ØØØŒKØÔ ØÔØØØØñ
	
ô 
	
ð 
	
ð 
	
ð 
	
r;   c	                ód  ‡ ‡‡‡‡‡— |r‰ j         |vrd S ‰ j        }	|	j        r¥t          j        t
          ¦  «        }
g }‰ j        Š|D ]€\  Š}‰j        Št          ˆˆˆfd„|	j	        D ¦   «         ¦  «        }t          j        |v r	‰ j        }	 n<d |vr|
|                              ‰‰|f¦  «         Œh|                     ‰‰|f¦  «         Œ�|	j        sd„ |D ¦   «         }
|	j        }|	j        }|	j        s*‰j        r#ˆfd„|D ¦   «         }‰                     |¦  «        }t'          j        dg|¢R Ž }|                     ¦   «         }‰                     ¦   «         }t-          j        ||gt0          t2          j        d‰dœ¬¦  «        }|	j        s|                     ‰¦  «        }n]|                     ‰ j        ¦  «                             t=          ‰ j        ‰ j        j         ¦  «                              ‰¦  «        ¦  «        }| !                    | "                    tG          j$        d¦  «        ¦  «        ¦  «        }‰j%        j&        }|‰ j                 }|‰j'        u r|j(        }n/|j(        }‰j'        j(        }ˆfd	„tS          ||¦  «        D ¦   «         }|r3|j*        r,|t'          j+        ‰| ,                    ‰¦  «        ¦  «        fz  }|�| -                    ¦   «         } |j.        |Ž }| /                    d
|i¦  «        }‰j0        r| 1                    d¬¦  «        }‰ j        j2        rS|	j        s,‰ j        j2        }‰j        rˆfd„|D ¦   «         } |j2        |Ž }n ˆ fd„}| 3                    |‰ j        ¦  «        }|	j        r‰  4                    |
||	|‰|¦  «         d S ‰  5                    |
|	|‰|¦  «         d S )Nc              3  ó^   •K  — | ]'}‰                      ‰‰|t          j        ¬ ¦  «        V — Œ(dS )r{  N)r]  r	   ÚPASSIVE_NO_FETCH)r­   Úlkr\   rá   Ú
state_dicts     €€€r9   r¯   z0SelectInLoader._load_for_path.<locals>.<genexpr>Ï  s]   øè è € ð &ð &ð ð ×4Ò4ØØ"ØÝ *Ô ;ð	 5ñ ô ð&ð &ð &ð &ð &ð &r;   c                ó@   — g | ]\  }}|j         d          ||j        |f‘ŒS )r   )r4   rm  )r­   rá   rÿ  s      r9   rÝ   z1SelectInLoader._load_for_path.<locals>.<listcomp>ì  s=   € ð ð ð á$�E˜9ð ”˜1”˜u e¤j°)Ð<ðð ð r;   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r}   rg  )r­   r¤   rY  s     €r9   rÝ   z1SelectInLoader._load_for_path.<locals>.<listcomp>ü  s5   ø€ ð ð ð Ø=@Ð$×3Ò3°CÑ8Ô8ðð ð r;   r}  r‹  )Úcompile_state_pluginÚplugin_subject)r�  rƒ  rÆ   r‚  Úprimary_keysc                óB   •— g | ]\  }}|                      ‰|¦  «        ‘ŒS r}   )Ú'_adapt_cached_option_to_uncached_option)r­   Úorig_optÚuncached_optr   s      €r9   rÝ   z1SelectInLoader._load_for_path.<locals>.<listcomp>N  sD   ø€ ð ð ð ñ +�H˜lð ×@Ò@Ø˜\ñô ðð ð r;   r‡  T)r¾  c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r}   rg  )r­   r1  rY  s     €r9   rÝ   z1SelectInLoader._load_for_path.<locals>.<listcomp>l  s7   ø€ ð &ð &ð &à ð )×7Ò7¸Ñ=Ô=ð&ð &ð &r;   c                óz   •— | xj         t          t          j        ‰j        j        ¦  «        ¦  «        z  c_         d S r1   rg  rj  s    €r9   rk  z?SelectInLoader._load_for_path.<locals>._setup_outermost_orderbys  s<   ø€ Ø#Ð2Ô2µeÝœ TÔ%9Ô%BÑCÔCñ7ô 7ñ Ð2Ô2Ð2Ð2r;   )6r4   rK  rN  r}  r~  r>  rM   rm  ri  rS  r   rç   rL  rK   rQ  rP  rO  r!  rh  r2   ÚBundler–  r,   r—  r+   r   r˜  r›  rJ  rX  r  rl   rV  ÚfilterÚin_r)   rG  rs   Úselect_statementr   r¡  Úzipr´   r   r½  rø  ra  Ú_update_compile_optionsr¾  ru  r8  rl  Ú_load_via_childÚ_load_via_parent)rn   r   ru   rû  rü  rY  rv   rÏ  ru  r`  Ú
our_statesÚnone_statesrÿ  Úrelated_identrQ  rP  Ú
bundle_entÚ
bundle_sqlÚ
entity_sqlr?  r<  r³  rc  Úcached_optionsÚuncached_optionsrh  rk  r\   rá   rq  s   ``   `                     @@@r9   ró  zSelectInLoader._load_for_path·  s  øøøøøø€ ð ð 	˜œ¨Ð2Ð2ØˆFàÔ%ˆ
àÔ%ð !	GÝ$Ô0µÑ6Ô6ˆJØˆKà”[ˆFà$*ð Gð GÑ ��yØ"œZ�
Ý %ð &ð &ð &ð &ð &ð &ð )Ô:ð&ñ &ô &ñ !ô !�õ (Ô9¸]ÐJÐJØ!%Ô!:�JØ�Eð ˜}Ð,Ð,Ø˜}Ô-×4Ò4Ø 
¨IÐ6ñô ð ð ð  ×&Ò&¨¨z¸9Ð'EÑFÔFÐFÐFð Ô)ð 	ðð à(.ðñ ô ˆJð
 Ô$ˆØÔ$ˆàÔ(ð 	Cð  Ô0ð Cðð ð ð ØDKðñ ô �ð +×9Ò9¸'ÑBÔB�å”_ TÐ4¨GÐ4Ð4Ð4ˆ
Ø×2Ò2Ñ4Ô4ˆ
à%×8Ò8Ñ:Ô:ˆ
ÝÔ%Ø$ jÐ1Ý7Ý,ÔDà(-Ø"2ðð ð	
ñ 
ô 
ˆð Ô(ð 	ð —’Ð.Ñ/Ô/ˆAˆAð
 —’˜dÔ0Ñ1Ô1×6Ò6Ý˜Ô*¨DÔ,@Ô,DÑEÔE×MÒMØ$ñô ñô ˆAð �HŠH�W—[’[¥¤¨~Ñ!>Ô!>Ñ?Ô?Ñ@Ô@ˆð Ô*Ô;ˆ
ð2 ˜dÔ2Ô3ˆà˜œÐ&Ð&Ø$Ô2ˆKˆKà'Ô5ˆNØ&œ}Ô:Ððð ð ð õ /2Ø"Ð$4ñ/ô /ð	ñ ô ˆKð ð 	�wÔ.ð 	ØÝÔ-Ø$Ø×4Ò4°WÑ=Ô=ñô ðñ ˆKð Ð&Ø+×?Ò?ÑAÔAˆNàˆAŒI�{Ð#ˆà×%Ò% ¸Ð&GÑHÔHˆØÔ$ð 	<Ø×#Ò#°dÐ#Ñ;Ô;ˆAàÔÔ(ð 	ØÔ,ð Ø!%Ô!5Ô!>�Ø#Ô4ð ð&ð &ð &ð &à$2ð&ñ &ô &�Nð �A”J Ð/��ðð ð ð ð ð
 ×)Ò)Ø,¨dÔ.Bñô �ð Ô%ð 	Ø× Ò ØØØØØØ!ñô ð ð ð ð ×!Ò!Ø˜J¨¨7Ð4Eñô ð ð ð r;   c                ób  ‡— | j         }t          |¦  «        }|rÑ|d| j        …         }	|| j        d …         }d„ |j                             |dˆfd„|	D ¦   «         i|¬¦  «                             ¦   «         D ¦   «         }
|	D ]g}|
                     |d ¦  «        }||         D ]F\  }}}|s
| j        |v rŒ|                     | j        ¦  «         	                    |||s|n|g¦  «         ŒGŒh|°Ñ|D ]A\  }}}|s
| j        |v rŒ|                     | j        ¦  «         	                    ||d ¦  «         ŒBd S )Nr   c                ó   — i | ]\  }}||“Œ	S r}   r}   )r­   rà   r…  s      r9   ú
<dictcomp>z2SelectInLoader._load_via_child.<locals>.<dictcomp>š  s.   € ð ð ð á�A�qð �1ðð ð r;   rv  c                ó2   •— g | ]}‰j         r|d          n|‘ŒS r  ©rR  )r­   r4   r`  s     €r9   rÝ   z2SelectInLoader._load_via_child.<locals>.<listcomp>Ÿ  s9   ø€ ð )ð )ð )à #ð '1Ô&9ÐB˜C œF˜F¸sð)ð )ð )r;   ©rN  ru  )
r?   ÚsortedÚ
_chunksizerò   r¬  rF  rT   r4   rù  rú  )rn   r…  r†  r`  r?  r   ru  r?   Úour_keysÚchunkÚdatar4   Úrelated_objrá   r  rÿ  s      `            r9   rƒ  zSelectInLoader._load_via_childŠ  sÊ  ø€ ð ”,ˆõ ˜*Ñ%Ô%ˆØð  	Ø˜Q ¤Ð0Ô1ˆEØ ¤Ð 1Ð 1Ô2ˆHðð à#œO×3Ò3Øà&ð )ð )ð )ð )à',ð)ñ )ô )ðð '8ð 4ñ 	ô 	÷ ’&‘(”(ðñ ô ˆDð ð ð �ð #Ÿhšh s¨DÑ1Ô1�Ø/9¸#¬ð ð Ñ+�E˜5 )Ø$ð !¨¬°UÐ):Ð):Ø à—N’N 4¤8Ñ,Ô,×@Ò@ØØØ+2ÐE˜˜¸¸ñô ð ð ð	ð1 ð  	ðD (3ð 	Mð 	MÑ#ˆE�5˜)Øð  ¤¨UÐ!2Ð!2Øð �NŠN˜4œ8Ñ$Ô$×8Ò8¸ÀÀtÑLÔLÐLÐLð	Mð 	Mr;   c                ó  ‡— | j         }|rdnd }|�ry|d| j        …         }|| j        d …         }ˆfd„|D ¦   «         }	t          j        t          ¦  «        }
t          j        |j                             |d|	i|¬¦  «         	                    ¦   «         d„ ¦  «        D ]*\  }}|
|          
                    d„ |D ¦   «         ¦  «         Œ+|D ]¼\  }}}}|s
| j        |v rŒ|
                     ||¦  «        }|sb|r`t          |¦  «        dk    rt          j        d	| z  ¦  «         |                     | j        ¦  «                             |||d         ¦  «         Œ�|                     | j        ¦  «                             |||¦  «         Œ½|�°wd S d S )
Nr}   r   c                ó<   •— g | ]\  }}}}‰j         r|d          n|‘ŒS r  r‘  )r­   r4   rá   rq  rÿ  r`  s        €r9   rÝ   z3SelectInLoader._load_via_parent.<locals>.<listcomp>Ë  sA   ø€ ð ð ð á5�C˜ 
¨Ið %Ô-Ð6��A”�°3ðð ð r;   rv  r’  c                ó   — | d         S r‘   r}   rx  s    r9   r:   z1SelectInLoader._load_via_parent.<locals>.<lambda>×  s
   € ˜!˜Aœ$€ r;   c              3  ó&   K  — | ]}|d          V — ŒdS )r   Nr}   r{  s     r9   r¯   z2SelectInLoader._load_via_parent.<locals>.<genexpr>Ù  s&   è è € Ð1Ð1¨˜r !œuÐ1Ð1Ð1Ð1Ð1Ð1r;   r   r²  )r?   r”  r}  r~  r>  r�  r‚  rò   r¬  rF  rƒ  r4   rT   r¯  r   r°  rù  rú  )rn   r…  r`  r?  r   ru  r?   Ú_empty_resultr–  rv  r—  rà   r…  r4   rá   rq  rÿ  r¥  s     `               r9   r„  zSelectInLoader._load_via_parentÁ  s  ø€ ð ”,ˆØ%Ð/˜˜¨4ˆàñ )	Ø˜q 4¤?Ð2Ô3ˆEØ# D¤OÐ$5Ð$5Ô6ˆJðð ð ð à9>ðñ ô ˆLõ
 Ô*­4Ñ0Ô0ˆDÝ!Ô)Ø”×'Ò'ØØ*¨LÐ9Ø&7ð (ñ ô ÷ ’&‘(”(Ø�ñô ð 2ð 2‘��1ð �Q”—’Ð1Ð1¨qÐ1Ñ1Ô1Ñ1Ô1Ð1Ð1à5:ð ð Ñ1��U˜J¨	Ø ð  T¤X°Ð%;Ð%;Øà!ŸXšX c¨=Ñ9Ô9�
àð  :ð Ý˜:‘”¨Ò*Ð*Ýœ	ð.à04ñ5ñô ð ð
 —N’N 4¤8Ñ,Ô,×@Ò@Ø˜z¨:°a¬=ñô ð ð ð —N’N 4¤8Ñ,Ô,×@Ò@Ø˜z¨:ñô ð ð ðO ñ )	ð )	ð )	ð )	ð )	r;   )rƒ   r„   r…   r‡   r}  Ú
namedtupler`  r”  rk   rW  rU  rV  rž   r‚   ró  rƒ  r„  rˆ   r‰   s   @r9   rH  rH  ú
  sø   ø€ € € € € ð€Ið (�Ô'Øð	
ð 	
ð 	
ñ
ô 
€Jð €Jð5ð 5ð 5ð 5ð 5ð<Oð Oð Oð,
ð 
ð 
ð Nð Nð Nð'ð 'ð 'ð
K
ð K
ð K
ðZQð Qð Qðf5Mð 5Mð 5Mðn/ð /ð /ð /ð /ð /ð /r;   rH  c                ó�   ‡‡— ˆfd„Šˆfd„}ˆfd„}t          j        | d|ddd¬¦  «         t          j        | d|ddd¬¦  «         d S )Nc           	     óô   •— |�t|j         ‰j         k    rd|                     t          j        |¦  «        ¦  «        }|r;||ur7t	          j        dt          j        |¦  «        ›d| j        ›d‰›d�d¬¦  «        ‚|S )Nz	Instance z+ is already associated with an instance of z	 via its z0 attribute, and is only allowed a single parent.Úbbf1)Úcode)	r4   Ú	hasparentr	   Úinstance_staterö   r÷   r2   Úinstance_strrX   )rá   rL  ÚoldvalueÚ	initiatorr£  r6   s        €r9   Ú	_do_checkz*single_parent_validator.<locals>._do_checkô  sš   ø€ ØÐ ¤°$´(Ò!:Ð!:Ø!×+Ò+­JÔ,EÀeÑ,LÔ,LÑMÔMˆIØð ˜X¨UÐ2Ð2ÝÔ0Ð0õ  Ô,¨UÑ3Ô3Ð3Ð3°U´\°\°\À4À4À4ðIð  ðñ ô ð ð ˆr;   c                ó    •—  ‰| |d |¦  «        S r1   r}   )rá   rL  r§  r¨  s      €r9   rK   z'single_parent_validator.<locals>.append  s   ø€ Øˆy˜  t¨YÑ7Ô7Ð7r;   c                ó    •—  ‰| |||¦  «        S r1   r}   )rá   rL  r¦  r§  r¨  s       €r9   Úset_z%single_parent_validator.<locals>.set_  s   ø€ Øˆy˜  x°Ñ;Ô;Ð;r;   rK   T)ÚrawÚretvalrF   rÓ   )r&   Úlisten)r5   r6   rK   r«  r¨  s    `  @r9   rL   rL   ó  sœ   øø€ ðð ð ð ð ð8ð 8ð 8ð 8ð 8ð<ð <ð <ð <ð <õ 
„LØˆh˜ D°Àdðñ ô ð õ 
„L��u˜d¨°TÈ$ÐOÑOÔOÐOÐOÐOr;   )NNNNFN)Qr†   Ú
__future__r   r}  r�  Útypingr   r   r   r   Ú r	   r
   rê   r   r   r   r   r   r   r   r   r2   Úbaser   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*   Úsql.selectabler+   r,   r-   Úsql.elementsr.   rb   ÚColumnPropertyÚstrategy_forrf   Úclass_loggerr‹   r©   r¼   rû   r  r  r  ÚMemoizedSlotsÚ
Identifiedr  r¼  rÌ  ræ  r  r¹  rH  rL   r}   r;   r9   ú<module>rº     s™	  ðð2ð 2ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø $Ð $Ð $Ð $Ð $Ð $Ø *Ð *Ð *Ð *Ð *Ð *Ø !Ð !Ð !Ð !Ð !Ð !Ø &Ð &Ð &Ð &Ð &Ð &Ø +Ð +Ð +Ð +Ð +Ð +Ø #Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø #Ð #Ð #Ð #Ð #Ð #àð -Ø3Ð3Ð3Ð3Ð3Ð3Ø,Ð,Ð,Ð,Ð,Ð,ð ØØØØØðN!ð N!ð N!ð N!ðb Ô×'Ò'°5À5Ð'ÑIÔIð(ð (ð (ð (ð ( ñ (ô (ñ JÔIð(ðV ÔØÔ×'Ò'°4À%Ð'ÑHÔHðW:ð W:ð W:ð W:ð W:�>ñ W:ô W:ñ IÔHñ ÔðW:ðt ÔØÔ×'Ò'¸Ð'Ñ>Ô>ðT
ð T
ð T
ð T
ð T
˜\ñ T
ô T
ñ ?Ô>ñ ÔðT
ðn ÔØÔ×'Ò'°À$Ð'ÑGÔGØÔ×'Ò'Ø˜d¨dð (ñ ô ð Ô×'Ò'°4Ð'Ñ8Ô8ðl
ð l
ð l
ð l
ð l
˜>ñ l
ô l
ñ 9Ô8ñô ñ HÔGñ Ôðl
ð^8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ð0"
ð "
ð "
ð "
ð "
 ñ "
ô "
ð "
ðJ ÔØÔ#×0Ò0¸DÐ0ÑAÔAðð ð ð ð �nñ ô ñ BÔAñ Ôðð ÔØÔ#×0Ò0°hÐ0Ñ?Ô?ØÔ#×0Ò0°dÐ0Ñ;Ô;ð#=ð #=ð #=ð #=ð #=Ð)ñ #=ô #=ñ <Ô;ñ @Ô?ñ Ôð#=ðL ÔØÔ#×0Ò0°dÐ0Ñ;Ô;ØÔ#×0Ò0°hÐ0Ñ?Ô?ØÔ#×0Ò0°gÐ0Ñ>Ô>ØÔ#×0Ò0°nÐ0ÑEÔEØÔ#×0Ò0°nÐ0ÑEÔEðbJð bJð bJð bJð bJØ Ô 2°C´NñbJô bJñ FÔEñ FÔEñ ?Ô>ñ @Ô?ñ <Ô;ñ ÔðbJðJ1
ð 1
ð 1
ð 1
ð 1
ñ 1
ô 1
ð 1
ðhIHð IHð IHð IHð IHÐ+ñ IHô IHð IHðX Ô#×0Ò0°kÐ0ÑBÔBð]ð ]ð ]ð ]ð ]�jñ ]ô ]ñ CÔBð]ð@ ÔØÔ#×0Ò0°jÐ0ÑAÔAðy	Gð y	Gð y	Gð y	Gð y	G�Zñ y	Gô y	Gñ BÔAñ Ôðy	Gðx ÔØÔ#×0Ò0°hÐ0Ñ?Ô?ØÔ#×0Ò0°eÐ0Ñ<Ô<ðOð Oð Oð Oð OÐ-ñ Oô Oñ =Ô<ñ @Ô?ñ ÔðOðd ÔØÔ#×0Ò0°jÐ0ÑAÔAðtð tð tð tð t�Z Ô!3ñ tô tñ BÔAñ ÔðtðnPð Pð Pð Pð Pr;   