+
    ‡)Ùji ã                   óª  € ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtH	t	H
t
 ^ RIHtHt ^ RIHt ^ RIHtHtHtHtHtHt ^ RIHtHt ^ R	IHtHt ^ R
IHt ^ RIH t  ^ RI!H"t"H#t#H$t$H%t%H&t&H't'H(t( ^ RI)H*t*H+t+ ^ RI,H-t- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3  ! R R]4      t4 ! R R4      t5 ! R R]54      t6 ! R R]54      t7 ! R R]54      t8 ! R R]54      t9R t:R# )é    N)Úpartial)Úchain)ÚEmptyResultSetÚ
FieldErrorÚFullResultSet)ÚDatabaseErrorÚNotSupportedError)Ú
LOOKUP_SEP)ÚColPairsÚFÚOrderByÚRawSQLÚRefÚValue)Ú	AutoFieldÚ	composite)ÚCastÚRandom)ÚLookup)Úselect_related_descend)ÚCURSORÚGET_ITERATOR_CHUNK_SIZEÚMULTIÚ
NO_RESULTSÚ	ORDER_DIRÚ	ROW_COUNTÚSINGLE)ÚQueryÚget_order_dir)ÚTransactionManagementError)Úcached_property)Úmake_hashable)Ú_lazy_re_compilec                   ó8   a a€ ] tR t^t oV 3R ltR tRtVtV ;t# )ÚPositionRefc                ó2   <€ Wn         \        SV `	  W#4       R # ©N)ÚordinalÚsuperÚ__init__)Úselfr(   ÚrefsÚsourceÚ	__class__s   &&&&€ÚV/var/www/eggtrainer/venv/lib/python3.14/site-packages/django/db/models/sql/compiler.pyr*   ÚPositionRef.__init__    s   ø€ ØŒÜ‰Ñ˜Ö&ó    c                ó0   € \        V P                  4      R3# )N© )Ústrr(   )r+   ÚcompilerÚ
connections   &&&r/   Úas_sqlÚPositionRef.as_sql$   s   € Ü�4—<‘<Ó  "Ð$Ð$r1   )r(   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r*   r7   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r.   Ú__classdict__s   @@r/   r%   r%      s   ù‡ € õ'÷%ò %r1   r%   c                   óX  a € ] tR t^(t o ]! R]P                  ]P                  ,          4      tR$R lt	R t
R%R ltR%R ltR tR tR%R	 ltR
 tR tR tR tR tR tR tR tR&R ltR'R ltR tR(R ltR tR tR)R ltR tR t R t!R t"R t#RRR]$3R lt%R  t&]'R]$3R! lt(R" t)R#t*V t+R# )*ÚSQLCompilerz^(.*)\s(?:ASC|DESC).*c                ó€   € Wn         W n        W0n        W@n        R R /V n        RV n        RV n        RV n        RV n        R# )Ú*N)	Úqueryr6   ÚusingÚelide_emptyÚquote_cacheÚselectÚannotation_col_mapÚ
klass_infoÚ_meta_ordering)r+   rF   r6   rG   rH   s   &&&&&r/   r*   ÚSQLCompiler.__init__/   sE   € ØŒ
Ø$ŒØŒ
ð 'ÔØ ˜:ˆÔð
 ˆŒØ"&ˆÔØˆŒØ"ˆÖr1   c           	     ó°   € R V P                   P                   RV P                  P                  P                   RV P                  : RV P
                  : R2	# )Ú<z model=z connection=z using=Ú>)r.   r;   rF   Úmodelr6   rG   ©r+   s   &r/   Ú__repr__ÚSQLCompiler.__repr__@   sU   € à�—‘×+Ñ+Ð,ð -Ø—Z‘Z×%Ñ%×2Ñ2Ð3ð 4ØŸ/™/Ñ,¨G°D·J±J±>ÀðDð	
r1   Fc                óŠ  a € \         ;QJ d3    V 3R  lS P                  P                   4       F  '       d   K   RM(	  RM$! V 3R  lS P                  P                   4       4      '       d   S P                  P                  4        S P	                  VR7      w  S n        S n        S n        \        S P
                  4      S n	        R# )c              3   ód   <"  € T F%  pSP                   P                  V,          ^ 8H  x € K'  	  R# 5i©r   N©rF   Úalias_refcount)Ú.0Úar+   s   & €r/   Ú	<genexpr>Ú*SQLCompiler.setup_query.<locals>.<genexpr>H   s'   øé € ÐOÑ:N°Qˆt�z‰z×(Ñ(¨Õ+¨qÖ0Ó:Nùó   ƒ-0FT©Úwith_col_aliasesN)
ÚallrF   Ú	alias_mapÚget_initial_aliasÚ
get_selectrJ   rL   rK   ÚlenÚ	col_count)r+   ra   s   f&r/   Úsetup_queryÚSQLCompiler.setup_queryG   s�   ø€ ß‹3ÔO¸$¿*¹*×:NÒ:NÓO�3�3Š3ÔO¸$¿*¹*×:NÒ:NÓO×OÒOØ�J‰J×(Ñ(Ô*Ø@DÇÁØ-ð APó A
Ñ=ˆŒ�T”_ dÔ&=ô ˜TŸ[™[Ó)ˆŽr1   c                óˆ  € V P                  VR7       V P                  4       pV P                  P                  P	                  V P                  P
                  RJR7      w  V n        V n        V n        V P                  W P                  4      p\        V4      V n        V P                  V P                  V,           V4      pW2V3# )zÀ
Do any necessary class setup immediately prior to producing SQL. This
is for things that can't necessarily be done in __init__ because we
might not have all the pieces in place at that time.
r`   N)Úmust_group_by)rh   Úget_order_byrF   ÚwhereÚsplit_having_qualifyÚgroup_byÚhavingÚqualifyÚget_extra_selectrJ   ÚboolÚhas_extra_selectÚget_group_by)r+   ra   Úorder_byÚextra_selectro   s   &&   r/   Úpre_sql_setupÚSQLCompiler.pre_sql_setupO   s¬   € ð 	×ÑÐ*:ÐÔ;Ø×$Ñ$Ó&ˆØ04·
±
×0@Ñ0@×0UÑ0UØŸ*™*×-Ñ-°TÐ9ð 1Vó 1
Ñ-ˆŒ
�D”K ¤ð ×,Ñ,¨X·{±{ÓCˆÜ $ \Ó 2ˆÔØ×$Ñ$ T§[¡[°<Õ%?ÀÓJˆØ xÐ/Ð/r1   c                ó–  € V P                   P                  f   . # . p\        4       pV P                   P                  RJd½   V P                   P                   F¢  p\        VR4      '       g   V P                   P	                  V4      p\        V\        4      '       dL   VP                  V9  d9   VP                  VP                  4       VP                  VP                  4       K�  K‘  VP                  V4       K¤  	  / p\        V^R7       F<  w  pw  rXp	V	'       d   WvV&   W”9   d   K  VP                  VP                  4       4       K>  	  V P                  '       g9   V F2  w  pw  r«pV'       d   K  VP                  VP                  4       4       K4  	  V P                  '       d   V P                  P                  4       MRpV F  pVP                  V4       K  	  . p\        4       pV P!                  W=4      pV P"                  P$                  P&                  pV F�  p V P)                  V4      w  r«T'       d#   TP/                  T4      ;pe   \1        T4      RrºMTP3                  Y
T4      w  r«\5        T4      pT
T3T9  g   Kk  TP                  Y«34       TP                  T
T34       K’  	  V#   \*        \,        3 d     Kª  i ; i)zÅ
Return a list of 2-tuples of form (sql, params).

The logic of what exactly the GROUP BY clause contains is hard
to describe in other words than "if it passes the test suite,
then it is correct".
Tr7   ©Ústartr3   )rF   ro   ÚsetÚhasattrÚresolve_refÚ
isinstancer   r,   ÚaddÚappendr-   Ú	enumerateÚextendÚget_group_by_colsrM   rp   Úcollapse_group_byr6   ÚfeaturesÚallows_group_by_select_indexÚcompiler   r   Úgetr4   Úselect_formatr"   )r+   rJ   rv   ÚexpressionsÚgroup_by_refsÚexprÚselected_expr_positionsr(   Ú_ÚaliasÚsqlÚparamsÚis_refÚhaving_group_byÚresultÚseenrˆ   ÚpositionÚparams_hashs   &&&                r/   ru   ÚSQLCompiler.get_group_by_   sp  € ðL �:‰:×ÑÒ&ØˆIØˆÜ›ˆØ�:‰:×Ñ dÓ*ð Ÿ
™
×+Ô+�Ü˜t X×.Ò.ØŸ:™:×1Ñ1°$Ó7�DÜ˜d¤C×(Ò(Ø—y‘y¨Ô5Ø%×)Ñ)¨$¯)©)Ô4Ø#×*Ñ*¨4¯;©;Ö7ñ 6ð  ×&Ñ& tÖ,ñ ,ð #%ÐÜ)2°6À×)CÑ%ˆGÑ%�d˜ußØ07¨Ñ-ð Ô%ÙØ×Ñ˜t×5Ñ5Ó7Ö8ñ *Dð ×"×"Ð"Û/7Ñ+�Ñ+�s F÷ ‘vØ×&Ñ& t×'=Ñ'=Ó'?Ö@ñ	 08ð
 >B¿[¿[¸[˜$Ÿ+™+×7Ñ7Ô9ÈbˆÛ#ˆDØ×Ñ˜tÖ$ñ $àˆÜ‹uˆØ×,Ñ,¨[ÓJˆð �O‰O×$Ñ$×AÑAð 	%ó  ˆDðØ"Ÿl™l¨4Ó0‘�÷ -Ø!8×!<Ñ!<¸TÓ!BÐB�XÒOä! (›m¨R‘Và"×0Ñ0°¸FÓC‘�Ü'¨Ó/ˆKØ�[Ð!¨Ö-Ø—‘˜s˜mÔ,Ø—‘˜#˜{Ð+Ö,ñ  ð  ˆøô #¤MÐ2ô Úðús   È!J3Ê3KËKc                ó  € V P                   P                  P                  '       dÐ   V Uu0 uFx  p\        VR 4      '       g   K  VP                  P
                  '       g   K5  V P                   P                  P                  VP                  P                  4      '       g   Kv  VkKz  	  ppV Uu0 uF  q3P                  kK  	  ppV Uu. uF%  pW49   g   W29   g   \        VRR4      V9  g   K#  VNK'  	  ppV# u upi u upi u upi )Útargetr‘   N)
r6   r‡   Úallows_group_by_selected_pksr~   rœ   Úprimary_keyÚ%allows_group_by_selected_pks_on_modelrR   r‘   Úgetattr)r+   rŒ   rp   rŽ   ÚpksÚaliasess   &&&   r/   r†   ÚSQLCompiler.collapse_group_byÆ   sö   € ð �?‰?×#Ñ#×@×@Ð@ñ (ó
á'�Dä˜D (×+ô ð Ÿ™×/Õ/ô	 ð
 Ÿ™×0Ñ0×VÑVØŸ™×)Ñ)÷÷ �Ù'ð ð 
ñ /2Ó2©c d—z”z©cˆGÐ2ñ (óá'�DØ”;Ø”>Ü˜4 ¨$Ó/°wÑ>÷	 �Ù'ð ð ð Ðùò'
ùò 3ùòs)   «C8ÁC8Á"<C8Â#C8Â/C=Ã	 DÃ.Dc           	     óv  a€ . pRp/ pV P                   P                  '       d   V P                   P                  '       d   Q hV P                   P                  4       pV P                   P                  '       d   V P	                  V4      pMV P                   P                  p. pRpV P                   P
                  f»   . R V P                   P                  P                  4        4       OR V 4       OV P                   P                  P                  4       Op\        \        \        V P                   P                  4      \        V P                   P                  4      \        V4      ,           4      4      pMÈ. p\        V P                   P
                  P                  4       4       F•  w  p	w  r«\        V\        4      '       d   V P                   P                  V,          pM/\        V\         4      '       d   VP#                  V	4       Wk,          p\        V\$        4      '       d   Rp
VP#                  W«34       K—  	  V'       d   RV P                   P&                  RV/p\        V4       F&  w  pw  r«V
'       d   WÄV
&   VP#                  Wº34       K(  	  V P                   P(                  '       d$   V P+                  W%4      pWÓR&   V3R loS! V4       . p^pV Fa  w  pp
 V P-                  V4      w  ppVP/                  V VV4      w  ppV
f   V'       d   RV 2p
V^,          pVP#                  VVV3V
34       Kc  	  WãV3#   \0         dB    \3        TR\4        4      pT\4        J d   R	Rpp LdT P-                  \7        T4      4      w  pp Lƒ\8         d!    T P-                  \7        R
4      4      w  pp L¬i ; i)a8  
Return three values:
- a list of 3-tuples of (expression, (sql, params), alias)
- a klass_info structure,
- a dictionary of annotations

The (sql, params) is what the expression will produce, and alias is the
"AS alias" for the column (possibly None).

The klass_info structure contains the following information:
- The base model of the query.
- Which columns for that model are present in the query (by
  position of the select clause).
- related_klass_infos: [f, klass_info] to descent into

The annotations is a dictionary of {'attname': column position} values.
Nc              3   ó<   "  € T F  w  rV\        V!  3x € K  	  R # 5ir'   )r   )r[   r‘   Úargss   &  r/   r]   Ú)SQLCompiler.get_select.<locals>.<genexpr>  s"   é € ð á'F™˜ð œF D™MÕ*Û'Fùs   ‚c              3   ó*   "  € T F	  pR V3x € K  	  R # 5ir'   r3   )r[   Úcols   & r/   r]   r§     s   é € Ð.© #�4˜•+«ùs   ‚rR   Úselect_fieldsÚrelated_klass_infosc                 óŠ   <€ V R ,           F4  pVR,          '       d   V R,          VR,          ,           VR&   S! V4       K6  	  R# )r«   Úfrom_parentrª   Nr3   )rL   ÚkiÚget_select_from_parents   & €r/   r¯   Ú6SQLCompiler.get_select.<locals>.get_select_from_parent.  sG   ø€ Ø$Ð%:×;Ð;�BØ˜-×(Ô(à& Õ7¸"¸_Õ:MÕMð ˜?Ñ+ñ +¨2Ö.ó <r1   Úempty_result_set_valueÚ0Tr©   r3   )rF   rJ   Údefault_colsÚget_select_maskÚget_default_columnsÚselectedrw   ÚitemsÚannotation_selectÚlistÚrangerf   rƒ   r€   r4   ÚannotationsÚintr‚   r   rR   Úselect_relatedÚget_related_selectionsr‰   r‹   r   r    ÚNotImplementedr   r   )r+   ra   rJ   rL   r»   Úselect_maskÚcolsr¶   rª   Úindexr‘   Ú
expressionÚ
select_idxr«   ÚretÚcol_idxr©   r’   r“   r±   r¯   s   &&                  @r/   re   ÚSQLCompiler.get_selectæ   sJ  ø€ ð$ ˆØˆ
ØˆØ—J‘J×%×%Ð%¨$¯*©*×*A×*AÐ*AÐBÐBØ—j‘j×0Ñ0Ó2ˆØ�:‰:×"×"Ð"Ø×+Ñ+¨KÓ8‰Dð —:‘:×$Ñ$ˆDØˆØˆØ�:‰:×ÑÒ&ðñà'+§z¡z×'>Ñ'>×'DÑ'DÔ'Fóðñ
 /©Ó.ðð —‘×-Ñ-×3Ñ3Ó5ðˆHô !ÜÜ˜Ÿ
™
×/Ñ/Ó0Ü˜Ÿ
™
×/Ñ/Ó0´3°t³9Õ<óó‰Mð ˆMÜ.7¸¿
¹
×8KÑ8K×8QÑ8QÓ8SÖ.TÑ*�Ñ*˜ä˜j¬#×.Ò.Ø!%§¡×!7Ñ!7¸
Õ!C‘Jä 
¬C×0Ò0Ø!×(Ñ(¨Ô/Ø!%Õ!1�Jä˜j¬(×3Ò3Ø �EØ—‘ Ð 3Ö4ñ /U÷ Ø! 4§:¡:×#3Ñ#3°_ÀmÐTˆJä/8¸Ö/BÑ+ˆJÑ+˜ßØ%/˜EÑ"Ø�M‰M˜:Ð-Ö.ñ 0Cð
 �:‰:×$×$Ð$Ø"&×"=Ñ"=¸fÓ"RÐØ0CÐ,Ñ-õ/ñ # :Ô.àˆØˆÛ ‰JˆC�ðCØ"Ÿl™l¨3Ó/‘��Vð "×/Ñ/°°c¸6ÓB‘��VØŠ}×!1Ø˜g˜Y˜�Ø˜1•�Ø�J‰J˜˜c 6˜]¨EÐ2Ö3ñ' !ð(  Ð+Ð+øô# "ô NÜ)0ØÐ1´>ó*Ð&ð *¬^Ó;à"% r˜�C™à"&§,¡,¬uÐ5KÓ/LÓ"M‘K�CšÜ ô 8Ø"Ÿl™l¬5°«;Ó7‘�’Vð8ús$   Ë!MÍ*N8Í/N8ÎN8ÎN8Î7N8c           
   #  ó
  "  € V P                   P                  '       d   V P                   P                  pM¯V P                   P                  '       g   V P                   P                  pM|V P                   P                  '       d   V P                   P                  pMIV P                   P	                  4       ;p'       d&   VP
                  '       d   VP
                  pWn        M. pV P                   P                  '       d   \        R ,          w  r4M\        R,          w  r4/ pV'       dK   V P                  ;p'       d7   \        V^R7       F%  w  pw  r„p	\        WyV4      p
V	'       d   W¥V	&   W¥V&   K'  	  V EF  p\        VR4      '       Ed²   \        V\        4      '       d   \        W»P                   4      p\        V\"        4      '       g   VP%                  4       pV P                   P                  '       g!   VP'                  4       pVP)                  4        VP+                  VP,                  4      pV'       gN   \        VP,                  \.        4      '       dØ   VP+                  VP,                  P0                  4      ;p'       d«   VP2                  f   VP4                  e'   V P6                  P8                  P:                  '       d   VP'                  4       pWËn        MQV P                   P<                  '       d6   VP'                  4       p\?        VP@                  VPB                  4      Vn        W¼RJ3x € EKÈ  VR8X  d   \#        \E        4       4      R3x € EKé  \G        W³4      w  rÞVR8H  pVP+                  V4      ;p'       d   \#        VVR7      R3x € EK(  V P                   PH                  P+                  V4      ;p'       d   Tp. pM<VPK                  \L        4      vppV P                   PH                  P+                  V4      pV'       d¸   V P                   P<                  '       d1   V P                  '       d   V'       d   \O        R	4      h\/        V4      pV'       d&   V F  pV P                   PQ                  VV4      pK!  	  \        V\        4      '       d   \        WˆP                   4      p\#        W�R7      R3x € EKU  R
V9   dd   W°P                   P                  9   dJ   VPK                  R
^4      w  pp\#        \S        V PU                  V4      : R
V: 2. 4      VR7      R3x € EK¿  V P                   PV                  '       d«   WÐP                   PV                  9   d‘   WÐP                   PX                  9   dA   \#        \?        V\S        V P                   PV                  V,          !  4      VR7      R3x € EKO  \#        \S        V P                   PV                  V,          !  VR7      R3x € EK…  V P                   P<                  '       d0   V P                  '       d   \#        \/        V4      VR7      R3x € EKÐ  V P[                  VV P                   P	                  4       VR7       Rj  x€L
  EK  	  R#  L5i)ÚASCÚDESCr{   Úresolve_expressionNÚ?F©Ú
descendingTz;Ordering combined queries by transforms is not implemented.Ú.)Údefault_order).rF   Úextra_order_byÚdefault_orderingrv   Úget_metaÚorderingrM   Ústandard_orderingr   rJ   rƒ   r%   r~   r€   r   r   Úoutput_fieldr   ÚascÚcopyÚreverse_orderingrŠ   rÃ   r   ÚnameÚnulls_firstÚ
nulls_lastr6   r‡   Ú supports_order_by_nulls_modifierÚ
combinatorr   r,   r-   r   r   r»   Úsplitr
   ÚNotImplementedErrorÚtry_transformr   Úquote_name_unless_aliasÚextrarw   Úfind_ordering_name)r+   rÔ   ÚmetarÐ   r�   Úselected_exprsrJ   r(   rŽ   r‘   Úpos_exprÚfieldÚ
select_refr©   ÚorderrÎ   ÚrefÚ
transformsrÚ   Útables   &                   r/   Ú_order_by_pairsÚSQLCompiler._order_by_pairsP  s  é € Ø�:‰:×$×$Ð$Ø—z‘z×0Ñ0‰HØ—‘×,×,Ð,Ø—z‘z×*Ñ*‰HØ�Z‰Z× × Ð Ø—z‘z×*Ñ*‰HØ—j‘j×)Ñ)Ó+Ð+ˆdÖ+°··°Ø—}‘}ˆHØ"*ÕàˆHØ�:‰:×'×'Ð'Ü(¨Õ/ÑˆM˜1ä(¨Õ0ÑˆMàˆ÷  4§;¡;Ð.˜Ö.Ü-6°vÀQ×-GÑ)�Ñ)˜$ 5Ü& w°tÓ<�ßØ,4 5Ñ)Ø'/˜tÓ$ñ	 .Hô ˆEÜ�uÐ2×3Ó3Ü˜e¤U×+Ò+ä  ×(:Ñ(:Ó;�EÜ! %¬×1Ò1Ø!ŸI™I›K�EØ—z‘z×3×3Ð3Ø!ŸJ™J›L�EØ×*Ñ*Ô,Ø+×/Ñ/°×0@Ñ0@ÓA�
ßÜ˜u×/Ñ/´×3Ò3Ø'5×'9Ñ'9¸%×:JÑ:J×:OÑ:OÓ'PÐP˜ÖPð
 ×)Ñ)Ò1°e×6FÑ6FÒ6NØŸ™×1Ñ1×R×RÐRØ %§
¡
£˜Ø+5Õ(ð Ÿ™×.×.Ð.Ø %§
¡
£˜Ü+.¨z¯©À
×@QÑ@QÓ+R˜Ô(Ø¨tÐ3Ð3Ò3ÚØ˜Œ|Üœf›hÓ'¨Ð.Ò.Úä& uÓ<‰JˆCØ &™ˆJà+×/Ñ/°Ó4Ð4ˆzÖ4ô Ø"Ø#-ôð ðò ò à—z‘z×-Ñ-×1Ñ1°#Ó6Ð6ˆtÖ6Ø�Ø‘
à#&§9¡9¬ZÓ#8Ð ��jØ—z‘z×-Ñ-×1Ñ1°#Ó6�ßØ—:‘:×(×(Ð(¨T¯[¯[¨[ß!Ü1ð+óð ô ˜S›6�DßÛ *˜Ø#Ÿz™z×7Ñ7¸¸dÓCšñ !+ä˜d¤E×*Ò*ä ×&7Ñ&7Ó8�DÜ˜dÔ:¸EÐAÒAÚà�eŒ| ¯©×)BÑ)BÔ Bð !ŸY™Y s¨AÓ.‘
��säÜØ'+×'CÑ'CÀEÖ'JÊCÐPÐRTóð $.ô	ð ðò ò à�z‰z××Ð C¯:©:×+;Ñ+;Ô$;ØŸ*™*×1Ñ1Ô1äÜ ¤V¨T¯Z©Z×-=Ñ-=¸cÕ-BÑ%CÓDØ'1ôð ðõ ô  ¤¨¯
©
×(8Ñ(8¸Õ(=Ñ >È:ÔVØðõ ð
 —:‘:×(×(Ð(¨T¯[¯[¨[ô "¤! C£&°ZÔ@À%ÐGÕGð  $×6Ñ6ØØŸ
™
×+Ñ+Ó-Ø&3ð  7ó  ÷ ó ó] ñ\ùs™   ‚AZÁ2ZÂ8ZÂ>ZÃ0ZÄ(ZÄ*ZÄ>B;ZÇ:AZÈ=AZÊ
AZË2ZË?CZÏAZÐZÐ0ZÑZÑ
ZÑ(C(ZÕCZØZØ)AZÙ5ZÙ6Zc                óÜ  € . p\        4       pV P                  4        EFJ  w  r4VP                  V P                  RRR7      pV'       Eg«   V P                  P                  '       EdŽ   V P
                  '       Ed{   VP                  pVP                  pV P
                   F¦  w  r‰p
Wh8X  g   K  V P                  P                  '       dC   W P                  P                  9   d)   \        V\        4      '       d   W§P                  8X  g   Kl  TP                  \        V
'       d   T
MVP                  P                  V4      .4        M®	  \!        V P                  P
                  4      ^,           pRV 2p
V P                  P"                   F1  pVP                  '       d   \%        R4      hVP'                  Wz4       K3  	  V P                  P)                  WZ4       VP                  \        W¦4      .4       V P+                  V4      w  rÞV P,                  P/                  V4      ^,          p\1        V4      pVV3V9   d   EK#  VP3                  VV34       VP5                  W]Wä334       EKM  	  V# )zÿ
Return a list of 2-tuples of the form (expr, (sql, params, is_ref)) for
the ORDER BY clause.

The order_by clause can alter the select clause (for example it can add
aliases to clauses that do not yet have one, or it can add totally new
select clauses).
TN)Úallow_joinsÚreuseÚ__orderbycolz:ORDER BY term does not match any column in the result set.)r}   rî   rË   rF   rÞ   rJ   rÃ   Úhas_select_fieldsr¸   r€   r   rÚ   Úset_source_expressionsr   rœ   Úcolumnrf   Úcombined_queriesr   Úadd_annotationÚadd_select_colr‰   Úordering_partsÚsearchr"   r�   r‚   )r+   r–   r—   rŽ   r”   ÚresolvedÚsrcÚexpr_srcÚsel_exprr�   Ú	col_aliasÚorder_by_idxÚqr’   r“   Úwithout_orderingr™   s   &                r/   rl   ÚSQLCompiler.get_order_byß  s  € ð ˆÜ‹uˆØ ×0Ñ0×2‰LˆDØ×.Ñ.¨t¯z©zÀtÐSWÐ.ÓXˆHß�6˜dŸj™j×3×3Ñ3¸¿¿¹Ø×)Ñ)�ØŸ?™?�Ø.2¯k¬kÑ*�H Ø–ð !ŸJ™J×8×8Ð8Ø )¯Z©Z×-IÑ-IÔ Iä *¨8´Q× 7Ò 7¸IÏÉÔ<Vñ %Ø ×7Ñ7Ü ¯i¡¸S¿Z¹Z×=NÑ=NÐPSÓTÐUôñ ñ /:ô& $' t§z¡z×'8Ñ'8Ó#9¸AÕ#=�LØ".¨|¨nÐ =�IØ!ŸZ™Z×8Ô8˜ð ×.×.Ð.Ü"/ð!2ó#ð ð ×(Ñ(¨Ö=ñ 9ð —J‘J×-Ñ-¨hÔBØ×3Ñ3´S¸Ó5HÐ4IÔJØŸ,™, xÓ0‰KˆCð
  $×2Ñ2×9Ñ9¸#Ó>¸qÕAÐÜ'¨Ó/ˆKØ  +Ð.°$Ô6ÚØ�H‰HÐ&¨Ð4Ô5Ø�M‰M˜8¨6Ð%:Ð;×<ñ_ 3ð` ˆr1   c                óf  € . pV P                   P                  '       dŽ   V P                   P                  '       gr   V Uu. uF  qD^,          NK  	  ppV FT  w  pw  rxp	V P                  P	                  V4      ^,          p
V	'       d   K5  W¨3V9  g   K?  VP                  WjV3R34       KV  	  V# u upi ©é   N)rF   ÚdistinctÚdistinct_fieldsrú   rû   r‚   )r+   rv   rJ   rw   ÚtÚ
select_sqlrŽ   r’   r“   r”   r  s   &&&        r/   rr   ÚSQLCompiler.get_extra_select  s£   € ØˆØ�:‰:××Ð t§z¡z×'A×'AÐ'AÙ(.Ó/© 1˜AŸ$˜$©ˆJÐ/Û/7Ñ+�Ñ+�s FØ#'×#6Ñ#6×#=Ñ#=¸cÓ#BÀ1Õ#EÐ ß‘vÐ#3Ð"<ÀJÖ"NØ ×'Ñ'¨À&Ð/IÈ4Ð(PÖQñ 08ð Ðùò 0s   ¿B.c                óø  € WP                   9   d   V P                   V,          # WP                  P                  9   d   WP                  P                  9  g`   WP                  P                  9   gF   V P                  P
                  P                  V4      '       d+   WP                  P                  9  d   WP                   V&   V# V P                  P                  P                  V4      pW P                   V&   V# )z»
A wrapper around connection.ops.quote_name that doesn't quote aliases
for table names. This avoids problems with some SQL dialects that treat
quoted strings specially (e.g. PostgreSQL).
)
rI   rF   rc   Ú	table_maprw   Úexternal_aliasesrŠ   r6   ÚopsÚ
quote_name)r+   rÚ   Úrs   && r/   râ   Ú#SQLCompiler.quote_name_unless_alias&  s½   € ð ×#Ñ#Ô#Ø×#Ñ# DÕ)Ð)à—Z‘Z×)Ñ)Ô)¨d¿*¹*×:NÑ:NÔ.NØ—z‘z×.Ñ.Ô.à—
‘
×+Ñ+×/Ñ/°×5Ò5Ø§
¡
× 4Ñ 4Ô4ð &*×Ñ˜TÑ"ØˆKØ�O‰O×Ñ×*Ñ*¨4Ó0ˆØ!"×Ñ˜ÑØˆr1   c                óÐ   € \        VR V P                  P                  ,           R4      pV'       d   V! W P                  4      w  r4W43# VP                  W P                  4      w  r4W43# )Úas_N)r    r6   Úvendorr7   )r+   ÚnodeÚvendor_implr’   r“   s   &&   r/   r‰   ÚSQLCompiler.compile<  sZ   € Ü˜d E¨D¯O©O×,BÑ,BÕ$BÀDÓIˆßÙ% d¯O©OÓ<‰KˆCð ˆ{Ðð Ÿ+™+ d¯O©OÓ<‰KˆCØˆ{Ðr1   c                ó¸  a€ V P                   P                  pV P                  P                   Uu. uF4  pVP	                  V P
                  V P                   V P                  4      NK6  	  ppVP                  '       gR   V FK  pVP                  P                  '       d   \        R 4      hVP                  4       '       g   KB  \        R4      h	  . pRpV F$  p VP                  V P                  V4      4       K&  	  V'       g   \        h\        V4      ^8X  dK   VR8X  dD   V P                  P                  '       d(   RVn        VP                  V P                  V4      4       V P                   P                  P                   V,          p	V'       d   VR8X  d
   V	R,          p	RoV P                  P"                  '       g   VP                  '       d   Ro\%        V3R	 lV 4       !  w  r«R
P'                  V	4      P)                  V
4      .p. pV F  pVP+                  V4       K  	  WÍ3# u upi   \         d    TR8X  g   TR8X  d   T'       d   Tp EK‚  h i ; i)z>LIMIT/OFFSET not allowed in subqueries of compound statements.z:ORDER BY not allowed in subqueries of compound statements.NÚunionÚ
differenceFz ALLz{}ú({})c              3   óN   <"  € T F  w  rSP                  V4      V3x € K  	  R # 5ir'   )Úformat)r[   r’   r¦   Úbracess   &  €r/   r]   Ú1SQLCompiler.get_combinator_sql.<locals>.<genexpr>q  s!   øé € Ð@¹%©Y¨Sˆv�}‰}˜SÓ! 4Õ(»%ùó   ƒ"%z {} )r6   r‡   rF   r÷   Úget_compilerrG   rH   Ú%supports_slicing_ordering_in_compoundÚ	is_slicedr   rl   r‚   Ú_get_combinator_part_sqlr   rf   r  Úset_operatorsÚsubqueryÚzipr  Újoinr„   )r+   rÞ   rb   r‡   rF   Ú	compilersr5   ÚpartsÚempty_compilerÚcombinator_sqlÚ	sql_partsÚ
args_partsr–   r“   Úpartr   s   &&&            @r/   Úget_combinator_sqlÚSQLCompiler.get_combinator_sqlD  s  ø€ Ø—?‘?×+Ñ+ˆð Ÿ™×4Ò4ó
á4�ð ×Ñ˜tŸz™z¨4¯?©?¸D×<LÑ<LÖMÙ4ð 	ð 
ð ×=×=Ð=Û%�Ø—>‘>×+×+Ð+Ü'ØXóð ð ×(Ñ(×*Ô*Ü'ØTóð ñ &ð ˆØˆÛ!ˆHðØ—‘˜T×:Ñ:¸8ÓDÖEñ "÷ Ü Ð Ü�‹Z˜1Œ_ ¨wÔ!6¸4¿:¹:×;O×;OÐ;Oð */ˆNÔ&Ø�L‰L˜×6Ñ6°~ÓFÔGØŸ™×,Ñ,×:Ñ:¸:ÕFˆß�: Ô(Ø˜fÕ$ˆNØˆØ�z‰z×"×"Ð" x×'U×'UÐ'UØˆFÜ #Ü@¹%Ó@ñ!
Ñˆ	ð —-‘- Ó/×4Ñ4°YÓ?Ð@ˆØˆÛˆDØ�M‰M˜$Öñ àˆ~Ðùòc
øô& "ô ð  Ô(¨Z¸<Ô-GÏEØ%-�NÛØðús   °:H+Ã H0È0 IÉIÉIc                óº  € V P                   P                  pV P                  P                  pVeS   VP                  P                  f;   VP                  P	                  4       Vn        VP                  P                  V4       VP                  RR7      w  rEVP                  P                  '       di   VP                  '       g   RP                  V4      pWE3# V P                  P                  '       g   VP                  '       g   RP                  V4      pWE3# V P                  P                  '       d$   VP                  '       d   RP                  V4      pWE3# )NTr`   zSELECT * FROM ({})r  )r6   r‡   rF   r¶   ÚcloneÚ
set_valuesr7   rÞ   Ú supports_parentheses_in_compoundr  r(  r$  )r+   r5   r‡   r¶   Úpart_sqlÚ	part_argss   &&    r/   r&  Ú$SQLCompiler._get_combinator_part_sqly  s  € Ø—?‘?×+Ñ+ˆð —:‘:×&Ñ&ˆØÒ H§N¡N×$;Ñ$;Ò$CØ%Ÿ^™^×1Ñ1Ó3ˆHŒNØ�N‰N×%Ñ% hÔ/Ø&Ÿo™o¸t˜oÓDÑˆØ�>‰>×$×$Ð$ð ×<×<Ð<Ø/×6Ñ6°xÓ@�ð Ð"Ð"ð —
‘
×#×#Ð#Ø×E×EÐEà!Ÿ=™=¨Ó2�ð Ð"Ð"ð �Z‰Z× × Ð  X×%S×%SÐ%SØ—}‘} XÓ.ˆHØÐ"Ð"r1   c                ó@  aaaaa€ . pV P                   '       d   VP                  V P                   4       V P                  '       d   VP                  V P                  4       V P                  P	                  4       oR Sn        SP                   P                  V4      Sn         V P                  R R7      ^ ,           UUUu/ uF  w  r#qBVbK
  	  upppo\        SP                  4       4      o\        4       o/ oVVVVV3R lpV! \        V P                  P                  4       4      4       V P                  P                  SP                  4        UUu/ uF  w  r$V\        WB4      bK  	  upp4      V n        . pV P!                  4        Ff  vrsV! VP#                  4       4       TP                  TP                  SP                  4        UUu/ uF  w  r$V\        WB4      bK  	  upp4      4       Kh  	  SP%                  V P&                  V P(                  V P*                  R7      pVP-                  RR R7      w  ršV P/                  V P                  4      w  r¼RV	RV P(                  P0                  P3                  R4      R	V.pS'       d   SP                  4        Uu. uF'  q@P(                  P0                  P3                  V4      NK)  	  ppR
RP5                  V4      R.VORNV P(                  P0                  P3                  R4      Np\        V
4      V,           pV'       dd   . pV F9  pV P/                  V4      w  ppVP                  V4       VP7                  V4       K;  	  VP7                  RRP5                  V4      .4       Wß3# u upppi u uppi u uppi u upi )Tr`   c                 óþ  <€ V '       dô   V P                  4       pVS9   d   K!  SP                  V4      ;p'       d   VSV&   KA  \        V\        4      '       d"   V P	                  VP                  4       4       Kx  \        V\        4      '       d5   VP                  S9  d"   V P	                  VP                  4       4       KÀ  KÂ  \        S4      pR V 2pSP                  V4       SP                  W4       VSV&   Kû  R# )ÚqualN)ÚpoprŠ   r€   r   r„   Úget_source_expressionsr   r,   rf   r�   rø   )	rŒ   rŽ   Úselect_aliasÚnum_qual_aliasÚinner_queryÚqual_aliasesÚreplacementsrJ   Úselect_aliasess	   &   €€€€€r/   Úcollect_replacementsÚ9SQLCompiler.get_qualify_sql.<locals>.collect_replacements§  sØ   ø€ ßØ"—‘Ó(�Ø˜<Ô'ÙØ%+§Z¡Z°Ó%5Ð5�\Ö5Ø)5�L Ó&Ü ¤f×-Ò-Ø×&Ñ& t×'BÑ'BÓ'DÖEÜ ¤c×*Ò*Ø—y‘y¨Ô6Ø#×*Ñ*¨4×+FÑ+FÓ+HÖIñ 7ô &)¨Ó%6�NØ%)¨.Ð)9Ð#:�LØ ×$Ñ$ \Ô2Ø×.Ñ.¨tÔBØ)5�L Ó&ñ! r1   )r6   rH   F)Úwith_limitsra   úSELECT * FROM (Ú)rq   ÚWHEREÚSELECTú, zFROM (Úqualify_maskzORDER BY)rm   r‚   rp   rF   r5  r(  r.   re   r}   Úvaluesr¹   rq   ÚleavesÚreplace_expressionsr·   r   rl   r?  r#  rG   r6   rH   r7   r‰   r  r  r*  r„   )r+   Úwhere_partsrŽ   r�   r‘   rF  rv   Úorder_by_exprÚinner_query_compilerÚ	inner_sqlÚinner_paramsÚqualify_sqlÚqualify_paramsr–   rÁ   r“   Úordering_sqlsrÔ   Úordering_sqlÚordering_paramsrB  rC  rD  rJ   rE  s   &                   @@@@@r/   Úget_qualify_sqlÚSQLCompiler.get_qualify_sql“  s=  ü€ ØˆØ�:�:ˆ:Ø×Ñ˜tŸz™zÔ*Ø�;�;ˆ;Ø×Ñ˜tŸ{™{Ô+Ø—j‘j×&Ñ&Ó(ˆØ#ˆÔØ'×-Ñ-×7Ñ7¸ÓDˆÔð /3¯o©oÈt¨oÓ.TÐUVÖ.Wõ
Ù.W™N˜D U�%ŠKÑ.Wó
ˆô ˜VŸ]™]›_Ó-ˆÜ“uˆØˆ÷	6ñ 	6ñ& 	œT $§,¡,×"5Ñ"5Ó"7Ó8Ô9Ø—|‘|×7Ñ7Ø7C×7IÑ7IÔ7KÔLÑ7K©¨ˆT”3�uÓ#Ò#Ñ7KÒLó
ˆŒð ˆØ!%×!2Ñ!2Ö!4ÐˆMÙ  ×!EÑ!EÓ!GÔHØ�O‰OØ×1Ñ1Ø?K×?QÑ?QÔ?SÔTÑ?S±°�Tœ3˜uÓ+Ò+Ñ?SÒTóöñ "5ð  +×7Ñ7Ø�J‰J 4§?¡?À×@PÑ@Pð  8ó  
Ðð #7×"=Ñ"=ð ð "ð #>ó #
Ñˆ	ð '+§l¡l°4·<±<Ó&@Ñ#ˆàØØØ�O‰O×Ñ×*Ñ*¨9Ó5ØØð
ˆ÷ ð HNÇ}Á}ÄÓWÁ¸e—O‘O×'Ñ'×2Ñ2°5Ö9ÁˆDÐWàØ—	‘	˜$“Øðð ð	ð
 ðð —‘×#Ñ#×.Ñ.¨~Ó>ðˆFô �lÓ# nÕ4ˆ÷ ØˆMÛ$�Ø04·±¸XÓ0FÑ-�˜oØ×$Ñ$ \Ô2Ø—‘˜oÖ.ñ %ð �M‰M˜: t§y¡y°Ó'?Ð@ÔAØˆ~Ðùôc
ùó8 Mùó Uùò4 Xs   Ã NÅN
ÇNÊ-Nc                ó.  € V P                   P                  P                  4       p V P                   P                  pT P	                  T;'       g    \        V4      R7      w  rVpRpT;'       d    V P                   P                  p	V P                   P                  pV P                  P                  p
V'       de   \        V
RP                  V4      4      '       g   \        RP                  V4      4      hV P                  W@P                   P                  4      w  r¼EM@V P                  '       d   V P                  4       w  r¼RpEMV P!                  4       w  rÞV P#                  4       w  pp V P$                  e   V P'                  V P$                  4      MR. 3w  pp V P.                  e   V P'                  V P.                  4      MR. 3w  ppR.p. pV P                   P0                  '       d;   V P                  P2                  P5                  VV4      w  ppVV,          pWÎ,          p. pV P6                  V,            F`  w  pw  pppV'       d-   V: RV P                  P2                  P9                  V4      : 2pVP;                  V4       VP=                  V4       Kb  	  VR	P?                  V4      .,          pV'       d   VR
.VO,          pMMV P                  P                  P@                  '       d(   W°P                  P                  P@                  .,          pVP;                  V4       V P                   PB                  '       Ed™   V
PD                  '       Ed†   V P                  PG                  4       '       d   V
PH                  '       d   \K        R4      hV	'       d   V
PL                  '       g   \        R4      hV P                   PN                  pV P                   PP                  pV P                   PR                  pV P                   PT                  pV'       d   V
PV                  '       g   \        R4      hV'       d   V
PX                  '       g   \        R4      hV'       d   V
PZ                  '       g   \        R4      hV'       d   V
P\                  '       g   \        R4      hV P                  P2                  P_                  VVV Pa                  4       VR7      pV'       d$   V
Pb                  '       d   VP=                  V4       V'       d*   VP=                  RV,          4       VP;                  V4       . pV F(  w  p p!VP=                  V 4       VP;                  V!4       K*  	  V'       d}   V'       d   \e        R4      hT;'       g%    V P                  P2                  Pg                  4       pVP=                  RR	P?                  V4      ,          4       V Ph                  '       d   RpV'       de   V'       g4   VP;                  V P                  P2                  Pk                  4       4       VP=                  RV,          4       VP;                  V4       V P                   Pl                  '       dt   VPo                  ^ V P                  P2                  Pp                  ! V P                   Pl                  P                  3/ V P                   Pl                  Pr                  B 4       V'       d‚   . p"V F,  w  pw  p#p$pV"P=                  V#4       VP;                  V$4       K.  	  RR	P?                  V"4      ,          p%V'       d   V
Pt                  '       d   R.VORNV%NpMVP=                  V%4       V	'       d^   VP=                  V P                  P2                  Pw                  V P                   Px                  V P                   Pz                  4      4       V'       d$   V
Pb                  '       g   VP=                  V4       V P                   P|                  '       EdN   V'       EdE   . p&. p'\        V P6                  ^R7       FÏ  w  p(w  p)ppV'       da   V&P=                  V P                  P2                  P9                  R4      : RV P                  P2                  P9                  V4      : 24       Kr  V)P�                  V)P‚                  R/4      p*V*P…                  W P                  4      w  p+p,V&P=                  V+4       V'P;                  V,4       KÑ  	  RR	P?                  V&4      : RRP?                  V4      : R2\‡        V'V,           4      3V P                   P‰                  V4       # RP?                  V4      \‡        V4      3V P                   P‰                  V4       #   \(         d    T P*                  '       d   h R. pp EL0\,         d	    R. pp ELAi ; i  \,         d	    R. pp EL&i ; i  T P                   P‰                  T4       i ; i) z¥
Create the SQL for this query. Return the SQL string and list of
parameters.

If 'with_limits' is False, any limit/offset information is not included
in the query.
r`   Nzsupports_select_{}z-{} is not supported on this database backend.Ú z0 = 1rL  z AS rM  ÚFROMz:select_for_update cannot be used outside of a transaction.zNLIMIT/OFFSET is not supported with select_for_update on this database backend.z1NOWAIT is not supported on this database backend.z6SKIP LOCKED is not supported on this database backend.z8FOR UPDATE OF is not supported on this database backend.z<FOR NO KEY UPDATE is not supported on this database backend.)ÚnowaitÚskip_lockedÚofÚno_keyúWHERE %sz1annotate() + distinct(fields) is not implemented.zGROUP BY %sz	HAVING %szORDER BY %srI  rJ  r{   r(  rÏ   úSELECT ú FROM (Ú ú
) subquery)ErF   rZ   rØ   rÞ   rx   rs   r%  r6   r‡   r    r  r	   r2  Úcombinator_allrq   r\  Úget_distinctÚget_from_clauserm   r‰   r   rH   r   rp   r  r  Údistinct_sqlrJ   r  r„   r‚   r*  Úbare_select_suffixÚselect_for_updateÚhas_select_for_updateÚget_autocommitÚsupports_transactionsr    Ú%supports_select_for_update_with_limitÚselect_for_update_nowaitÚselect_for_update_skip_lockedÚselect_for_update_ofÚselect_for_no_key_updateÚhas_select_for_update_nowaitÚ!has_select_for_update_skip_lockedÚhas_select_for_update_ofÚhas_select_for_no_key_updateÚfor_update_sqlÚ"get_select_for_update_of_argumentsÚfor_update_after_fromrà   Úforce_no_orderingrM   Úforce_group_byÚexplain_infoÚinsertÚexplain_query_prefixÚoptionsÚ#requires_compound_order_by_subqueryÚlimit_offset_sqlÚlow_markÚ	high_markr(  rƒ   Úrelabeled_cloner‘   r7   ÚtupleÚreset_refcounts)-r+   rH  ra   Úrefcounts_beforerÞ   rw   rv   ro   Úfor_update_partÚwith_limit_offsetr‡   r–   r“   r	  Údistinct_paramsÚfrom_Úf_paramsrm   Úw_paramsrp   Úh_paramsÚdistinct_resultÚout_colsr�   Ús_sqlÚs_paramsr‘   ra  rb  rc  rd  ÚgroupingÚg_sqlÚg_paramsrÔ   Úo_sqlÚo_paramsÚorder_by_sqlÚsub_selectsÚ
sub_paramsrÂ   rJ   Úselect_cloneÚ	subselectÚ	subparamss-   &&&                                          r/   r7   ÚSQLCompiler.as_sqló  sA  € ð  Ÿ:™:×4Ñ4×9Ñ9Ó;ÐðX	9ØŸ™×.Ñ.ˆJØ/3×/AÑ/AØ!1×!EÐ!E´T¸*Ó5Eð 0Bó 0Ñ,ˆL Hð #ˆOà +× DÐ D°·
±
×0DÑ0DÐØŸ™×.Ñ.ˆJØ—‘×/Ñ/ˆHßÜ˜xÐ)=×)DÑ)DÀZÓ)P×QÒQÜ+ØG×NÑNØ&óóð ð
 "&×!8Ñ!8Ø§
¡
× 9Ñ 9ó"‘�™ð ——�Ø!%×!5Ñ!5Ó!7‘�Ø’à37×3DÑ3DÓ3FÑ0�ð #'×"6Ñ"6Ó"8‘��xð
-à48·J±JÒ4J˜Ÿ™ T§Z¡ZÔ0ÐQSÐUWÐPXñ $�E˜8ð.ð  Ÿ;™;Ò2ð Ÿ™ T§[¡[Ô1à  "˜Xñ %�F˜Hð #˜�Ø�à—:‘:×&×&Ð&Ø7;·±×7JÑ7J×7WÑ7WØ'Ø'ó8Ñ4�O _ð ˜oÕ-�FØÕ-�Fà�Ø37·;±;À×3MÐ3MÑ/�AÑ(˜˜x¨%ßã!Ø ŸO™O×/Ñ/×:Ñ:¸5ÕAð!˜ð —M‘M (Ô+Ø—O‘O EÖ*ñ 4Nð ˜4Ÿ9™9 XÓ.Ð/Õ/�ßØ˜vÐ.¨Ð.Õ.‘FØ—_‘_×-Ñ-×@×@Ð@ØŸ™×7Ñ7×JÑJÐKÕK�FØ—‘˜hÔ'à—:‘:×/×/Ñ/°H×4R×4RÑ4RàŸ™×6Ñ6×8Ò8ð %×:×:Ð:ä8ØXóð ÷
 *Ø (× N× NÐ Nä/ðJóð ð "ŸZ™Z×@Ñ@�FØ"&§*¡*×"JÑ"J�KØŸ™×8Ñ8�BØ!ŸZ™Z×@Ñ@�F÷  h×&K×&KÐ&KÜ/ØOóð ÷ %¨X×-W×-WÐ-WÜ/ØTóð ÷  H×$E×$EÐ$EÜ/ØVóð ÷  ¨×(M×(MÐ(MÜ/ð0óð ð '+§o¡o×&9Ñ&9×&HÑ&HØ%Ø$/Ø×BÑBÓDØ%ð	 'Ió '�O÷ # x×'E×'EÐ'EØ—M‘M /Ô2çØ—M‘M *¨uÕ"4Ô5Ø—M‘M (Ô+à�Û'/‘O�E˜8Ø—O‘O EÔ*Ø—M‘M (Ö+ñ (0÷ ß&Ü1ØOóð ð  (×RÐR¨4¯?©?×+>Ñ+>×+PÑ+PÓ+R�HØ—M‘M -°$·)±)¸HÓ2EÕ"EÔFØ×*×*Ð*Ø#'˜ßß#ØŸ™ d§o¡o×&9Ñ&9×&HÑ&HÓ&JÔKØ—M‘M +°Õ"6Ô7Ø—M‘M (Ô+à�z‰z×&×&Ð&Ø—‘ØØ—O‘O×'Ñ'×<Ò<ØŸ
™
×/Ñ/×6Ñ6ñàŸ*™*×1Ñ1×9Ñ9ñô÷ Ø�Û/7Ñ+�AÑ+˜˜x¨Ø—O‘O EÔ*Ø—M‘M (Ö+ñ 08ð  -¨t¯y©y¸Ó/BÕB�ß (×"N×"NÐ"NØ/ÐL°&ÐL¸#ÐL¸|ÐL‘Fà—M‘M ,Ô/ç Ø—‘Ø—O‘O×'Ñ'×8Ñ8ØŸ
™
×+Ñ+¨T¯Z©Z×-AÑ-Aóô÷  x×'E×'EÐ'EØ—‘˜oÔ.à�z‰z×"×"Ñ"§| |ð !�Ø�
Ü1:¸4¿;¹;Èa×1PÑ-�EÑ-˜F A ußØ#×*Ñ*ð !%§¡× 3Ñ 3× >Ñ >¸zÖ JØ $§¡× 3Ñ 3× >Ñ >¸uÕ Eðöð (.×'=Ñ'=Ø#Ÿ\™\¨:Ð6ó(˜ð 0<×/BÑ/BØ §/¡/ó0Ñ,˜	 9ð $×*Ñ*¨9Ô5Ø"×)Ñ)¨)Ö4ò# 2Qð& —I‘I˜kÖ*Ø—H‘H˜VÖ$ðô ˜ fÕ,Ó-ð.ð �J‰J×&Ñ&Ð'7Õ8ð —8‘8˜FÓ#¤U¨6£]Ð2ð �J‰J×&Ñ&Ð'7Õ8øôq &ô 2Ø×'×'Ð'Øà&-¨r˜8�Eš8Ü$ô -Ø&(¨"˜8�Eš8ð-ûô %ô .Ø')¨2˜H�FšHð.ûðV �J‰J×&Ñ&Ð'7Õ8úsb  ¦)g7 Ág7 Á/A
g7 Â:A5g7 Ä0;g7 Å,0f' Æ0g! Ç g7 Ç.Cg7 Ë2g7 Ë5Ag7 Í
g7 Íg7 Í=g7 Îg7 Î"g7 Î4A*g7 Ðg7 Ð1g7 Ñg7 Ñg7 Ñ)g7 Ñ;g7 Òg7 Ò A	g7 Ó*g7 Ó<g7 ÔA g7 Õ6g7 Õ>g7 ÖAg7 ×0	g7 ×:g7 ØA7g7 Ù:A:g7 Û5Ag7 Ý	g7 Ý"g7 Ý>A$g7 ß#g7 ß5-g7 à#g7 à,D(g7 å0g7 æ'gçgç	g7 çgçgçg7 çgçg7 ç!g4ç0g7 ç3g4ç4g7 ç7hNc                ó–  € . pVf!   V P                   P                  4       ;pf   V# T;'       g    V P                   P                  4       pRV/p\        \        P
                  ! V4      4      pVP                   FË  pVP                  P                  P                  p	W“P                  8X  d   Rp	V'       dA   V	e=   \        VP                  P                  V	P                  P                  4      '       d   K}  V'       d	   W‡9  d   K�  V P                   P                  W9W&4      p
VP                  V
4      pVP                  V4       KÍ  	  V# )a  
Compute the default columns for selecting every field in the base
model. Will sometimes be called to pull in related models (e.g. via
select_related), in which case "opts" and "start_alias" will be given
to provide a starting point for the traversal.

Return a list of strings, quoted appropriately for use in SQL
directly, as well as a set of aliases used in the select statement (if
'as_pairs' is True, return a list of (alias, col_name) pairs instead
of strings as the first component and None as the second component).
N)rF   rÓ   rd   r}   r   ÚunnestÚconcrete_fieldsrR   Ú_metaÚconcrete_modelÚ
issubclassÚjoin_parent_modelÚget_colr‚   )r+   rÀ   Ústart_aliasÚoptsr­   r–   Úseen_modelsÚselect_mask_fieldsrè   rR   r‘   rö   s   &&&&&       r/   rµ   ÚSQLCompiler.get_default_columnsÖ  s  € ð ˆØŠ<ØŸ
™
×+Ñ+Ó-Ð-�Ò6Ø�Ø!×CÐC T§Z¡Z×%AÑ%AÓ%Cˆð ˜[Ð)ˆÜ ¤×!1Ò!1°+Ó!>Ó?Ðà×)Ô)ˆEØ—K‘K×%Ñ%×4Ñ4ˆEð Ÿ
™
Ô"Ø�çØÒ%ÜØ×%Ñ%×4Ñ4°e·k±k×6PÑ6P÷ò ñ ß˜uÔ>ÙØ—J‘J×0Ñ0°¸kÓWˆEØ—]‘] 5Ó)ˆFØ�M‰M˜&Ö!ñ/ *ð0 ˆr1   c                ó<  € . p. pV P                   P                  4       pV P                   P                   Fâ  pVP                  \        4      pV P                  WSR4      w  rgr‰r¦pV P                   P                  WyV
4      w  rxpV FŽ  pW@P                   P                  9   d7   VP                  V P                  P                  P                  V4      4       KS  V P                  V! WÈ4      4      w  rÞVP                  V4       VP                  V4       K�  	  Kä  	  W3# )z®
Return a quoted list of fields to use in DISTINCT ON part of the query.

This method can alter the tables in the query, and thus it must be
called before get_from_clause().
N)rF   rÓ   r	  rß   r
   Ú_setup_joinsÚ
trim_joinsr¸   r‚   r6   r  r  r‰   )r+   r–   r“   r­  rÚ   r,  r�   Útargetsr‘   ÚjoinsÚpathÚtransform_functionrœ   r  Úps   &              r/   rk  ÚSQLCompiler.get_distinct	  sò   € ð ˆØˆØ�z‰z×"Ñ"Ó$ˆà—J‘J×.Ô.ˆDØ—J‘JœzÓ*ˆEØDH×DUÑDUØ˜TóEÑAˆA˜ dÐ/Að !%§
¡
× 5Ñ 5°gÀdÓ KÑˆG˜AÛ!�ØŸ:™:×7Ñ7Ô7Ø—M‘M $§/¡/×"5Ñ"5×"@Ñ"@ÀÓ"FÖGàŸ<™<Ñ(:¸6Ó(IÓJ‘D�AØ—M‘M !Ô$Ø—M‘M !Ö$ó "ñ /ð ˆ~Ðr1   c                óR  a a€ \        SV4      w  opVR8H  pSP                  \        4      pS P                  W‚V4      w  p	p
pppppV	P                  '       Ed‡   VP
                  '       Edt   \        V	RR4      VR,          8w  EdZ   SR8w  EdR   \        VRR4      '       Eg>   T;'       g    \        4       p\        ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      pWå9   d   \        R4      hVP                  V4       . pVP
                   FÁ  p\        VR	4      '       d?   \        V\        4      '       g)   V'       d   VP                  4       MVP                  4       p\        V\        4      '       d-   VP!                  VP#                  S \         24      R34       K•  VP%                  V3R
 lS P'                  VW#We4       4       4       KÃ  	  V# S P(                  P+                  W«V4      w  r£pV
 Uu. uF  p\        V! VV4      VR7      R3NK  	  up# u upi )zÂ
Return the table alias (the name might be ambiguous, the alias will
not be) and column name for ordering by the given 'name' parameter.
The 'name' is of the form 'field1__field2__...__fieldN'.
rÊ   ÚattnameNÚpkÚhas_transformsFc              3   ót   <"  € T F-  p\        SP                  P                  V,          R R4      x € K/  	  R# 5i)Ú	join_colsN)r    rF   rc   )r[   Újr+   s   & €r/   r]   Ú1SQLCompiler.find_ordering_name.<locals>.<genexpr>E  s/   øé € ð ÙMRÈ”˜Ÿ
™
×,Ñ,¨QÕ/°¸d×CÐCËUùs   ƒ58z!Infinite loop caused by ordering.rË   c              3   ó^   <"  € T F"  w  rVP                  S \         24      V3x € K$  	  R # 5ir'   )Úprefix_referencesr
   )r[   rŽ   r”   rÚ   s   &  €r/   r]   rÁ  W  s7   øé € ð ñ)™˜ð ×+Ñ+¨t¨f´Z°LÐ,AÓBÀFÕKó)ùs   ƒ*-rÍ   éÿÿÿÿ)r   rß   r
   r²  Úis_relationrÔ   r    r}   rŠ  r   r�   r~   r€   r   Údescr×   r‚   rÃ  r„   rä   rF   r³  )r+   rÚ   r­  r‘   rÐ   Úalready_seenrê   rÎ   Úpiecesrè   r´  rµ  r¶  r·  Ú
join_tupleÚresultsÚitemr�   r
  s   ff&&&&             r/   rä   ÚSQLCompiler.find_ordering_name#  s  ù€ ô $ D¨-Ó8‰ˆˆeØ˜f‘_ˆ
Ø—‘œJÓ'ˆð ×Ñ˜f¨EÓ2ñ	
ØØØØØØØð ××ÑØ——‘Ü˜˜y¨$Ó/°6¸"µ:Õ=Ø˜•ÜÐ.Ð0@À%×HÓHð (×0Ð0¬3«5ˆLßœô ÙMRóŸ™ô ÙMRóó ˆJð Ô)Ü Ð!DÓEÐEØ×Ñ˜ZÔ(àˆGØŸœ�Ü˜4Ð!5×6Ò6¼zØœ'÷@ò @÷ +5˜4Ÿ9™9œ;¸$¿(¹(»*�DÜ˜d¤G×,Ò,Ø—N‘NØ×/Ñ/°4°&¼¸Ð0EÓFÈÐNôñ Ø—‘ô à(,×(?Ñ(?Ø˜d¨5ô)óö ñ &ð  ˆNØ ŸJ™J×1Ñ1°'À$ÓGÑˆ˜ñ ó
á�ô Ñ'¨¨5Ó1¸jÔIÈ5ÓQÙñ
ð 	
ùò 
s   ÈH$c                ó¨   € T;'       g    V P                   P                  4       pV P                   P                  WV4      w  rEr&rxVR,          pWEW6WrV3# )zü
Helper method for get_order_by() and get_distinct().

get_ordering() and get_distinct() must produce same target columns on
same input, as the prefixes of get_ordering() and get_distinct() must
match. Executing SQL where this is not true is an error.
rÄ  )rF   rd   Úsetup_joins)	r+   rÈ  r­  r‘   rè   r´  rµ  r¶  r·  s	   &&&&     r/   r²  ÚSQLCompiler._setup_joinsd  sZ   € ð ×7Ð7˜Ÿ™×5Ñ5Ó7ˆØ@DÇ
Á
×@VÑ@VØ˜%óA
Ñ=ˆ˜ Tð �b•	ˆØ˜u¨TÐ9KÐKÐKr1   c                ón  € . p. p\        V P                  P                  P                  4       4       F_  w  r4V P                  P                  V,          '       g   K*  V P                  V4      w  rVVP                  V4       VP                  V4       Ka  	  V P                  P                   F…  pV P                  P                  V4      w  r8W0P                  P                  9  g%   V P                  P                  V,          ^8X  g   K^  VP                  RV P                  V4      ,          4       K‡  	  W3# )a›  
Return a list of strings that are joined together to go after the
"FROM" part of the query, as well as a list any extra parameters that
need to be included. Subclasses, can override this to create a
from-clause via a "select".

This should only be called after any SQL construction methods that
might change the tables that are needed. This means the select columns,
ordering, and distinct must be done first.
z, %s)rŠ  rF   rc   r·   rZ   r‰   r‚   r„   Úextra_tablesÚtable_aliasrâ   )	r+   r–   r“   r‘   Úfrom_clauseÚ
clause_sqlÚclause_paramsr
  r�   s	   &        r/   rl  ÚSQLCompiler.get_from_clauses  sò   € ð ˆØˆô #(¨¯
©
×(<Ñ(<×(BÑ(BÓ(DÖ"EÑˆEØ—:‘:×,Ñ,¨U×3Ô3ÙØ(,¯©°[Ó(AÑ%ˆJØ�M‰M˜*Ô%Ø�M‰M˜-Ö(ñ #Fð —‘×(Ô(ˆAØ—z‘z×-Ñ-¨aÓ0‰HˆEð
 ŸZ™Z×1Ñ1Ô1Ø—:‘:×,Ñ,¨UÕ3°qÖ8à—‘˜f t×'CÑ'CÀEÓ'JÕJÖKñ )ð ˆ~Ðr1   c                ó|  a a€ VV 3R lp. p	V'       g   VS P                   P                  8”  d   V	# S'       g5   S P                   P                  4       oS P                   P                  4       p\	        4       p
VfC   \        S P                   P                  \        4      pV'       d   S P                   P                  pR pSP                   EF-  pV
P                  VP                  4       V'       d„   VP                  VP                  / 4      pVP                  '       gU   V'       g   VP                  V9   d<   \        RVP                  : RRP                  V! 4       4      ;'       g    R: 24      hMRp\        WÇWb4      '       g   KÀ  VP                  V4      ;'       g    / pR	VP                   P"                  R
TRRRVP$                  RVP&                  '       d   VP                   P$                  MR RR/pV	P)                  V4       . pS P                   P+                  VP                  .SV4      w    pp pVR,          pS P-                  VVVP                   P"                  P.                  R7      pV F0  pVP)                  \1        V4      4       VP)                  VR34       K2  	  VVR&   S P3                  VVVP                   P"                  P.                  VV^,           VV4      pV! VV4       EK0  	  V'       Ed1   SP4                   Uu. uFN  pVP6                  P&                  '       g   K!  VP8                  '       d   K5  VVP6                  VP:                  3NKP  	  ppV EF“  w  ppp\        VVVV4      '       g   K  VP                  V4      ;'       g    / pVP=                  4       pV
P                  V4       S P                   P+                  V.SV4      pVP>                  R,          p\A        VSP"                  4      ;'       d    VSP"                  JpR	VR
VRRRVP$                  RVP$                  RV/pV	P)                  V4       . pS P-                  VVVP.                  SP"                  R7      pV F0  pVP)                  \1        V4      4       VP)                  VR34       K2  	  VVR&   VP                  V/ 4      pS P3                  VVVP.                  VV^,           VV4      pV! VV4       EK–  	  R pR p R p!\C        V4       EF®  p"V^8”  d    EM¥V"S P                   PD                  9   g   K+  V
P                  V"4       S P                   P+                  V".SV4      w  p#pp$p pV$P"                  pVR,          p\A        VSP"                  4      ;'       d    VSP"                  JpR	TR
T#RRR\1        V4      ^8:  d   \G        VV#4      MT R\G        V!V"4      RV/pV	P)                  V4       . pVP                  V"V#34      ;'       g    / p%S P-                  V%VVP.                  SP"                  R7      pV F0  pVP)                  \1        V4      4       VP)                  VR34       K2  	  VVR&   VP                  V"/ 4      p&S P3                  VV%VP.                  VV^,           V&VR7      pV! VV4       EK±  	  \	        V4      PI                  V
4      p'V''       dJ   R V' 4       p(\        RRP                  V(4      : RRP                  V! 4       4      ;'       g    R: 24      hV	# u upi )zõ
Fill in the information needed for a select_related query. The current
depth is measured as the number of connections away from the root model
(for example, cur_depth=1 means we are looking at models with direct
connections to the root model).
c                  ó�   <€ R  SP                    4       p R SP                   4       p\        WSP                  P                  4      # )c              3   ó`   "  € T F$  qP                   '       g   K  VP                  x € K&  	  R # 5ir'   )rÅ  rÚ   ©r[   Úfs   & r/   r]   ÚQSQLCompiler.get_related_selections.<locals>._get_field_choices.<locals>.<genexpr>§  s   é € ÐK©k¨¿]½]œf˜aŸfžf«kùs   ‚.š.c              3   ó’   "  € T F=  pVP                   P                  '       g   K!  VP                   P                  4       x € K?  	  R # 5ir'   )rè   ÚuniqueÚrelated_query_namerÚ  s   & r/   r]   rÜ  ¨  s4   é € ð á-�AØ—7‘7—>•>ô -�—‘×*Ñ*×,Ð,Û-ùs
   ‚A¥"A)ÚfieldsÚrelated_objectsr   rF   Ú_filtered_relations)Údirect_choicesÚreverse_choicesr­  r+   s     €€r/   Ú_get_field_choicesÚ>SQLCompiler.get_related_selections.<locals>._get_field_choices¦  sD   ø€ ÙK¨d¯kªkÓKˆNñà×-Ò-óˆOô
 Ø°·±×1OÑ1Oóð r1   Nc                 ó   € WR &   R# )r«   Nr3   )rL   r«   s   &&r/   Úget_related_klass_infosÚCSQLCompiler.get_related_selections.<locals>.get_related_klass_infosÂ  s   € Ø0CÐ,Ó-r1   z/Non-relational field given in select_related: 'z'. Choices are: rM  z(none)FrR   rè   ÚreverseÚlocal_setterÚremote_setterc                 ó   € R # r'   r3   )ÚxÚys   &&r/   Ú<lambda>Ú4SQLCompiler.get_related_selections.<locals>.<lambda>â  s   € ÑRVr1   r­   )r¬  r­  rª   T)r¬  r­  r­   c                 óP   € V'       d   V P                   P                  W!4       R # R # r'   )Úremote_fieldÚset_cached_value)Úfinal_fieldÚobjÚfrom_objs   &&&r/   rë  Ú8SQLCompiler.get_related_selections.<locals>.local_setter4  s   € çØ×,Ñ,×=Ñ=¸hÖLñ r1   c                 ó   € R # r'   r3   )rö  r÷  s   &&r/   Úlocal_setter_noopÚ=SQLCompiler.get_related_selections.<locals>.local_setter_noop9  s   € Ùr1   c                 ó   € \        W V4       R # r'   )Úsetattr)rÚ   rö  r÷  s   &&&r/   rì  Ú9SQLCompiler.get_related_selections.<locals>.remote_setter<  s   € Ü˜¨Ö,r1   )r­  Ú
root_aliasÚ	cur_depthÚ	requestedÚ
restrictedc              3   ó4   "  € T F  pR V,          x € K  	  R# 5i)z'%s'Nr3   )r[   Úss   & r/   r]   Ú5SQLCompiler.get_related_selections.<locals>.<genexpr>s  s   é € Ð!GÑ6F° &¨1§*¢*Ó6Fùó   ‚z/Invalid field name(s) given in select_related: z. Choices are: rÄ  )%rF   Ú	max_depthrÓ   rd   r}   r€   r½   Údictrà  r�   rÚ   rŠ   rÅ  r   r*  r   ró  rR   rô  rÞ  r‚   rÎ  rµ   r§  rf   r¾   rá  rè   Úmany_to_manyÚrelated_modelrß  rµ  r©  r¹   râ  r   r  ))r+   rJ   rÀ   r­  rÿ  r   r  r  rå  r«   Úfields_foundrè  rÛ  ÚnextÚrelated_select_maskrL   rª   r�   rµ  r‘   Úcolumnsr©   Únext_klass_infosÚoÚrelated_fieldsÚrelated_objectÚrelated_fieldrR   Úrelated_field_nameÚ	join_infor­   rë  rú  rì  rÚ   rõ  Ú	join_optsÚfield_select_maskÚnext_requestedÚfields_not_foundÚinvalid_fieldss)   f&&f&&&&                                 r/   r¾   Ú"SQLCompiler.get_related_selections•  sÖ  ù€ ö"		ð !Ðß˜i¨$¯*©*×*>Ñ*>Ô>à&Ð&çØ—:‘:×&Ñ&Ó(ˆDØŸ™×5Ñ5Ó7ˆJô “uˆØÒÜ# D§J¡J×$=Ñ$=¼tÓDˆJßØ ŸJ™J×5Ñ5�	ò	Dð —•ˆAØ×Ñ˜QŸV™VÔ$çØ —}‘} Q§V¡V¨RÓ0�Ø—}—}�}÷ ˜qŸv™v¨Ô2Ý(ð !"§¤Ø $§	¡	Ñ*<Ó*>Ó ?× KÐ KÀ8Ñ Kð	óð øð �ä)¨!¸×PÒPÙØ"-§/¡/°!Ó"4×":Ð":¸Ðà˜Ÿ™×-Ñ-Ø˜Ø˜5Ø × 2Ñ 2ØØ78·x·x°x�A—N‘N×3Ò3ÑEVà˜uð	ˆJð  ×&Ñ& zÔ2ØˆMØ#'§:¡:×#9Ñ#9¸1¿6¹6¸(ÀDÈ*Ó#UÑ ˆAˆq�!�U˜A˜qØ˜"•IˆEØ×.Ñ.Ø#°¸Q¿^¹^×=QÑ=Q×=WÑ=Wð /ó ˆGó �Ø×$Ñ$¤S¨£[Ô1Ø—‘˜s D˜kÖ*ñ ð +8ˆJ�Ñ'Ø#×:Ñ:ØØ#Ø—‘×$Ñ$×*Ñ*ØØ˜A•ØØó Ðñ $ JÐ0@×Añk ÷n ˆ:ð ×-Ò-óá-�AØ—7‘7—>•>ô .à*+¯.­.ô .��A—G‘G˜QŸ_™_Ó-Ù-ð ð ô
 9GÑ4� ¨uÜ-Ø"ØØØ÷	ò ñ à&1§o¡o°nÓ&E×&KÐ&KÈÐ#Ø%2×%EÑ%EÓ%GÐ"Ø× Ñ Ð!3Ô4à ŸJ™J×2Ñ2Ø'Ð(¨$°
ó�	ð "Ÿ™¨Õ+�Ü(¨°·
±
Ó;×WÐWÀÈTÏZÉZÐ@W�à˜UØ˜]Ø˜tØ" N×$CÑ$CØ# ]×%CÑ%CØ! ;ð�
ð $×*Ñ*¨:Ô6Ø "�Ø×2Ñ2Ø'Ø %ØŸ™Ø $§
¡
ð	 3ó �ó #�CØ!×(Ñ(¬¨V«Ô5Ø—M‘M 3¨ +Ö.ñ #ð /<�
˜?Ñ+Ø —}‘}Ð%7¸Ó<�Ø#'×#>Ñ#>ØØ'Ø—K‘KØØ •MØØó$Ð ñ (¨
Ð4D×Eña 9GòdMò
ò-ô ˜YŸ�à˜q”=ÚØ˜4Ÿ:™:×9Ñ9Ö9Ø ×$Ñ$ TÔ*Ø=A¿Z¹Z×=SÑ=SØ˜  jó>Ñ:�K  I¨u°a¸ð &ŸO™O�EØ! "�I�Eä" 5¨$¯*©*Ó5×QÐQ¸%ÀtÇzÁzÐ:Qð  ð   Ø Ø! 4Ø&ä" 5›z¨Qœô $ L°+Ô>à!2à'¬°ÀÓ)EØ% {ð"�Jð (×.Ñ.¨zÔ:Ø$&�MØ(3¯©¸¸{Ð8KÓ(L×(RÐ(RÐPRÐ%Ø"×6Ñ6Ø)Ø$)Ø"Ÿ[™[Ø$(§J¡Jð	 7ó �Gó  '˜Ø%×,Ñ,¬S°«[Ô9ØŸ™ s¨D kÖ2ñ  'ð 3@�J˜Ñ/Ø%.§]¡]°4¸Ó%<�NØ'+×'BÑ'BØØ)Ø"Ÿ[™[Ø#(Ø"+¨a¥-Ø"0Ø#-ð (Có (Ð$ñ ,¨JÐ8H×Iñc (ôd  # 9›~×8Ñ8¸ÓFÐßÙ!GÑ6FÓ!G�Ý ð Ÿ	™	 .Ö1ØŸ	™	Ñ"4Ó"6Ó7×CÐC¸8ÑCð	óð ð #Ð"ùòs   Ì\9Ì8\9Í\9c           	     óŽ  a a€ V 3R loV 3R lpVV 3R lpS P                   '       g   . # . p. pS P                  P                   EF=  pS P                   pVR8X  d
   V! V4      pM�VP                  \        4       Fe  p. VP                  R. 4      OS! V4      O5p	V	 F=  p
V
R,          pV
R,          '       d   VP                  pVP                  V8X  g   K:  T
p Ka  	  Rp M	  Vf   VP                  V4       Kµ  V! V4      pVf   KÃ  S P                  P                  P                  '       d+   VP                  S P                  V4      ^ ,          4       EK  VP                  S P                  VP                  4      4       EK@  	  V'       d8   \        R	R
P!                  V4      : RR
P!                  V! 4       4      : R24      hV# )zS
Return a quoted list of arguments for the SELECT FOR UPDATE OF part of
the query.
c              3   óð  <"  € V R ,          P                   P                  pVP                   P                  P                  4        F¦  w  r#VP                   P                  pR TRTRRRV R,           Uu. uFm  pSP
                  V,          ^ ,          P                  P                  V8X  g6   SP
                  V,          ^ ,          P                  P                  V9   g   Kk  VNKo  	  up/x € K¨  	  R# u upi 5i)rR   rè   rê  Frª   N)r§  r¨  Úparentsr·   Úall_parentsrJ   rœ   rR   )rL   r¨  Úparent_modelÚparent_linkr  Úselect_indexr+   s   &     €r/   Ú_get_parent_klass_infoÚNSQLCompiler.get_select_for_update_of_arguments.<locals>._get_parent_klass_info„  sÙ   øé € Ø'¨Õ0×6Ñ6×EÑEˆNØ-;×-AÑ-A×-IÑ-I×-OÑ-OÖ-QÑ)�Ø*×0Ñ0×<Ñ<�à˜\Ø˜[Ø˜uØ#à,6°Ö,Gó&á,G˜Lð !ŸK™K¨Õ5°aÕ8×?Ñ?×EÑEÈÔUØ#Ÿ{™{¨<Õ8¸Õ;×BÑB×HÑHÈKÑW÷ %˜Ù,Gñ&ð	ô ó .Rùò&ùs   ƒA/C6Á2A(C1ÃC1Ã%C6c                ó   <€ V R,          P                   P                  pV R,           FR  pSP                  V,          ^ ,          P                  P                  V8X  g   K8  SP                  V,          ^ ,          u # 	  R# )z°
Find the first selected column from a model. If it doesn't exist,
don't lock a model.

select_fields is filled recursively, so it also contains fields
from the parent models.
rR   rª   N)r§  r¨  rJ   rœ   rR   )rL   r¨  r"  r+   s   &  €r/   Ú"_get_first_selected_col_from_modelÚZSQLCompiler.get_select_for_update_of_arguments.<locals>._get_first_selected_col_from_model—  sc   ø€ ð (¨Õ0×6Ñ6×EÑEˆNØ *¨?× ;Ð ;�Ø—;‘;˜|Õ,¨QÕ/×6Ñ6×<Ñ<ÀÖNØŸ;™; |Õ4°QÕ7Ò7ó !<r1   c               3  óÜ  <a"  € \         P                  ! RSP                  3.4      p V '       d»   V P                  4       w  rVf   . oRx € MOVR,          pVR,          '       d   VP                  pWP
                  .,           o\        P                  ! S4      x € V P                  V3R lS! V4       4       4       V P                  V3R lVP                  R. 4       4       4       KÂ  R# 5i)z<Yield all allowed field paths in breadth-first search order.Nr+   rè   rê  c              3   ó,   <"  € T F	  pSV3x € K  	  R # 5ir'   r3   ©r[   rL   r¶  s   & €r/   r]   Ú]SQLCompiler.get_select_for_update_of_arguments.<locals>._get_field_choices.<locals>.<genexpr>²  s   øé € ð á&H˜
ð ˜:Õ&Û&Hùó   ƒc              3   ó,   <"  € T F	  pSV3x € K  	  R # 5ir'   r3   r*  s   & €r/   r]   r+  ¶  s   øé € ð á&O˜
ð ˜:Õ&Û&Oùr,  r«   )
ÚcollectionsÚdequerL   Úpopleftró  rÚ   r
   r*  r„   rŠ   )ÚqueueÚparent_pathrL   rè   r¶  r#  r+   s       @€€r/   rå  ÚJSQLCompiler.get_select_for_update_of_arguments.<locals>._get_field_choices¤  sÊ   ùé € ä×%Ò%¨¨d¯o©oÐ'>Ð&?Ó@ˆEßØ*/¯-©-«/Ñ'�ØÒ&Ø�DØ “Là& wÕ/�EØ! )×,Ô,Ø %× 2Ñ 2˜Ø&¯*©*¨Õ5�DÜ$Ÿ/š/¨$Ó/Ò/Ø—‘ô á&<¸ZÔ&Hóô ð —‘ô à&0§n¡nÐ5JÈBÔ&Oóö ñ ùs   „+C,°4C,Á%BC,r+   r«   rè   rê  Nz<Invalid field name(s) given in select_for_update(of=(...)): rM  zI. Only relational fields followed in the query are allowed. Choices are: rÏ   )rL   rF   rv  rß   r
   rŠ   ró  rÚ   r‚   r6   r‡   Úselect_for_update_of_columnr‰   râ   r‘   r   r*  )r+   r&  rå  r–   Úinvalid_namesrÚ   rL   r©   r1  Úklass_infosÚrelated_klass_inforè   r#  s   f           @r/   r}  Ú.SQLCompiler.get_select_for_update_of_arguments~  s�  ù€ õ	õ&	8ö	ð. ��ˆØˆIØˆØˆØ—J‘J×3Õ3ˆDØŸ™ˆJØ�vŒ~Ù8¸ÓD‘à ŸJ™J¤zÖ2�Dð#Ø#Ÿ™Ð(=¸rÓBð#á/°
Ó;ñ#�Kó /:Ð*Ø 2°7Õ ;˜Ø-¨i×8Ô8Ø$)×$6Ñ$6˜EØ Ÿ:™:¨Ö-Ø);˜JÚ!ñ /:ð &*˜
Ùñ 3ð Ò%Ø!×(Ñ(¨Ô.ÙÙ8¸ÓD�ØŒØ—?‘?×+Ñ+×G×GÐGØ—M‘M $§,¡,¨sÓ"3°AÕ"6×7à—M‘M $×">Ñ">¸s¿y¹yÓ"I×Jñ9 4÷: Ýð
 —I‘I˜mÖ,Ø—I‘IÑ0Ó2Ö3ðóð ð ˆr1   c                óö  € ^ p/ pV Fî  p\        V\        4      '       d^   VP                  4       pV P                  V4      pVP	                  4        F  w  pw  r‰W‰3W2V,           &   K  	  V\        V4      ,          pKv  V'       dh   V P                  P                  P                  V4      p
VP                  V P                  4      pV
'       g	   V'       d   W«,           V3W2&   V^,          pKå  V^,          pKð  	  V# )r   )	r€   r   r?  Úget_convertersr·   rf   r6   r  Úget_db_converters)r+   rŒ   ÚiÚ
convertersrÃ   rÁ   Úcols_convertersrÀ  Úconvsr©   Úbackend_convertersÚfield_converterss   &&          r/   r:  ÚSQLCompiler.get_convertersè  sØ   € ØˆØˆ
ã%ˆJÜ˜*¤h×/Ò/Ø!×8Ñ8Ó:�Ø"&×"5Ñ"5°dÓ";�Ø'6×'<Ñ'<Ö'>‘O�A‘|˜Ø).¨�J 1�uÓ%ñ (?à”S˜“_Õ$’ßØ%)§_¡_×%8Ñ%8×%JÑ%JÈ:Ó%VÐ"Ø#-×#?Ñ#?ÀÇÁÓ#PÐ ß%×)9Ø%7Õ%JÈJÐ$W�J‘MØ�Q•’à�Q•’ñ &ð  Ðr1   c              #  óæ   "  € V P                   p\        VP                  4       4      p\        \        V4       F3  pV F&  w  pw  rgWE,          pV F  p	V	! W‡V4      pK  	  W„V&   K(  	  Vx € K5  	  R # 5ir'   )r6   r¹   r·   Úmap)
r+   Úrowsr=  r6   ÚrowÚposr?  rÃ   ÚvalueÚ	converters
   &&&       r/   Úapply_convertersÚSQLCompiler.apply_convertersþ  sn   é € Ø—_‘_ˆ
Ü˜*×*Ñ*Ó,Ó-ˆ
Ü”t˜T–?ˆCÛ,6Ñ(�Ñ(�eØ��Û!&�IÙ% e¸ÓD’Eñ "'à �C“ñ	 -7ð
 ŒIó #ùs   ‚A/A1c                ój   € \         ;QJ d    R  V 4       F  '       g   K   R# 	  R# ! R  V 4       4      # )c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir'   )r€   r   )r[   rÃ   s   & r/   r]   Ú3SQLCompiler.has_composite_fields.<locals>.<genexpr>  s   é € ÐRÁk¸
”:˜j¬(×3Ð3Ãkùs   ‚TF)Úany)r+   rŒ   s   &&r/   Úhas_composite_fieldsÚ SQLCompiler.has_composite_fields	  s-   € ÷ ‹sÑRÁkÓR�sŒsÐRŠsÐRˆsÑRÁkÓRÓRÐRr1   c              #  ó(  "  € \        V4       UUu. uF8  w  r4\        V\        4      '       g   K  \        W3\	        V4      ,           4      NK:  	  ppp\        \        V4       F$  pV F  p\        Wg,          4      3Wg&   K  	  Vx € K&  	  R # u uppi 5ir'   )rƒ   r€   r   Úslicerf   rD  r¹   rŠ  )r+   rE  rŒ   r<  rÃ   Úcol_pair_slicesrF  rG  s   &&&     r/   Úcomposite_fields_to_tuplesÚ&SQLCompiler.composite_fields_to_tuples  s€   é € ô "+¨;Ô!7ô
á!7‘�Ü˜*¤h×/ô *ŒE�!œ˜Z›Õ(Ö)Ù!7ð 	ñ 
ô ”t˜T–?ˆCÛ&�Ü! #¥(›OÐ-�“ñ 'ð ŒIó	 #ùó
ùs   ‚B‘B°BÁABc                ó¢  € Vf   V P                  \        W4R7      pV P                  ^ V P                    Uu. uF  qU^ ,          NK  	  ppV P	                  V4      p\
        P                  ! V4      pV'       d   V P                  W‡4      pV P                  V4      '       d   V P                  W†4      pV'       d   \        \        V4      pV# u upi )z>Return an iterator over the results from executing this query.)Úchunked_fetchÚ
chunk_size)Úexecute_sqlr   rJ   rg   r:  r   Úfrom_iterablerJ  rP  rU  rD  rŠ  )	r+   rÊ  Útuple_expectedrX  rY  r  rà  r=  rE  s	   &&&&&    r/   Úresults_iterÚSQLCompiler.results_iter  s¼   € ð Š?Ø×&Ñ&Ü ]ð 'ó ˆGð !%§¡¨A°·±Ñ ?Ó@Ñ ?˜1�A—$�$Ñ ?ˆÐ@Ø×(Ñ(¨Ó0ˆ
Ü×"Ò" 7Ó+ˆßØ×(Ñ(¨Ó:ˆDØ×$Ñ$ V×,Ò,Ø×2Ñ2°4Ó@ˆDßÜ”u˜dÓ#ˆDØˆùò As   ·Cc                ó>   € \        V P                  \        4      4      # )zh
Backends (e.g. NoSQL) can override this in order to use optimized
versions of "query has any results."
)rs   rZ  r   rS   s   &r/   Úhas_resultsÚSQLCompiler.has_results2  s   € ô
 �D×$Ñ$¤VÓ,Ó-Ð-r1   c                óD  € T;'       g    \         p V P                  4       w  rEV'       g   \        h T'       d   T P
                  P                  4       pMT P
                  P                  4       p TP                  YE4       T\        8X  d    TP                  TP                  4        # T\        8X  d   T# T\        8X  dK    TP                  4       pT'       d    T^ T P                    TP                  4        # TTP                  4        # T\         8X  d   TP                  4        R# \#        TT P
                  P$                  P&                  T P(                  '       d   T P                   MRT4      pT'       d'   T P
                  P$                  P*                  '       g   \-        T4      # T#   \         d    T\        8X  d   \	        . 4      u #  R# i ; i  \         d    TP                  4        h i ; i  TP                  4        i ; i  TP                  4        i ; i)aÒ  
Run the query against the database and return the result(s). The
return value depends on the value of result_type.

When result_type is:
- MULTI: Retrieves all rows using fetchmany(). Wraps in an iterator for
   chunked reads when supported.
- SINGLE: Retrieves a single row using fetchone().
- ROW_COUNT: Retrieves the number of rows in the result.
- CURSOR: Runs the query, and returns the cursor object. It is the
   caller's responsibility to close the cursor.
N)r   r7   r   r   Úiterr6   Úchunked_cursorÚcursorÚexecuteÚ	ExceptionÚcloser   Úrowcountr   r   Úfetchonerg   Úcursor_iterr‡   Úempty_fetchmany_valuert   Úcan_use_chunked_readsr¹   )	r+   Úresult_typerX  rY  r’   r“   re  Úvalr–   s	   &&&&     r/   rZ  ÚSQLCompiler.execute_sql9  s¬  € ð "×/Ð/¤Zˆð	ØŸ+™+›-‰KˆCßÜ$Ð$ð ÷ Ø—_‘_×3Ñ3Ó5‰Fà—_‘_×+Ñ+Ó-ˆFð	Ø�N‰N˜3Ô'ð œ)Ô#ðØ—‘à—‘•Øœ&Ô àˆMØœ&Ô ðØ—o‘oÓ'�ßØ˜q 4§>¡>Ð2ð —‘•ð ð —‘•Øœ*Ô$Ø�L‰LŒNÙäØØ�O‰O×$Ñ$×:Ñ:Ø"×3×3Ð3ˆD�NŠN¸Øó	
ˆ÷  D§O¡O×$<Ñ$<×$R×$RÐ$Rô
 ˜“<ÐØˆøôc ô 	ØœeÔ#Ü˜B“x’âð		ûô ô 	à�L‰LŒNØð	ûð —‘•ûð —‘•úsA   ’ F. Á1G ÂG8 ÃH ÃH Ã:H Æ.!GÇGÇG5Ç8H
ÈHc           
   #  óœ  "  € \        V P                  4       4      pV P                  P                  P                  pV'       d&   VP                  4       R 8X  d   \        P                  M\        pV FP  pV FG  p\        V\        4      '       g+   RP                  V Uu. uF
  qc! V4      NK  	  up4      x € KC  Vx € KI  	  KR  	  R# u upi 5i)Újsonrh  N)r¹   rZ  rF   r�  r  Úlowerrr  Údumpsr4   r€   r*  )r+   r–   Úformat_Úoutput_formatterrF  rH  Úcs   &      r/   Úexplain_queryÚSQLCompiler.explain_query€  s›   é € Ü�d×&Ñ&Ó(Ó)ˆð —*‘*×)Ñ)×0Ñ0ˆß)0°W·]±]³_ÈÔ5Nœ4Ÿ:š:ÔTWÐÛˆCÛ�Ü! %¬×-Ò-ØŸ(™(ÁÓ#GÁ¸AÐ$4°QÖ$7ÁÑ#GÓHÔHà”Kó	 ó ùò $Hùs   ‚BCÂCÂ.C)rM   rK   rg   r6   rH   rt   rp   rL   rq   rF   rI   rJ   rG   rm   )T)F)TF)NNN)NrÉ   N)NNr  NN),r9   r:   r;   r<   r#   ÚreÚ	MULTILINEÚDOTALLrú   r*   rT   rh   rx   ru   r†   re   rî   rl   rr   râ   r‰   r2  r&  r\  r7   rµ   rk  rä   r²  rl  r¾   r}  r:  rJ  rP  rU  r   r]  r`  r   rZ  rx  r=   r>   ©rA   s   @r/   rC   rC   (   sò   ø‡ € á%Ø Ø
�‰�r—y‘yÕ ó€Nô
#ò"
ô*ô0ò eòNô@h,òTMò^;òzòò,ò3òj#ò4^ô@a9ôF1òfô4?
òBLò ôDg#òRhòTò,	òSò
ð ØØØ*ôò..ð  ¨uÐAXôE÷N ð  r1   rC   c                   óP   a € ] tR tRt o RtR
tR tR tR tR t	R t
RR ltR	tV tR# )ÚSQLInsertCompileriŽ  Nc                óê   € Vf   T. rTMD\        VR4      '       d   V P                  V4      w  rEMVe   V! W0V P                  4      V.rTMRV.rTV P                  P                  P	                  WE4      pWE3# )aD  
Take a field and a value intended to be saved on that field, and
return placeholder SQL and accompanying params. Check for raw values,
expressions, and fields with get_placeholder() defined in that order.

When field is None, consider the value raw and use it as the
placeholder, with no corresponding parameters returned.
r7   ú%s)r~   r‰   r6   r  Úmodify_insert_params)r+   rè   Úget_placeholderro  r’   r“   s   &&&&  r/   Úfield_as_sqlÚSQLInsertCompiler.field_as_sql’  sz   € ð Š=à˜r‘Ü�S˜(×#Ò#àŸ,™, sÓ+‰KˆC�ØÒ(ñ *¨#°T·_±_ÓEÈÀu‘ð   �ð —‘×$Ñ$×9Ñ9¸#ÓFˆàˆ{Ðr1   c                ó¦  € \        VR4      '       d¥   VP                  V P                  RRR7      pVP                  '       d   \	        RV: RV: R24      hVP
                  '       d   \        RVP                  : R	V: R
24      hVP                  '       d   \        RVP                  : R	V: R
24      hVP                  W P                  R7      # )z„
Prepare a value to be used in a query by resolving it if it is an
expression and otherwise calling the field's get_db_prep_save().
rË   FT©rñ   Úfor_savezFailed to insert expression "z" on z<. F() expressions can only be used to update, not to insert.ú3Aggregate functions are not allowed in this query (Ú=ú).ú2Window expressions are not allowed in this query (©r6   )r~   rË   rF   Úcontains_column_referencesÚ
ValueErrorÚcontains_aggregater   rÚ   Úcontains_over_clauseÚget_db_prep_saver6   )r+   rè   rH  s   &&&r/   Úprepare_valueÚSQLInsertCompiler.prepare_value²  sÄ   € ô
 �5Ð.×/Ò/Ø×,Ñ,Ø—
‘
¨¸ð -ó ˆEð ×/×/Ð/Ý ãDIË5ðRóð ð ×'×'Ð'Ý à"'§*¤*«eð5óð ð ×)×)Ð)Ý à—z”z£5ð*óð ð ×%Ñ% e¿¹Ð%ÓHÐHr1   c                óŠ   € V P                   P                  '       d   \        W!P                  4      # VP	                  VRR7      # )zŽ
Get the given field's value off the given obj. pre_save() is used for
things like auto_now on DateTimeField. Skip it if this is a raw query.
T)r�   )rF   Úrawr    r»  Úpre_save)r+   rè   rö  s   &&&r/   Úpre_save_valÚSQLInsertCompiler.pre_save_valÏ  s3   € ð
 �:‰:�>�>ˆ>Ü˜3§¡Ó.Ð.Ø�~‰~˜c tˆ~Ó,Ð,r1   c                ó"  a aa€ V'       g   . . 3# S Uu. uF  p\        VRR4      NK  	  upoVVV 3R lV 4       pR V 4       p\        V!  w  rgV UU	U
u. uF  qˆ U	U
u. uF  q™ F  qªNK  	  K  	  up
p	NK  	  pp	pp
Wg3# u upi u up
p	i u up
p	pi )aã  
Take a sequence of N fields and a sequence of M rows of values, and
generate placeholder SQL and parameters for each field and value.
Return a pair containing:
 * a sequence of M rows of N SQL placeholder strings, and
 * a sequence of M rows of corresponding parameter values.

Each placeholder string may contain any number of '%s' interpolation
strings, and each parameter row will contain exactly as many params
as the total number of '%s's in the corresponding placeholder row.
rƒ  Nc              3   óR   <"  € T F  pV3R  l\        SSV4       4       x € K  	  R# 5i)c              3   óN   <"  € T F  w  rpSP                  WV4      x € K  	  R # 5ir'   )r„  )r[   rè   rƒ  rH  r+   s   &   €r/   r]   Ú>SQLInsertCompiler.assemble_as_sql.<locals>.<genexpr>.<genexpr>ë  s-   øé € ð á5WÑ1�E¨Eð ×!Ñ! %¸%×@Ð@Û5Wùr"  N©r)  )r[   rF  rà  Úget_placeholdersr+   s   & €€€r/   r]   Ú4SQLInsertCompiler.assemble_as_sql.<locals>.<genexpr>ê  s4   øé € ð !
ñ
 "�ô	ä58¸ÐAQÐSVÔ5W÷ð ó "ùs   ƒ$'c              3   ó4   "  € T F  p\        V!  x € K  	  R # 5ir'   rž  )r[   rF  s   & r/   r]   r   ô  s   é € Ð"NÑ8M°¤3¨¦9Ó8Mùr  )r    r)  )r+   rà  Ú
value_rowsrè   Úrows_of_fields_as_sqlÚsql_and_param_pair_rowsÚplaceholder_rowsÚ
param_rowsrF  Úpsr¸  rŸ  s   ff&        @r/   Úassemble_as_sqlÚ!SQLInsertCompiler.assemble_as_sqlØ  s®   ú€ ÷ Ø�r�6ˆMñ RXÓXÑQWÈœG EÐ+<¸dÖCÑQWÑXÐö!
ñ
 "ó!
Ðñ #OÑ8MÓ"NÐô (+Ð,CÑ'DÑ$Ðñ @JÕJ¹z¸ 3Ô3¡3˜R²¨1’q±‘q¡3Õ3¹zˆ
ÒJàÐ+Ð+ùò) Yùó$ 4ùÔJs   ”A?Á	B
ÁBÁ0B
ÂB
c                óè	  a€ V P                   P                  P                  oV P                  P	                  4       pV P                   P                  P                  V P                  P                  R 7      pV: RS! VP                  4      : 2.pV P                  P                  ;'       g    VP                  .pVP                  RRP                  V3R lV 4       4      ,          4       V P                  P                  '       dW   V P                  P                   UUu. uF3  pV Uu. uF#  pV P                  W`P                  We4      4      NK%  	  upNK5  	  pppMJV P                  P                   Uu. uF'  q€P                   P                  P                  4       .NK)  	  ppR.pV P                   '       * ;'       d!    V P                   P"                  P$                  p	V P'                  WG4      w  r«V P                   P                  P)                  VV P                  P                  R V P                  P*                   4       R V P                  P,                   4       4      pV P                   '       Edi   V P                   P"                  P.                  '       EdB   V P                   P"                  P0                  '       d8   VP                  V P                   P                  P3                  WJ4      4       TpM8VP                  RRP                  V
^ ,          4      ,          4       V^ ,          .pV'       d   VP                  V4       V P                   P                  P5                  V P                   4      w  qàn        V'       d%   VP                  V4       WÐP6                  .,          pRP                  V4      \9        \:        P<                  ! V4      4      3.# V	'       dŽ   VP                  V P                   P                  P3                  WJ4      4       V'       d   VP                  V4       RP                  V4      \8        ;QJ d    . R	 V 4       F  NK  	  53.# ! R	 V 4       4      3.# V'       d   VP                  V4       \?        W«4       UUu. uF7  w  ppRP                  VRRP                  V4      ,          .,           4      V3NK9  	  upp# u upi u uppi u upi u uppi )
)Úon_conflictrh  z(%s)rM  c              3   óH   <"  € T F  pS! VP                   4      x € K  	  R # 5ir'   ©rö   )r[   rÛ  Úqns   & €r/   r]   Ú+SQLInsertCompiler.as_sql.<locals>.<genexpr>	  s   øé € Ð(F¹v¸!©¨A¯H©H¯¨»vùó   ƒ"Nc              3   ó8   "  € T F  qP                   x € K  	  R # 5ir'   r­  rÚ  s   & r/   r]   r¯  '  ó   é € Ð8Ñ7˜!�XŽXÓ7ùó   ‚c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir'   r­  rÚ  s   & r/   r]   r¯  (  r²  r³  zVALUES (%s)c              3   ó4   "  € T F  q F  q"x € K  	  K  	  R # 5ir'   r3   )r[   r§  r¸  s   &  r/   r]   r¯  F  s   é € Ð,P¹°2ÊRÈ¬QÉR©Q»ùr  ) r6   r  r  rF   rÓ   Úinsert_statementr«  Údb_tablerà  r¼  r‚   r*  Úobjsr“  r˜  Úpk_default_valueÚreturning_fieldsr‡   Úhas_bulk_insertr¨  Úon_conflict_suffix_sqlÚupdate_fieldsÚunique_fieldsÚcan_return_columns_from_insertÚ can_return_rows_from_bulk_insertÚbulk_insert_sqlÚreturn_insert_columnsÚreturning_paramsrŠ  r   r[  r)  )r+   r­  r¶  r–   rà  rö  rè   r¢  r�   Úcan_bulkr¥  r¦  r¼  r“   Úr_sqlr¸  Úvalsr®  s   &                @r/   r7   ÚSQLInsertCompiler.as_sqlÿ  sè  ø€ ð �_‰_× Ñ ×+Ñ+ˆØ�z‰z×"Ñ"Ó$ˆØŸ?™?×.Ñ.×?Ñ?ØŸ
™
×.Ñ.ð @ó 
Ðó .©r°$·-±-Õ/@ÐAÐBˆØ—‘×"Ñ"×/Ð/ t§w¡w iˆØ�‰�f˜tŸy™yÔ(F¹vÓ(FÓFÕFÔGà�:‰:××Ðð  Ÿ:™:Ÿ?š?ôñ
 +�Cñ "(óá!'˜ð ×&Ñ& u×.?Ñ.?ÀÓ.KÖLÙ!'ôñ +ð ñ ˆJð CGÇ*Á*Ç/Â/óÙBQ¸Q—‘×$Ñ$×5Ñ5Ó7Ó8Á/ð ð ð �VˆFð ×%Ñ%Ô%×RÐR¨$¯/©/×*BÑ*B×*RÑ*Rð 	ð (,×';Ñ';¸FÓ'OÑ$Ðà!%§¡×!4Ñ!4×!KÑ!KØØ�J‰J×"Ñ"Ù8˜tŸz™z×7Ò7Ó8Ù8˜tŸz™z×7Ò7Ó8ó	"
Ðð ×!×!Ñ!Ø—‘×(Ñ(×G×GÑGà�‰×'Ñ'×H×HÐHØ—‘Ø—O‘O×'Ñ'×7Ñ7¸ÓQôð $‘à—‘˜m¨d¯i©iÐ8HÈÕ8KÓ.LÕLÔMØ$ Q�-˜�ß%Ø—‘Ð4Ô5ð ,0¯?©?×+>Ñ+>×+TÑ+TØ×%Ñ%ó,Ñ(ˆEÔ(÷ Ø—‘˜eÔ$Ø×0Ñ0Ð1Õ1�Ø—X‘X˜fÓ%¤u¬U×-@Ò-@ÀÓ-HÓ'IÐJÐKÐKçØ�M‰M˜$Ÿ/™/×-Ñ-×=Ñ=¸fÓWÔXß%Ø—‘Ð4Ô5Ø—X‘X˜fÓ%§u¤uÑ,P¹Ó,P§uÐQÐRÐR uÑ,P¹Ó,PÓ'PÐQÐRÐRç%Ø—‘Ð4Ô5ô  #Ð#3Ô@ôá@‘G�A�tð —‘˜& M°D·I±I¸a³LÕ$@Ð#AÕAÓBÀDÓIÙ@òð ùò{ùóùòùójs$   Ä!	S#Ä*)SÅS#Å6-S)Ò=S.ÓS#c                ó>  € V'       dM   \        V P                  P                  4      ^8w  d)   V P                  P                  P
                  '       g   Q hV P                  P                  4       pWn        . pV P                  P                  4       ;_uu_ 4       pV P                  4        F  w  rVVP                  WV4       K  	  V P                  '       g   . uuRRR4       # V P                  P                  P
                  '       d   \        V P                  P                  4      ^8”  d[   V P                  P                  P                  V4      pV P                   Uu. uF  qˆP                  VP                  4      NK  	  ppEM>V P                  P                  P                  '       dŒ   \        V P                  P                  4      ^8X  g   Q hV P                  P                  P!                  VV P"                  4      .pV P                   Uu. uF  qˆP                  VP                  4      NK  	  ppM�V'       dz   \%        V^ ,          ;p	\&        4      '       d[   V	P                  VP                  4      .pV P                  P                  P)                  VVP                  V	P*                  4      3.pM. uuRRR4       # RRR4       V P-                  V4      p
V
'       d   V P/                  XV
4      p\1        X4      # u upi u upi   + '       g   i     LP; ir  )rf   rF   r¸  r6   r‡   rÀ  rÓ   rº  re  r7   rf  r  Úfetch_returned_insert_rowsr«  r·  r¿  Úfetch_returned_insert_columnsrÃ  r€   r   Úlast_insert_idrö   r:  rJ  r¹   )r+   rº  r­  rÁ   re  r’   r“   rE  rè   Úreturning_fieldr=  s   &&         r/   rZ  ÚSQLInsertCompiler.execute_sqlO  sd  € çÜ�D—J‘J—O‘OÓ$¨Ô)Ø—O‘O×,Ñ,×M×MÐMð	
ð 
ð
 �z‰z×"Ñ"Ó$ˆØ 0ÔØˆØ�_‰_×#Ñ#×%Ô%¨Ø#Ÿ{™{ž}‘�Ø—‘˜sÖ+ñ  -à×(×(Ð(Ø÷	 &Ò%ð —‘×(Ñ(×I×IÐIÜ˜Ÿ
™
Ÿ™Ó(¨1Ô,à—‘×*Ñ*×EÑEÀfÓM�ØBF×BWÒBWÓXÑBW¸Ÿ™ d§m¡mÖ4ÑBW�ÐX‘Ø—‘×)Ñ)×H×HÐHÜ˜4Ÿ:™:Ÿ?™?Ó+¨qÔ0Ð0Ð0à—O‘O×'Ñ'×EÑEØØ×-Ñ-óð�ð CG×BWÒBWÓXÑBW¸Ÿ™ d§m¡mÖ4ÑBW�ÐX�ß!¤jØ#3°AÕ#6Ð6�¼	÷'ò 'ð (×/Ñ/°·±Ó>Ð?�ð Ÿ™×+Ñ+×:Ñ:Ø"Ø ŸM™MØ+×2Ñ2óðð‘ð ÷I &×%Ò%ðJ ×(Ñ(¨Ó.ˆ
ßØ×(Ñ(¨¨zÓ:ˆDÜ�D‹zÐùò= Yùò Y÷' &×%úsK   Â<LÃLÃ"%LÄALÅ#LÆ)LÆ,A%LÈ#LÈ4
LÈ?A:LÌ
LÌL	)rº  rÃ  r3   r'   )r9   r:   r;   r<   rº  rÃ  r„  r“  r˜  r¨  r7   rZ  r=   r>   r}  s   @r/   r  r  Ž  s9   ø‡ € ØÐØÐòò@Iò:-ò%,òNN÷`1ò 1r1   r  c                   ó\   a € ] tR tRt o ]R 4       t]R 4       t]R 4       tR t	R t
RtV tR# )	ÚSQLDeleteCompileriƒ  c                ó�   a € S P                   P                  4        \        V 3R  lS P                   P                   4       4      ^8H  # )c              3   ód   <"  € T F%  pSP                   P                  V,          ^ 8„  x € K'  	  R# 5irX   rY   )r[   r
  r+   s   & €r/   r]   Ú1SQLDeleteCompiler.single_alias.<locals>.<genexpr>ˆ  s'   øé € ÐRÑ=Q¸�4—:‘:×,Ñ,¨QÕ/°!Ö3Ó=Qùr_   )rF   rd   Úsumrc   rS   s   fr/   Úsingle_aliasÚSQLDeleteCompiler.single_alias„  s6   ø€ ð 	�
‰
×$Ñ$Ô&ÜÔR¸T¿Z¹Z×=QÒ=QÓRÓRÐVWÑWÐWr1   c                ó(  a a€ \        V\        4      '       d   VP                  S8H  # \        VR 4      '       g   R# \        ;QJ d.    VV 3R lVP                  4        4       F  '       g   K   R# 	  R# ! VV 3R lVP                  4        4       4      # )r?  Fc              3   óH   <"  € T F  pSP                  VS4      x € K  	  R # 5ir'   )Ú_expr_refs_base_model)r[   Úsource_exprÚ
base_modelÚclss   & €€r/   r]   Ú:SQLDeleteCompiler._expr_refs_base_model.<locals>.<genexpr>�  s(   øé € ð 
á<�ð ×%Ñ% k°:×>Ð>Û<ùr°  T)r€   r   rR   r~   rO  r?  )rÛ  rŽ   rÚ  s   f&fr/   rØ  Ú'SQLDeleteCompiler._expr_refs_base_modelŠ  s}   ù€ ä�dœE×"Ò"Ø—:‘: Ñ+Ð+Ü�tÐ5×6Ò6Ùß‹sõ 
à#×:Ñ:Ô<ó
�sŒsð 	
Šsð 	
ˆsõ 
à#×:Ñ:Ô<ó
ó 
ð 	
r1   c                ó   a € \         ;QJ di    V 3R  l\        S P                  P                  P	                  4       S P                  P
                  P                  4       4       F  '       g   K   R# 	  R# ! V 3R  l\        S P                  P                  P	                  4       S P                  P
                  P                  4       4       4      # )c              3   óp   <"  € T F+  pSP                  VSP                  P                  4      x € K-  	  R # 5ir'   )rØ  rF   rR   )r[   rŽ   r+   s   & €r/   r]   ÚESQLDeleteCompiler.contains_self_reference_subquery.<locals>.<genexpr>—  s6   øé € ð 
ñ�ð ×&Ñ& t¨T¯Z©Z×-=Ñ-=×>Ð>óùs   ƒ36TF)rO  r   rF   r»   rO  rm   ÚchildrenrS   s   fr/   Ú contains_self_reference_subqueryÚ2SQLDeleteCompiler.contains_self_reference_subquery•  s˜   ø€ ç‹sô 
äØ—
‘
×&Ñ&×-Ñ-Ó/°·±×1AÑ1A×1JÑ1Jôó
�sŒsð 	
Šsð 	
ˆsô 
äØ—
‘
×&Ñ&×-Ñ-Ó/°·±×1AÑ1A×1JÑ1Jôó
ó 
ð 	
r1   c                óÐ   € R V P                  VP                  4      ,          p V P                  VP                  4      w  r4T RT 2\        T4      3#   \         d    TR3u # i ; i)zDELETE FROM %sz WHERE r3   )râ   Ú
base_tabler‰   rm   r   rŠ  )r+   rF   Údeleterm   r“   s   &&   r/   Ú_as_sqlÚSQLDeleteCompiler._as_sqlž  sm   € Ø! D×$@Ñ$@À×AQÑAQÓ$RÕRˆð	Ø ŸL™L¨¯©Ó5‰MˆEð �˜  Ð(¬%°«-Ð7Ð7øô ô 	Ø˜2�:Òð	ús   ¤A ÁA%Á$A%c                ó6  € V P                   '       dT   V P                  P                  P                  '       g   V P                  '       g   V P                  V P                  4      # V P                  P                  4       p\        Vn	        VP                  4        V P                  P                  P                  P                  pVP                  V P                  P                  4       4      .Vn        \        V P                  P                  4      pV P                  P                  P"                  '       g@   VP%                  V P                  R7      P'                  4       w  rE\)        RV,          V4      pVP+                  RV4       V P                  V4      # )úN
Create the SQL for this query. Return the SQL string and list of
parameters.
r�  zSELECT * FROM (%s) subqueryÚpk__in)rÔ  r6   r‡   Ú"delete_can_self_reference_subqueryrâ  rç  rF   r5  r   r.   Úclear_select_clauserR   r§  r¼  r«  rd   rJ   Úupdate_can_self_selectr#  r7   r   Ú
add_filter)r+   Úinnerqr¼  Úouterqr’   r“   s   &     r/   r7   ÚSQLDeleteCompiler.as_sql¦  s%  € ð
 ××ÐØ�O‰O×$Ñ$×G×GÐGØ×8×8Ð8à—<‘< §
¡
Ó+Ð+Ø—‘×!Ñ!Ó#ˆÜ ˆÔØ×"Ñ"Ô$Ø�Z‰Z×Ñ×#Ñ#×&Ñ&ˆØŸ™ D§J¡J×$@Ñ$@Ó$BÓCÐDˆŒÜ�t—z‘z×'Ñ'Ó(ˆØ�‰×'Ñ'×>×>Ð>ð !×-Ñ-¸¿¹Ð-ÓI×PÑPÓR‰KˆCÜÐ9¸CÕ?ÀÓHˆFØ×Ñ˜( FÔ+Ø�|‰|˜FÓ#Ð#r1   r3   N)r9   r:   r;   r<   r!   rÔ  ÚclassmethodrØ  râ  rç  r7   r=   r>   r}  s   @r/   rÏ  rÏ  ƒ  sP   ø‡ € ØñXó ðXð
 ñ
ó ð
ð ñ
ó ð
ò8÷$ð $r1   rÏ  c                   óD   a a€ ] tR tRt oR tV 3R ltV 3R ltRtVtV ;t	# )ÚSQLUpdateCompileri¿  c           
     ót  € V P                  4        V P                  P                  '       g   R# V P                  p. . r2V P                  P                   EF6  w  rEp\	        VR4      '       d²   VP                  V P                  RRR7      pVP                  '       d   \        RVP                  : RV: R24      hVP                  '       d   \        RVP                  : RV: R24      h\        V\        4      '       d   \        R	VP                  ,          4      hMb\	        VR
4      '       dQ   VP                  '       d   VP                  V4      pM,\        RV: RV: RVP                  P                   : R24      hVP#                  W`P$                  R7      p\	        VR4      '       d   VP'                  W`V P$                  4      pMRpVP(                  p\	        VR4      '       dL   V P+                  V4      w  ršVP-                  V! V4      : RWy,          : 24       VP/                  V
4       EKâ  Ve3   VP-                  V! V4      : RV: 24       VP-                  V4       EK  VP-                  RV! V4      ,          4       EK9  	  V P                  P0                  pRV! V4      ,          RP3                  V4      .p V P+                  V P                  P4                  4      w  rÚVP-                  RV,          4       RP3                  V4      \9        W:,           4      3#   \6         d    . p
 L1i ; i)rê  rË   FTr‡  r‰  rŠ  r‹  rŒ  zNComposite primary keys expressions are not allowed in this query (%s=F('pk')).Úprepare_database_savezTried to update field z with a model instance, z. Use a value compatible with rÏ   r�  rƒ  r�  r7   z = z	%s = NULLzUPDATE %s SETrM  re  rh  )r_  r3   )rx   rF   rO  râ   r~   rË   r�  r   rÚ   r‘  r€   r   ró  r÷  Ú	TypeErrorr.   r9   r’  r6   rƒ  rö   r‰   r‚   r„   rå  r*  rm   r   rŠ  )r+   r®  rO  Úupdate_paramsrè   rR   ro  ÚplaceholderrÚ   r’   r“   rí   r–   rm   s   &             r/   r7   ÚSQLUpdateCompiler.as_sqlÀ  s¸  € ð
 	×ÑÔØ�z‰z× × Ð ØˆMØ×)Ñ)ˆØ " B�Ø!%§¡×!2Õ!2ÑˆE˜#Ü�sÐ0×1Ò1Ø×,Ñ,Ø—J‘J¨E¸Dð -ó �ð ×)×)Ð)Ý$à&+§j¤j³#ð7óð ð ×+×+Ð+Ý$à&+§j¤j³#ð7óð ô ˜c¤8×,Ò,Ü$ð6Ø8=¿
¹
õCóð ð -ô
 ˜Ð5×6Ò6Ø×%×%Ð%Ø×3Ñ3°EÓ:‘Cå#ó !£# u§¡×'?Ô'?ðAóð ð
 ×(Ñ(¨¿¹Ð(ÓIˆCô �uÐ/×0Ò0Ø#×3Ñ3°C¸t¿¹ÓO‘à"�Ø—<‘<ˆDÜ�s˜H×%Ò%Ø"Ÿl™l¨3Ó/‘�Ø—‘©2¨d®8°[×5FÐGÔHØ×$Ñ$ V×,Ø’Ø—‘©2¨d®8²[ÐAÔBØ×$Ñ$ S×)à—‘˜k©B¨t«HÕ4×5ñ[ "3ð\ —
‘
×%Ñ%ˆà™b ›iÕ'Ø�I‰I�fÓð
ˆð	.Ø ŸL™L¨¯©×)9Ñ)9Ó:‰MˆEð �M‰M˜* uÕ,Ô-Ø�x‰x˜Ó¤ }Õ'=Ó!>Ð>Ð>øô	 ô 	ØŠFð	ús   Ë'L' Ì'L7Ì6L7c                ó  <€ \         SV `  V4      pVRJ pT;'       g    ^ pV P                  P                  4        FE  pVP	                  V P
                  4      P                  V4      pV'       g   K7  V'       g   KA  TpRpKG  	  V# )zë
Execute the specified update. Return the number of rows affected by
the primary update query. The "primary update query" is the first
non-empty query that is executed. Row counts for any subsequent,
related queries are not available.
NF)r)   rZ  rF   Úget_related_updatesr#  rG   )r+   rn  Ú	row_countÚis_emptyrF   Úaux_row_countr.   s   &&    €r/   rZ  ÚSQLUpdateCompiler.execute_sql  s|   ø€ ô ‘GÑ'¨Ó4ˆ	Ø Ð$ˆØ—N�N ˆ	à—Z‘Z×3Ñ3Ö5ˆEà!×.Ñ.¨t¯z©zÓ:×FÑFÀ{ÓSˆMß‰xŸM™Mð *�	Ø ’ñ 6ð Ðr1   c                óö  <a€ V P                   P                  P                  4       pV P                   P                  4        V P                   P	                  4       pV P                   P
                  '       g
   V^8X  d   R# V P                   P                  \        R7      pRVn        VP                  RR7       / Vn
        . Vn        VP                  4       pVP                  P                  .p. pV P                   P
                   F»  p\        ;QJ d+    R VP!                  V4       4       F  '       d   K   RM 	  RM! R VP!                  V4       4       4      '       d   VP#                  V^ 34       Kp  VP#                  V\%        V4      34       VP#                  VP&                  P                  P                  4       K½  	  VP)                  V4       \*        SV `Y  4        VP.                  pV^8„  ;'       d&    V P0                  P2                  P4                  '       * p	V P                   P7                  4        V P                   P
                  '       g	   V	'       dÞ   . p
\8        P:                  ! \<        4      pVP?                  V P@                  4      PC                  \D        4       Fb  pV Uu. uF  qØ'       d   TMV^ ,          NK  	  ppV
PG                  V4       V F'  w  poW¿,          PG                  V3R lV 4       4       K)  	  Kd  	  V P                   PI                  RV
4       W°P                   n%        MV P                   PI                  RV4       V P                   PM                  V4       R# u upi )	a  
If the update depends on results from other tables, munge the "where"
conditions to match the format required for (portable) SQL updates.

If multiple updates are required, pull out the id values to update at
this point so that they don't change as a result of the progressive
updates.
N)ÚklassFT)Úforcec              3   óL   "  € T F  qP                   P                  x € K  	  R # 5ir'   )Ú
join_fieldrž   )r[   r¶  s   & r/   r]   Ú2SQLUpdateCompiler.pre_sql_setup.<locals>.<genexpr>2  s   é € ð Ù8X°—‘×+Ö+Ó8Xùs   ‚"$c              3   ó4   <"  € T F  qS,          x € K  	  R # 5ir'   r3   )r[   r  rÂ   s   & €r/   r]   r  S  s   øé € Ð.FÁ¸A°¯xªxÃùs   ƒrë  )'rF   rZ   rØ   rd   Úcount_active_tablesÚrelated_updatesr   r   r½   Úclear_orderingrã   rJ   rÓ   r¼  rÚ   rb   Úget_path_to_parentr‚   rf   r§  Ú
add_fieldsr)   rx   Úis_composite_pkr6   r‡   rî  Úclear_wherer.  Údefaultdictr¹   r#  rG   rZ  r   r„   rï  Úrelated_idsr‹  )r+   rŒ  ÚcountrF   rå   rà  Úrelated_ids_indexÚrelatedr  Úmust_pre_selectÚidentsr  rE  rF  r¡   ÚparentrÂ   r.   s   &               @€r/   rx   ÚSQLUpdateCompiler.pre_sql_setup  s¨  ù€ ð  Ÿ:™:×4Ñ4×9Ñ9Ó;Ðà�
‰
×$Ñ$Ô&Ø—
‘
×.Ñ.Ó0ˆØ�z‰z×)×)Ð)¨e°q¬jÙØ—
‘
× Ñ ¤uÐ Ó-ˆØ$ˆÔØ×Ñ 4ÐÔ(ØˆŒØˆŒØ�~‰~ÓˆØ—'‘'—,‘,�ˆØÐØ—z‘z×1Ô1ˆGß‹sñ Ø8<×8OÑ8OÐPWÔ8Xó�s�sŠsñ Ø8<×8OÑ8OÐPWÔ8Xó÷ ò ð
 "×(Ñ(¨'°1¨Ö6ð
 "×(Ñ(¨'´3°v³;Ð)?Ô@Ø—‘˜gŸm™m×.Ñ.×3Ñ3Ö4ñ 2ð 	×Ñ˜Ô Ü‰ÑÔà×.Ñ.ˆà�A‰I×MÐM˜dŸo™o×6Ñ6×MÑMÔMð 	ð 	�
‰
×ÑÔ Ø�:‰:×%×%Ð%¯ð ˆFÜ%×1Ò1´$Ó7ˆKØ×*Ñ*¨4¯:©:Ó6×BÑBÄ5ÖI�ÙEIÓJÁT¸cžo‘s°3°qµ6Ò9ÁT�ÐJØ—‘˜cÔ"Û%6‘M�F˜EØÕ'×.Ñ.Ô.FÁÓ.FÖFó &7ñ Jð
 �J‰J×!Ñ! (¨FÔ3Ø%0�J‰JÕ"ð �J‰J×!Ñ! (¨EÔ2Ø�
‰
×"Ñ"Ð#3Ö4ùò Ks   Ê1M6r3   )
r9   r:   r;   r<   r7   rZ  rx   r=   r>   r?   r@   s   @@r/   rõ  rõ  ¿  s   ù‡ € òC?õJ÷*?5õ ?5r1   rõ  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚSQLAggregateCompileri\  c                ó6  € . . r!V P                   P                  P                  4        FL  pV P                  V4      w  rEVP	                  WV4      w  rEVP                  V4       VP                  V4       KN  	  \        V P                   P                  4      V n        RP                  V4      p\        V4      pV P                   P                  P                  V P                  V P                  R7      P                  RR7      w  rgRV: RV: R2pW',          pW3# )rê  rM  )rH   Tr`   rf  rg  ri  )rF   r¸   rO  r‰   r‹   r‚   r„   rf   rg   r*  rŠ  rB  r#  rG   rH   r7   )r+   r’   r“   Ú
annotationÚann_sqlÚ
ann_paramsÚinner_query_sqlÚinner_query_paramss   &       r/   r7   ÚSQLAggregateCompiler.as_sql]  s÷   € ð
 ˜"ˆVØŸ*™*×6Ñ6×=Ñ=Ö?ˆJØ"&§,¡,¨zÓ":ÑˆGØ",×":Ñ":¸4È*Ó"UÑˆGØ�J‰J�wÔØ�M‰M˜*Ö%ñ	 @ô
 ˜TŸZ™Z×9Ñ9Ó:ˆŒØ�i‰i˜‹nˆÜ�v“ˆà.2¯j©j×.DÑ.D×.QÑ.QØ�J‰JØ×(Ñ(ð /Ró /
÷ ‰& $ˆ&Ó
'ñ 	,ˆÐ+ó 14³_ÐEˆØÕ$ˆØˆ{Ðr1   )rg   N)r9   r:   r;   r<   r7   r=   r>   r}  s   @r/   r  r  \  s   ø‡ € ÷ð r1   r  c              #  óÐ   a a"  €  \        V V3R lV4       F  pVf   TMV Uu. uF  qURV NK	  	  upx € K!  	  S P                  4        R# u upi   S P                  4        i ; i5i)zO
Yield blocks of rows from a cursor and ensure the cursor is closed when
done.
c                  ó&   <€ S P                  S4      # r'   )Ú	fetchmany)re  Úitersizes   €€r/   rð  Úcursor_iter.<locals>.<lambda>{  s   ø€  &×"2Ñ"2°8Ô"<r1   N)rc  rh  )re  Úsentinelrg   r%  rE  r  s   f&&f  r/   rk  rk  u  sY   ùé € ð
ÜÕ<¸xÖHˆDØ#Ò+‘$ÉÓ1NÉÀA°J°Y³-ÉÑ1NÔNñ Ið 	�‰Žùò 2Oøà�‰�üs+   „A&†A ¤A±	A ºA&ÁA ÁA#Á#A&);r.  rr  rz  Ú	functoolsr   Ú	itertoolsr   Údjango.core.exceptionsr   r   r   Ú	django.dbr   r	   Údjango.db.models.constantsr
   Údjango.db.models.expressionsr   r   r   r   r   r   Údjango.db.models.fieldsr   r   Údjango.db.models.functionsr   r   Údjango.db.models.lookupsr   Údjango.db.models.query_utilsr   Údjango.db.models.sql.constantsr   r   r   r   r   r   r   Údjango.db.models.sql.queryr   r   Údjango.db.transactionr    Údjango.utils.functionalr!   Údjango.utils.hashabler"   Údjango.utils.regex_helperr#   r%   rC   r  rÏ  rõ  r  rk  r3   r1   r/   Ú<module>r8     s§   ðÛ Û Û 	Ý Ý ç LÑ Lß 6Ý 1ß Q× Qß 8ß 3Ý +Ý ?÷÷ ñ ÷ <Ý <Ý 3Ý /Ý 6ô%�#ô %÷c ñ c ôL3r˜ô rôj9$˜ô 9$ôxZ5˜ô Z5ôz˜;ô ô2	r1   