Ë
    ¦#ijü) ã                   óº  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZ d d	lmZmZmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlm Z m!Z! d dl"m#Z# d dl$m%Z%  G d„ d«      Z& G d„ d«      Z' G d„ de«      Z( G d„ d«      Z)e G d„ de)e'«      «       Z*e'jV                  e'jX                  e'jZ                  e'j\                  e'j^                  fD � ci c]'  } | ej`                  ej`                  ej`                  fg“Œ) c} e'jV                  e'jb                  e'jX                  e'jZ                  e'j\                  e'j^                  fD � ci c]k  } | ejd                  ejd                  ejd                  fejf                  ejf                  ejf                  fejh                  ejh                  ejh                  fg“Œm c} e'jV                  e'jb                  e'jX                  e'jZ                  e'j\                  fD � ci c]�  } | ejd                  ejh                  ejh                  fejh                  ejd                  ejh                  fejd                  ejf                  ejf                  fejf                  ejd                  ejf                  fg“Œ� c} e'jj                  e'jl                  e'jn                  e'jp                  e'jr                  fD � ci c]'  } | ejd                  ejd                  ejd                  fg“Œ) c} e'jV                  e'jb                  e'jX                  e'jZ                  e'j\                  e'j^                  fD � ci c]C  } |  e: e
jv                  d„ ejd                  ejh                  ejf                  fD «       «      «      “ŒE c} e'jV                  ejx                  ejz                  ej|                  fej|                  ejz                  ej|                  fejz                  ejx                  ej|                  fejz                  ej|                  ej|                  fejz                  ejz                  ejz                  fej~                  ejz                  ej~                  fejz                  ej~                  ej~                  fgie'jb                  ejx                  ejz                  ej|                  fej|                  ejz                  ej|                  fejx                  ejx                  ejz                  fejx                  ej|                  ejz                  fej|                  ejx                  ejz                  fej|                  ej|                  ejz                  fejz                  ejz                  ejz                  fej~                  ejz                  ej~                  fej~                  ej~                  ejz                  fg	igZ@ ee:«      ZAd„ ZBe@D ]0  ZCeCj‰                  «       D ]  \  ZEZFeFD ]  \  ZGZHZI eBeGeEeHeI«       Œ Œ Œ2  ej”                  d¬«      d„ «       ZK G d „ d!e&e*«      ZL G d"„ d#eL«      ZM G d$„ d%eL«      ZN ed&¬'«       G d(„ d)e'«      «       ZO G d*„ d+eO«      ZP G d,„ d-eO«      ZQ G d.„ d/eO«      ZR ed0¬'«       G d1„ d2e&e*«      «       ZS ed3¬'«       G d4„ d5e&e*«      «       ZT G d6„ d7e*«      ZU G d8„ d9e*«      ZV G d:„ d;e*«      ZW G d<„ d=e*«      ZX G d>„ d?e*«      ZY G d@„ dAe*«      ZZ G dB„ dCeS«      Z[ G dD„ dEe[«      Z\ edF¬'«       G dG„ dHe&e*«      «       Z] G dI„ dJe]«      Z^ edK¬'«       G dL„ dMe*«      «       Z_ edN¬'«       G dO„ dPe&e*«      «       Z` G dQ„ dRe)e'«      Za G dS„ dTea«      Zb edU¬'«       G dV„ dWe*«      «       Zc G dX„ dYe&e*«      Zd G dZ„ d[e«      Ze G d\„ d]e*«      Zf G d^„ d_ef«      Zg G d`„ daef«      Zhyc c} w c c} w c c} w c c} w c c} w )bé    N)Údefaultdict©ÚDecimal)ÚEnum)Úchain©ÚNoneType)ÚUUID)ÚEmptyResultSetÚ
FieldErrorÚFullResultSet)ÚDatabaseErrorÚNotSupportedErrorÚ
connection)Úfields)Ú
LOOKUP_SEP)ÚQ)Údeconstructible)Úcached_propertyÚclassproperty)Úmake_hashable)Ú	signaturec                   ó   — e Zd ZdZd„ Zy)ÚSQLiteNumericMixinzp
    Some expressions with output_field=DecimalField() must be cast to
    numeric to be properly filtered.
    c                 ó¢   —  | j                   ||fi |¤Ž\  }}	 | j                  j                  «       dk(  rd|z  }||fS # t        $ r Y ||fS w xY w)NÚDecimalFieldz(CAST(%s AS NUMERIC)))Úas_sqlÚoutput_fieldÚget_internal_typer   )ÚselfÚcompilerr   Úextra_contextÚsqlÚparamss         úV/var/www/html/office/venv/lib/python3.12/site-packages/django/db/models/expressions.pyÚ	as_sqlitezSQLiteNumericMixin.as_sqlite   sm   € Ø!�d—k‘k (¨JÑH¸-ÑH‰ˆˆVð	Ø× Ñ ×2Ñ2Ó4¸ÒFØ-°Ñ3�ð �Fˆ{Ðøô ò 	ØØ�Fˆ{Ðð	ús   ™"? ¿	AÁAN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   © ó    r%   r   r      s   „ ñó
r,   r   c                   óØ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(y')(Ú
Combinablezu
    Provide the ability to combine one or two objects with
    some connector. For example F('foo') + F('bar').
    ú+ú-Ú*ú/ú^z%%ú&ú|z<<z>>ú#c                 óh   — t        |d«      st        |«      }|rt        ||| «      S t        | ||«      S ©NÚresolve_expression)ÚhasattrÚValueÚCombinedExpression)r    ÚotherÚ	connectorÚreverseds       r%   Ú_combinezCombinable._combine?   s7   € Ü�uÐ2Ô3ä˜%“LˆEáÜ% e¨Y¸Ó=Ð=Ü! $¨	°5Ó9Ð9r,   c                 ó<   — | j                  d| j                  d«      S )NéÿÿÿÿF©r@   ÚMUL©r    s    r%   Ú__neg__zCombinable.__neg__L   s   € Ø�}‰}˜R §¡¨5Ó1Ð1r,   c                 ó<   — | j                  || j                  d«      S ©NF©r@   ÚADD©r    r=   s     r%   Ú__add__zCombinable.__add__O   ó   € Ø�}‰}˜U D§H¡H¨eÓ4Ð4r,   c                 ó<   — | j                  || j                  d«      S rH   ©r@   ÚSUBrK   s     r%   Ú__sub__zCombinable.__sub__R   rM   r,   c                 ó<   — | j                  || j                  d«      S rH   rC   rK   s     r%   Ú__mul__zCombinable.__mul__U   rM   r,   c                 ó<   — | j                  || j                  d«      S rH   ©r@   ÚDIVrK   s     r%   Ú__truediv__zCombinable.__truediv__X   rM   r,   c                 ó<   — | j                  || j                  d«      S rH   ©r@   ÚMODrK   s     r%   Ú__mod__zCombinable.__mod__[   rM   r,   c                 ó<   — | j                  || j                  d«      S rH   ©r@   ÚPOWrK   s     r%   Ú__pow__zCombinable.__pow__^   rM   r,   c                 óz   — t        | dd«      r$t        |dd«      rt        | «      t        |«      z  S t        d«      ‚©NÚconditionalFúFUse .bitand(), .bitor(), and .bitxor() for bitwise logical operations.©Úgetattrr   ÚNotImplementedErrorrK   s     r%   Ú__and__zCombinable.__and__a   ó=   € Ü�4˜¨Ô.´7¸5À-ÐQVÔ3WÜ�T“7œQ˜u›XÑ%Ð%Ü!ØTó
ð 	
r,   c                 ó<   — | j                  || j                  d«      S rH   )r@   ÚBITANDrK   s     r%   ÚbitandzCombinable.bitandh   ó   € Ø�}‰}˜U D§K¡K°Ó7Ð7r,   c                 ó<   — | j                  || j                  d«      S rH   )r@   ÚBITLEFTSHIFTrK   s     r%   ÚbitleftshiftzCombinable.bitleftshiftk   s   € Ø�}‰}˜U D×$5Ñ$5°uÓ=Ð=r,   c                 ó<   — | j                  || j                  d«      S rH   )r@   ÚBITRIGHTSHIFTrK   s     r%   ÚbitrightshiftzCombinable.bitrightshiftn   s   € Ø�}‰}˜U D×$6Ñ$6¸Ó>Ð>r,   c                 óz   — t        | dd«      r$t        |dd«      rt        | «      t        |«      z  S t        d«      ‚ra   rd   rK   s     r%   Ú__xor__zCombinable.__xor__q   rh   r,   c                 ó<   — | j                  || j                  d«      S rH   )r@   ÚBITXORrK   s     r%   ÚbitxorzCombinable.bitxorx   rl   r,   c                 óz   — t        | dd«      r$t        |dd«      rt        | «      t        |«      z  S t        d«      ‚ra   rd   rK   s     r%   Ú__or__zCombinable.__or__{   rh   r,   c                 ó<   — | j                  || j                  d«      S rH   )r@   ÚBITORrK   s     r%   ÚbitorzCombinable.bitor‚   s   € Ø�}‰}˜U D§J¡J°Ó6Ð6r,   c                 ó<   — | j                  || j                  d«      S ©NTrI   rK   s     r%   Ú__radd__zCombinable.__radd__…   ó   € Ø�}‰}˜U D§H¡H¨dÓ3Ð3r,   c                 ó<   — | j                  || j                  d«      S r~   rO   rK   s     r%   Ú__rsub__zCombinable.__rsub__ˆ   r€   r,   c                 ó<   — | j                  || j                  d«      S r~   rC   rK   s     r%   Ú__rmul__zCombinable.__rmul__‹   r€   r,   c                 ó<   — | j                  || j                  d«      S r~   rU   rK   s     r%   Ú__rtruediv__zCombinable.__rtruediv__Ž   r€   r,   c                 ó<   — | j                  || j                  d«      S r~   rY   rK   s     r%   Ú__rmod__zCombinable.__rmod__‘   r€   r,   c                 ó<   — | j                  || j                  d«      S r~   r]   rK   s     r%   Ú__rpow__zCombinable.__rpow__”   r€   r,   c                 ó   — t        d«      ‚©Nrc   ©rf   rK   s     r%   Ú__rand__zCombinable.__rand__—   ó   € Ü!ØTó
ð 	
r,   c                 ó   — t        d«      ‚rŒ   r�   rK   s     r%   Ú__ror__zCombinable.__ror__œ   r�   r,   c                 ó   — t        d«      ‚rŒ   r�   rK   s     r%   Ú__rxor__zCombinable.__rxor__¡   r�   r,   c                 ó   — t        | «      S ©N)ÚNegatedExpressionrE   s    r%   Ú
__invert__zCombinable.__invert__¦   s   € Ü  Ó&Ð&r,   N))r'   r(   r)   r*   rJ   rP   rD   rV   r^   rZ   rj   r{   rn   rq   rv   r@   rF   rL   rQ   rS   rW   r[   r_   rg   rk   ro   rr   rt   rw   ry   r|   r   r‚   r„   r†   rˆ   rŠ   rŽ   r‘   r“   r—   r+   r,   r%   r.   r.   &   sÆ   „ ñð €CØ
€CØ
€CØ
€CØ
€Cð €Cð
 €FØ€EØ€LØ€MØ€Fò:ò2ò5ò5ò5ò5ò5ò5ò
ò8ò>ò?ò
ò8ò
ò7ò4ò4ò4ò4ò4ò4ò
ò

ò

ó
'r,   r.   c                   ó   — e Zd Zy)ÚOutputFieldIsNoneErrorN)r'   r(   r)   r+   r,   r%   r™   r™   ª   s   „ Ør,   r™   c                   óf  — e Zd ZdZeZdZdZdZdZ	dZ
dZdZd'd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	 d(d„Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Ze d„ «       Z!ed„ «       Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d „ Z+d!„ Z,d"„ Z-d#„ Z.d$„ Z/d%„ Z0d&„ Z1y))ÚBaseExpressionz%Base class for all query expressions.FTNc                 ó   — |�|| _         y y r•   ©r   ©r    r   s     r%   Ú__init__zBaseExpression.__init__Á   s   € ØÐ#Ø ,ˆDÕð $r,   c                 ó^   — | j                   j                  «       }|j                  dd «       |S )NÚconvert_value)Ú__dict__ÚcopyÚpop)r    Ústates     r%   Ú__getstate__zBaseExpression.__getstate__Å   s'   € Ø—‘×"Ñ"Ó$ˆØ�	‰	�/ 4Ô(Øˆr,   c                 óˆ   — | j                   | j                  u rg n| j                   g| j                  j                  |«      z   S r•   )r¡   Ú_convert_value_noopr   Úget_db_converters©r    r   s     r%   r©   z BaseExpression.get_db_convertersÊ   sG   € ð ×!Ñ! T×%=Ñ%=Ñ=ñ à×$Ñ$Ð%Ø×Ñ×/Ñ/°
Ó;ñ	<ð 	<r,   c                 ó   — g S r•   r+   rE   s    r%   Úget_source_expressionsz%BaseExpression.get_source_expressionsÑ   ó   € Øˆ	r,   c                 ó   — |rJ ‚y r•   r+   ©r    Úexprss     r%   Úset_source_expressionsz%BaseExpression.set_source_expressionsÔ   s   € ÙÐˆy�5r,   c                 ó�   — |D �cg c]6  }t        |d«      r|n%t        |t        «      rt        |«      n
t	        |«      ‘Œ8 c}S c c}w r8   )r:   Ú
isinstanceÚstrÚFr;   )r    ÚexpressionsÚargs      r%   Ú_parse_expressionsz!BaseExpression._parse_expressions×   sO   € ð #ö
ð ô ˜3Ð 4Ô5ñ ä *¨3´Ô 4”a˜”f¼%À»*ñFò
ð 	
ùò 
s   …;Ac                 ó   — t        d«      ‚)aÆ  
        Responsible for returning a (sql, [params]) tuple to be included
        in the current query.

        Different backends can provide their own implementation, by
        providing an `as_{vendor}` method and patching the Expression:

        ```
        def override_as_sql(self, compiler, connection):
            # custom logic
            return super().as_sql(compiler, connection)
        setattr(Expression, 'as_' + connection.vendor, override_as_sql)
        ```

        Arguments:
         * compiler: the query compiler responsible for generating the query.
           Must have a compile method, returning a (sql, [params]) tuple.
           Calling compiler(value) will return a quoted `value`.

         * connection: the database connection used for the current query.

        Return: (sql, params)
          Where `sql` is a string containing ordered sql parameters to be
          replaced with the elements of the list `params`.
        z"Subclasses must implement as_sql()r�   ©r    r!   r   s      r%   r   zBaseExpression.as_sqlá   s   € ô4 "Ð"FÓGÐGr,   c                 óB   — t        d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|xr |j                   –— Œ y ­wr•   )Úcontains_aggregate©Ú.0Úexprs     r%   ú	<genexpr>z4BaseExpression.contains_aggregate.<locals>.<genexpr>ÿ   s#   è ø€ ò 
Ø15ˆDÒ,�T×,Ñ,Ó,ñ
ùó   ‚©Úanyr¬   rE   s    r%   r½   z!BaseExpression.contains_aggregateý   s%   € äñ 
Ø9=×9TÑ9TÓ9Vô
ó 
ð 	
r,   c                 óB   — t        d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|xr |j                   –— Œ y ­wr•   )Úcontains_over_clauser¾   s     r%   rÁ   z6BaseExpression.contains_over_clause.<locals>.<genexpr>  s#   è ø€ ò 
Ø37ˆDÒ.�T×.Ñ.Ó.ñ
ùrÂ   rÃ   rE   s    r%   rÇ   z#BaseExpression.contains_over_clause  s%   € äñ 
Ø;?×;VÑ;VÓ;Xô
ó 
ð 	
r,   c                 óB   — t        d„ | j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }|xr |j                   –— Œ y ­wr•   )Úcontains_column_referencesr¾   s     r%   rÁ   z<BaseExpression.contains_column_references.<locals>.<genexpr>  s&   è ø€ ò 
àð Ò4�T×4Ñ4Ó4ñ
ùrÂ   rÃ   rE   s    r%   rÊ   z)BaseExpression.contains_column_references	  ó%   € äñ 
à×3Ñ3Ó5ô
ó 
ð 	
r,   c                 óB   — t        d„ | j                  «       D «       «      S )Nc              3   óZ   K  — | ]#  }|xr t        |d d«      xs |j                  –— Œ% y­w)ÚsubqueryFN)re   Úcontains_subqueryr¾   s     r%   rÁ   z3BaseExpression.contains_subquery.<locals>.<genexpr>  s4   è ø€ ò 
àð ÒQ”g˜d J°Ó6ÒP¸$×:PÑ:PÓQñ
ùs   ‚)+rÃ   rE   s    r%   rÏ   z BaseExpression.contains_subquery  rË   r,   c           
      óH  — | j                  «       }||_        |j                  «       D �cg c]  }|�|j                  |||||«      nd‘Œ }}| j                  s4t        d„ |D «       «      r"t        | j                  j                  › d�«      ‚|j                  |«       |S c c}w )a  
        Provide the chance to do any preprocessing or validation before being
        added to the query.

        Arguments:
         * query: the backend query implementation
         * allow_joins: boolean allowing or denying use of joins
           in this query
         * reuse: a set of reusable joins for multijoins
         * summarize: a terminal aggregate clause
         * for_save: whether this expression about to be used in a save or
           update

        Return: an Expression to be added to the query.
        Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr•   )r³   ÚColPairsr¾   s     r%   rÁ   z4BaseExpression.resolve_expression.<locals>.<genexpr>3  s   è ø€ ò 9
Ø+/ŒJ�tœX×&ñ9
ùrÂ   z4 expression does not support composite primary keys.)
r£   Ú
is_summaryr¬   r9   Úallows_composite_expressionsrÄ   Ú
ValueErrorÚ	__class__r'   r±   )	r    ÚqueryÚallow_joinsÚreuseÚ	summarizeÚfor_saveÚcrÀ   Úsource_expressionss	            r%   r9   z!BaseExpression.resolve_expression  sÇ   € ð$ �I‰I‹KˆØ ˆŒð ×0Ñ0Ó2ö
ð ð Ð#ð ×'Ñ'¨¨{¸EÀ9ÈhÔWàñð
Ðð 
ð ×0Ò0´Sñ 9
Ø3Eô9
ô 6
ô Ø—>‘>×*Ñ*Ð+ð ,*ð *óð ð 	
× Ñ Ð!3Ô4Øˆùò!
s   ª Bc                 óJ   — t        | j                  t        j                  «      S r•   )r³   r   r   ÚBooleanFieldrE   s    r%   rb   zBaseExpression.conditional=  s   € ä˜$×+Ñ+¬V×-@Ñ-@ÓAÐAr,   c                 ó   — | j                   S r•   r�   rE   s    r%   ÚfieldzBaseExpression.fieldA  s   € à× Ñ Ð r,   c                 ó@   — | j                  «       }|€t        d«      ‚|S )z+Return the output type of this expressions.z4Cannot resolve expression type, unknown output_field)Ú_resolve_output_fieldr™   rž   s     r%   r   zBaseExpression.output_fieldE  s0   € ð ×1Ñ1Ó3ˆØÐÜ(ØFóð ð Ðr,   c                 ó:   — 	 | j                   S # t        $ r Y yw xY w)z†
        Return the output field of this expression, or None if
        _resolve_output_field() didn't return an output type.
        N)r   r™   rE   s    r%   Ú_output_field_or_nonez$BaseExpression._output_field_or_noneO  s%   € ð	Ø×$Ñ$Ð$øÜ%ò 	Ùð	ús   ‚ Ž	™c           	      óô   — d„ | j                  «       D «       }|D ]\  }|D ]R  }t        ||j                  «      rŒt        d|j                  j                  ›d|j                  j                  ›d�«      ‚ |c S  y)a}  
        Attempt to infer the output type of the expression.

        As a guess, if the output fields of all source fields match then simply
        infer the same type here.

        If a source's output field resolves to None, exclude it from this
        check. If all sources are None, then an error is raised higher up the
        stack in the output_field property.
        c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr•   r+   )r¿   Úsources     r%   rÁ   z7BaseExpression._resolve_output_field.<locals>.<genexpr>h  s   è ø€ ò 
Ø¸VÑ=OŒFñ
ùs   ‚Šz!Expression contains mixed types: ú, ú. You must set output_field.N)Úget_source_fieldsr³   rÖ   r   r'   )r    Úsources_iterr   rè   s       r%   rã   z$BaseExpression._resolve_output_fieldZ  s„   € ñ
Ø!%×!7Ñ!7Ó!9ô
ˆð )ò 	 ˆLØ&ò 	�Ü! ,°×0@Ñ0@ÕAÝ$ð )×2Ñ2×;Ó;Ø"×,Ñ,×5Ó5ð	óð ð	ð  Òñ	 r,   c                 ó   — | S r•   r+   ©ÚvalueÚ
expressionr   s      r%   r¨   z"BaseExpression._convert_value_noopx  s   € àˆr,   c                 óš   — | j                   }|j                  «       }|dk(  rd„ S |j                  d«      rd„ S |dk(  rd„ S | j                  S )zÑ
        Expressions provide their own converters because users have the option
        of manually specifying the output_field which may be a different type
        from the one the database returns.
        Ú
FloatFieldc                 ó    — | €d S t        | «      S r•   )Úfloatrî   s      r%   ú<lambda>z.BaseExpression.convert_value.<locals>.<lambda>†  s   € Ø˜�ð Ü+0°«<ð r,   ÚIntegerFieldc                 ó    — | €d S t        | «      S r•   )Úintrî   s      r%   rõ   z.BaseExpression.convert_value.<locals>.<lambda>Š  s   € Ø˜�ð Ü+.¨u«:ð r,   r   c                 ó    — | €d S t        | «      S r•   r   rî   s      r%   rõ   z.BaseExpression.convert_value.<locals>.<lambda>Ž  s   € Ø˜�ð Ü+2°5«>ð r,   )r   r   Úendswithr¨   )r    rá   Úinternal_types      r%   r¡   zBaseExpression.convert_value|  sk   € ð ×!Ñ!ˆØ×/Ñ/Ó1ˆØ˜LÒ(ñð ð ×#Ñ# NÔ3ñð ð ˜nÒ,ñð ð ×'Ñ'Ð'r,   c                 ó8   — | j                   j                  |«      S r•   )r   Ú
get_lookup)r    Úlookups     r%   rý   zBaseExpression.get_lookup“  s   € Ø× Ñ ×+Ñ+¨FÓ3Ð3r,   c                 ó8   — | j                   j                  |«      S r•   )r   Úget_transform©r    Únames     r%   r   zBaseExpression.get_transform–  s   € Ø× Ñ ×.Ñ.¨tÓ4Ð4r,   c                 ó°   — | j                  «       }|j                  | j                  «       D �cg c]  }|�|j                  |«      nd ‘Œ c}«       |S c c}w r•   )r£   r±   r¬   Úrelabeled_clone)r    Ú
change_mapÚcloneÚes       r%   r  zBaseExpression.relabeled_clone™  s\   € Ø—	‘	“ˆØ×$Ñ$ð ×4Ñ4Ó6öàð 23°�×!Ñ! *Ô-ÀDÑHòô	
ð ˆùòs   ®Ac                 óî   — |s| S |j                  | «      x}r|S | j                  «       x}s| S | j                  «       }|j                  |D �cg c]  }|€d n|j	                  |«      ‘Œ c}«       |S c c}w r•   )Úgetr¬   r£   r±   Úreplace_expressions)r    ÚreplacementsÚreplacementrÝ   r  rÀ   s         r%   r
  z"BaseExpression.replace_expressions£  s‘   € ÙØˆKØ&×*Ñ*¨4Ó0Ð0ˆ;Ð0ØÐØ&*×&AÑ&AÓ&CÐCÐ"ÐCØˆKØ—	‘	“ˆØ×$Ñ$ð /öàð ˜‘¨$×*BÑ*BÀ<Ó*PÑPòô	
ð ˆùòs   ÁA2c                 óp   — t        «       }| j                  «       D ]  }|€Œ||j                  «       z  }Œ |S r•   )Úsetr¬   Úget_refs)r    ÚrefsrÀ   s      r%   r  zBaseExpression.get_refs³  s@   € Ü‹uˆØ×/Ñ/Ó1ò 	$ˆDØˆ|ØØ�D—M‘M“OÑ#‰Dð	$ð ˆr,   c                 ó,   — t        j                   | «      S r•   ©r£   rE   s    r%   r£   zBaseExpression.copy»  ó   € Ü�y‰y˜‹Ðr,   c           	      óú   — | j                  «       }|j                  | j                  «       D �cg c]<  }t        |t        «      rt	        |› |j
                  › �«      n|j                  |«      ‘Œ> c}«       |S c c}w r•   )r£   r±   r¬   r³   rµ   r  Úprefix_references)r    Úprefixr  rÀ   s       r%   r  z BaseExpression.prefix_references¾  s{   € Ø—	‘	“ˆØ×$Ñ$ð !×7Ñ7Ó9öð ô " $¬Ô*ô ˜˜ §¡ Ð,Ô-à×/Ñ/°Ó7ñ8òô		
ð ˆùòs   ®AA8c                 ó�   — | j                   s| gS g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r•   )r½   r¬   ÚextendÚget_group_by_cols©r    Úcolsrè   s      r%   r  z BaseExpression.get_group_by_colsÌ  sI   € Ø×&Ò&Ø�6ˆMØˆØ×1Ñ1Ó3ò 	4ˆFØ�K‰K˜×0Ñ0Ó2Õ3ð	4àˆr,   c                 ó\   — | j                  «       D �cg c]  }|j                  ‘Œ c}S c c}w )z9Return the underlying field types used by this aggregate.)r¬   rå   )r    r  s     r%   rë   z BaseExpression.get_source_fieldsÔ  s%   € à15×1LÑ1LÓ1NÖO¨A�×'Ó'ÒOÐOùÒOs   “)c                 ó   — t        | fi |¤ŽS r•   ©ÚOrderBy©r    Úkwargss     r%   ÚasczBaseExpression.ascØ  ó   € Ü�tÑ&˜vÑ&Ð&r,   c                 ó   — t        | fddi|¤ŽS ©NÚ
descendingTr  r   s     r%   ÚdesczBaseExpression.descÛ  ó   € Ü�tÑ7¨Ð7°Ñ7Ð7r,   c                 ó   — | S r•   r+   rE   s    r%   Úreverse_orderingzBaseExpression.reverse_orderingÞ  ó   € Øˆr,   c              #   óš   K  — | –— | j                  «       D ].  }|sŒt        |d«      r|j                  «       E d{  –—†  Œ+|–— Œ0 y7 Œ­w)zi
        Recursively yield this expression and all subexpressions, in
        depth-first order.
        ÚflattenN)r¬   r:   r-  )r    rÀ   s     r%   r-  zBaseExpression.flattená  sK   è ø€ ð
 Š
Ø×/Ñ/Ó1ò 	ˆDÚÜ˜4 Ô+Ø#Ÿ|™|›~×-Ñ-à“Jñ	ð .ús   ‚A�A¼A	½Ac                 óp   — t        | j                  d«      r| j                  j                  |||«      S ||fS )z†
        Custom format for select clauses. For example, EXISTS expressions need
        to be wrapped in CASE WHEN on Oracle.
        Úselect_format)r:   r   r/  ©r    r!   r#   r$   s       r%   r/  zBaseExpression.select_formatî  s9   € ô
 �4×$Ñ$ oÔ6Ø×$Ñ$×2Ñ2°8¸SÀ&ÓIÐIØ�Fˆ{Ðr,   c                 ó„   — t        | dd«      s	 | j                  «       \  }|S | S # t        $ r}t        d«      |‚d }~ww xY w)NÚ constraint_validation_compatibleTzdExpressions with constraint_validation_compatible set to False must have only one source expression.)re   r¬   rÕ   )r    rð   r  s      r%   Úget_expression_for_validationz,BaseExpression.get_expression_for_validation÷  s\   € ô �tÐ?ÀÔFð"Ø $× ;Ñ ;Ó =‘�ð "Ð!Øˆøô ò Ü ð<óð ðûðús   �% ¥	?®:º?r•   ©NTNFF)2r'   r(   r)   r*   ÚNotImplementedÚempty_result_set_valuerÓ   Ú
filterableÚwindow_compatibleÚallowed_defaultr2  Úset_returningrÔ   rŸ   r¦   r©   r¬   r±   r¸   r   r   r½   rÇ   rÊ   rÏ   r9   Úpropertyrb   rá   r   rå   rã   Ústaticmethodr¨   r¡   rý   r   r  r
  r  r£   r  r  rë   r"  r'  r*  r-  r/  r3  r+   r,   r%   r›   r›   ®   s}  „ Ù/à+Ðà€Jà€JàÐà€Oà'+Ð$à€Mà#(Ð ó-òò
<òòò
òHð8 ñ
ó ð
ð
 ñ
ó ð
ð
 ñ
ó ð
ð ñ
ó ð
ð SXó$ðL ñBó ðBð ñ!ó ð!ð ñó ðð ñó ðò ð< ñó ðð ñ(ó ð(ò,4ò5òòò òòòòPò'ò8òòòór,   r›   c                   óx   — e Zd ZdZe ej                  d¬«      d„ «       «       Zed„ «       Z	e
d„ «       Zd„ Zd„ Zy	)
Ú
Expressionz:An expression that can be combined with other expressions.é€   ©Úmaxsizec                 ó,   — t        | j                  «      S r•   )r   rŸ   )Úclss    r%   Ú_constructor_signaturez!Expression._constructor_signature  s   € ô ˜Ÿ™Ó&Ð&r,   c                 ó®  ‡ — t        |t        «      rt        t        ‰ j                  |«      «      S t        |t        «      r"t        ˆ fd„|j                  «       D «       «      S t        |t        j                  «      rO|j                  r8|j                  r,|j                  j                  j                  |j                  fS t        |«      S t        |«      S )Nc              3   óJ   •K  — | ]  \  }}|‰j                  |«      f–— Œ y ­wr•   )Ú	_identity)r¿   ÚkeyÚvalrC  s      €r%   rÁ   z'Expression._identity.<locals>.<genexpr>  s#   øè ø€ ÒQ±x°s¸C˜#˜sŸ}™}¨SÓ1Ô2ÑQùs   ƒ #)r³   ÚtupleÚmaprG  ÚdictÚitemsr   ÚFieldr  ÚmodelÚ_metaÚlabelÚtyper   )rC  rï   s   ` r%   rG  zExpression._identity  s“   ø€ ä�eœUÔ#Üœ˜SŸ]™]¨EÓ2Ó3Ð3Ü�eœTÔ"ÜÓQÀ5Ç;Á;Ã=ÔQÓQÐQÜ�eœVŸ\™\Ô*Ø�zŠz˜eŸkškØ—{‘{×(Ñ(×.Ñ.°·
±
Ð:Ð:Ü˜“;ÐÜ˜UÓ#Ð#r,   c                 ój  — | j                   \  }} | j                  j                  | g|¢­i |¤Ž} |j                  «        t	        |j
                  j                  «       «      }t        |«       | j                  g}|D ])  \  }}| j                  |«      }|j                  ||f«       Œ+ t        |«      S r•   )Ú_constructor_argsrD  Úbind_partialÚapply_defaultsÚiterÚ	argumentsrM  ÚnextrÖ   rG  ÚappendrJ  )r    Úargsr!  r   rX  Úidentityr·   rï   s           r%   r\  zExpression.identity  s¬   € à×-Ñ-‰ˆˆfØ<�D×/Ñ/×<Ñ<¸TÐSÀDÒSÈFÑSˆ	Ø ˆ	× Ñ Ô"Ü˜×,Ñ,×2Ñ2Ó4Ó5ˆ	ÜˆYŒØ—N‘NÐ#ˆØ#ò 	*‰JˆC�ð —N‘N 5Ó)ˆEØ�O‰O˜S %˜LÕ)ð	*ô �X‹Ðr,   c                 ó`   — t        |t        «      st        S |j                  | j                  k(  S r•   )r³   r>  r5  r\  rK   s     r%   Ú__eq__zExpression.__eq__,  s%   € Ü˜%¤Ô,Ü!Ð!Ø�~‰~ §¡Ñ.Ð.r,   c                 ó,   — t        | j                  «      S r•   )Úhashr\  rE   s    r%   Ú__hash__zExpression.__hash__1  s   € Ü�D—M‘MÓ"Ð"r,   N)r'   r(   r)   r*   r   Ú	functoolsÚ	lru_cacherD  ÚclassmethodrG  r   r\  r^  ra  r+   r,   r%   r>  r>    s^   „ áDàØ€Y×Ñ Ô%ñ'ó &ó ð'ð ñ	$ó ð	$ð ñó ðò/ó
#r,   r>  c              3   ó@   K  — | ]  }|t         |ft         ||fg–— Œ y ­wr•   r   )r¿   Ú
field_types     r%   rÁ   rÁ   ‚  s+   è ø€ ò  àð œh¨
Ð3´hÀ
ÈJÐ5WÔXñ ùs   ‚c                 ó:   — t         |   j                  | ||f«       y)zÂ
    Register combinable types:
        lhs <connector> rhs -> result
    e.g.
        register_combinable_fields(
            IntegerField, Combinable.ADD, FloatField, FloatField
        )
    N)Ú_connector_combinatorsrZ  )Úlhsr>   ÚrhsÚresults       r%   Úregister_combinable_fieldsrl  ¸  s   € ô ˜9Ñ%×,Ñ,¨c°3¸Ð-?Õ@r,   r?  r@  c                 ó€   — t         j                  | d«      }|D ]#  \  }}}t        ||«      sŒt        ||«      sŒ!|c S  y )Nr+   )rh  r	  Ú
issubclass)r>   Úlhs_typeÚrhs_typeÚcombinatorsÚcombinator_lhs_typeÚcombinator_rhs_typeÚcombined_types          r%   Ú_resolve_combined_typeru  Ê  sL   € ä(×,Ñ,¨Y¸Ó;€KØCNò !Ñ?ÐÐ0°-Ü�hÐ 3Õ4¼ØÐ)õ:
ð !Ò ñ	!r,   c                   ób   ‡ — e Zd Zd
ˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z		 dˆ fd„	Z
ed	„ «       Zˆ xZS )r<   c                 óP   •— t         ‰| �  |¬«       || _        || _        || _        y ©Nr�   )ÚsuperrŸ   r>   ri  rj  )r    ri  r>   rj  r   rÖ   s        €r%   rŸ   zCombinedExpression.__init__Õ  s(   ø€ Ü‰Ñ lÐÔ3Ø"ˆŒØˆŒØˆ�r,   c                 óN   — dj                  | j                  j                  | «      S )Nz<{}: {}>)ÚformatrÖ   r'   rE   s    r%   Ú__repr__zCombinedExpression.__repr__Û  s   € Ø× Ñ  §¡×!8Ñ!8¸$Ó?Ð?r,   c                 ód   — dj                  | j                  | j                  | j                  «      S )Nz{} {} {})r{  ri  r>   rj  rE   s    r%   Ú__str__zCombinedExpression.__str__Þ  s#   € Ø× Ñ  §¡¨4¯>©>¸4¿8¹8ÓDÐDr,   c                 ó2   — | j                   | j                  gS r•   ©ri  rj  rE   s    r%   r¬   z)CombinedExpression.get_source_expressionsá  s   € Ø—‘˜$Ÿ(™(Ð#Ð#r,   c                 ó"   — |\  | _         | _        y r•   r€  r¯   s     r%   r±   z)CombinedExpression.set_source_expressionsä  s   € Ø"ÑˆŒ�$•(r,   c           	      ó”  — t        | j                  t        | j                  j                  «      t        | j
                  j                  «      «      }|€ot        d| j                  ›d| j                  j                  j                  j                  › d| j
                  j                  j                  j                  › d�«      ‚ |«       S )NzCannot infer type of z# expression involving these types: ré   rê   )
ru  r>   rR  ri  rå   rj  r   r   rÖ   r'   )r    rt  s     r%   rã   z(CombinedExpression._resolve_output_fieldç  s­   € ô /Ø�N‰NÜ�—‘×/Ñ/Ó0Ü�—‘×/Ñ/Ó0ó
ˆð
 Ð ÜØ'¨¯©Ð'9ð :ØŸ(™(×/Ñ/×9Ñ9×BÑBÐCÀ2Ø—8‘8×(Ñ(×2Ñ2×;Ñ;Ð<ð = ð!óð ñ ‹Ðr,   c                 óh  — g }g }|j                  | j                  «      \  }}|j                  |«       |j                  |«       |j                  | j                  «      \  }}|j                  |«       |j                  |«       d}|j
                  j                  | j                  |«      }||z  |fS ©Nz(%s))Úcompileri  rZ  r  rj  ÚopsÚcombine_expressionr>   )r    r!   r   r¶   Úexpression_paramsr#   r$   Úexpression_wrappers           r%   r   zCombinedExpression.as_sqlø  s¦   € ØˆØÐØ×&Ñ& t§x¡xÓ0‰ˆˆVØ×Ñ˜3ÔØ× Ñ  Ô(Ø×&Ñ& t§x¡xÓ0‰ˆˆVØ×Ñ˜3ÔØ× Ñ  Ô(à#ÐØ�n‰n×/Ñ/°·±ÀÓLˆØ! CÑ'Ð):Ð:Ð:r,   c                 óB  •— t         ‰
| �  |||||«      }t        | t        t        f«      sÆ	 |j
                  j                  j                  «       }	 |j                  j                  j                  «       }d||hv r0||k7  r+t        |j
                  |j                  |j                  «      S h d£}	| j                  | j                  k(  r)||	v r%||k(  r t	        |j
                  |j                  «      S |S # t        t        f$ r d }Y Œ¶w xY w# t        t        f$ r d }Y Œ¨w xY w)NÚDurationField>   Ú	DateFieldÚ	TimeFieldÚDateTimeField)ry  r9   r³   ÚDurationExpressionÚTemporalSubtractionri  r   r   ÚAttributeErrorr   rj  r>   rP   )r    r×   rØ   rÙ   rÚ   rÛ   Úresolvedro  rp  Údatetime_fieldsrÖ   s             €r%   r9   z%CombinedExpression.resolve_expression  s  ø€ ô ‘7Ñ-ØØØØØó
ˆô ˜$Ô!3Ô5HÐ IÔJð Ø#Ÿ<™<×4Ñ4×FÑFÓH�ð Ø#Ÿ<™<×4Ñ4×FÑFÓH�ð  8¨XÐ"6Ñ6¸8ÀxÒ;OÜ)Ø—L‘L (×"4Ñ"4°h·l±lóð ò JˆOà—‘ $§(¡(Ò*Ø Ñ/Ø Ò(ä*¨8¯<©<¸¿¹ÓFÐFØˆøô# #¤JÐ/ò  Ø’ð ûô #¤JÐ/ò  Ø’ð ús#   ¬$C3 Á$D
 Ã3DÄDÄ
DÄDc                 ó^   — | j                   j                  xr | j                  j                  S r•   )ri  r9  rj  rE   s    r%   r9  z"CombinedExpression.allowed_default&  s!   € à�x‰x×'Ñ'ÒD¨D¯H©H×,DÑ,DÐDr,   r•   r4  )r'   r(   r)   rŸ   r|  r~  r¬   r±   rã   r   r9   r   r9  Ú__classcell__©rÖ   s   @r%   r<   r<   Ô  sK   ø„ õò@òEò$ò#òò";ð SXõð@ ñEó ôEr,   r<   c                   ó*   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zˆ xZS )r�  c                 óä   — 	 |j                   }|j                  «       dk(  r1|j                  |«      \  }}|j                  j	                  |«      |fS |j                  |«      S # t
        $ r Y Œw xY w)Nr‹  )r   r   r…  r†  Úformat_for_duration_arithmeticr   )r    Úsider!   r   Úoutputr#   r$   s          r%   r…  zDurationExpression.compile,  sy   € ð	RØ×&Ñ&ˆFð ×'Ñ'Ó)¨_Ò<Ø&×.Ñ.¨tÓ4‘��VØ!—~‘~×DÑDÀSÓIÈ6ÐQÐQØ×Ñ Ó%Ð%øô ò 	Ùð	ús   ‚A# Á#	A/Á.A/c                 óô  •— |j                   j                  rt        ‰| �  ||«      S |j                  j                  | «       g }g }| j                  | j                  ||«      \  }}|j                  |«       |j                  |«       | j                  | j                  ||«      \  }}|j                  |«       |j                  |«       d}|j                  j                  | j                  |«      }||z  |fS r„  )ÚfeaturesÚhas_native_duration_fieldry  r   r†  Úcheck_expression_supportr…  ri  rZ  r  rj  Úcombine_duration_expressionr>   )	r    r!   r   r¶   rˆ  r#   r$   r‰  rÖ   s	           €r%   r   zDurationExpression.as_sql7  sÝ   ø€ Ø×Ñ×8Ò8Ü‘7‘> (¨JÓ7Ð7Ø�‰×/Ñ/°Ô5ØˆØÐØ—l‘l 4§8¡8¨X°zÓB‰ˆˆVØ×Ñ˜3ÔØ× Ñ  Ô(Ø—l‘l 4§8¡8¨X°zÓB‰ˆˆVØ×Ñ˜3ÔØ× Ñ  Ô(à#ÐØ�n‰n×8Ñ8¸¿¹ÈÓUˆØ! CÑ'Ð):Ð:Ð:r,   c                 ó¤  —  | j                   ||fi |¤Ž\  }}| j                  t        j                  t        j                  hv rr	 | j
                  j                  j                  «       }| j                  j                  j                  «       }h d£}||vs||vrt        d| j                  › d�«      ‚||fS ||fS # t        t        f$ r Y ||fS w xY w)N>   rò   r   rö   r‹  zInvalid arguments for operator ú.)r   r>   r.   rD   rV   ri  r   r   rj  r   r‘  r   )	r    r!   r   r"   r#   r$   ro  rp  Úallowed_fieldss	            r%   r&   zDurationExpression.as_sqliteH  sÛ   € Ø!�d—k‘k (¨JÑH¸-ÑH‰ˆˆVØ�>‰>œjŸn™n¬j¯n©nÐ=Ñ=ðØŸ8™8×0Ñ0×BÑBÓD�ØŸ8™8×0Ñ0×BÑBÓD�ò"�ð  >Ñ1°XÀ^Ñ5SÜ'Ø9¸$¿.¹.Ð9IÈÐKóð ð �Fˆ{Ðˆs�Fˆ{Ðøô #¤JÐ/ò Øð �Fˆ{Ððús   ÁAB: Â:CÃC)r'   r(   r)   r…  r   r&   r•  r–  s   @r%   r�  r�  +  s   ø„ ò	&ô;ö"r,   r�  c                   óF   ‡ — e Zd Z ej                  «       Zˆ fd„Zd„ Zˆ xZS )r�  c                 ó<   •— t         ‰| �  || j                  |«       y r•   )ry  rŸ   rP   )r    ri  rj  rÖ   s      €r%   rŸ   zTemporalSubtraction.__init__a  s   ø€ Ü‰Ñ˜˜dŸh™h¨Õ,r,   c                 ó"  — |j                   j                  | «       |j                  | j                  «      }|j                  | j                  «      }|j                   j                  | j                  j                  j                  «       ||«      S r•   )r†  rŸ  r…  ri  rj  Úsubtract_temporalsr   r   )r    r!   r   ri  rj  s        r%   r   zTemporalSubtraction.as_sqld  sm   € Ø�‰×/Ñ/°Ô5Ø×Ñ˜tŸx™xÓ(ˆØ×Ñ˜tŸx™xÓ(ˆØ�~‰~×0Ñ0Ø�H‰H×!Ñ!×3Ñ3Ó5°s¸Có
ð 	
r,   )	r'   r(   r)   r   r‹  r   rŸ   r   r•  r–  s   @r%   r�  r�  ^  s   ø„ Ø'�6×'Ñ'Ó)€Lô-ö
r,   r�  zdjango.db.models.F)Úpathc                   óZ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Z	 dd„Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zy)rµ   zDAn object capable of resolving references to existing query objects.Fc                 ó   — || _         y)z^
        Arguments:
         * name: the name of the field this expression references
        N)r  r  s     r%   rŸ   z
F.__init__s  s   € ð
 ˆ�	r,   c                 ób   — dj                  | j                  j                  | j                  «      S ©Nú{}({}))r{  rÖ   r'   r  rE   s    r%   r|  z
F.__repr__z  s!   € Ø�‰˜tŸ~™~×6Ñ6¸¿	¹	ÓBÐBr,   c                 ó   — t        | |«      S r•   )ÚSliced)r    Ú	subscripts     r%   Ú__getitem__zF.__getitem__}  s   € Ü�d˜IÓ&Ð&r,   c                 óH   — t        d| j                  j                  › d�«      ‚)Nzargument of type 'z' is not iterable)Ú	TypeErrorrÖ   r'   rK   s     r%   Ú__contains__zF.__contains__€  s%   € ô Ð,¨T¯^©^×-DÑ-DÐ,EÐEVÐWÓXÐXr,   Nc                 ó>   — |j                  | j                  |||«      S r•   )Úresolve_refr  ©r    r×   rØ   rÙ   rÚ   rÛ   s         r%   r9   zF.resolve_expression…  s   € ð × Ñ  §¡¨K¸À	ÓJÐJr,   c                 ó  — |j                  | «      x}�|S | j                  j                  t        «      ^}}|s| S |j                  t	        |«      «      x}	 �|j
                  €| S |D ]!  }|j                  |«      }|€| c S  ||«      }Œ# |S r•   )r	  r  Úsplitr   rµ   rå   r   )r    r  r  Ú
field_nameÚ
transformsÚ	transformÚtransform_classs          r%   r
  zF.replace_expressionsŠ  s«   € Ø'×+Ñ+¨DÓ1Ð1ˆKÐ>ØÐØ"&§)¡)§/¡/´*Ó"=Ðˆ
�Zñ ØˆKà'×+Ñ+¬A¨j«MÓ:Ð:ˆKØðà ×6Ñ6Ð>ØˆKØ#ò 	7ˆIØ)×7Ñ7¸	ÓBˆOØÐ&Ø’Ù)¨+Ó6‰Kð		7ð
 Ðr,   c                 ó   — t        | fi |¤ŽS r•   r  r   s     r%   r"  zF.ascž  r#  r,   c                 ó   — t        | fddi|¤ŽS r%  r  r   s     r%   r'  zF.desc¡  r(  r,   c                 ój   — | j                   |j                   k(  xr | j                  |j                  k(  S r•   )rÖ   r  rK   s     r%   r^  zF.__eq__¤  s'   € Ø�~‰~ §¡Ñ0ÒL°T·Y±YÀ%Ç*Á*Ñ5LÐLr,   c                 ó,   — t        | j                  «      S r•   )r`  r  rE   s    r%   ra  z
F.__hash__§  s   € Ü�D—I‘I‹Ðr,   c                 ó,   — t        j                   | «      S r•   r  rE   s    r%   r£   zF.copyª  r  r,   r4  )r'   r(   r)   r*   r9  rŸ   r|  r±  r´  r9   r
  r"  r'  r^  ra  r£   r+   r,   r%   rµ   rµ   m  sL   „ áNà€OòòCò'òYð SXóKò
ò('ò8òMòór,   rµ   c                   ó<   ‡ — e Zd ZdZdZdZd„ Zˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚResolvedOuterRefz¿
    An object that contains a reference to an outer query.

    In this case, the reference to the outer query has been resolved because
    the inner query has been used as a subquery.
    Fc                 ó   — t        d«      ‚)NzXThis queryset contains a reference to an outer query and may only be used in a subquery.)rÕ   ©r    r[  r!  s      r%   r   zResolvedOuterRef.as_sql¹  s   € Üð*ó
ð 	
r,   c                 óž   •— t        ‰| �  |i |¤Ž}|j                  rt        d| j                  › d�«      ‚t
        | j                  v |_        |S )Nz<Referencing outer query window expression is not supported: r¢  )ry  r9   rÇ   r   r  r   Úpossibly_multivalued)r    r[  r!  ÚcolrÖ   s       €r%   r9   z#ResolvedOuterRef.resolve_expression¿  sX   ø€ Ü‰gÑ(¨$Ð9°&Ñ9ˆØ×#Ò#Ü#ØNØ—9‘9�+˜Qð óð ô $.°·±Ð#:ˆÔ Øˆ
r,   c                 ó   — | S r•   r+   ©r    Úrelabelss     r%   r  z ResolvedOuterRef.relabeled_cloneÌ  r+  r,   c                 ó   — g S r•   r+   rE   s    r%   r  z"ResolvedOuterRef.get_group_by_colsÏ  r­   r,   )r'   r(   r)   r*   r½   rÇ   r   r9   r  r  r•  r–  s   @r%   rÄ  rÄ  ®  s*   ø„ ñð ÐØ Ðò
ôòör,   rÄ  c                   ó    — e Zd ZdZdZd„ Zd„ Zy)ÚOuterRefFc                 ó„   — t        | j                  | j                  «      r| j                  S t        | j                  «      S r•   )r³   r  rÖ   rÄ  rÆ  s      r%   r9   zOuterRef.resolve_expression×  s-   € Ü�d—i‘i §¡Ô0Ø—9‘9ÐÜ §	¡	Ó*Ð*r,   c                 ó   — | S r•   r+   rË  s     r%   r  zOuterRef.relabeled_cloneÜ  r+  r,   N)r'   r(   r)   r½   rÇ   r9   r  r+   r,   r%   rÏ  rÏ  Ó  s   „ ØÐØ Ðò+ó
r,   rÏ  c                   ó:   ‡ — e Zd ZdZˆ fd„Zd„ Z	 	 	 	 	 dd„Zˆ xZS )r¯  z¬
    An object that contains a slice of an F expression.

    Object resolves the column on which the slicing is applied, and then
    applies the slicing if possible.
    c                 ó¸  •— t         ‰| �  |j                  «       || _        t	        |t
        «      r"|dk  rt        d«      ‚|dz   | _        d| _        y t	        |t        «      rí|j                  �|j                  dk  s|j                  �|j                  dk  rt        d«      ‚|j                  �t        d«      ‚|j                  r0|j                  r$|j                  |j                  k  rt        d«      ‚|j                  €dn|j                  dz   | _        |j                  €d | _        y |j                  |j                  xs dz
  | _        y t        d«      ‚)Nr   z#Negative indexing is not supported.é   zStep argument is not supported.z,Slice stop must be greater than slice start.z7Argument to slice must be either int or slice instance.)ry  rŸ   r  Úobjr³   rø   rÕ   ÚstartÚlengthÚsliceÚstopÚstepr³  )r    rÕ  r°  rÖ   s      €r%   rŸ   zSliced.__init__è  s  ø€ Ü‰Ñ˜Ÿ™Ô"ØˆŒÜ�i¤Ô%Ø˜1Š}Ü Ð!FÓGÐGØ" Q™ˆDŒJØˆD�KÜ˜	¤5Ô)Ø—‘Ð+°	·±À!Ò0CØ—‘Ð*¨y¯~©~ÀÒ/Aä Ð!FÓGÐGØ�~‰~Ð)Ü Ð!BÓCÐCØ�~Š~ )§/¢/°i·n±nÀyÇÁÒ6VÜ Ð!OÓPÐPØ'Ÿo™oÐ5™¸9¿?¹?ÈQÑ;NˆDŒJØ�~‰~Ð%Ø"�•à'Ÿn™n°	·±Ò0DÀ1ÑE�•äÐUÓVÐVr,   c                 óÄ   — | j                   dz
  }| j                  €d n|| j                  z   }t        ||«      }| j                  j                  › d| j
                  ›d|›d�S )NrÔ  ú(ré   ú))rÖ  r×  rØ  rÖ   r)   rÕ  )r    rÖ  rÙ  r°  s       r%   r|  zSliced.__repr__  s\   € Ø—
‘
˜Q‘ˆØ—{‘{Ð*‰t°¸¿¹Ñ0CˆÜ˜% Ó&ˆ	Ø—.‘.×-Ñ-Ð.¨a°·±¨|¸2¸i¸]È!ÐLÐLr,   c                 ó0  — |j                  | j                  |||«      }t        | j                  t        | j
                  f«      r | j                  j                  |||||«      }n|}|j                  j                  || j                  | j                  «      S r•   )r¶  r  r³   rÕ  rÏ  rÖ   r9   r   Úslice_expressionrÖ  r×  )r    r×   rØ   rÙ   rÚ   rÛ   r’  rÀ   s           r%   r9   zSliced.resolve_expression  s~   € ð ×$Ñ$ T§Y¡Y°¸UÀIÓNˆÜ�d—h‘h¤¨4¯>©>Ð :Ô;Ø—8‘8×.Ñ.Ø�{ E¨9°hó‰Dð ˆDØ×$Ñ$×5Ñ5°d¸D¿J¹JÈÏÉÓTÐTr,   r4  )r'   r(   r)   r*   rŸ   r|  r9   r•  r–  s   @r%   r¯  r¯  à  s+   ø„ ñôWò2Mð ØØØØ÷Ur,   r¯  zdjango.db.models.Funcc                   óx   ‡ — e Zd ZdZdZdZdZdZddœˆ fd„
Zd„ Z	d„ Z
d	„ Zd
„ Z	 	 	 dd„Zˆ fd„Zed„ «       Zˆ xZS )ÚFunczAn SQL function call.Nz%(function)s(%(expressions)s)ré   r�   c                óD  •— | j                   �ht        |«      | j                   k7  rPt        d| j                  j                  ›d| j                   ›d| j                   dk(  rdnd›dt        |«      ›d�	«      ‚t
        ‰| �  |¬	«        | j                  |Ž | _        || _	        y )
Nú'z' takes exactly ú rÔ  ÚargumentrX  z (z given)r�   )
ÚarityÚlenr³  rÖ   r'   ry  rŸ   r¸   rÝ   Úextra)r    r   r¶   rè  rÖ   s       €r%   rŸ   zFunc.__init__"  s�   ø€ Ø�:‰:Ð!¤c¨+Ó&6¸$¿*¹*Ò&DÝð —N‘N×+Ó+Ø—J“JØ"&§*¡*°¢/‘J°{ÑBÜ˜Õ$ðóð ô 	‰Ñ lÐÔ3Ø"9 $×"9Ñ"9¸;Ð"GˆÔØˆ�
r,   c                 ó’  — | j                   j                  d„ | j                  D «       «      }i | j                  ¥| j	                  «       ¥}|rVdj                  d„ t        |j                  «       «      D «       «      }dj                  | j                  j                  ||«      S dj                  | j                  j                  |«      S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr•   ©r´   ©r¿   r·   s     r%   rÁ   z Func.__repr__.<locals>.<genexpr>2  ó   è ø€ Ò#P°¤C¨§HÑ#Pùó   ‚ré   c              3   óV   K  — | ]!  \  }}t        |«      d z   t        |«      z   –— Œ# y­w)ú=Nrë  )r¿   rH  rI  s      r%   rÁ   z Func.__repr__.<locals>.<genexpr>5  s*   è ø€ ò Ù.6¨c°3”�C“˜3‘¤ S£Õ)ñùs   ‚')ú
{}({}, {})r­  )
Ú
arg_joinerÚjoinrÝ   rè  Ú_get_repr_optionsÚsortedrM  r{  rÖ   r'   )r    r[  rè  s      r%   r|  zFunc.__repr__1  s£   € Ø�‰×#Ñ#Ñ#P¸×8OÑ8OÔ#PÓPˆØ:�4—:‘:Ð: ×!7Ñ!7Ó!9Ð:ˆÙØ—I‘Iñ Ü:@ÀÇÁÃÓ:Oôó ˆEð  ×&Ñ& t§~¡~×'>Ñ'>ÀÀeÓLÐLØ�‰˜tŸ~™~×6Ñ6¸Ó=Ð=r,   c                 ó   — i S )zAReturn a dict of extra __init__() options to include in the repr.r+   rE   s    r%   rô  zFunc._get_repr_options;  s   € àˆ	r,   c                 ó   — | j                   S r•   ©rÝ   rE   s    r%   r¬   zFunc.get_source_expressions?  s   € Ø×&Ñ&Ð&r,   c                 ó   — || _         y r•   rø  r¯   s     r%   r±   zFunc.set_source_expressionsB  s
   € Ø"'ˆÕr,   c                 óè  — |j                   j                  | «       g }g }| j                  D ]9  }		 |j                  |	«      \  }
}|j                  |
«       |j                  |«       Œ; i | j                  ¥|¥}|�||d<   n|j                  d| j                  «       |xs |j                  d| j                  «      }|xs |j                  d| j                   «      }|j#                  |«      x|d<   |d<   ||z  t%        |«      fS # t        $ r; t        |	dt        «      }|t        u r‚ |j                  t        |«      «      \  }
}Y �Œt        $ r! |j                  t        d«      «      \  }
}Y �Œ,w xY w)Nr6  TÚfunctionÚtemplaterò  r¶   rá   )r†  rŸ  rÝ   r…  r   re   r5  r;   r   rZ  r  rè  Ú
setdefaultrû  r	  rü  rò  ró  rJ  )r    r!   r   rû  rü  rò  r"   Ú	sql_partsr$   r·   Úarg_sqlÚ
arg_paramsr6  Údatas                 r%   r   zFunc.as_sqlE  sv  € ð 	�‰×/Ñ/°Ô5Øˆ	ØˆØ×*Ñ*ò 	&ˆCð
DØ&.×&6Ñ&6°sÓ&;Ñ#�˜ð ×Ñ˜WÔ%Ø�M‰M˜*Õ%ð	&ð /�$—*‘*Ð. Ð.ˆð ÐØ'ˆD�Òà�O‰O˜J¨¯©Ô6ØÒB˜tŸx™x¨
°D·M±MÓBˆØÒJ 4§8¡8¨L¸$¿/¹/Ó#Jˆ
Ø.8¯o©o¸iÓ.HÐHˆˆ]Ñ˜d 7™mØ˜$‰¤ f£Ð-Ð-øô- "ò VÜ)0ØÐ1´>ó*Ð&ð *¬^Ñ;ØØ&.×&6Ñ&6´uÐ=SÓ7TÓ&UÑ#�›Ü ò DØ&.×&6Ñ&6´u¸T³{Ó&CÑ#�›ðDús   °DÄA E1Å%E1Å0E1c                 óŠ   •— t         ‰| �  «       }| j                  d d  |_        | j                  j                  «       |_        |S r•   )ry  r£   rÝ   rè  )r    r£   rÖ   s     €r%   r£   z	Func.copyl  s8   ø€ Ü‰w‰|‹~ˆØ"&×"9Ñ"9¹!Ð"<ˆÔØ—Z‘Z—_‘_Ó&ˆŒ
Øˆr,   c                 ó:   — t        d„ | j                  D «       «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr•   ©r9  )r¿   rð   s     r%   rÁ   z'Func.allowed_default.<locals>.<genexpr>t  s   è ø€ ÒX°*�:×-Õ-ÑXùó   ‚)ÚallrÝ   rE   s    r%   r9  zFunc.allowed_defaultr  s   € äÑXÀ×@WÑ@WÔXÓXÐXr,   ©NNN)r'   r(   r)   r*   rû  rü  rò  ræ  rŸ   r|  rô  r¬   r±   r   r£   r   r9  r•  r–  s   @r%   rá  rá    sb   ø„ áà€HØ.€HØ€JØ€Eà26ö ò>òò'ò(ð ØØó%.ôNð ñYó ôYr,   rá  zdjango.db.models.Valuec                   ób   ‡ — e Zd ZdZdZdZdˆ fd„	Zd„ Zd„ Z	 dˆ fd„	Z	d„ Z
d	„ Zed
„ «       Zˆ xZS )r;   z9Represent a wrapped value as a node within an expression.FTc                 ó4   •— t         ‰| �  |¬«       || _        y)a:  
        Arguments:
         * value: the value this expression represents. The value will be
           added into the sql parameter list and properly quoted.

         * output_field: an instance of the model field type that this
           expression will return, such as IntegerField() or CharField().
        r�   N)ry  rŸ   rï   )r    rï   r   rÖ   s      €r%   rŸ   zValue.__init__€  s   ø€ ô 	‰Ñ lÐÔ3Øˆ�
r,   c                 óN   — | j                   j                  › d| j                  ›d�S )NrÜ  rÝ  )rÖ   r'   rï   rE   s    r%   r|  zValue.__repr__Œ  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯J©J¨>¸Ð;Ð;r,   c                 ó,  — |j                   j                  | «       | j                  }| j                  }|�U| j                  r|j                  ||¬«      }n|j                  ||¬«      }t        |d«      r|j                  |||«      |gfS |€dg fS d|gfS )N)r   Úget_placeholderÚNULLz%s)	r†  rŸ  rï   rå   rÛ   Úget_db_prep_saveÚget_db_prep_valuer:   r  )r    r!   r   rI  r   s        r%   r   zValue.as_sql�  s¥   € Ø�‰×/Ñ/°Ô5Ø�j‰jˆØ×1Ñ1ˆØÐ#Ø�}Š}Ø"×3Ñ3°CÀJÐ3ÓO‘à"×4Ñ4°SÀZÐ4ÓP�Ü�|Ð%6Ô7Ø#×3Ñ3°C¸À:ÓNÐQTÐPUÐUÐUØˆ;ð ˜2�:ÐØ�c�Uˆ{Ðr,   c                 ó<   •— t         ‰| �  |||||«      }||_        |S r•   )ry  r9   rÛ   ©r    r×   rØ   rÙ   rÚ   rÛ   rÜ   rÖ   s          €r%   r9   zValue.resolve_expression¡  s(   ø€ ô ‰GÑ& u¨k¸5À)ÈXÓVˆØˆŒ
Øˆr,   c                 ó   — g S r•   r+   rE   s    r%   r  zValue.get_group_by_cols¨  r­   r,   c                 óH  — t        | j                  t        «      rt        j                  «       S t        | j                  t
        «      rt        j                  «       S t        | j                  t        «      rt        j                  «       S t        | j                  t        «      rt        j                  «       S t        | j                  t        j                  «      rt        j                  «       S t        | j                  t        j                  «      rt        j                  «       S t        | j                  t        j                  «      rt        j                   «       S t        | j                  t        j"                  «      rt        j$                  «       S t        | j                  t&        «      rt        j(                  «       S t        | j                  t*        «      rt        j,                  «       S t        | j                  t.        «      rt        j0                  «       S y r•   )r³   rï   r´   r   Ú	CharFieldÚboolrß   rø   rö   rô   rò   ÚdatetimerŽ  ÚdaterŒ  Útimer�  Ú	timedeltar‹  r   r   ÚbytesÚBinaryFieldr
   Ú	UUIDFieldrE   s    r%   rã   zValue._resolve_output_field«  sZ  € Ü�d—j‘j¤#Ô&Ü×#Ñ#Ó%Ð%Ü�d—j‘j¤$Ô'Ü×&Ñ&Ó(Ð(Ü�d—j‘j¤#Ô&Ü×&Ñ&Ó(Ð(Ü�d—j‘j¤%Ô(Ü×$Ñ$Ó&Ð&Ü�d—j‘j¤(×"3Ñ"3Ô4Ü×'Ñ'Ó)Ð)Ü�d—j‘j¤(§-¡-Ô0Ü×#Ñ#Ó%Ð%Ü�d—j‘j¤(§-¡-Ô0Ü×#Ñ#Ó%Ð%Ü�d—j‘j¤(×"4Ñ"4Ô5Ü×'Ñ'Ó)Ð)Ü�d—j‘j¤'Ô*Ü×&Ñ&Ó(Ð(Ü�d—j‘j¤%Ô(Ü×%Ñ%Ó'Ð'Ü�d—j‘j¤$Ô'Ü×#Ñ#Ó%Ð%ð (r,   c                 ó   — | j                   S r•   )rï   rE   s    r%   r6  zValue.empty_result_set_valueÃ  s   € à�z‰zÐr,   r•   r4  )r'   r(   r)   r*   rÛ   r9  rŸ   r|  r   r9   r  rã   r;  r6  r•  r–  s   @r%   r;   r;   w  sK   ø„ áCð €HØ€Oõ
ò<òð& SXõòò&ð0 ñó ôr,   r;   c                   óD   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Zd„ Z	 dˆ fd„	Zˆ xZ	S )	ÚRawSQLTc                 óp   •— |€t        j                  «       }||c| _        | _        t        ‰| �  |¬«       y rx  )r   rN  r#   r$   ry  rŸ   )r    r#   r$   r   rÖ   s       €r%   rŸ   zRawSQL.__init__Ë  s4   ø€ ØÐÜ!Ÿ<™<›>ˆLØ # VÐˆŒ�$”+Ü‰Ñ lÐÕ3r,   c                 óx   — dj                  | j                  j                  | j                  | j                  «      S ©Nrñ  )r{  rÖ   r'   r#   r$   rE   s    r%   r|  zRawSQL.__repr__Ñ  s)   € Ø×"Ñ" 4§>¡>×#:Ñ#:¸D¿H¹HÀdÇkÁkÓRÐRr,   c                 ó8   — d| j                   z  | j                  fS r„  )r#   r$   rº   s      r%   r   zRawSQL.as_sqlÔ  s   € Ø˜Ÿ™Ñ  $§+¡+Ð-Ð-r,   c                 ó   — | gS r•   r+   rE   s    r%   r  zRawSQL.get_group_by_cols×  ó	   € Øˆvˆr,   c                 ój  •— |j                   r”|j                   j                  j                  D ]q  }|j                  j                  D ]V  }|j                  j                  «       | j                  j                  «       v sŒ8|j                  |j                  |||«        Œq Œs t        ‰| �)  |||||«      S r•   )rO  rP  Úall_parentsÚlocal_fieldsÚcolumnÚlowerr#   r¶  r  ry  r9   )	r    r×   rØ   rÙ   rÚ   rÛ   ÚparentÚparent_fieldrÖ   s	           €r%   r9   zRawSQL.resolve_expressionÚ  s§   ø€ ð �;Š;ØŸ+™+×+Ñ+×7Ñ7ò �Ø$*§L¡L×$=Ñ$=ò �LØ#×*Ñ*×0Ñ0Ó2°d·h±h·n±nÓ6FÒFØ×)Ñ)Ø(×-Ñ-¨{¸EÀ9ôñ ñðô ‰wÑ)Ø�;  y°(ó
ð 	
r,   r•   r4  )
r'   r(   r)   r9  rŸ   r|  r   r  r9   r•  r–  s   @r%   r   r   È  s.   ø„ Ø€Oõ4òSò.òð SX÷
ñ 
r,   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚStarc                  ó   — y)Nz'*'r+   rE   s    r%   r|  zStar.__repr__ì  s   € Ør,   c                 ó
   — dg fS )Nr1   r+   rº   s      r%   r   zStar.as_sqlï  s   € Ø�Bˆwˆr,   N)r'   r(   r)   r|  r   r+   r,   r%   r/  r/  ë  s   „ òór,   r/  c                   ó@   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Z	 dd„Zd„ Zˆ xZ	S )	ÚDatabaseDefaultzb
    Expression to use DEFAULT keyword during insert otherwise the underlying
    expression.
    c                 ó2   •— t         ‰| �  |«       || _        y r•   ©ry  rŸ   rð   ©r    rð   r   rÖ   s      €r%   rŸ   zDatabaseDefault.__init__ù  s   ø€ Ü‰Ñ˜Ô&Ø$ˆ�r,   c                 ó   — | j                   gS r•   ©rð   rE   s    r%   r¬   z&DatabaseDefault.get_source_expressionsý  ó   € Ø—‘Ð Ð r,   c                 ó   — |\  | _         y r•   r8  r¯   s     r%   r±   z&DatabaseDefault.set_source_expressions   s   € Ø"Ñˆ�r,   c                 óx   — | j                   j                  |||||¬«      }|s|S t        || j                  ¬«      S )N)r×   rØ   rÙ   rÚ   rÛ   r�   )rð   r9   r3  rå   )r    r×   rØ   rÙ   rÚ   rÛ   Úresolved_expressions          r%   r9   z"DatabaseDefault.resolve_expression  sQ   € ð #Ÿo™o×@Ñ@ØØ#ØØØð Aó 
Ðñ Ø&Ð&ÜØ¨d×.HÑ.Hô
ð 	
r,   c                 ól   — |j                   j                  s|j                  | j                  «      S dg fS )NÚDEFAULT)r�  Ú"supports_default_keyword_in_insertr…  rð   rº   s      r%   r   zDatabaseDefault.as_sql  s0   € Ø×"Ñ"×EÒEØ×#Ñ# D§O¡OÓ4Ð4Ø˜"ˆ}Ðr,   r•   r4  )
r'   r(   r)   r*   rŸ   r¬   r±   r9   r   r•  r–  s   @r%   r3  r3  ó  s(   ø„ ñõ
%ò!ò#ð SXó
ö$r,   r3  c                   óF   ‡ — e Zd ZdZdZd	ˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )
ÚColTFc                 óL   •— |€|}t         ‰| �  |¬«       ||c| _        | _        y rx  )ry  rŸ   ÚaliasÚtarget)r    rC  rD  r   rÖ   s       €r%   rŸ   zCol.__init__  s.   ø€ ØÐØ!ˆLÜ‰Ñ lÐÔ3Ø"'¨ÐˆŒ
�D•Kr,   c                 óÒ   — | j                   | j                  }}|r|t        |«      fnt        |«      f}dj                  | j                  j
                  dj                  |«      «      S )Nr­  ré   )rC  rD  r´   r{  rÖ   r'   ró  )r    rC  rD  Úidentifierss       r%   r|  zCol.__repr__%  sO   € ØŸ
™
 D§K¡KˆvˆÙ.3�uœc &›kÑ*¼#¸f»+¸ˆØ�‰˜tŸ~™~×6Ñ6¸¿	¹	À+Ó8NÓOÐOr,   c                 óª   — | j                   | j                  j                  }}|r||fn|f}dj                  t	        |j
                  |«      «      }|dfS )Nr¢  r+   )rC  rD  r*  ró  rK  Úquote_name_unless_alias)r    r!   r   rC  r*  rF  r#   s          r%   r   z
Col.as_sql*  sL   € ØŸ
™
 D§K¡K×$6Ñ$6ˆvˆÙ).�u˜f‘o°V°IˆØ�h‰h”s˜8×;Ñ;¸[ÓIÓJˆØ�Bˆwˆr,   c                 ó´   — | j                   €| S | j                  |j                  | j                   | j                   «      | j                  | j                  «      S r•   )rC  rÖ   r	  rD  r   rË  s     r%   r  zCol.relabeled_clone0  sF   € Ø�:‰:ÐØˆKØ�~‰~Ø�L‰L˜Ÿ™ T§Z¡ZÓ0°$·+±+¸t×?PÑ?Pó
ð 	
r,   c                 ó   — | gS r•   r+   rE   s    r%   r  zCol.get_group_by_cols7  r&  r,   c                 óØ   — | j                   | j                  k(  r| j                  j                  |«      S | j                  j                  |«      | j                   j                  |«      z   S r•   )rD  r   r©   rª   s     r%   r©   zCol.get_db_converters:  s^   € Ø�;‰;˜$×+Ñ+Ò+Ø×$Ñ$×6Ñ6°zÓBÐBØ× Ñ ×2Ñ2Øó
à�K‰K×)Ñ)¨*Ó5ñ6ð 	6r,   r•   )r'   r(   r)   rÊ   rÈ  rŸ   r|  r   r  r  r©   r•  r–  s   @r%   rA  rA    s.   ø„ Ø!%ÐØ Ðõ0òPò
ò
òö6r,   rA  c                   óZ   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zˆ xZS )rÒ   c                 óP   •— t         ‰| �  |¬«       || _        || _        || _        y rx  )ry  rŸ   rC  ÚtargetsÚsources)r    rC  rN  rO  r   rÖ   s        €r%   rŸ   zColPairs.__init__C  s(   ø€ Ü‰Ñ lÐÔ3ØˆŒ
ØˆŒØˆ�r,   c                 ó,   — t        | j                  «      S r•   )rç  rN  rE   s    r%   Ú__len__zColPairs.__len__I  s   € Ü�4—<‘<Ó Ð r,   c                 ó4   — t        | j                  «       «      S r•   )rW  Úget_colsrE   s    r%   Ú__iter__zColPairs.__iter__L  s   € Ü�D—M‘M“OÓ$Ð$r,   c           
      óœ   — | j                   j                  › d| j                  ›d| j                  ›d| j                  ›d| j
                  ›d�
S )NrÜ  ré   rÝ  )rÖ   r'   rC  rN  rO  r   rE   s    r%   r|  zColPairs.__repr__O  sL   € à�~‰~×&Ñ&Ð' q¨¯©¨°b¸¿¹Ð8HÈØ�|‰|Ð˜b ×!2Ñ!2Ð 5°Qð8ð	
r,   c           	      óž   — t        | j                  | j                  «      D ��cg c]  \  }}t        | j                  ||«      ‘Œ c}}S c c}}w r•   )ÚziprN  rO  rA  rC  )r    rD  rè   s      r%   rS  zColPairs.get_colsU  sD   € ô #& d§l¡l°D·L±LÓ"A÷
á�˜ô �—
‘
˜F FÕ+ó
ð 	
ùó 
s   ¤!A	c                 ó"   — | j                  «       S r•   )rS  rE   s    r%   r¬   zColPairs.get_source_expressions[  s   € Ø�}‰}‹Ðr,   c                 óÂ   ‡ — t        ˆ fd„|D «       «      sJ ‚|D �cg c]  }|j                  ‘Œ c}‰ _        |D �cg c]  }|j                  ‘Œ c}‰ _        y c c}w c c}w )Nc              3   ót   •K  — | ]/  }t        |t        «      xr |j                  ‰j                  k(  –— Œ1 y ­wr•   )r³   rA  rC  )r¿   rÀ   r    s     €r%   rÁ   z2ColPairs.set_source_expressions.<locals>.<genexpr>_  s-   øè ø€ ÒXÈ$”:˜d¤CÓ(ÒE¨T¯Z©Z¸4¿:¹:Ñ-EÓEÑXùs   ƒ58)r  rD  rN  rá   rO  )r    r°   rÉ  s   `  r%   r±   zColPairs.set_source_expressions^  sL   ø€ ÜÓXÐRWÔXÔXÐXÐXØ.3Ö4 s˜Ÿ
›
Ò4ˆŒØ-2Ö3 c˜Ÿ	›	Ò3ˆ�ùò 5ùÚ3s
   œA»Ac                 óÌ   — g }g }| j                  «       }|D ]9  }|j                  ||«      \  }}|j                  |«       |j                  |«       Œ; dj	                  |«      |fS )Nré   )rS  r   rZ  r  ró  )	r    r!   r   Úcols_sqlÚcols_paramsr  rÉ  r#   r$   s	            r%   r   zColPairs.as_sqlc  sj   € ØˆØˆØ�}‰}‹ˆàò 	'ˆCØŸ*™* X¨zÓ:‰KˆC�Ø�O‰O˜CÔ Ø×Ñ˜vÕ&ð	'ð
 �y‰y˜Ó" KÐ/Ð/r,   c                 ó®   — | j                  |j                  | j                  | j                  «      | j                  | j                  | j
                  «      S r•   )rÖ   r	  rC  rN  rO  rá   rË  s     r%   r  zColPairs.relabeled_cloneo  s;   € Ø�~‰~Ø�L‰L˜Ÿ™ T§Z¡ZÓ0°$·,±,ÀÇÁÈdÏjÉjó
ð 	
r,   c                 ó   — | S r•   r+   rÆ  s      r%   r9   zColPairs.resolve_expressiont  r+  r,   c                 ó
   — ||fS r•   r+   r0  s       r%   r/  zColPairs.select_formatw  s   € Ø�Fˆ{Ðr,   )r'   r(   r)   rŸ   rQ  rT  r|  rS  r¬   r±   r   r  r9   r/  r•  r–  s   @r%   rÒ   rÒ   B  s:   ø„ ôò!ò%ò
ò
òò4ò

0ò
ò
ör,   rÒ   c                   óV   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Z	 dd„Zd„ Z	d„ Z
d	„ Zd
„ Zˆ xZS )ÚRefz~
    Reference to column alias of the query. For example, Ref('sum_cost') in
    qs.annotate(sum_cost=Sum('cost')) query.
    c                 ó@   •— t         ‰| �  «        ||c| _        | _        y r•   )ry  rŸ   r  rè   )r    r  rè   rÖ   s      €r%   rŸ   zRef.__init__�  s   ø€ Ü‰ÑÔØ!% vÐˆŒ	�4•;r,   c                 óx   — dj                  | j                  j                  | j                  | j                  «      S r#  )r{  rÖ   r'   r  rè   rE   s    r%   r|  zRef.__repr__…  s)   € Ø×"Ñ" 4§>¡>×#:Ñ#:¸D¿I¹IÀtÇ{Á{ÓSÐSr,   c                 ó   — | j                   gS r•   ©rè   rE   s    r%   r¬   zRef.get_source_expressionsˆ  s   € Ø—‘ˆ}Ðr,   c                 ó   — |\  | _         y r•   rf  r¯   s     r%   r±   zRef.set_source_expressions‹  s   € Ø‰ˆ�r,   c                 ó   — | S r•   r+   r·  s         r%   r9   zRef.resolve_expressionŽ  s	   € ð
 ˆr,   c                 ó   — | j                   hS r•   )r  rE   s    r%   r  zRef.get_refs•  s   € Ø—	‘	ˆ{Ðr,   c                 óf   — | j                  «       }| j                  j                  |«      |_        |S r•   )r£   rè   r  )r    rÌ  r  s      r%   r  zRef.relabeled_clone˜  s(   € Ø—	‘	“ˆØ—{‘{×2Ñ2°8Ó<ˆŒØˆr,   c                 óP   — |j                   j                  | j                  «      g fS r•   )r†  Ú
quote_namer  rº   s      r%   r   z
Ref.as_sql�  s    € Ø�~‰~×(Ñ(¨¯©Ó3°RÐ7Ð7r,   c                 ó   — | gS r•   r+   rE   s    r%   r  zRef.get_group_by_cols   r&  r,   r4  )r'   r(   r)   r*   rŸ   r|  r¬   r±   r9   r  r  r   r  r•  r–  s   @r%   rb  rb  {  s=   ø„ ñô
.òTòòð SXóòòò
8ör,   rb  c                   ó8   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zd„ Zˆ xZ	S )ÚExpressionListz¬
    An expression containing multiple expressions. Can be used to provide a
    list of expressions as an argument to another expression, like a partition
    clause.
    z%(expressions)sc                 óZ   — | j                   j                  d„ | j                  D «       «      S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr•   rë  rì  s     r%   rÁ   z)ExpressionList.__str__.<locals>.<genexpr>®  rí  rî  )rò  ró  rÝ   rE   s    r%   r~  zExpressionList.__str__­  s#   € Ø�‰×#Ñ#Ñ#P¸×8OÑ8OÔ#PÓPÐPr,   c                 ó<   •— | j                   syt        ‰| �  |i |¤ŽS )N)Ú r+   )rÝ   ry  r   )r    r[  r!  rÖ   s      €r%   r   zExpressionList.as_sql°  s#   ø€ Ø×&Ò&ØÜ‰w‰~˜tÐ. vÑ.Ð.r,   c                 ó*   —  | j                   ||fi |¤ŽS r•   )r   )r    r!   r   r"   s       r%   r&   zExpressionList.as_sqliteµ  s   € àˆt�{‰{˜8 ZÑA°=ÑAÐAr,   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r•   ©r¬   r  r  )r    Úgroup_by_colsrÀ   s      r%   r  z ExpressionList.get_group_by_cols¹  s<   € ØˆØ×/Ñ/Ó1ò 	;ˆDØ× Ñ  ×!7Ñ!7Ó!9Õ:ð	;àÐr,   )
r'   r(   r)   r*   rü  r~  r   r&   r  r•  r–  s   @r%   ro  ro  ¤  s%   ø„ ñð !€HòQô/ò
Bör,   ro  c                   ó6   ‡ — e Zd ZdZdZˆ fd„Zed„ «       Zˆ xZS )ÚOrderByListFzORDER BY %(expressions)sc                 ó6   •— d„ |D «       }t        ‰| �  |i |¤Ž y )Nc              3   ó‚   K  — | ]7  }t        |t        «      r!|d    dk(  rt        t        |dd «      d¬«      n|–— Œ9 y­w)r   r0   rÔ  NT©r&  )r³   r´   r  rµ   r¾   s     r%   rÁ   z'OrderByList.__init__.<locals>.<genexpr>Å  sI   è ø€ ò 
ð ô ˜d¤CÔ(¨T°!©W¸ª^ô œ˜$˜q˜r˜(›°Õ5àóñ
ùs   ‚=?)ry  rŸ   )r    r¶   rè  rÖ   s      €r%   rŸ   zOrderByList.__init__Ä  s(   ø€ ñ
ð $ô
ˆô 	‰Ñ˜+Ð/¨Ó/r,   c                 ó®   — |€y t        |t        t        f«      r|sy  | |Ž S t        |t        «      st	        |d«      r | |«      S t        |› d|›d�«      ‚)Nr9   z] must be either a string reference to a field, an expression, or a list or tuple of them not r¢  )r³   ÚlistrJ  r´   r:   rÕ   )rC  ÚcontextÚparams      r%   Ú
from_paramzOrderByList.from_paramÏ  sk   € àˆ=ØÜ�eœd¤E˜]Ô+ÙØÙ˜�;ÐÜ˜œsÔ#¤w¨uÐ6JÔ'KÙ�u“:ÐÜØˆið DØDIÀ9ÈAðOó
ð 	
r,   )	r'   r(   r)   r9  rü  rŸ   rd  r�  r•  r–  s   @r%   ry  ry  À  s&   ø„ Ø€OØ)€Hô	0ð ñ
ó ô
r,   ry  z"django.db.models.ExpressionWrapperc                   óT   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Z	e
d„ «       Zˆ xZS )	ÚExpressionWrapperz”
    An expression that can wrap another expression so that it can provide
    extra context to the inner expression, such as the output_field.
    c                 ó4   •— t         ‰| �  |¬«       || _        y rx  r5  r6  s      €r%   rŸ   zExpressionWrapper.__init__æ  s   ø€ Ü‰Ñ lÐÔ3Ø$ˆ�r,   c                 ó   — |d   | _         y ©Nr   r8  r¯   s     r%   r±   z(ExpressionWrapper.set_source_expressionsê  ó   € Ø ™(ˆ�r,   c                 ó   — | j                   gS r•   r8  rE   s    r%   r¬   z(ExpressionWrapper.get_source_expressionsí  r9  r,   c                 óÊ   •— t        | j                  t        «      r;| j                  j                  «       }| j                  |_        |j                  «       S t        ‰| �  «       S r•   )r³   rð   r>  r£   r   r  ry  ©r    rð   rÖ   s     €r%   r  z#ExpressionWrapper.get_group_by_colsð  sP   ø€ Ü�d—o‘o¤zÔ2ØŸ™×-Ñ-Ó/ˆJØ&*×&7Ñ&7ˆJÔ#Ø×/Ñ/Ó1Ð1ô ‰wÑ(Ó*Ð*r,   c                 ó8   — |j                  | j                  «      S r•   )r…  rð   rº   s      r%   r   zExpressionWrapper.as_sqlù  s   € Ø×Ñ §¡Ó0Ð0r,   c                 ób   — dj                  | j                  j                  | j                  «      S r¬  )r{  rÖ   r'   rð   rE   s    r%   r|  zExpressionWrapper.__repr__ü  s!   € Ø�‰˜tŸ~™~×6Ñ6¸¿¹ÓHÐHr,   c                 ó.   — | j                   j                  S r•   )rð   r9  rE   s    r%   r9  z!ExpressionWrapper.allowed_defaultÿ  s   € à�‰×.Ñ.Ð.r,   )r'   r(   r)   r*   rŸ   r±   r¬   r  r   r|  r;  r9  r•  r–  s   @r%   rƒ  rƒ  ß  s;   ø„ ñô
%ò#ò!ô+ò1òIð ñ/ó ô/r,   rƒ  c                   óF   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ fd„Z	 dˆ fd„	Zd„ Zˆ xZ	S )r–   z1The logical negation of a conditional expression.c                 óL   •— t         ‰| �  |t        j                  «       ¬«       y rx  )ry  rŸ   r   rß   rŠ  s     €r%   rŸ   zNegatedExpression.__init__  s   ø€ Ü‰Ñ˜´&×2EÑ2EÓ2GÐÕHr,   c                 ó6   — | j                   j                  «       S r•   )rð   r£   rE   s    r%   r—   zNegatedExpression.__invert__
  s   € Ø�‰×#Ñ#Ó%Ð%r,   c                 óF  •— 	 t         ‰| �  ||«      \  }}|j                  j                  }|j                  | j                  «      sd|› d�|fS d|› �|fS # t        $ rA |j                  j                  }|j
                  sY y|j                  t        d«      «      cY S w xY w)N)z1=1r+   Tz
CASE WHEN z = 0 THEN 1 ELSE 0 ENDzNOT )ry  r   r   r   r�  Ú&supports_boolean_expr_in_select_clauser…  r;   r†  Ú0conditional_expression_supported_in_where_clauserð   )r    r!   r   r#   r$   r�  r†  rÖ   s          €r%   r   zNegatedExpression.as_sql  s¬   ø€ ð	1Ü™'™.¨°:Ó>‰KˆC�ð ×!Ñ!×%Ñ%ˆð ×CÑCÀDÇOÁOÔTØ ˜uÐ$:Ð;¸VÐCÐCØ�c�Uˆ|˜VÐ#Ð#øô ò 	1Ø×*Ñ*×3Ñ3ˆHØ×BÒBÙ Ø×#Ñ#¤E¨$£KÓ0Ò0ð		1ús   ƒA Á+B ÂB ÂB c                 ór   •— t         ‰| �  |||||«      }t        |j                  dd«      st	        d«      ‚|S )Nrb   Fz*Cannot negate non-conditional expressions.)ry  r9   re   rð   r³  )r    r×   rØ   rÙ   rÚ   rÛ   r’  rÖ   s          €r%   r9   z$NegatedExpression.resolve_expression  sD   ø€ ô ‘7Ñ-Ø�;  y°(ó
ˆô �x×*Ñ*¨M¸5ÔAÜÐHÓIÐIØˆr,   c                 óÐ   — |j                   j                  j                  }|j                   j                  j                  s# || j
                  «      rdj                  |«      }||fS ©NzCASE WHEN {} THEN 1 ELSE 0 END)r   r†  r“  r�  r’  rð   r{  )r    r!   r#   r$   Ú$expression_supported_in_where_clauses        r%   r/  zNegatedExpression.select_format'  s[   € ð
 ×Ñ×#Ñ#×TÑTð 	-ð ×#Ñ#×,Ñ,×SÒSá4°T·_±_ÔEà2×9Ñ9¸#Ó>ˆCØ�Fˆ{Ðr,   r4  )
r'   r(   r)   r*   rŸ   r—   r   r9   r/  r•  r–  s   @r%   r–   r–     s'   ø„ Ù;ôIò&ô$ð" SXõör,   r–   zdjango.db.models.Whenc                   ór   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zd„ Zd„ Zd„ Z		 dˆ fd„	Z
d	„ Zdd
„Zd„ Zed„ «       Zˆ xZS )ÚWhenz"WHEN %(condition)s THEN %(result)sFc                 ó2  •— |r+|€t        di |¤Žd }}nt        |dd«      rt        |fi |¤Žd }}|�t        |dd«      r|rt        d«      ‚t        |t         «      r|st	        d«      ‚t
        ‰| �  d ¬«       || _        | j                  |«      d   | _	        y )Nrb   FzLWhen() supports a Q object, a boolean expression, or lookups as a condition.z1An empty Q() can't be used as a When() condition.r�   r   r+   )
r   re   r³  r³   rÕ   ry  rŸ   Ú	conditionr¸   rk  )r    r›  ÚthenÚlookupsrÖ   s       €r%   rŸ   zWhen.__init__=  s¨   ø€ ÙØÐ Ü%&¡\¨¡\°4˜7‘	Ü˜ M°5Ô9Ü%& yÑ%<°GÑ%<¸d˜7�	ØÐ¤G¨I°}ÀeÔ$LÑPWÜð"óð ô �i¤Ô#©IÜÐPÓQÐQÜ‰Ñ dÐÔ+Ø"ˆŒØ×-Ñ-¨dÓ3°AÑ6ˆ�r,   c                 ó:   — d| j                   ›d| j                  ›�S )NzWHEN z THEN ©r›  rk  rE   s    r%   r~  zWhen.__str__N  s   � Ø$(§N£N°D·K²KÐ@Ð@r,   c                 ó<   — d| j                   j                  ›d| ›d�S ©Nú<z: ú>©rÖ   r'   rE   s    r%   r|  zWhen.__repr__Q  ó   � Ø!Ÿ^™^×4Ó4²dÐ;Ð;r,   c                 ó2   — | j                   | j                  gS r•   rŸ  rE   s    r%   r¬   zWhen.get_source_expressionsT  s   € Ø—‘ §¡Ð,Ð,r,   c                 ó"   — |\  | _         | _        y r•   rŸ  r¯   s     r%   r±   zWhen.set_source_expressionsW  s   € Ø&+Ñ#ˆŒ˜�r,   c                 ó”   •— t         ‰| �  |||||«      }|r1|j                  �%| j                  j                  ||||d¬«      |_        |S )NF)rÛ   )ry  r9   r›  r  s          €r%   r9   zWhen.resolve_expressionZ  sW   ø€ ô ‰GÑ& u¨k¸5À)ÈXÓVˆÙ˜Ÿ™Ð/ð Ÿ.™.×;Ñ;Ø�{ E¨9¸uð <ó ˆAŒKð ˆr,   c                 ó0   — | j                   j                  gS r•   )rk  rå   rE   s    r%   rë   zWhen.get_source_fieldsf  s   € à—‘×1Ñ1Ð2Ð2r,   c                 ó  — |j                   j                  | «       |}g }|j                  | j                  «      \  }}||d<   |j                  | j                  «      \  }	}
|	|d<   |xs | j
                  }||z  g |¢|¢|
¢­fS )Nr›  rk  )r†  rŸ  r…  r›  rk  rü  )r    r!   r   rü  r"   Útemplate_paramsÚ
sql_paramsÚcondition_sqlÚcondition_paramsÚ
result_sqlÚresult_paramss              r%   r   zWhen.as_sqlj  s¤   € Ø�‰×/Ñ/°Ô5Ø'ˆØˆ
Ø*2×*:Ñ*:¸4¿>¹>Ó*JÑ'ˆÐ'Ø'4ˆ˜Ñ$Ø$,×$4Ñ$4°T·[±[Ó$AÑ!ˆ
�MØ$.ˆ˜Ñ!ØÒ,˜tŸ}™}ˆØ˜/Ñ)ð ,
Øð,
àð,
ð ñ,
ð 
ð 	
r,   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r•   rv  r  s      r%   r  zWhen.get_group_by_colsy  s9   € àˆØ×1Ñ1Ó3ò 	4ˆFØ�K‰K˜×0Ñ0Ó2Õ3ð	4àˆr,   c                 ó^   — | j                   j                  xr | j                  j                  S r•   )r›  r9  rk  rE   s    r%   r9  zWhen.allowed_default€  s!   € à�~‰~×-Ñ-ÒM°$·+±+×2MÑ2MÐMr,   ©NNr4  r•   )r'   r(   r)   rü  rb   rŸ   r~  r|  r¬   r±   r9   rë   r   r  r   r9  r•  r–  s   @r%   r™  r™  7  sX   ø„ à3€Hà€Kõ7ò"Aò<ò-ò,ð SXõ
ò3ó
òð ñNó ôNr,   r™  zdjango.db.models.Casec                   óx   ‡ — e Zd ZdZdZdZdddœˆ fd„
Zd„ Zd„ Zd	„ Z	d
„ Z
ˆ fd„Z	 dd„Zˆ fd„Zed„ «       Zˆ xZS )ÚCasezÊ
    An SQL searched CASE expression:

        CASE
            WHEN n > 0
                THEN 'positive'
            WHEN n < 0
                THEN 'negative'
            ELSE 'zero'
        END
    z#CASE %(cases)s ELSE %(default)s ENDrä  N)Údefaultr   c                ó¾   •— t        d„ |D «       «      st        d«      ‚t        ‰| �  |«       t	        |«      | _        | j                  |«      d   | _        || _        y )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr•   )r³   r™  )r¿   Úcases     r%   rÁ   z Case.__init__.<locals>.<genexpr>—  s   è ø€ Ò<¨d”:˜d¤D×)Ñ<ùrÂ   z.Positional arguments must all be When objects.r   )	r  r³  ry  rŸ   r~  Úcasesr¸   r¶  rè  )r    r¶  r   rº  rè  rÖ   s        €r%   rŸ   zCase.__init__–  sS   ø€ ÜÑ<°eÔ<Ô<ÜÐLÓMÐMÜ‰Ñ˜Ô&Ü˜%“[ˆŒ
Ø×.Ñ.¨wÓ7¸Ñ:ˆŒØˆ�
r,   c                 óf   — ddj                  d„ | j                  D «       «      ›d| j                  ›�S )NzCASE ré   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr•   rë  )r¿   rÜ   s     r%   rÁ   zCase.__str__.<locals>.<genexpr>   s   è ø€ Ò1 ”c˜!—fÑ1ùrî  z, ELSE )ró  rº  r¶  rE   s    r%   r~  zCase.__str__ž  s)   � à�I‰IÑ1 d§j¡jÔ1Õ1Ø�LŠLð
ð 	
r,   c                 ó<   — d| j                   j                  ›d| ›d�S r¡  r¤  rE   s    r%   r|  zCase.__repr__¤  r¥  r,   c                 ó6   — g | j                   ¢| j                  ‘S r•   ©rº  r¶  rE   s    r%   r¬   zCase.get_source_expressions§  s   € Ø*�—‘Ð*˜TŸ\™\Ð*Ð*r,   c                 ó"   — |�^ | _         | _        y r•   r¿  r¯   s     r%   r±   zCase.set_source_expressionsª  s   € Ø$)Ñ!ˆŒ�T•\r,   c                 óL   •— t         ‰| �  «       }|j                  d d  |_        |S r•   )ry  r£   rº  )r    rÜ   rÖ   s     €r%   r£   z	Case.copy­  s"   ø€ Ü‰G‰L‹NˆØ—'‘'™!�*ˆŒØˆr,   c                 ó~  — |j                   j                  | «       | j                  s|j                  | j                  «      S i | j
                  ¥|¥}g }g }| j                  D ]9  }		 |j                  |	«      \  }
}|j                  |
«       |j                  |«       Œ; | j                  }|r|j                  |«      \  }}n>t        |t        «      r|j                  x}�ddlm}  |||«      }|j                  |«      S |xs | j                   }|j#                  |«      |d<   ||d<   |j                  |«       |xs |j%                  d| j&                  «      }||z  }| j                  �(|j                   j)                  | j*                  «      |z  }||fS # t        $ r Y �Œ@t        $ r |	j                  }Y  �Œw xY w)Nr   )ÚCastrº  r¶  rü  )r†  rŸ  rº  r…  r¶  rè  r   r   rk  rZ  r  r³   r;   rå   Údjango.db.models.functionsrÃ  Úcase_joinerró  r	  rü  Úunification_cast_sqlr   )r    r!   r   rü  rÅ  r"   r«  Ú
case_partsr¬  r¹  Úcase_sqlÚcase_paramsr¶  Údefault_sqlÚdefault_paramsr   rÃ  r#   s                     r%   r   zCase.as_sql²  s¹  € ð 	�‰×/Ñ/°Ô5Ø�zŠzØ×#Ñ# D§L¡LÓ1Ð1Ø9˜TŸZ™ZÐ9¨=Ð9ˆØˆ
Øˆ
Ø—J‘Jò 	#ˆDðØ(0×(8Ñ(8¸Ó(>Ñ%�˜+ð ×Ñ˜hÔ'Ø×Ñ˜kÕ*ð	#ð —l‘lˆGÙØ*2×*:Ñ*:¸7Ó*CÑ'ˆK™ô ˜7¤EÔ*Ø%,×%BÑ%BÐB�\ÐOå;á˜w¨Ó5�Ø×#Ñ# GÓ,Ð,à!Ò5 T×%5Ñ%5ˆØ#.×#3Ñ#3°JÓ#?ˆ˜Ñ Ø%0ˆ˜	Ñ"Ø×Ñ˜.Ô)ØÒM˜×2Ñ2°:¸t¿}¹}ÓMˆØ˜Ñ(ˆØ×%Ñ%Ð1Ø—.‘.×5Ñ5°d×6GÑ6GÓHÈ3ÑNˆCØ�JˆÐøô; "ò ÚÜ ò ØŸ+™+�Ûðús   Á'FÆ	F<Æ#F<Æ;F<c                 ól   •— | j                   s| j                  j                  «       S t        ‰| �	  «       S r•   )rº  r¶  r  ry  )r    rÖ   s    €r%   r  zCase.get_group_by_colsÝ  s+   ø€ Ø�zŠzØ—<‘<×1Ñ1Ó3Ð3Ü‰wÑ(Ó*Ð*r,   c                 ój   — | j                   j                  xr t        d„ | j                  D «       «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr•   r  )r¿   Úcase_s     r%   rÁ   z'Case.allowed_default.<locals>.<genexpr>ä  s   è ø€ ò 4
Ø&+ˆE×!Õ!ñ4
ùr  )r¶  r9  r  rº  rE   s    r%   r9  zCase.allowed_defaultâ  s1   € à�|‰|×+Ñ+ò 
´ñ 4
Ø/3¯z©zô4
ó 1
ð 	
r,   r³  )r'   r(   r)   r*   rü  rÅ  rŸ   r~  r|  r¬   r±   r£   r   r  r   r9  r•  r–  s   @r%   rµ  rµ  …  s]   ø„ ñ
ð 5€HØ€Kà'+¸$ö ò
ò<ò+ò*ôð @Dó)ôV+ð
 ñ
ó ô
r,   rµ  c                   ó~   ‡ — e Zd ZdZdZdZdZdZdˆ fd„	Zd„ Z	d„ Z
d	„ Zˆ fd
„Zˆ fd„Zed„ «       Zd„ Zdd„Zd„ Zˆ xZS )ÚSubqueryz”
    An explicit subquery. It may contain OuterRef() references to the outer
    query which will be resolved when it is applied to that query.
    z(%(subquery)s)FNTc                 óÖ   •— t        |d|«      j                  «       | _        d| j                  _        |j	                  d| j
                  «      | _        || _        t        ‰| �!  |«       y )Nr×   Trü  )	re   r  r×   rÎ   r¤   rü  rè  ry  rŸ   )r    Úquerysetr   rè  rÖ   s       €r%   rŸ   zSubquery.__init__ô  sR   ø€ ä˜X w°Ó9×?Ñ?ÓAˆŒ
Ø"ˆ�
‰
ÔØŸ	™	 *¨d¯m©mÓ<ˆŒØˆŒ
Ü‰Ñ˜Õ&r,   c                 ó   — | j                   gS r•   ©r×   rE   s    r%   r¬   zSubquery.get_source_expressionsü  s   € Ø—
‘
ˆ|Ðr,   c                 ó   — |d   | _         y r†  rÕ  r¯   s     r%   r±   zSubquery.set_source_expressionsÿ  s   € Ø˜1‘Xˆ�
r,   c                 ó.   — | j                   j                  S r•   )r×   r   rE   s    r%   rã   zSubquery._resolve_output_field  s   € Ø�z‰z×&Ñ&Ð&r,   c                 óÎ  •— t        ‰| �  |i |¤Ž}t        | «      t        u r¨| j                  t        j                  k(  r‹d|j
                  _        	 | j                   | j                  rUt        | j                  «      t        |j
                  j                  «      ur!t        |j
                  | j                  ¬«      S |j
                  S |S # t        $ r |j
                  cY S w xY w)NTr�   )
ry  r9   rR  rÑ  rü  r×   rÏ   r   r‘  rƒ  )r    r[  r!  r’  rÖ   s       €r%   r9   zSubquery.resolve_expression  sÃ   ø€ Ü‘7Ñ-¨tÐ>°vÑ>ˆÜ�‹:œÑ! d§m¡m´x×7HÑ7HÒ&HØ/3ˆH�N‰NÔ,ð&Ø×!Ò!ð × Ò ¤T¨$×*;Ñ*;Ó%<ÄDØ—‘×+Ñ+óEñ &ô )¨¯©Àd×FWÑFWÔXÐXØ—>‘>Ð!Øˆøô "ò &Ø—~‘~Ò%ð&ús   ÁC ÃC$Ã#C$c                 ób   •— t         ‰| �  «       }|j                  j                  «       |_        |S r•   )ry  r£   r×   r  )r    r  rÖ   s     €r%   r£   zSubquery.copy  s'   ø€ Ü‘‘“ˆØ—k‘k×'Ñ'Ó)ˆŒØˆr,   c                 ó.   — | j                   j                  S r•   )r×   Úexternal_aliasesrE   s    r%   rÛ  zSubquery.external_aliases  s   € à�z‰z×*Ñ*Ð*r,   c                 ó6   — | j                   j                  «       S r•   )r×   Úget_external_colsrE   s    r%   rÝ  zSubquery.get_external_cols  s   € Ø�z‰z×+Ñ+Ó-Ð-r,   c                 óø   — |j                   j                  | «       i | j                  ¥|¥}| j                  j	                  ||«      \  }}|dd |d<   |xs |j                  d| j                  «      }||z  }||fS )NrÔ  rB   rÎ   rü  )r†  rŸ  rè  r×   r   r	  rü  )	r    r!   r   rü  r"   r«  Úsubquery_sqlr¬  r#   s	            r%   r   zSubquery.as_sql"  s‚   € Ø�‰×/Ñ/°Ô5Ø9˜TŸZ™ZÐ9¨=Ð9ˆØ#'§:¡:×#4Ñ#4°X¸zÓ#JÑ ˆ�jØ&2°1°RÐ&8ˆ˜
Ñ#àÒM˜×2Ñ2°:¸t¿}¹}ÓMˆØ˜Ñ(ˆØ�JˆÐr,   c                 ó:   — | j                   j                  | ¬«      S )N)Úwrapper)r×   r  rE   s    r%   r  zSubquery.get_group_by_cols,  s   € Ø�z‰z×+Ñ+°DÐ+Ó9Ð9r,   r•   )r'   r(   r)   r*   rü  r½   r6  rÎ   rŸ   r¬   r±   rã   r9   r£   r;  rÛ  rÝ  r   r  r•  r–  s   @r%   rÑ  rÑ  é  sa   ø„ ñð
  €HØÐØ!ÐØ€Hõ'òòò'ôô"ð
 ñ+ó ð+ò.óö:r,   rÑ  c                   óX   ‡ — e Zd ZdZ ej
                  «       ZdZˆ fd„Zd„ Z	ˆ fd„Z
ˆ xZS )ÚExistszEXISTS(%(subquery)s)Fc                 ód   •— t        ‰| �  |fi |¤Ž | j                  j                  «       | _        y r•   )ry  rŸ   r×   Úexists)r    rÓ  r!  rÖ   s      €r%   rŸ   zExists.__init__5  s)   ø€ Ü‰Ñ˜Ñ, VÒ,Ø—Z‘Z×&Ñ&Ó(ˆ�
r,   c                 ól   — |j                   j                  j                  sdj                  |«      }||fS r–  )r   r�  r’  r{  r0  s       r%   r/  zExists.select_format9  s3   € ð ×"Ñ"×+Ñ+×RÒRØ2×9Ñ9¸#Ó>ˆCØ�Fˆ{Ðr,   c                 óÆ   •— 	 t        ‰| �  |g|¢­i |¤ŽS # t        $ rA |j                  j                  }|j
                  sY y|j                  t        d«      «      cY S w xY w)N)z1=0r+   F)ry  r   r   r   r�  r’  r…  r;   )r    r!   r[  r!  r�  rÖ   s        €r%   r   zExists.as_sqlA  sb   ø€ ð	2Ü‘7‘> (Ð<¨TÒ<°VÑ<Ð<øÜò 	2Ø×*Ñ*×3Ñ3ˆHØ×BÒBÙ Ø×#Ñ#¤E¨%£LÓ1Ò1ð		2ús   ƒ –+A ÁA ÁA )r'   r(   r)   rü  r   rß   r   r6  rŸ   r/  r   r•  r–  s   @r%   rã  rã  0  s2   ø„ Ø%€HØ&�6×&Ñ&Ó(€LØ"Ðô)ò÷2ð 2r,   rã  zdjango.db.models.OrderByc                   ó\   — e Zd ZdZdZdZdZdd„Zd„ Zd„ Z	d„ Z
dd	„Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)r  z%(expression)s %(ordering)sFTNc                 ó®   — |r|rt        d«      ‚|du s|du rt        d«      ‚|| _        || _        || _        t	        |d«      st        d«      ‚|| _        y )Nz1nulls_first and nulls_last are mutually exclusiveFz7nulls_first and nulls_last values must be True or None.r9   z%expression must be an expression type)rÕ   Únulls_firstÚ
nulls_lastr&  r:   rð   )r    rð   r&  rê  rë  s        r%   rŸ   zOrderBy.__init__R  sb   € Ù™:ÜÐPÓQÐQØ˜%Ñ :°Ñ#6ÜÐVÓWÐWØ&ˆÔØ$ˆŒØ$ˆŒÜ�zÐ#7Ô8ÜÐDÓEÐEØ$ˆ�r,   c                 óx   — dj                  | j                  j                  | j                  | j                  «      S )Nz{}({}, descending={}))r{  rÖ   r'   rð   r&  rE   s    r%   r|  zOrderBy.__repr__^  s.   € Ø&×-Ñ-Ø�N‰N×#Ñ# T§_¡_°d·o±oó
ð 	
r,   c                 ó   — |d   | _         y r†  r8  r¯   s     r%   r±   zOrderBy.set_source_expressionsc  r‡  r,   c                 ó   — | j                   gS r•   r8  rE   s    r%   r¬   zOrderBy.get_source_expressionsf  r9  r,   c                 ó¤  — t        | j                  t        «      r�g }g }| j                  j                  «       D ][  }| j	                  «       } |j
                  |g«       |j                  |«      \  }	}
|j                  |	«       |j                  |
«       Œ] dj                  |«      |fS |xs | j                  }|j                  j                  r$| j                  rd|z  }ny| j                  rmd|z  }ng| j                  r(| j                  r|j                  j                   sd|z  }n3| j                  r'| j                  s|j                  j                   sd|z  }|j"                  j%                  | «       |j                  | j                  «      \  }}|| j                  rdnddœ|¥}||j'                  d	«      z  }||z  j)                  «       |fS )
Nré   z%s NULLS LASTz%s NULLS FIRSTz%%(expression)s IS NULL, %sz%%(expression)s IS NOT NULL, %sÚDESCÚASC)rð   Úorderingz%(expression)s)r³   rð   rÒ   rS  r£   r±   r…  rZ  r  ró  rü  r�  Ú supports_order_by_nulls_modifierrë  rê  r&  Úorder_by_nulls_firstr†  rŸ  ÚcountÚrstrip)r    r!   r   rü  r"   rþ  r$   rÉ  r£   r#   Ú
col_paramsÚexpression_sqlÚplaceholderss                r%   r   zOrderBy.as_sqli  sŸ  € Ü�d—o‘o¤xÔ0ØˆIØˆFØ—‘×/Ñ/Ó1ò *�Ø—y‘y“{�Ø+�×+Ñ+¨S¨EÔ2Ø"*×"2Ñ"2°4Ó"8‘��ZØ× Ñ  Ô%Ø—‘˜jÕ)ð*ð —9‘9˜YÓ'¨Ð/Ð/ØÒ,˜tŸ}™}ˆØ×Ñ×?Ò?Ø�ŠØ*¨XÑ5‘Ø×!Ò!Ø+¨hÑ6‘à�ŠØ—’ J×$7Ñ$7×$LÒ$Là8¸8ÑC‘Ø×!Ò!Ø—O’O¨
×(;Ñ(;×(PÒ(Pà<¸xÑG�Ø�‰×/Ñ/°Ô5Ø!)×!1Ñ!1°$·/±/Ó!BÑˆ˜à(Ø"&§/¢/™°uñ
ð ð
ˆð
 	�(—.‘.Ð!1Ó2Ñ2ˆØ˜<Ñ'×/Ñ/Ó1°6Ð9Ð9r,   c                 ó0  — |j                   j                  so|j                  j                  | j                  «      rJ| j                  «       }t        t        | j                  d¬«      d¬«      |_         |j                  ||«      S | j                  ||«      S )NT)rœ  F)r¶  )	r�  r’  r†  r“  rð   r£   rµ  r™  r   )r    r!   r   r£   s       r%   Ú	as_oraclezOrderBy.as_oracle�  s|   € ð ×#Ñ#×JÒJØ—‘×OÑOØ—‘ôð —9‘9“;ˆDÜ"Ü�T—_‘_¨4Ô0ØôˆDŒOð �4—;‘;˜x¨Ó4Ð4Ø�{‰{˜8 ZÓ0Ð0r,   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r•   rv  r  s      r%   r  zOrderBy.get_group_by_colsž  s9   € ØˆØ×1Ñ1Ó3ò 	4ˆFØ�K‰K˜×0Ñ0Ó2Õ3ð	4àˆr,   c                 ó–   — | j                    | _         | j                  rd| _        d | _        | S | j                  rd| _        d | _        | S r~   )r&  rê  rë  rE   s    r%   r*  zOrderBy.reverse_ordering¤  sL   € Ø"Ÿo™oÐ-ˆŒØ×ÒØ"ˆDŒOØ#ˆDÔð ˆð �_Š_Ø#ˆDÔØ"ˆDŒOØˆr,   c                 ó   — d| _         y rH   r|  rE   s    r%   r"  zOrderBy.asc®  s	   € Øˆ�r,   c                 ó   — d| _         y r~   r|  rE   s    r%   r'  zOrderBy.desc±  s	   € Øˆ�r,   )FNNr•   )r'   r(   r)   rü  rb   r2  rÔ   rŸ   r|  r±   r¬   r   rû  r  r*  r"  r'  r+   r,   r%   r  r  K  sK   „ à,€HØ€KØ',Ð$Ø#'Ð ó
%ò
ò
#ò!ó":òH1ò"òò ór,   r  c                   ój   ‡ — e Zd ZdZdZdZ	 	 	 	 dˆ fd„	Zd„ Zd„ Zd„ Z	dd„Z
ˆ fd	„Zd
„ Zd„ Zd„ Zˆ xZS )ÚWindowz %(expression)s OVER (%(window)s)FTc                 óÔ  •— || _         || _        || _        t        |dd«      s"t	        d|j
                  j                  z  «      ‚| j                   �It        | j                   t        t        f«      s| j                   f| _         t        | j                   Ž | _         t        j                  d| j                  «      | _        t        ‰| �9  |¬«       | j                  |«      d   | _        y )Nr8  Fz3Expression '%s' isn't compatible with OVER clauses.zWindow.order_byr�   r   )Úpartition_byÚorder_byÚframere   rÕ   rÖ   r'   r³   rJ  r~  ro  ry  r�  ry  rŸ   r¸   Úsource_expression)r    rð   r  r  r  r   rÖ   s         €r%   rŸ   zWindow.__init__½  sÓ   ø€ ð )ˆÔØ ˆŒØˆŒ
ä�zÐ#6¸Ô>ÜØEØ×&Ñ&×/Ñ/ñ0óð ð
 ×ÑÐ(Ü˜d×/Ñ/´%¼°Ô?Ø%)×%6Ñ%6Ð$8�Ô!Ü .°×0AÑ0AÐ BˆDÔä#×.Ñ.Ð/@À$Ç-Á-ÓPˆŒÜ‰Ñ lÐÔ3Ø!%×!8Ñ!8¸Ó!DÀQÑ!GˆÕr,   c                 ó.   — | j                   j                  S r•   )r  r   rE   s    r%   rã   zWindow._resolve_output_fieldØ  s   € Ø×%Ñ%×2Ñ2Ð2r,   c                 ó^   — | j                   | j                  | j                  | j                  gS r•   ©r  r  r  r  rE   s    r%   r¬   zWindow.get_source_expressionsÛ  s%   € Ø×&Ñ&¨×(9Ñ(9¸4¿=¹=È$Ï*É*ÐUÐUr,   c                 ó:   — |\  | _         | _        | _        | _        y r•   r	  r¯   s     r%   r±   zWindow.set_source_expressionsÞ  s   € ØOTÑLˆÔ Ô 1°4´=À$Å*r,   c                 óò  — |j                   j                  | «       |j                  j                  st	        d«      ‚|j                  | j                  «      \  }}g d}}| j                  �@| j                  j                  ||d¬«      \  }}	|j                  |«       |t        |	«      z  }| j                  �=|j                  | j                  «      \  }
}|j                  |
«       |t        |«      z  }| j                  r=|j                  | j                  «      \  }}|j                  |«       |t        |«      z  }|xs | j                  }||dj                  |«      j                  «       dœz  g |¢|¢­fS )Nz1This backend does not support window expressions.r+   zPARTITION BY %(expressions)s)r!   r   rü  rä  )rð   Úwindow)r†  rŸ  r�  Úsupports_over_clauser   r…  r  r  r   rZ  rJ  r  r  rü  ró  Ústrip)r    r!   r   rü  Úexpr_sqlr$   Ú
window_sqlÚwindow_paramsÚsql_exprr¬  Ú	order_sqlÚorder_paramsÚ	frame_sqlÚframe_paramss                 r%   r   zWindow.as_sqlá  sj  € Ø�‰×/Ñ/°Ô5Ø×"Ñ"×7Ò7Ü#Ð$WÓXÐXØ#×+Ñ+¨D×,BÑ,BÓCÑˆ�&Ø$&¨�Mˆ
à×ÑÐ(Ø#'×#4Ñ#4×#;Ñ#;Ø!Ø%Ø7ð $<ó $Ñ ˆH�jð
 ×Ñ˜hÔ'ØœU :Ó.Ñ.ˆMà�=‰=Ð$Ø&.×&6Ñ&6°t·}±}Ó&EÑ#ˆI�|Ø×Ñ˜iÔ(ØœU <Ó0Ñ0ˆMà�:Š:Ø&.×&6Ñ&6°t·z±zÓ&BÑ#ˆI�|Ø×Ñ˜iÔ(ØœU <Ó0Ñ0ˆMàÒ,˜tŸ}™}ˆð  h¸#¿(¹(À:Ó:N×:TÑ:TÓ:VÑWÑWØ%ˆfÐ%�}Ñ%ð
ð 	
r,   c                 ó6  •— t        | j                  t        j                  «      rc| j	                  «       } |j
                  «       }t        j                  «       |d   _         |j                  |«       t        t        |�+  ||«      S | j                  ||«      S r†  )r³   r   r   r   r£   r¬   rò   r±   ry  r  r&   r   )r    r!   r   r£   rÝ   rÖ   s        €r%   r&   zWindow.as_sqlite  s‚   ø€ Ü�d×'Ñ'¬×)<Ñ)<Ô=à—9‘9“;ˆDØ!< ×!<Ñ!<Ó!>ÐÜ17×1BÑ1BÓ1DÐ˜qÑ!Ô.Ø'ˆD×'Ñ'Ð(:Ô;Üœ Ñ0°¸:ÓFÐFØ�{‰{˜8 ZÓ0Ð0r,   c           	      óô   — dj                  t        | j                  «      | j                  rdt        | j                  «      z   ndt        | j                  xs d«      t        | j
                  xs d«      «      S )Nz{} OVER ({}{}{})zPARTITION BY rs  )r{  r´   r  r  r  r  rE   s    r%   r~  zWindow.__str__  sb   € Ø!×(Ñ(Ü�×&Ñ&Ó'Ø8<×8IÒ8IˆOœc $×"3Ñ"3Ó4Ò4ÈrÜ�—‘Ò# Ó$Ü�—
‘
Ò ˜bÓ!ó	
ð 	
r,   c                 ó<   — d| j                   j                  ›d| ›d�S r¡  r¤  rE   s    r%   r|  zWindow.__repr__  r¥  r,   c                 óÞ   — g }| j                   r)|j                  | j                   j                  «       «       | j                  �)|j                  | j                  j                  «       «       |S r•   )r  r  r  r  )r    rw  s     r%   r  zWindow.get_group_by_cols  sX   € ØˆØ×ÒØ× Ñ  ×!2Ñ!2×!DÑ!DÓ!FÔGØ�=‰=Ð$Ø× Ñ  §¡×!@Ñ!@Ó!BÔCØÐr,   )NNNNr•   )r'   r(   r)   rü  r½   rÇ   rŸ   rã   r¬   r±   r   r&   r~  r|  r  r•  r–  s   @r%   r  r  µ  sU   ø„ Ø1€Hð ÐØÐð
 ØØØõHò63òVòUó
ôB1ò
ò<ör,   r  c                   ó"   — e Zd ZdZdZdZdZd„ Zy)ÚWindowFrameExclusionzCURRENT ROWÚGROUPÚTIESz	NO OTHERSc                 óL   — | j                   j                  › d| j                  › �S )Nr¢  )rÖ   r)   Ú_name_rE   s    r%   r|  zWindowFrameExclusion.__repr__&  s"   € Ø—.‘.×-Ñ-Ð.¨a°·±¨}Ð=Ð=r,   N)r'   r(   r)   ÚCURRENT_ROWr  r  Ú	NO_OTHERSr|  r+   r,   r%   r  r     s   „ Ø€KØ€EØ€DØ€Ió>r,   r  c                   óL   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zy)ÚWindowFrameaV  
    Model the frame clause in window expressions. There are two types of frame
    clauses which are subclasses, however, all processing and validation (by no
    means intended to be complete) is done here. Thus, providing an end for a
    frame is optional (the default is UNBOUNDED FOLLOWING, which is the last
    row in the frame).
    z7%(frame_type)s BETWEEN %(start)s AND %(end)s%(exclude)sNc                 óÂ   — t        |«      | _        t        |«      | _        t        |t        t
        f«      s"t        | j                  j                  › d�«      ‚|| _	        y )Nz3.exclusion must be a WindowFrameExclusion instance.)
r;   rÖ  Úendr³   r	   r  r³  rÖ   r)   Ú	exclusion)r    rÖ  r&  r'  s       r%   rŸ   zWindowFrame.__init__5  sX   € Ü˜5“\ˆŒ
Ü˜“:ˆŒÜ˜)¤hÔ0DÐ%EÔFÜØ—>‘>×.Ñ.Ð/ð 01ð 1óð ð #ˆ�r,   c                 ó"   — |\  | _         | _        y r•   ©rÖ  r&  r¯   s     r%   r±   z"WindowFrame.set_source_expressions?  s   € Ø$ÑˆŒ
�D•Hr,   c                 ó2   — | j                   | j                  gS r•   r)  rE   s    r%   r¬   z"WindowFrame.get_source_expressionsB  s   € Ø—
‘
˜DŸH™HÐ%Ð%r,   c                 óN   — | j                   €yd| j                   j                  › �S )Nrs  z	 EXCLUDE )r'  rï   rE   s    r%   Úget_exclusionzWindowFrame.get_exclusionE  s'   € Ø�>‰>Ð!ØØ˜4Ÿ>™>×/Ñ/Ð0Ð1Ð1r,   c                 ój  — |j                   j                  | «       | j                  || j                  j                  | j
                  j                  «      \  }}| j                  r!|j                  j                  st        d«      ‚| j                  | j                  ||| j                  «       dœz  g fS )Nz6This backend does not support window frame exclusions.©Ú
frame_typerÖ  r&  Úexclude)r†  rŸ  Úwindow_frame_start_endrÖ  rï   r&  r'  r�  Úsupports_frame_exclusionr   rü  r/  r,  )r    r!   r   rÖ  r&  s        r%   r   zWindowFrame.as_sqlJ  s£   € Ø�‰×/Ñ/°Ô5Ø×0Ñ0Ø˜Ÿ
™
×(Ñ(¨$¯(©(¯.©.ó
‰
ˆˆsð �>Š> *×"5Ñ"5×"NÒ"NÜ#ØHóð ð �M‰Mà"Ÿo™oØØØ×-Ñ-Ó/ñ	ñð ð	
ð 		
r,   c                 ó<   — d| j                   j                  ›d| ›d�S r¡  r¤  rE   s    r%   r|  zWindowFrame.__repr__^  r¥  r,   c                 ó   — g S r•   r+   rE   s    r%   r  zWindowFrame.get_group_by_colsa  r­   r,   c                 ó&  — | j                   j                  �V| j                   j                  dk  r=dt        | j                   j                  «      t        j                  j
                  fz  }nÇ| j                   j                  �4| j                   j                  dk(  rt        j                  j                  }n}| j                   j                  �M| j                   j                  dkD  r4d| j                   j                  t        j                  j                  fz  }nt        j                  j                  }| j                  j                  �M| j                  j                  dkD  r4d| j                  j                  t        j                  j                  fz  }nÐ| j                  j                  �4| j                  j                  dk(  rt        j                  j                  }n†| j                  j                  �V| j                  j                  dk  r=dt        | j                  j                  «      t        j                  j
                  fz  }nt        j                  j                  }| j                  | j                  ||| j                  «       dœz  S )Nr   z%d %sr.  )rÖ  rï   Úabsr   r†  Ú	PRECEDINGr!  Ú	FOLLOWINGÚUNBOUNDED_PRECEDINGr&  ÚUNBOUNDED_FOLLOWINGrü  r/  r,  )r    rÖ  r&  s      r%   r~  zWindowFrame.__str__d  s¹  € Ø�:‰:×ÑÐ'¨D¯J©J×,<Ñ,<¸qÒ,@Øœs 4§:¡:×#3Ñ#3Ó4´j·n±n×6NÑ6NÐOÑO‰EØ�Z‰Z×ÑÐ)¨d¯j©j×.>Ñ.>À!Ò.CÜ—N‘N×.Ñ.‰EØ�Z‰Z×ÑÐ)¨d¯j©j×.>Ñ.>ÀÒ.BØ˜tŸz™z×/Ñ/´·±×1IÑ1IÐJÑJ‰Eä—N‘N×6Ñ6ˆEà�8‰8�>‰>Ð%¨$¯(©(¯.©.¸1Ò*<Ø˜TŸX™XŸ^™^¬Z¯^©^×-EÑ-EÐFÑF‰CØ�X‰X�^‰^Ð'¨D¯H©H¯N©N¸aÒ,?Ü—.‘.×,Ñ,‰CØ�X‰X�^‰^Ð'¨D¯H©H¯N©N¸QÒ,>ØœS §¡§¡Ó0´*·.±.×2JÑ2JÐKÑK‰Cä—.‘.×4Ñ4ˆCØ�}‰}ØŸ/™/ØØØ×)Ñ)Ó+ñ	 
ñ 
ð 	
r,   c                 ó   — t        d«      ‚)Nz3Subclasses must implement window_frame_start_end().r�   ©r    r   rÖ  r&  s       r%   r1  z"WindowFrame.window_frame_start_end}  s   € Ü!Ð"WÓXÐXr,   r  )r'   r(   r)   r*   rü  rŸ   r±   r¬   r,  r   r|  r  r~  r1  r+   r,   r%   r$  r$  *  s=   „ ñð I€Hó#ò%ò&ò2ò

ò(<òò
ó2Yr,   r$  c                   ó   — e Zd ZdZd„ Zy)ÚRowRangeÚROWSc                 ó:   — |j                   j                  ||«      S r•   )r†  Úwindow_frame_rows_start_endr<  s       r%   r1  zRowRange.window_frame_start_end„  s   € Ø�~‰~×9Ñ9¸%ÀÓEÐEr,   N©r'   r(   r)   r/  r1  r+   r,   r%   r>  r>  �  s   „ Ø€JóFr,   r>  c                   ó   — e Zd ZdZd„ Zy)Ú
ValueRangeÚRANGEc                 ó:   — |j                   j                  ||«      S r•   )r†  Úwindow_frame_range_start_endr<  s       r%   r1  z!ValueRange.window_frame_start_end‹  s   € Ø�~‰~×:Ñ:¸5À#ÓFÐFr,   NrB  r+   r,   r%   rD  rD  ˆ  s   „ Ø€JóGr,   rD  )ir£   r  rb  Úcollectionsr   Údecimalr   Úenumr   Ú	itertoolsr   Útypesr	   Úuuidr
   Údjango.core.exceptionsr   r   r   Ú	django.dbr   r   r   Údjango.db.modelsr   Údjango.db.models.constantsr   Údjango.db.models.query_utilsr   Údjango.utils.deconstructr   Údjango.utils.functionalr   r   Údjango.utils.hashabler   Údjango.utils.inspectr   r   r.   r™   r›   r>  rJ   rD   rV   rZ   r^   ÚPositiveIntegerFieldrP   rö   rò   r   rj   r{   rn   rq   rv   r~  Úfrom_iterablerŒ  r‹  rŽ  r�  Ú_connector_combinationsrh  rl  ÚdrM  r>   Úfield_typesri  rj  rk  rc  ru  r<   r�  r�  rµ   rÄ  rÏ  r¯  rá  r;   r   r/  r3  rA  rÒ   rb  ro  ry  rƒ  r–   r™  rµ  rÑ  rã  r  r  r  r$  r>  rD  )r>   s   0r%   ú<module>r\     s)  ðÛ Û Û Ý #Ý Ý Ý Ý Ý ç LÑ Lß BÑ BÝ #Ý 1Ý *Ý 4ß BÝ /Ý *÷ñ ÷ A'ñ A'ôH	˜Zô 	÷Vñ Vðr
 ô*#� ó *#ó ð*#ðB �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nð
öð ð 	à×+Ñ+Ø×+Ñ+Ø×+Ñ+ðð
ñ 	
òð0 �N‰NØ�N‰NØ�N‰Nð �N‰NØ�N‰NØ�N‰Nð	
öð ð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ×Ñ × 1Ñ 1°6×3DÑ3DÐEØ× Ñ  &×"5Ñ"5°v×7JÑ7JÐKð
ñ 	
òð4 �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nð
öð ð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ× Ñ  &×"3Ñ"3°V×5FÑ5FÐGØ×Ñ × 3Ñ 3°V×5FÑ5FÐGð	
ñ 	
òð* ×ÑØ×ÑØ×#Ñ#Ø×$Ñ$Ø×Ñð
ö	ð ð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKð
ñ 	
òð2 �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nð
öð ð 	‘4ØˆE×Ññ  ð ×'Ñ'Ø×'Ñ'Ø×%Ñ%ð#ô ó ó	
ñ 		
òð, 	�‰à×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNØ×!Ñ! 6×#3Ñ#3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×Ñ˜v×3Ñ3°V×5EÑ5EÐFØ×!Ñ! 6×#3Ñ#3°V×5EÑ5EÐFð
ðð 	�‰à×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNØ×Ñ˜v×/Ñ/°×1EÑ1EÐFØ×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#3Ñ#3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×Ñ˜v×3Ñ3°V×5EÑ5EÐFØ×Ñ˜v×/Ñ/°×1EÑ1EÐFð
ððOwÐ ñr % TÓ*Ð ò	Að 
!ò D€AØ"#§'¡'£)ò DÑˆ	�;Ø +ò 	DÑˆC��fÙ& s¨I°s¸FÕCñ	DñDðDð €×Ñ˜SÔ!ñ!ó "ð!ôTEÐ+¨Zô TEôn0Ð+ô 0ôf
Ð,ô 
ñ Ð*Ô+ô=ˆ
ó =ó ,ð=ô@"�qô "ôJ
ˆqô 
ô6UˆQô 6Uñr Ð-Ô.ôZYÐ˜zó ZYó /ðZYñz Ð.Ô/ôMÐ 
ó Mó 0ðMô` 
ˆZô  
ôFˆ:ô ô%�jô %ôP$6ˆ*ô $6ôN6ˆzô 6ôr&ˆ*ô &ôR�Tô ô8
�.ô 
ñ> Ð:Ô;ô!/Ð*¨Jó !/ó <ð!/ôH0Ð)ô 0ñf Ð-Ô.ôJNˆ:ó JNó /ðJNñZ Ð-Ô.ô`
Ð˜zó `
ó /ð`
ôFD:ˆ~˜zô D:ôN2ˆXô 2ñ6 Ð0Ô1ôfˆjó fó 2ðfôRhÐ ô hôV>˜4ô >ôTY�*ô TYônFˆ{ô FôG�õ GùòQ2ùò"ùò$ùò ùòs!   Ã&,_ÅA0_	ÈB_Ë,_
Í
A_