§
    iÍâhç$ ã                   ó¢
  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ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$  G d„ d¦  «        Z% G d„ d¦  «        Z& G d„ de¦  «        Z' G d„ d¦  «        Z(e G d„ de(e&¦  «        ¦   «         Z)d„ e&j*        e&j+        e&j,        e&j-        e&j.        fD ¦   «         d„ e&j*        e&j/        e&j+        e&j,        e&j-        e&j.        fD ¦   «         d„ e&j*        e&j/        e&j+        e&j,        e&j-        fD ¦   «         d„ e&j0        e&j1        e&j2        e&j3        e&j4        fD ¦   «         d„ e&j*        e&j/        e&j+        e&j,        e&j-        e&j.        fD ¦   «         e&j*        ej5        ej6        ej7        fej7        ej6        ej7        fej6        ej5        ej7        fej6        ej7        ej7        fej6        ej6        ej6        fej8        ej6        ej8        fej6        ej8        ej8        fgie&j/        ej5        ej6        ej7        fej7        ej6        ej7        fej5        ej5        ej6        fej5        ej7        ej6        fej7        ej5        ej6        fej7        ej7        ej6        fej6        ej6        ej6        fej8        ej6        ej8        fej8        ej8        ej6        fg	igZ9 ee:¦  «        Z;d„ Z<e9D ]3Z=e= >                    ¦   «         D ]\  Z?Z@e@D ]\  ZAZBZC e<eAe?eBeC¦  «         ŒŒŒ4 ejD        d ¬!¦  «        d"„ ¦   «         ZE G d#„ d$e%e)¦  «        ZF G d%„ d&eF¦  «        ZG G d'„ d(eF¦  «        ZH ed)¬*¦  «         G d+„ d,e&¦  «        ¦   «         ZI G d-„ d.eI¦  «        ZJ G d/„ d0eI¦  «        ZK G d1„ d2eI¦  «        ZL ed3¬*¦  «         G d4„ d5e%e)¦  «        ¦   «         ZM ed6¬*¦  «         G d7„ d8e%e)¦  «        ¦   «         ZN G d9„ d:e)¦  «        ZO G d;„ d<e)¦  «        ZP G d=„ d>e)¦  «        ZQ G d?„ d@e)¦  «        ZR G dA„ dBe)¦  «        ZS G dC„ dDe)¦  «        ZT G dE„ dFeM¦  «        ZU G dG„ dHeU¦  «        ZV edI¬*¦  «         G dJ„ dKe%e)¦  «        ¦   «         ZW G dL„ dMeW¦  «        ZX edN¬*¦  «         G dO„ dPe)¦  «        ¦   «         ZY edQ¬*¦  «         G dR„ dSe%e)¦  «        ¦   «         ZZ G dT„ dUe(e&¦  «        Z[ G dV„ dWe[¦  «        Z\ edX¬*¦  «         G dY„ dZe)¦  «        ¦   «         Z] G d[„ d\e%e)¦  «        Z^ G d]„ d^e	¦  «        Z_ G d_„ d`e)¦  «        Z` G da„ dbe`¦  «        Za G dc„ dde`¦  «        ZbdS )eé    N)Údefaultdict©ÚDecimal)ÚEnum)Úchain©ÚNoneType)ÚUUID)ÚEmptyResultSetÚ
FieldErrorÚFullResultSet)ÚDatabaseErrorÚNotSupportedErrorÚ
connection)Úfields)Ú
LOOKUP_SEP)ÚQ)Údeconstructible)Úcached_propertyÚclassproperty)Úmake_hashablec                   ó   — e Zd ZdZd„ ZdS )ÚSQLiteNumericMixinzp
    Some expressions with output_field=DecimalField() must be cast to
    numeric to be properly filtered.
    c                 ó–   —  | j         ||fi |¤Ž\  }}	 | j                             ¦   «         dk    rd|z  }n# t          $ r Y nw xY w||fS )NÚDecimalFieldz(CAST(%s AS NUMERIC)))Úas_sqlÚoutput_fieldÚget_internal_typer   )ÚselfÚcompilerr   Úextra_contextÚsqlÚparamss         úS/var/www/histauto/venv/lib/python3.11/site-packages/django/db/models/expressions.pyÚ	as_sqlitezSQLiteNumericMixin.as_sqlite   su   € Ø!�d”k (¨JÐHÐH¸-ÐHÐH‰ˆˆVð	ØÔ ×2Ò2Ñ4Ô4¸ÒFÐFØ-°Ñ3�øøÝð 	ð 	ð 	ØˆDð	øøøà�Fˆ{Ðs   ”"7 ·
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(d'S )(Ú
Combinablezu
    Provide the ability to combine one or two objects with
    some connector. For example F('foo') + F('bar').
    ú+ú-Ú*ú/ú^z%%ú&ú|z<<z>>ú#c                 óˆ   — t          |d¦  «        st          |¦  «        }|rt          ||| ¦  «        S t          | ||¦  «        S )NÚresolve_expression)ÚhasattrÚValueÚCombinedExpression)r   ÚotherÚ	connectorÚreverseds       r$   Ú_combinezCombinable._combine?   sL   € Ý�uÐ2Ñ3Ô3ð 	!å˜%‘L”LˆEàð 	>Ý% e¨Y¸Ñ=Ô=Ð=Ý! $¨	°5Ñ9Ô9Ð9r+   c                 ó:   — |                       d| j        d¦  «        S )NéÿÿÿÿF©r>   ÚMUL©r   s    r$   Ú__neg__zCombinable.__neg__L   s   € Ø�}Š}˜R ¤¨5Ñ1Ô1Ð1r+   c                 ó:   — |                       || j        d¦  «        S ©NF©r>   ÚADD©r   r;   s     r$   Ú__add__zCombinable.__add__O   ó   € Ø�}Š}˜U D¤H¨eÑ4Ô4Ð4r+   c                 ó:   — |                       || j        d¦  «        S rF   ©r>   ÚSUBrI   s     r$   Ú__sub__zCombinable.__sub__R   rK   r+   c                 ó:   — |                       || j        d¦  «        S rF   rA   rI   s     r$   Ú__mul__zCombinable.__mul__U   rK   r+   c                 ó:   — |                       || j        d¦  «        S rF   ©r>   ÚDIVrI   s     r$   Ú__truediv__zCombinable.__truediv__X   rK   r+   c                 ó:   — |                       || j        d¦  «        S rF   ©r>   ÚMODrI   s     r$   Ú__mod__zCombinable.__mod__[   rK   r+   c                 ó:   — |                       || j        d¦  «        S rF   ©r>   ÚPOWrI   s     r$   Ú__pow__zCombinable.__pow__^   rK   r+   c                 ó¢   — t          | dd¦  «        r0t          |dd¦  «        rt          | ¦  «        t          |¦  «        z  S t          d¦  «        ‚©NÚconditionalFúFUse .bitand(), .bitor(), and .bitxor() for bitwise logical operations.©Úgetattrr   ÚNotImplementedErrorrI   s     r$   Ú__and__zCombinable.__and__a   óV   € Ý�4˜¨Ñ.Ô.ð 	&µ7¸5À-ÐQVÑ3WÔ3Wð 	&Ý�T‘7”7�Q˜u™XœXÑ%Ð%Ý!ØTñ
ô 
ð 	
r+   c                 ó:   — |                       || j        d¦  «        S rF   )r>   ÚBITANDrI   s     r$   ÚbitandzCombinable.bitandh   ó   € Ø�}Š}˜U D¤K°Ñ7Ô7Ð7r+   c                 ó:   — |                       || j        d¦  «        S rF   )r>   ÚBITLEFTSHIFTrI   s     r$   ÚbitleftshiftzCombinable.bitleftshiftk   s   € Ø�}Š}˜U DÔ$5°uÑ=Ô=Ð=r+   c                 ó:   — |                       || j        d¦  «        S rF   )r>   ÚBITRIGHTSHIFTrI   s     r$   ÚbitrightshiftzCombinable.bitrightshiftn   s   € Ø�}Š}˜U DÔ$6¸Ñ>Ô>Ð>r+   c                 ó¢   — t          | dd¦  «        r0t          |dd¦  «        rt          | ¦  «        t          |¦  «        z  S t          d¦  «        ‚r_   rb   rI   s     r$   Ú__xor__zCombinable.__xor__q   rf   r+   c                 ó:   — |                       || j        d¦  «        S rF   )r>   ÚBITXORrI   s     r$   ÚbitxorzCombinable.bitxorx   rj   r+   c                 ó¢   — t          | dd¦  «        r0t          |dd¦  «        rt          | ¦  «        t          |¦  «        z  S t          d¦  «        ‚r_   rb   rI   s     r$   Ú__or__zCombinable.__or__{   rf   r+   c                 ó:   — |                       || j        d¦  «        S rF   )r>   ÚBITORrI   s     r$   ÚbitorzCombinable.bitor‚   s   € Ø�}Š}˜U D¤J°Ñ6Ô6Ð6r+   c                 ó:   — |                       || j        d¦  «        S ©NTrG   rI   s     r$   Ú__radd__zCombinable.__radd__…   ó   € Ø�}Š}˜U D¤H¨dÑ3Ô3Ð3r+   c                 ó:   — |                       || j        d¦  «        S r|   rM   rI   s     r$   Ú__rsub__zCombinable.__rsub__ˆ   r~   r+   c                 ó:   — |                       || j        d¦  «        S r|   rA   rI   s     r$   Ú__rmul__zCombinable.__rmul__‹   r~   r+   c                 ó:   — |                       || j        d¦  «        S r|   rS   rI   s     r$   Ú__rtruediv__zCombinable.__rtruediv__Ž   r~   r+   c                 ó:   — |                       || j        d¦  «        S r|   rW   rI   s     r$   Ú__rmod__zCombinable.__rmod__‘   r~   r+   c                 ó:   — |                       || j        d¦  «        S r|   r[   rI   s     r$   Ú__rpow__zCombinable.__rpow__”   r~   r+   c                 ó    — t          d¦  «        ‚©Nra   ©rd   rI   s     r$   Ú__rand__zCombinable.__rand__—   ó   € Ý!ØTñ
ô 
ð 	
r+   c                 ó    — t          d¦  «        ‚rŠ   r‹   rI   s     r$   Ú__ror__zCombinable.__ror__œ   r�   r+   c                 ó    — t          d¦  «        ‚rŠ   r‹   rI   s     r$   Ú__rxor__zCombinable.__rxor__¡   r�   r+   c                 ó    — t          | ¦  «        S ©N)ÚNegatedExpressionrC   s    r$   Ú
__invert__zCombinable.__invert__¦   s   € Ý  Ñ&Ô&Ð&r+   N))r&   r'   r(   r)   rH   rN   rB   rT   r\   rX   rh   ry   rl   ro   rt   r>   rD   rJ   rO   rQ   rU   rY   r]   re   ri   rm   rp   rr   ru   rw   rz   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ð 2ð 2ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð
ð 
ð 
ð8ð 8ð 8ð>ð >ð >ð?ð ?ð ?ð
ð 
ð 
ð8ð 8ð 8ð
ð 
ð 
ð7ð 7ð 7ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð
ð 
ð 
ð

ð 
ð 
ð

ð 
ð 
ð
'ð 'ð 'ð 'ð 'r+   r-   c                   ó   — e Zd ZdS )ÚOutputFieldIsNoneErrorN)r&   r'   r(   r*   r+   r$   r—   r—   ª   s   € € € € € Ø€Dr+   r—   c                   ó¤  — 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&„ Z1dS ))ÚBaseExpressionz%Base class for all query expressions.FTNc                 ó   — |�	|| _         d S d S r“   ©r   ©r   r   s     r$   Ú__init__zBaseExpression.__init__Á   s   € ØÐ#Ø ,ˆDÔÐÐð $Ð#r+   c                 ód   — | j                              ¦   «         }|                     dd ¦  «         |S )NÚconvert_value)Ú__dict__ÚcopyÚpop)r   Ústates     r$   Ú__getstate__zBaseExpression.__getstate__Å   s.   € Ø”×"Ò"Ñ$Ô$ˆØ�	Š	�/ 4Ñ(Ô(Ð(Øˆr+   c                 óh   — | j         | j        u rg n| j         g| j                             |¦  «        z   S r“   )rŸ   Ú_convert_value_noopr   Úget_db_converters©r   r   s     r$   r§   z BaseExpression.get_db_convertersÊ   sC   € ð Ô! TÔ%=Ð=Ð=ð ˆBàÔ$Ð%ØÔ×/Ò/°
Ñ;Ô;ñ	<ð 	<r+   c                 ó   — g S r“   r*   rC   s    r$   Úget_source_expressionsz%BaseExpression.get_source_expressionsÑ   ó   € Øˆ	r+   c                 ó   — |rJ ‚d S r“   r*   ©r   Úexprss     r$   Úset_source_expressionsz%BaseExpression.set_source_expressionsÔ   s   € ØÐÐÐÐÐr+   c                 ó   — d„ |D ¦   «         S )Nc                 ó˜   — g | ]G}t          |d ¦  «        r|n2t          |t          ¦  «        rt          |¦  «        nt	          |¦  «        ‘ŒHS ©r7   )r8   Ú
isinstanceÚstrÚFr9   ©Ú.0Úargs     r$   ú
<listcomp>z5BaseExpression._parse_expressions.<locals>.<listcomp>Ø   sa   € ð 
ð 
ð 
ð õ ˜3Ð 4Ñ5Ô5ðF��å *¨3µÑ 4Ô 4ÐD•a˜‘f”f�f½%À¹*¼*ð	
ð 
ð 
r+   r*   )r   Úexpressionss     r$   Ú_parse_expressionsz!BaseExpression._parse_expressions×   s%   € ð
ð 
ð #ð
ñ 
ô 
ð 	
r+   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ÔGÐGr+   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|o|j         V — Œd S r“   )Úcontains_aggregate©r·   Úexprs     r$   ú	<genexpr>z4BaseExpression.contains_aggregate.<locals>.<genexpr>ÿ   s;   è è € ð 
ð 
Ø15ˆDÐ,�TÔ,ð
ð 
ð 
ð 
ð 
ð 
r+   ©Úanyrª   rC   s    r$   rÀ   z!BaseExpression.contains_aggregateý   s<   € åð 
ð 
Ø9=×9TÒ9TÑ9VÔ9Vð
ñ 
ô 
ñ 
ô 
ð 	
r+   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|o|j         V — Œd S r“   )Úcontains_over_clauserÁ   s     r$   rÃ   z6BaseExpression.contains_over_clause.<locals>.<genexpr>  s;   è è € ð 
ð 
Ø37ˆDÐ.�TÔ.ð
ð 
ð 
ð 
ð 
ð 
r+   rÄ   rC   s    r$   rÈ   z#BaseExpression.contains_over_clause  s<   € åð 
ð 
Ø;?×;VÒ;VÑ;XÔ;Xð
ñ 
ô 
ñ 
ô 
ð 	
r+   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|o|j         V — Œd S r“   )Úcontains_column_referencesrÁ   s     r$   rÃ   z<BaseExpression.contains_column_references.<locals>.<genexpr>  s>   è è € ð 
ð 
àð Ð4�TÔ4ð
ð 
ð 
ð 
ð 
ð 
r+   rÄ   rC   s    r$   rË   z)BaseExpression.contains_column_references	  ó<   € åð 
ð 
à×3Ò3Ñ5Ô5ð
ñ 
ô 
ñ 
ô 
ð 	
r+   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   óJ   K  — | ]}|ot          |d d¦  «        p|j        V — ŒdS )ÚsubqueryFN)rc   Úcontains_subqueryrÁ   s     r$   rÃ   z3BaseExpression.contains_subquery.<locals>.<genexpr>  sO   è è € ð 
ð 
àð ÐQ•g˜d J°Ñ6Ô6ÐP¸$Ô:Pð
ð 
ð 
ð 
ð 
ð 
r+   rÄ   rC   s    r$   rÐ   z BaseExpression.contains_subquery  rÌ   r+   c                 ó0  ‡‡‡‡‡— |                       ¦   «         }‰|_        ˆˆˆˆˆfd„|                     ¦   «         D ¦   «         }| j        s5t	          d„ |D ¦   «         ¦  «        rt          | j        j        › d�¦  «        ‚|                     |¦  «         |S )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.
        c           	      óJ   •— g | ]}|�|                      ‰‰‰‰‰¦  «        nd ‘Œ S r“   r²   )r·   rÂ   Úallow_joinsÚfor_saveÚqueryÚreuseÚ	summarizes     €€€€€r$   r¹   z5BaseExpression.resolve_expression.<locals>.<listcomp>*  sO   ø€ ð 
ð 
ð 
ð ð Ð#ð ×'Ò'¨¨{¸EÀ9ÈhÑWÔWÐWàð	
ð 
ð 
r+   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r“   )r³   ÚColPairsrÁ   s     r$   rÃ   z4BaseExpression.resolve_expression.<locals>.<genexpr>2  s=   è è € ð 9
ð 9
Ø+/�J�t�XÑ&Ô&ð9
ð 9
ð 9
ð 9
ð 9
ð 9
r+   z4 expression does not support composite primary keys.)	r¡   Ú
is_summaryrª   Úallows_composite_expressionsrÅ   Ú
ValueErrorÚ	__class__r&   r¯   )r   rÕ   rÓ   rÖ   r×   rÔ   ÚcÚsource_expressionss    `````  r$   r7   z!BaseExpression.resolve_expression  sé   øøøøø€ ð" �IŠI‰KŒKˆØ ˆŒð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð ×0Ò0Ñ2Ô2ð
ñ 
ô 
Ðð Ô0ð 	µSð 9
ð 9
Ø3Eð9
ñ 9
ô 9
ñ 6
ô 6
ð 	õ Ø”>Ô*ð *ð *ð *ñô ð ð 	
× Ò Ð!3Ñ4Ô4Ð4Øˆr+   c                 ó@   — t          | j        t          j        ¦  «        S r“   )r³   r   r   ÚBooleanFieldrC   s    r$   r`   zBaseExpression.conditional<  s   € å˜$Ô+­VÔ-@ÑAÔAÐAr+   c                 ó   — | j         S r“   r›   rC   s    r$   ÚfieldzBaseExpression.field@  s   € àÔ Ð r+   c                 óP   — |                       ¦   «         }|€t          d¦  «        ‚|S )z+Return the output type of this expressions.Nz4Cannot resolve expression type, unknown output_field)Ú_resolve_output_fieldr—   rœ   s     r$   r   zBaseExpression.output_fieldD  s8   € ð ×1Ò1Ñ3Ô3ˆØÐÝ(ØFñô ð ð Ðr+   c                 ó4   — 	 | j         S # t          $ r Y dS 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—   rC   s    r$   Ú_output_field_or_nonez$BaseExpression._output_field_or_noneN  s2   € ð	ØÔ$Ð$øÝ%ð 	ð 	ð 	ØˆFˆFð	øøøs   ‚	 ‰
–c           	      óÚ   — d„ |                       ¦   «         D ¦   «         }|D ]I}|D ]A}t          ||j        ¦  «        s*t          d|j        j        ›d|j        j        ›d�¦  «        ‚ŒB|c S dS )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  — | ]}|®|V — Œ	d S r“   r*   )r·   Úsources     r$   rÃ   z7BaseExpression._resolve_output_field.<locals>.<genexpr>g  s0   è è € ð 
ð 
Ø¸VÐ=OˆFÐ=OÐ=OÐ=OÐ=Oð
ð 
r+   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_fieldY  s·   € ð
ð 
Ø!%×!7Ò!7Ñ!9Ô!9ð
ñ 
ô 
ˆð )ð 	 ð 	 ˆLØ&ð 	ð 	�Ý! ,°Ô0@ÑAÔAð Ý$˜*ð )Ô2Ô;Ð;Ð;Ø"Ô,Ô5Ð5Ð5ð	ñô ð ðð  ÐÐÐð	 ð 	 r+   c                 ó   — | S r“   r*   ©ÚvalueÚ
expressionr   s      r$   r¦   z"BaseExpression._convert_value_noopw  s   € àˆr+   c                 óš   — | j         }|                     ¦   «         }|dk    rd„ S |                     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 nt          | ¦  «        S r“   )Úfloatrð   s      r$   ú<lambda>z.BaseExpression.convert_value.<locals>.<lambda>…  s   € Ø˜��­5°©<¬<ð r+   ÚIntegerFieldc                 ó(   — | €d nt          | ¦  «        S r“   )Úintrð   s      r$   r÷   z.BaseExpression.convert_value.<locals>.<lambda>‰  s   € Ø˜��­3¨u©:¬:ð r+   r   c                 ó(   — | €d nt          | ¦  «        S r“   r   rð   s      r$   r÷   z.BaseExpression.convert_value.<locals>.<lambda>�  s   € Ø˜��­7°5©>¬>ð r+   )r   r   Úendswithr¦   )r   rã   Úinternal_types      r$   rŸ   zBaseExpression.convert_value{  s…   € ð Ô!ˆØ×/Ò/Ñ1Ô1ˆØ˜LÒ(Ð(ðð ð ð ×#Ò# NÑ3Ô3ð 	ðð ð ð ˜nÒ,Ð,ðð ð ð Ô'Ð'r+   c                 ó6   — | j                              |¦  «        S r“   )r   Ú
get_lookup)r   Úlookups     r$   rÿ   zBaseExpression.get_lookup’  s   € ØÔ ×+Ò+¨FÑ3Ô3Ð3r+   c                 ó6   — | j                              |¦  «        S r“   )r   Úget_transform©r   Únames     r$   r  zBaseExpression.get_transform•  s   € ØÔ ×.Ò.¨tÑ4Ô4Ð4r+   c                 ó–   ‡— |                       ¦   «         }|                     ˆfd„|                      ¦   «         D ¦   «         ¦  «         |S )Nc                 óB   •— g | ]}|�|                      ‰¦  «        nd ‘ŒS r“   )Úrelabeled_clone)r·   ÚeÚ
change_maps     €r$   r¹   z2BaseExpression.relabeled_clone.<locals>.<listcomp>›  s@   ø€ ð ð ð àð 23°�×!Ò! *Ñ-Ô-Ð-ÀDðð ð r+   ©r¡   r¯   rª   )r   r	  Úclones    ` r$   r  zBaseExpression.relabeled_clone˜  sa   ø€ Ø—	’	‘”ˆØ×$Ò$ðð ð ð à×4Ò4Ñ6Ô6ðñ ô ñ	
ô 	
ð 	
ð ˆr+   c                 óÜ   ‡— ‰s| S ‰                      | ¦  «        x}r|S |                      ¦   «         x}s| S |                      ¦   «         }|                     ˆfd„|D ¦   «         ¦  «         |S )Nc                 óB   •— g | ]}|r|                      ‰¦  «        nd ‘ŒS r“   )Úreplace_expressions)r·   rÂ   Úreplacementss     €r$   r¹   z6BaseExpression.replace_expressions.<locals>.<listcomp>«  sA   ø€ ð ð ð àð ;?ÐH�×(Ò(¨Ñ6Ô6Ð6ÀDðð ð r+   )Úgetrª   r¡   r¯   )r   r  Úreplacementrß   r  s    `   r$   r  z"BaseExpression.replace_expressions¢  s¢   ø€ Øð 	ØˆKØ&×*Ò*¨4Ñ0Ô0Ð0ˆ;ð 	ØÐØ&*×&AÒ&AÑ&CÔ&CÐCÐ"ð 	ØˆKØ—	’	‘”ˆØ×$Ò$ðð ð ð à.ðñ ô ñ	
ô 	
ð 	
ð ˆr+   c                 ó„   — t          ¦   «         }|                      ¦   «         D ]}|€Œ||                     ¦   «         z  }Œ|S r“   )Úsetrª   Úget_refs)r   ÚrefsrÂ   s      r$   r  zBaseExpression.get_refs²  sG   € Ý‰uŒuˆØ×/Ò/Ñ1Ô1ð 	$ð 	$ˆDØˆ|ØØ�D—M’M‘O”OÑ#ˆDˆDØˆr+   c                 ó*   — t          j         | ¦  «        S r“   ©r¡   rC   s    r$   r¡   zBaseExpression.copyº  ó   € ÝŒy˜‰ŒÐr+   c                 ó–   ‡— |                       ¦   «         }|                     ˆfd„|                      ¦   «         D ¦   «         ¦  «         |S )Nc                 ó”   •— g | ]D}t          |t          ¦  «        rt          ‰› |j        › �¦  «        n|                     ‰¦  «        ‘ŒES r*   )r³   rµ   r  Úprefix_references)r·   rÂ   Úprefixs     €r$   r¹   z4BaseExpression.prefix_references.<locals>.<listcomp>À  se   ø€ ð ð ð ð õ " $­Ñ*Ô*ð8•A˜Ð, ¤Ð,Ð,Ñ-Ô-Ð-à×/Ò/°Ñ7Ô7ð	ð ð r+   r
  )r   r  r  s    ` r$   r  z BaseExpression.prefix_references½  sc   ø€ Ø—	’	‘”ˆØ×$Ò$ðð ð ð ð !×7Ò7Ñ9Ô9ðñ ô ñ		
ô 		
ð 		
ð ˆr+   c                 óš   — | j         s| gS g }|                      ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r“   )rÀ   rª   ÚextendÚget_group_by_cols©r   Úcolsrê   s      r$   r  z BaseExpression.get_group_by_colsË  sZ   € ØÔ&ð 	Ø�6ˆMØˆØ×1Ò1Ñ3Ô3ð 	4ð 	4ˆFØ�KŠK˜×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Øˆr+   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )z9Return the underlying field types used by this aggregate.c                 ó   — g | ]	}|j         ‘Œ
S r*   )rç   )r·   r  s     r$   r¹   z4BaseExpression.get_source_fields.<locals>.<listcomp>Õ  s   € ÐOÐOÐO¨A�Ô'ÐOÐOÐOr+   )rª   rC   s    r$   rí   z BaseExpression.get_source_fieldsÓ  s"   € àOÐO°×1LÒ1LÑ1NÔ1NÐOÑOÔOÐOr+   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°Ð7Ð7Ð7r+   c                 ó   — | S r“   r*   rC   s    r$   Úreverse_orderingzBaseExpression.reverse_orderingÝ  ó   € Øˆr+   c              #   ó¢   K  — | V — |                       ¦   «         D ]3}|r/t          |d¦  «        r|                     ¦   «         E d{V —† Œ/|V — Œ4dS )zi
        Recursively yield this expression and all subexpressions, in
        depth-first order.
        ÚflattenN)rª   r8   r4  )r   rÂ   s     r$   r4  zBaseExpression.flattenà  s}   è è € ð
 ˆ
ˆ
ˆ
Ø×/Ò/Ñ1Ô1ð 	ð 	ˆDØð Ý˜4 Ñ+Ô+ð Ø#Ÿ|š|™~œ~Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-à�J�J�Jøð	ð 	r+   c                 ól   — t          | j        d¦  «        r| 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)r8   r   r6  ©r   r    r"   r#   s       r$   r6  zBaseExpression.select_formatí  s?   € õ
 �4Ô$ oÑ6Ô6ð 	JØÔ$×2Ò2°8¸SÀ&ÑIÔIÐIØ�Fˆ{Ðr+   c                 óž   — t          | dd¦  «        s;	 |                      ¦   «         \  }|S # t          $ r}t          d¦  «        |‚d }~ww xY w| S )NÚ constraint_validation_compatibleTzdExpressions with constraint_validation_compatible set to False must have only one source expression.)rc   rª   rÜ   )r   rò   r  s      r$   Úget_expression_for_validationz,BaseExpression.get_expression_for_validationö  s{   € å�tÐ?ÀÑFÔFð 		"ð"Ø $× ;Ò ;Ñ =Ô =‘�ð "Ð!øõ ð ð ð Ý ð<ñô ð ðøøøøðøøøð ˆs   “+ «
A
µAÁA
r“   ©NTNFF)2r&   r'   r(   r)   ÚNotImplementedÚempty_result_set_valuerÚ   Ú
filterableÚwindow_compatibleÚallowed_defaultr9  Úset_returningrÛ   r�   r¤   r§   rª   r¯   r»   r   r   rÀ   rÈ   rË   rÐ   r7   Úpropertyr`   rã   r   rç   rå   Ústaticmethodr¦   rŸ   rÿ   r  r  r  r  r¡   r  r  rí   r)  r.  r1  r4  r6  r:  r*   r+   r$   r™   r™   ®   s×  € € € € € Ø/Ð/à+Ðà€Jà€JàÐà€Oà'+Ð$à€Mà#(Ð ð-ð -ð -ð -ðð ð ð
<ð <ð <ðð ð ðð ð ð
ð 
ð 
ðHð Hð Hð8 ð
ð 
ñ „_ð
ð
 ð
ð 
ñ „_ð
ð
 ð
ð 
ñ „_ð
ð ð
ð 
ñ „_ð
ð SXð#ð #ð #ð #ðJ ðBð Bñ „XðBð ð!ð !ñ „Xð!ð ðð ñ „_ðð ðð ñ „Xðð ð  ð  ð< ðð ñ „\ðð ð(ð (ñ „_ð(ð,4ð 4ð 4ð5ð 5ð 5ðð ð ðð ð ð ð ð ðð ð ðð ð ðð ð ðPð Pð Pð'ð 'ð 'ð8ð 8ð 8ðð ð ðð ð ðð ð ðð ð ð ð r+   r™   c                   óŽ   — e Zd ZdZe ej        d¬¦  «        d„ ¦   «         ¦   «         Zed„ ¦   «         Z	e
d„ ¦   «         Zd„ Zd„ Zd	S )
Ú
Expressionz:An expression that can be combined with other expressions.é€   ©Úmaxsizec                 ó4   — t          j        | j        ¦  «        S r“   )ÚinspectÚ	signaturer�   )Úclss    r$   Ú_constructor_signaturez!Expression._constructor_signature	  s   € õ Ô  ¤Ñ.Ô.Ð.r+   c                 ó²  ‡ — t          |t          ¦  «        r"t          t          ‰ j        |¦  «        ¦  «        S t          |t          ¦  «        r-t          ˆ fd„|                     ¦   «         D ¦   «         ¦  «        S t          |t          j        ¦  «        r5|j        r|j	        r|j	        j
        j        |j        fS t          |¦  «        S t          |¦  «        S )Nc              3   óL   •K  — | ]\  }}|‰                      |¦  «        fV — Œd S r“   )Ú	_identity)r·   ÚkeyÚvalrL  s      €r$   rÃ   z'Expression._identity.<locals>.<genexpr>  s8   øè è € ÐQÐQ±x°s¸C˜#˜sŸ}š}¨SÑ1Ô1Ð2ÐQÐQÐQÐQÐQÐQr+   )r³   ÚtupleÚmaprP  ÚdictÚitemsr   ÚFieldr  ÚmodelÚ_metaÚlabelÚtyper   )rL  rñ   s   ` r$   rP  zExpression._identity  sÃ   ø€ å�e�UÑ#Ô#ð 	4Ý�˜Sœ]¨EÑ2Ô2Ñ3Ô3Ð3Ý�e�TÑ"Ô"ð 	RÝÐQÐQÐQÐQÀ5Ç;Â;Á=Ä=ÐQÑQÔQÑQÔQÐQÝ�e�Vœ\Ñ*Ô*ð 	ØŒzð ;˜eœkð ;Ø”{Ô(Ô.°´
Ð:Ð:Ý˜‘;”;ÐÝ˜UÑ#Ô#Ð#r+   c                 ój  — | j         \  }} | j        j        | g|¢R i |¤Ž}|                     ¦   «          t	          |j                             ¦   «         ¦  «        }t          |¦  «         | j        g}|D ]1\  }}|  	                    |¦  «        }| 
                    ||f¦  «         Œ2t          |¦  «        S r“   )Ú_constructor_argsrM  Úbind_partialÚapply_defaultsÚiterÚ	argumentsrV  ÚnextrÝ   rP  ÚappendrS  )r   Úargsr(  rK  ra  Úidentityr¸   rñ   s           r$   re  zExpression.identity  sÁ   € àÔ-‰ˆˆfØ<�DÔ/Ô<¸TÐSÀDÐSÐSÐSÈFÐSÐSˆ	Ø× Ò Ñ"Ô"Ð"Ý˜Ô,×2Ò2Ñ4Ô4Ñ5Ô5ˆ	ÝˆY‰ŒˆØ”NÐ#ˆØ#ð 	*ð 	*‰JˆC�ð —N’N 5Ñ)Ô)ˆEØ�OŠO˜S %˜LÑ)Ô)Ð)Ð)Ý�X‰ŒÐr+   c                 óZ   — t          |t          ¦  «        st          S |j        | j        k    S r“   )r³   rE  r<  re  rI   s     r$   Ú__eq__zExpression.__eq__*  s)   € Ý˜%¥Ñ,Ô,ð 	"Ý!Ð!ØŒ~ ¤Ò.Ð.r+   c                 ó*   — t          | j        ¦  «        S r“   )Úhashre  rC   s    r$   Ú__hash__zExpression.__hash__/  s   € Ý�D”MÑ"Ô"Ð"r+   N)r&   r'   r(   r)   r   Ú	functoolsÚ	lru_cacherM  ÚclassmethodrP  r   re  rg  rj  r*   r+   r$   rE  rE    s¢   € € € € € àDÐDàØ€YÔ Ð%Ñ%Ô%ð/ð /ñ &Ô%ñ „]ð/ð ð	$ð 	$ñ „[ð	$ð ðð ñ „_ðð/ð /ð /ð
#ð #ð #ð #ð #r+   rE  c                 óX   — i | ]'}|t           j        t           j        t           j        fg“Œ(S r*   )r   ÚPositiveIntegerField©r·   r<   s     r$   ú
<dictcomp>rq  >  sF   € ð ð ð ð ð 	åÔ+ÝÔ+ÝÔ+ðð
ðð ð r+   c                 óà   — i | ]k}|t           j        t           j        t           j        ft           j        t           j        t           j        ft           j        t           j        t           j        fg“ŒlS r*   )r   rø   rô   r   rp  s     r$   rq  rq  O  sh   € ð ð ð ð ð 	ÝÔ ¥&Ô"5µvÔ7JÐKÝÔ¥Ô 1µ6Ô3DÐEÝÔ ¥&Ô"5µvÔ7JÐKð
ðð ð r+   c           	      ó$  — i | ]�}|t           j        t           j        t           j        ft           j        t           j        t           j        ft           j        t           j        t           j        ft           j        t           j        t           j        fg“ŒŽS r*   )r   rø   r   rô   rp  s     r$   rq  rq  a  s{   € ð ð ð ð ð 	ÝÔ ¥&Ô"5µvÔ7JÐKÝÔ ¥&Ô"5µvÔ7JÐKÝÔ ¥&Ô"3µVÔ5FÐGÝÔ¥Ô 3µVÔ5FÐGð	
ðð ð r+   c                 óX   — i | ]'}|t           j        t           j        t           j        fg“Œ(S r*   )r   rø   rp  s     r$   rq  rq  q  sB   € ð ð ð ð ð 	ÝÔ ¥&Ô"5µvÔ7JÐKð
ðð ð r+   c                 ó¨   — i | ]O}|t          t          j        d „ t          j        t          j        t          j        fD ¦   «         ¦  «        ¦  «        “ŒPS )c              3   ó>   K  — | ]}|t           |ft           ||fgV — Œd S r“   r   )r·   Ú
field_types     r$   rÃ   z<dictcomp>.<genexpr>€  sI   è è € ð  ð  àð �h¨
Ð3µhÀ
ÈJÐ5WÐXð ð  ð  ð  ð  ð  r+   )Úlistr   Úfrom_iterabler   rø   r   rô   rp  s     r$   rq  rq  ~  sx   € ð ð ð ð ð 	•4ÝÔð  ð  õ Ô'ÝÔ'ÝÔ%ð#ð ñ  ô  ñ ô ñ	
ô 	
ðð ð r+   c                 óL   — t           |                              | ||f¦  «         dS )zÂ
    Register combinable types:
        lhs <connector> rhs -> result
    e.g.
        register_combinable_fields(
            IntegerField, Combinable.ADD, FloatField, FloatField
        )
    N)Ú_connector_combinatorsrc  )Úlhsr<   ÚrhsÚresults       r$   Úregister_combinable_fieldsr  ¶  s*   € õ ˜9Ô%×,Ò,¨c°3¸Ð-?Ñ@Ô@Ð@Ð@Ð@r+   rF  rG  c                 ó–   — t                                | d¦  «        }|D ]*\  }}}t          ||¦  «        rt          ||¦  «        r|c S Œ+d S )Nr*   )r{  r  Ú
issubclass)r<   Úlhs_typeÚrhs_typeÚcombinatorsÚcombinator_lhs_typeÚcombinator_rhs_typeÚcombined_types          r$   Ú_resolve_combined_typerˆ  È  sr   € å(×,Ò,¨Y¸Ñ;Ô;€KØCNð !ð !Ñ?ÐÐ0°-Ý�hÐ 3Ñ4Ô4ð 	!½ØÐ)ñ:
ô :
ð 	!ð !Ð Ð Ð øð	!ð !r+   c                   óh   ‡ — 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:   Nc                 óv   •— t          ¦   «                              |¬¦  «         || _        || _        || _        d S ©Nr›   )Úsuperr�   r<   r|  r}  )r   r|  r<   r}  r   rÝ   s        €r$   r�   zCombinedExpression.__init__Ó  s7   ø€ Ý‰Œ×Ò lÐÑ3Ô3Ð3Ø"ˆŒØˆŒØˆŒˆˆr+   c                 óB   — d                      | j        j        | ¦  «        S )Nz<{}: {}>)ÚformatrÝ   r&   rC   s    r$   Ú__repr__zCombinedExpression.__repr__Ù  s   € Ø× Ò  ¤Ô!8¸$Ñ?Ô?Ð?r+   c                 óN   — d                      | j        | j        | j        ¦  «        S )Nz{} {} {})rŽ  r|  r<   r}  rC   s    r$   Ú__str__zCombinedExpression.__str__Ü  s    € Ø× Ò  ¤¨4¬>¸4¼8ÑDÔDÐDr+   c                 ó   — | j         | j        gS r“   ©r|  r}  rC   s    r$   rª   z)CombinedExpression.get_source_expressionsß  s   € Ø”˜$œ(Ð#Ð#r+   c                 ó$   — |\  | _         | _        d S r“   r“  r­   s     r$   r¯   z)CombinedExpression.set_source_expressionsâ  s   € Ø"ÑˆŒ�$”(�(�(r+   c           	      ó.  — t          | j        t          | j        j        ¦  «        t          | j        j        ¦  «        ¦  «        }|€Ft          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ì   )
rˆ  r<   r[  r|  rç   r}  r   r   rÝ   r&   )r   r‡  s     r$   rå   z(CombinedExpression._resolve_output_fieldå  s¨   € õ /ØŒNÝ�”Ô/Ñ0Ô0Ý�”Ô/Ñ0Ô0ñ
ô 
ˆð
 Ð Ýð!¨¬ð !ð !Øœ(Ô/Ô9ÔBð!ð !à”8Ô(Ô2Ô;ð!ð !ð !ñô ð ð ˆ}‰ŒÐr+   c                 óx  — g }g }|                      | j        ¦  «        \  }}|                     |¦  «         |                     |¦  «         |                      | j        ¦  «        \  }}|                     |¦  «         |                     |¦  «         d}|j                             | j        |¦  «        }||z  |fS ©Nz(%s))Úcompiler|  rc  r  r}  ÚopsÚcombine_expressionr<   )r   r    r   rº   Úexpression_paramsr"   r#   Úexpression_wrappers           r$   r   zCombinedExpression.as_sqlö  s¿   € ØˆØÐØ×&Ò& t¤xÑ0Ô0‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(Ø×&Ò& t¤xÑ0Ô0‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(à#ÐØŒn×/Ò/°´ÀÑLÔLˆØ! CÑ'Ð):Ð:Ð:r+   TFc                 ó6  •— t          ¦   «                              |||||¦  «        }t          | t          t          f¦  «        sÖ	 |j        j                             ¦   «         }n# t          t          f$ r d }Y nw xY w	 |j
        j                             ¦   «         }n# t          t          f$ r d }Y nw xY wd||hv r&||k    r t          |j        |j        |j
        ¦  «        S h d£}	| j        | j        k    r$||	v r ||k    rt	          |j        |j
        ¦  «        S |S )NÚDurationField>   Ú	DateFieldÚ	TimeFieldÚDateTimeField)rŒ  r7   r³   ÚDurationExpressionÚTemporalSubtractionr|  r   r   ÚAttributeErrorr   r}  r<   rN   )r   rÕ   rÓ   rÖ   r×   rÔ   Úresolvedr‚  rƒ  Údatetime_fieldsrÝ   s             €r$   r7   z%CombinedExpression.resolve_expression  s[  ø€ õ ‘7”7×-Ò-ØØØØØñ
ô 
ˆõ ˜$Õ!3Õ5HÐ IÑJÔJð 	Gð Ø#œ<Ô4×FÒFÑHÔH��øÝ"¥JÐ/ð  ð  ð  Ø���ð øøøð Ø#œ<Ô4×FÒFÑHÔH��øÝ"¥JÐ/ð  ð  ð  Ø���ð øøøà 8¨XÐ"6Ð6Ð6¸8ÀxÒ;OÐ;OÝ)Ø”L (Ô"4°h´lñô ð ð JÐIÐIˆOà” $¤(Ò*Ð*Ø Ð/Ð/Ø Ò(Ð(å*¨8¬<¸¼ÑFÔFÐFØˆs$   ÁA# Á#A9Á8A9Á=B ÂB2Â1B2c                 ó2   — | j         j        o| j        j        S r“   )r|  r@  r}  rC   s    r$   r@  z"CombinedExpression.allowed_default$  s   € àŒxÔ'ÐD¨D¬HÔ,DÐDr+   r“   r;  )r&   r'   r(   r�   r�  r‘  rª   r¯   rå   r   r7   r   r@  Ú__classcell__©rÝ   s   @r$   r:   r:   Ò  så   ø€ € € € € ðð ð ð ð ð ð@ð @ð @ðEð Eð Eð$ð $ð $ð#ð #ð #ðð ð ð";ð ;ð ;ð SXðð ð ð ð ð ð@ ðEð Eñ „_ðEð Eð Eð Eð Er+   r:   c                   ó*   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zˆ xZS )r¢  c                 óö   — 	 |j         }|                     ¦   «         dk    r4|                     |¦  «        \  }}|j                             |¦  «        |fS n# t
          $ r Y nw xY w|                     |¦  «        S )Nrž  )r   r   r˜  r™  Úformat_for_duration_arithmeticr   )r   Úsider    r   Úoutputr"   r#   s          r$   r˜  zDurationExpression.compile*  s˜   € ð	RØÔ&ˆFð ×'Ò'Ñ)Ô)¨_Ò<Ð<Ø&×.Ò.¨tÑ4Ô4‘��VØ!”~×DÒDÀSÑIÔIÈ6ÐQÐQð =øõ ð 	ð 	ð 	ØˆDð	øøøð ×Ò Ñ%Ô%Ð%s   ‚A Á
A#Á"A#c                 ó  •— |j         j        r"t          ¦   «                              ||¦  «        S |j                             | ¦  «         g }g }|                      | j        ||¦  «        \  }}|                     |¦  «         | 	                    |¦  «         |                      | j
        ||¦  «        \  }}|                     |¦  «         | 	                    |¦  «         d}|j                             | j        |¦  «        }||z  |fS r—  )ÚfeaturesÚhas_native_duration_fieldrŒ  r   r™  Úcheck_expression_supportr˜  r|  rc  r  r}  Úcombine_duration_expressionr<   )	r   r    r   rº   r›  r"   r#   rœ  rÝ   s	           €r$   r   zDurationExpression.as_sql5  s   ø€ ØÔÔ8ð 	8Ý‘7”7—>’> (¨JÑ7Ô7Ð7ØŒ×/Ò/°Ñ5Ô5Ð5ØˆØÐØ—l’l 4¤8¨X°zÑBÔB‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(Ø—l’l 4¤8¨X°zÑBÔB‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(à#ÐØŒn×8Ò8¸¼ÈÑUÔUˆØ! CÑ'Ð):Ð:Ð:r+   c                 ó^  —  | j         ||fi |¤Ž\  }}| j        t          j        t          j        hv ry	 | j        j                             ¦   «         }| j        j                             ¦   «         }h d£}||vs||vrt          d| j        › d�¦  «        ‚n# t          t          f$ r Y nw xY w||fS )N>   rô   r   rø   rž  zInvalid arguments for operator ú.)r   r<   r-   rB   rT   r|  r   r   r}  r   r¤  r   )	r   r    r   r!   r"   r#   r‚  rƒ  Úallowed_fieldss	            r$   r%   zDurationExpression.as_sqliteF  së   € Ø!�d”k (¨JÐHÐH¸-ÐHÐH‰ˆˆVØŒ>�jœn­j¬nÐ=Ð=Ð=ðØœ8Ô0×BÒBÑDÔD�Øœ8Ô0×BÒBÑDÔD�ð"ð "ð "�ð  >Ð1Ð1°XÀ^Ð5SÐ5SÝ'ØK¸$¼.ÐKÐKÐKñô ð ð 6Tøõ #¥JÐ/ð ð ð Ø�ðøøøð �Fˆ{Ðs   ³<B ÂB(Â'B()r&   r'   r(   r˜  r   r%   r¨  r©  s   @r$   r¢  r¢  )  sV   ø€ € € € € ð	&ð 	&ð 	&ð;ð ;ð ;ð ;ð ;ð"ð ð ð ð ð ð r+   r¢  c                   óB   ‡ — e Zd Z ej        ¦   «         Zˆ fd„Zd„ Zˆ xZS )r£  c                 óX   •— t          ¦   «                              || j        |¦  «         d S r“   )rŒ  r�   rN   )r   r|  r}  rÝ   s      €r$   r�   zTemporalSubtraction.__init___  s'   ø€ Ý‰Œ×Ò˜˜dœh¨Ñ,Ô,Ð,Ð,Ð,r+   c                 ó  — |j                              | ¦  «         |                     | j        ¦  «        }|                     | j        ¦  «        }|j                              | j        j                             ¦   «         ||¦  «        S r“   )r™  r²  r˜  r|  r}  Úsubtract_temporalsr   r   )r   r    r   r|  r}  s        r$   r   zTemporalSubtraction.as_sqlb  st   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø×Ò˜tœxÑ(Ô(ˆØ×Ò˜tœxÑ(Ô(ˆØŒ~×0Ò0ØŒHÔ!×3Ò3Ñ5Ô5°s¸Cñ
ô 
ð 	
r+   )	r&   r'   r(   r   rž  r   r�   r   r¨  r©  s   @r$   r£  r£  \  sW   ø€ € € € € Ø'�6Ô'Ñ)Ô)€Lð-ð -ð -ð -ð -ð
ð 
ð 
ð 
ð 
ð 
ð 
r+   r£  zdjango.db.models.F)Úpathc                   ó\   — 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dS )rµ   zDAn object capable of resolving references to existing query objects.Fc                 ó   — || _         dS )z^
        Arguments:
         * name: the name of the field this expression references
        N)r  r  s     r$   r�   z
F.__init__q  s   € ð
 ˆŒ	ˆ	ˆ	r+   c                 óL   — d                      | j        j        | j        ¦  «        S ©Nú{}({}))rŽ  rÝ   r&   r  rC   s    r$   r�  z
F.__repr__x  s   € Ø�Š˜tœ~Ô6¸¼	ÑBÔBÐBr+   c                 ó"   — t          | |¦  «        S r“   )ÚSliced)r   Ú	subscripts     r$   Ú__getitem__zF.__getitem__{  s   € Ý�d˜IÑ&Ô&Ð&r+   c                 ó<   — t          d| j        j        › d�¦  «        ‚)Nzargument of type 'z' is not iterable)Ú	TypeErrorrÝ   r&   rI   s     r$   Ú__contains__zF.__contains__~  s#   € õ ÐW¨T¬^Ô-DÐWÐWÐWÑXÔXÐXr+   NTc                 ó<   — |                      | j        |||¦  «        S r“   )Úresolve_refr  ©r   rÕ   rÓ   rÖ   r×   rÔ   s         r$   r7   zF.resolve_expressionƒ  s    € ð × Ò  ¤¨K¸À	ÑJÔJÐJr+   c                 ó4  — |                      | ¦  «        x}�|S | j                             t          ¦  «        ^}}|s| S |                      t	          |¦  «        ¦  «        x}	 �|j        €| S |D ](}|                     |¦  «        }|€| 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Ð1ˆKÐ>ØÐØ"&¤)§/¢/µ*Ñ"=Ô"=Ðˆ
�Zð ð 	ØˆKà'×+Ò+­A¨j©M¬MÑ:Ô:Ð:ˆKØðà Ô6Ð>ØˆKØ#ð 	7ð 	7ˆIØ)×7Ò7¸	ÑBÔBˆOØÐ&Ø���Ø)˜/¨+Ñ6Ô6ˆKˆKØÐ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                 óB   — | j         |j         k    o| j        |j        k    S r“   )rÝ   r  rI   s     r$   rg  zF.__eq__¢  s   € ØŒ~ ¤Ò0ÐL°T´YÀ%Ä*Ò5LÐLr+   c                 ó*   — t          | j        ¦  «        S r“   )ri  r  rC   s    r$   rj  z
F.__hash__¥  s   € Ý�D”I‰ŒÐr+   c                 ó*   — t          j         | ¦  «        S r“   r  rC   s    r$   r¡   zF.copy¨  r  r+   r;  )r&   r'   r(   r)   r@  r�   r�  rÄ  rÇ  r7   r  r)  r.  rg  rj  r¡   r*   r+   r$   rµ   rµ   k  sÝ   € € € € € àNÐNà€Oðð ð ðCð Cð Cð'ð 'ð 'ðYð Yð Yð SXðKð Kð Kð Kð
ð ð ð('ð 'ð 'ð8ð 8ð 8ðMð Mð 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   rd  r(  s      r$   r   zResolvedOuterRef.as_sql·  s   € Ýð*ñ
ô 
ð 	
r+   c                 óž   •—  t          ¦   «         j        |i |¤Ž}|j        rt          d| j        › d�¦  «        ‚t
          | j        v |_        |S )Nz<Referencing outer query window expression is not supported: rµ  )rŒ  r7   rÈ   r   r  r   Úpossibly_multivalued)r   rd  r(  ÚcolrÝ   s       €r$   r7   z#ResolvedOuterRef.resolve_expression½  sj   ø€ Ø(�e‰gŒgÔ(¨$Ð9°&Ð9Ð9ˆØÔ#ð 	Ý#ð Ø”9ð ð  ð  ñô ð õ $.°´Ð#:ˆÔ Øˆ
r+   c                 ó   — | S r“   r*   ©r   Úrelabelss     r$   r  z ResolvedOuterRef.relabeled_cloneÊ  r2  r+   c                 ó   — g S r“   r*   rC   s    r$   r  z"ResolvedOuterRef.get_group_by_colsÍ  r«   r+   )r&   r'   r(   r)   rÀ   rÈ   r   r7   r  r  r¨  r©  s   @r$   r×  r×  ¬  s}   ø€ € € € € ðð ð ÐØ Ðð
ð 
ð 
ðð ð ð ð ðð ð ðð ð ð ð ð ð r+   r×  c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚOuterRefFc                 ól   — t          | j        | j        ¦  «        r| j        S t          | j        ¦  «        S r“   )r³   r  rÝ   r×  rÙ  s      r$   r7   zOuterRef.resolve_expressionÕ  s0   € Ý�d”i ¤Ñ0Ô0ð 	Ø”9ÐÝ ¤	Ñ*Ô*Ð*r+   c                 ó   — | S r“   r*   rÞ  s     r$   r  zOuterRef.relabeled_cloneÚ  r2  r+   N)r&   r'   r(   rÀ   rÈ   r7   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| _        d S t	          |t          ¦  «        r¶|j        �|j        dk     s|j
        �|j
        dk     rt          d¦  «        ‚|j        �t          d¦  «        ‚|j
        r&|j        r|j
        |j        k     rt          d¦  «        ‚|j        €dn	|j        dz   | _        |j
        €	d | _        d S |j
        |j        pdz
  | _        d S 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.)rŒ  r�   r  Úobjr³   rú   rÜ   ÚstartÚlengthÚsliceÚstopÚsteprÆ  )r   rè  rÃ  rÝ   s      €r$   r�   zSliced.__init__æ  sL  ø€ Ý‰Œ×Ò˜œÑ"Ô"Ð"ØˆŒÝ�i¥Ñ%Ô%ð 	WØ˜1Š}ˆ}Ý Ð!FÑGÔGÐGØ" Q™ˆDŒJØˆDŒKˆKˆKÝ˜	¥5Ñ)Ô)ð 	WØ”Ð+°	´À!Ò0CÐ0CØ”Ð*¨y¬~ÀÒ/AÐ/Aå Ð!FÑGÔGÐGØŒ~Ð)Ý Ð!BÑCÔCÐCØŒ~ð Q )¤/ð Q°i´nÀyÄÒ6VÐ6VÝ Ð!OÑPÔPÐPØ'œoÐ5˜˜¸9¼?ÈQÑ;NˆDŒJØŒ~Ð%Ø"�”��à'œn°	´Ð0DÀ1ÑE�”��åÐUÑVÔ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__ÿ  sY   € Ø”
˜Q‘ˆØ”{Ð*ˆtˆt°¸¼Ñ0CˆÝ˜% Ñ&Ô&ˆ	Ø”.Ô-ÐLÐL°´ÐLÐL¸iÐLÐLÐLÐLr+   NTFc                 ó  — |                      | j        |||¦  «        }t          | j        t          | j        f¦  «        r| j                             |||||¦  «        }n|}|j                             || j	        | j
        ¦  «        S r“   )rÉ  r  r³   rè  râ  rÝ   r7   r   Úslice_expressionré  rê  )r   rÕ   rÓ   rÖ   r×   rÔ   r¥  rÂ   s           r$   r7   zSliced.resolve_expression  s„   € ð ×$Ò$ T¤Y°¸UÀIÑNÔNˆÝ�d”h¥¨4¬>Ð :Ñ;Ô;ð 	Ø”8×.Ò.Ø�{ E¨9°hñô ˆDˆDð ˆDØÔ$×5Ò5°d¸D¼JÈÌÑTÔTÐTr+   r;  )r&   r'   r(   r)   r�   r�  r7   r¨  r©  s   @r$   rÂ  rÂ  Þ  s†   ø€ € € € € ðð ðWð Wð Wð Wð Wð2Mð Mð Mð ØØØØðUð Uð Uð Uð Uð Uð Uð Ur+   rÂ  zdjango.db.models.Funcc                   ó~   ‡ — 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                ó@  •— | j         �]t          |¦  «        | j         k    rEt          d| j        j        ›d| j         ›d| j         dk    rdnd›dt          |¦  «        ›d�	¦  «        ‚t          ¦   «                              |¬	¦  «          | j        |Ž | _        || _	        d S )
Nú'z' takes exactly ú rç  Úargumentra  z (z given)r›   )
ÚarityÚlenrÆ  rÝ   r&   rŒ  r�   r»   rß   Úextra)r   r   rº   rû  rÝ   s       €r$   r�   zFunc.__init__   s³   ø€ ØŒ:Ð!¥c¨+Ñ&6Ô&6¸$¼*Ò&DÐ&DÝ�)ð ”NÔ+Ð+Ð+Ø”J�J�JØ"&¤*°¢/ /�J�J°{ÐBÐBÝ˜Ñ$Ô$Ð$Ð$ðñô ð õ 	‰Œ×Ò lÐÑ3Ô3Ð3Ø"9 $Ô"9¸;Ð"GˆÔØˆŒ
ˆ
ˆ
r+   c                 ó�  — | j                              d„ | j        D ¦   «         ¦  «        }i | j        ¥|                      ¦   «         ¥}|r_d                     d„ t          |                     ¦   «         ¦  «        D ¦   «         ¦  «        }d                     | j        j	        ||¦  «        S d                     | j        j	        |¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r“   ©r´   r¶   s     r$   rÃ   z Func.__repr__.<locals>.<genexpr>0  ó(   è è € Ð#PÐ#P°¥C¨¡H¤HÐ#PÐ#PÐ#PÐ#PÐ#PÐ#Pr+   rë   c              3   ó`   K  — | ])\  }}t          |¦  «        d z   t          |¦  «        z   V — Œ*dS )ú=Nrþ  )r·   rQ  rR  s      r$   rÃ   z Func.__repr__.<locals>.<genexpr>3  sL   è è € ð ð Ù.6¨c°3•�C‘”˜3‘¥ S¡¤Ñ)ðð ð ð ð ð r+   ú
{}({}, {})rÀ  )
Ú
arg_joinerÚjoinrß   rû  Ú_get_repr_optionsÚsortedrV  rŽ  rÝ   r&   )r   rd  rû  s      r$   r�  zFunc.__repr__/  sÆ   € ØŒ×#Ò#Ð#PÐ#P¸Ô8OÐ#PÑ#PÔ#PÑPÔPˆØ:�4”:Ð: ×!7Ò!7Ñ!9Ô!9Ð:ˆØð 	MØ—I’Ið ð Ý:@ÀÇÂÁÄÑ:OÔ:Oðñ ô ñ ô ˆEð  ×&Ò& t¤~Ô'>ÀÀeÑLÔLÐLØ�Š˜tœ~Ô6¸Ñ=Ô=Ð=r+   c                 ó   — i S )zAReturn a dict of extra __init__() options to include in the repr.r*   rC   s    r$   r  zFunc._get_repr_options9  s   € àˆ	r+   c                 ó   — | j         S r“   ©rß   rC   s    r$   rª   zFunc.get_source_expressions=  s   € ØÔ&Ð&r+   c                 ó   — || _         d S r“   r	  r­   s     r$   r¯   zFunc.set_source_expressions@  s   € Ø"'ˆÔÐÐr+   c                 óü  — |j                              | ¦  «         g }g }| j        D ]Ë}		 |                     |	¦  «        \  }
}n…# t          $ rH t          |	dt          ¦  «        }|t          u r‚ |                     t          |¦  «        ¦  «        \  }
}Y n4t          $ r( |                     t          d¦  «        ¦  «        \  }
}Y nw xY w| 	                    |
¦  «         | 
                    |¦  «         ŒÌi | j        ¥|¥}|�||d<   n|                     d| j        ¦  «         |p|                     d| j        ¦  «        }|p|                     d| j        ¦  «        }|                     |¦  «        x|d<   |d<   ||z  |fS )Nr=  TÚfunctionÚtemplater  rº   rã   )r™  r²  rß   r˜  r   rc   r<  r9   r   rc  r  rû  Ú
setdefaultr  r  r  r  r  )r   r    r   r  r  r  r!   Ú	sql_partsr#   r¸   Úarg_sqlÚ
arg_paramsr=  Údatas                 r$   r   zFunc.as_sqlC  sÀ  € ð 	Œ×/Ò/°Ñ5Ô5Ð5Øˆ	ØˆØÔ*ð 	&ð 	&ˆCð
DØ&.×&6Ò&6°sÑ&;Ô&;Ñ#�˜˜øÝ!ð Vð Vð VÝ)0ØÐ1µ>ñ*ô *Ð&ð *­^Ð;Ð;ØØ&.×&6Ò&6µuÐ=SÑ7TÔ7TÑ&UÔ&UÑ#�˜˜˜Ý ð Dð Dð DØ&.×&6Ò&6µu¸T±{´{Ñ&CÔ&CÑ#�˜˜˜ðDøøøà×Ò˜WÑ%Ô%Ð%Ø�MŠM˜*Ñ%Ô%Ð%Ð%Ø.�$”*Ð. Ð.ˆð ÐØ'ˆD�ÑÐà�OŠO˜J¨¬Ñ6Ô6Ð6ØÐB˜tŸxšx¨
°D´MÑBÔBˆØÐJ 4§8¢8¨L¸$¼/Ñ#JÔ#Jˆ
Ø.8¯oªo¸iÑ.HÔ.HÐHˆˆ]Ñ˜d 7™mØ˜$‰ Ð&Ð&s   ©AÁACÂ.CÃCc                 ó¬   •— t          ¦   «                              ¦   «         }| j        d d …         |_        | j                             ¦   «         |_        |S r“   )rŒ  r¡   rß   rû  )r   r¡   rÝ   s     €r$   r¡   z	Func.copyj  s@   ø€ Ý‰wŒw�|Š|‰~Œ~ˆØ"&Ô"9¸!¸!¸!Ô"<ˆÔØ”Z—_’_Ñ&Ô&ˆŒ
Øˆr+   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó$   K  — | ]}|j         V — Œd S r“   ©r@  )r·   rò   s     r$   rÃ   z'Func.allowed_default.<locals>.<genexpr>r  s%   è è € ÐXÐX°*�:Ô-ÐXÐXÐXÐXÐXÐXr+   )Úallrß   rC   s    r$   r@  zFunc.allowed_defaultp  s"   € åÐXÐXÀÔ@WÐXÑXÔXÑXÔXÐXr+   ©NNN)r&   r'   r(   r)   r  r  r  rù  r�   r�  r  rª   r¯   r   r¡   r   r@  r¨  r©  s   @r$   rô  rô    sö   ø€ € € € € àÐà€HØ.€HØ€JØ€Eà26ð ð ð ð ð ð ð ð>ð >ð >ðð ð ð'ð 'ð 'ð(ð (ð (ð ØØð%'ð %'ð %'ð %'ðNð ð ð ð ð ðYð Yñ „_ðYð Yð Yð Yð Yr+   rô  zdjango.db.models.Valuec                   óh   ‡ — 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 )r9   z9Represent a wrapped value as a node within an expression.FTNc                 óZ   •— t          ¦   «                              |¬¦  «         || _        dS )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)rŒ  r�   rñ   )r   rñ   r   rÝ   s      €r$   r�   zValue.__init__~  s+   ø€ õ 	‰Œ×Ò lÐÑ3Ô3Ð3ØˆŒ
ˆ
ˆ
r+   c                 ó0   — | j         j        › d| j        ›d�S )Nrï  rð  )rÝ   r&   rñ   rC   s    r$   r�  zValue.__repr__Š  s    € Ø”.Ô)Ð;Ð;¨D¬JÐ;Ð;Ð;Ð;r+   c                 ó,  — |j                              | ¦  «         | j        }| j        }|�`| j        r|                     ||¬¦  «        }n|                     ||¬¦  «        }t          |d¦  «        r|                     |||¦  «        |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_valuer8   r  )r   r    r   rR  r   s        r$   r   zValue.as_sql�  s¼   € ØŒ×/Ò/°Ñ5Ô5Ð5ØŒjˆØÔ1ˆØÐ#ØŒ}ð QØ"×3Ò3°CÀJÐ3ÑOÔO��à"×4Ò4°SÀZÐ4ÑPÔP�Ý�|Ð%6Ñ7Ô7ð VØ#×3Ò3°C¸À:ÑNÔNÐQTÐPUÐUÐUØˆ;ð ˜2�:ÐØ�c�Uˆ{Ðr+   c                 ó`   •— t          ¦   «                              |||||¦  «        }||_        |S r“   )rŒ  r7   rÔ   ©r   rÕ   rÓ   rÖ   r×   rÔ   rÞ   rÝ   s          €r$   r7   zValue.resolve_expressionŸ  s0   ø€ õ ‰GŒG×&Ò& u¨k¸5À)ÈXÑVÔVˆØˆŒ
Øˆr+   c                 ó   — g S r“   r*   rC   s    r$   r  zValue.get_group_by_cols¦  r«   r+   c                 ó  — 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          j        ¦   «         S d S r“   )r³   rñ   r´   r   Ú	CharFieldÚboolrá   rú   rø   rö   rô   Údatetimer¡  ÚdaterŸ  Útimer   Ú	timedeltarž  r   r   ÚbytesÚBinaryFieldr
   Ú	UUIDFieldrC   s    r$   rå   zValue._resolve_output_field©  s—  € Ý�d”j¥#Ñ&Ô&ð 	&ÝÔ#Ñ%Ô%Ð%Ý�d”j¥$Ñ'Ô'ð 	)ÝÔ&Ñ(Ô(Ð(Ý�d”j¥#Ñ&Ô&ð 	)ÝÔ&Ñ(Ô(Ð(Ý�d”j¥%Ñ(Ô(ð 	'ÝÔ$Ñ&Ô&Ð&Ý�d”j¥(Ô"3Ñ4Ô4ð 	*ÝÔ'Ñ)Ô)Ð)Ý�d”j¥(¤-Ñ0Ô0ð 	&ÝÔ#Ñ%Ô%Ð%Ý�d”j¥(¤-Ñ0Ô0ð 	&ÝÔ#Ñ%Ô%Ð%Ý�d”j¥(Ô"4Ñ5Ô5ð 	*ÝÔ'Ñ)Ô)Ð)Ý�d”j¥'Ñ*Ô*ð 	)ÝÔ&Ñ(Ô(Ð(Ý�d”j¥%Ñ(Ô(ð 	(ÝÔ%Ñ'Ô'Ð'Ý�d”j¥$Ñ'Ô'ð 	&ÝÔ#Ñ%Ô%Ð%ð	&ð 	&r+   c                 ó   — | j         S r“   )rñ   rC   s    r$   r=  zValue.empty_result_set_valueÁ  s
   € àŒzÐr+   r“   r;  )r&   r'   r(   r)   rÔ   r@  r�   r�  r   r7   r  rå   rB  r=  r¨  r©  s   @r$   r9   r9   u  sË   ø€ € € € € àCÐCð €HØ€Oð
ð 
ð 
ð 
ð 
ð 
ð<ð <ð <ðð ð ð& SXðð ð ð ð ð ðð ð ð&ð &ð &ð0 ðð ñ „Xðð ð ð ð r+   r9   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 )ÚRawSQLTNc                 ó”   •— |€t          j        ¦   «         }||c| _        | _        t	          ¦   «                              |¬¦  «         d S r‹  )r   rW  r"   r#   rŒ  r�   )r   r"   r#   r   rÝ   s       €r$   r�   zRawSQL.__init__É  sE   ø€ ØÐÝ!œ<™>œ>ˆLØ # VÐˆŒ�$”+Ý‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3r+   c                 óX   — d                      | j        j        | j        | j        ¦  «        S ©Nr  )rŽ  rÝ   r&   r"   r#   rC   s    r$   r�  zRawSQL.__repr__Ï  s#   € Ø×"Ò" 4¤>Ô#:¸D¼HÀdÄkÑRÔRÐRr+   c                 ó$   — d| j         z  | j        fS r—  )r"   r#   r½   s      r$   r   zRawSQL.as_sqlÒ  s   € Ø˜œÑ  $¤+Ð-Ð-r+   c                 ó   — | gS r“   r*   rC   s    r$   r  zRawSQL.get_group_by_colsÕ  ó	   € Øˆvˆr+   Fc                 óD  •— |j         rt|j         j        j        D ]b}|j        j        D ]S}|j                             ¦   «         | j                             ¦   «         v r|                     |j        |||¦  «          nŒTŒct          ¦   «          
                    |||||¦  «        S r“   )rX  rY  Úall_parentsÚlocal_fieldsÚcolumnÚlowerr"   rÉ  r  rŒ  r7   )	r   rÕ   rÓ   rÖ   r×   rÔ   ÚparentÚparent_fieldrÝ   s	           €r$   r7   zRawSQL.resolve_expressionØ  s»   ø€ ð Œ;ð 	Øœ+Ô+Ô7ð ð �Ø$*¤LÔ$=ð ð �LØ#Ô*×0Ò0Ñ2Ô2°d´h·n²nÑ6FÔ6FÐFÐFØ×)Ò)Ø(Ô-¨{¸EÀ9ñô ð ð ˜ð	 Gøõ
 ‰wŒw×)Ò)Ø�;  y°(ñ
ô 
ð 	
r+   r“   r;  )
r&   r'   r(   r@  r�   r�  r   r  r7   r¨  r©  s   @r$   r0  r0  Æ  s—   ø€ € € € € Ø€Oð4ð 4ð 4ð 4ð 4ð 4ðSð Sð Sð.ð .ð .ðð ð ð SXð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r+   r0  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚStarc                 ó   — dS )Nz'*'r*   rC   s    r$   r�  zStar.__repr__ê  s   € Øˆur+   c                 ó
   — dg fS )Nr0   r*   r½   s      r$   r   zStar.as_sqlí  s   € Ø�Bˆwˆr+   N)r&   r'   r(   r�  r   r*   r+   r$   r?  r?  é  s2   € € € € € ðð ð ðð ð ð ð 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 )ÚDatabaseDefaultz^
    Expression to use DEFAULT keyword during insert otherwise the underlying expression.
    Nc                 óX   •— t          ¦   «                              |¦  «         || _        d S r“   ©rŒ  r�   rò   ©r   rò   r   rÝ   s      €r$   r�   zDatabaseDefault.__init__ö  s&   ø€ Ý‰Œ×Ò˜Ñ&Ô&Ð&Ø$ˆŒˆˆr+   c                 ó   — | j         gS r“   ©rò   rC   s    r$   rª   z&DatabaseDefault.get_source_expressionsú  ó   € Ø”Ð Ð r+   c                 ó   — |\  | _         d S r“   rH  r­   s     r$   r¯   z&DatabaseDefault.set_source_expressionsý  s   € Ø"ÑˆŒˆˆr+   TFc                 ót   — | j                              |||||¬¦  «        }|s|S t          || j        ¬¦  «        S )N)rÕ   rÓ   rÖ   r×   rÔ   r›   )rò   r7   rC  rç   )r   rÕ   rÓ   rÖ   r×   rÔ   Úresolved_expressions          r$   r7   z"DatabaseDefault.resolve_expression   s`   € ð #œo×@Ò@ØØ#ØØØð Añ 
ô 
Ðð ð 	'Ø&Ð&ÝØ¨dÔ.Hð
ñ 
ô 
ð 	
r+   c                 óV   — |j         j        s|                     | 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ð 	5Ø×#Ò# D¤OÑ4Ô4Ð4Ø˜"ˆ}Ðr+   r“   r;  )
r&   r'   r(   r)   r�   rª   r¯   r7   r   r¨  r©  s   @r$   rC  rC  ñ  s�   ø€ € € € € ðð ð%ð %ð %ð %ð %ð %ð!ð !ð !ð#ð #ð #ð SXð
ð 
ð 
ð 
ð$ð ð ð ð ð ð r+   rC  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 )ÚColTFNc                 ór   •— |€|}t          ¦   «                              |¬¦  «         ||c| _        | _        d S r‹  )rŒ  r�   ÚaliasÚtarget)r   rS  rT  r   rÝ   s       €r$   r�   zCol.__init__  s=   ø€ ØÐØ!ˆLÝ‰Œ×Ò lÐÑ3Ô3Ð3Ø"'¨ÐˆŒ
�D”K�K�Kr+   c                 óÊ   — | j         | j        }}|r|t          |¦  «        fnt          |¦  «        f}d                     | j        j        d                     |¦  «        ¦  «        S )NrÀ  rë   )rS  rT  r´   rŽ  rÝ   r&   r  )r   rS  rT  Úidentifierss       r$   r�  zCol.__repr__"  sV   € Øœ
 D¤KˆvˆØ.3ÐG�u�c &™kœkÐ*Ð*½#¸f¹+¼+¸ˆØ�Š˜tœ~Ô6¸¿	º	À+Ñ8NÔ8NÑOÔOÐOr+   c                 ó’   — | j         | j        j        }}|r||fn|f}d                     t	          |j        |¦  «        ¦  «        }|g fS ©Nrµ  )rS  rT  r:  r  rT  Úquote_name_unless_alias)r   r    r   rS  r:  rV  r"   s          r$   r   z
Col.as_sql'  sM   € Øœ
 D¤KÔ$6ˆvˆØ).Ð=�u˜f�o�o°V°IˆØ�hŠh•s˜8Ô;¸[ÑIÔIÑJÔJˆØ�Bˆwˆr+   c                 ó’   — | j         €| S |                      |                     | j         | j         ¦  «        | j        | j        ¦  «        S r“   )rS  rÝ   r  rT  r   rÞ  s     r$   r  zCol.relabeled_clone-  sC   € ØŒ:ÐØˆKØ�~Š~Ø�LŠL˜œ T¤ZÑ0Ô0°$´+¸tÔ?Pñ
ô 
ð 	
r+   c                 ó   — | gS r“   r*   rC   s    r$   r  zCol.get_group_by_cols4  r6  r+   c                 óÀ   — | j         | j        k    r| j                             |¦  «        S | j                             |¦  «        | j                              |¦  «        z   S r“   )rT  r   r§   r¨   s     r$   r§   zCol.get_db_converters7  s_   € ØŒ;˜$Ô+Ò+Ð+ØÔ$×6Ò6°zÑBÔBÐBØÔ ×2Ò2Øñ
ô 
àŒK×)Ò)¨*Ñ5Ô5ñ6ð 	6r+   r“   )r&   r'   r(   rË   rÛ  r�   r�  r   r  r  r§   r¨  r©  s   @r$   rQ  rQ    s—   ø€ € € € € Ø!%ÐØ Ðð0ð 0ð 0ð 0ð 0ð 0ðPð Pð Pð
ð ð ð
ð 
ð 
ðð ð ð6ð 6ð 6ð 6ð 6ð 6ð 6r+   rQ  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                 óv   •— t          ¦   «                              |¬¦  «         || _        || _        || _        d S r‹  )rŒ  r�   rS  ÚtargetsÚsources)r   rS  r_  r`  r   rÝ   s        €r$   r�   zColPairs.__init__@  s7   ø€ Ý‰Œ×Ò lÐÑ3Ô3Ð3ØˆŒ
ØˆŒØˆŒˆˆr+   c                 ó*   — t          | j        ¦  «        S r“   )rú  r_  rC   s    r$   Ú__len__zColPairs.__len__F  s   € Ý�4”<Ñ Ô Ð r+   c                 óD   — t          |                      ¦   «         ¦  «        S r“   )r`  Úget_colsrC   s    r$   Ú__iter__zColPairs.__iter__I  s   € Ý�D—M’M‘O”OÑ$Ô$Ð$r+   c           
      ó`   — | j         j        › d| j        ›d| j        ›d| j        ›d| j        ›d�
S )Nrï  rë   rð  )rÝ   r&   rS  r_  r`  r   rC   s    r$   r�  zColPairs.__repr__L  sY   € àŒ~Ô&ð 8ð 8¨¬ð 8ð 8¸¼ð 8ð 8ØŒ|ð8ð 8Ø!%Ô!2ð8ð 8ð 8ð	
r+   c                 óP   ‡ — ˆ fd„t          ‰ j        ‰ j        ¦  «        D ¦   «         S )Nc                 óB   •— g | ]\  }}t          ‰j        ||¦  «        ‘ŒS r*   )rQ  rS  )r·   rT  rê   r   s      €r$   r¹   z%ColPairs.get_cols.<locals>.<listcomp>S  s;   ø€ ð 
ð 
ð 
á�˜õ �”
˜F FÑ+Ô+ð
ð 
ð 
r+   )Úzipr_  r`  rC   s   `r$   rd  zColPairs.get_colsR  s<   ø€ ð
ð 
ð 
ð 
å"% d¤l°D´LÑ"AÔ"Að
ñ 
ô 
ð 	
r+   c                 ó*   — |                       ¦   «         S r“   )rd  rC   s    r$   rª   zColPairs.get_source_expressionsX  s   € Ø�}Š}‰ŒÐr+   c                 ó†   ‡ — t          ˆ fd„|D ¦   «         ¦  «        sJ ‚d„ |D ¦   «         ‰ _        d„ |D ¦   «         ‰ _        d S )Nc              3   ób   •K  — | ])}t          |t          ¦  «        o|j        ‰j        k    V — Œ*d S r“   )r³   rQ  rS  )r·   rÂ   r   s     €r$   rÃ   z2ColPairs.set_source_expressions.<locals>.<genexpr>\  s;   øè è € ÐXÐXÈ$•:˜d¥CÑ(Ô(ÐE¨T¬Z¸4¼:Ò-EÐXÐXÐXÐXÐXÐXr+   c                 ó   — g | ]	}|j         ‘Œ
S r*   )rT  ©r·   rÜ  s     r$   r¹   z3ColPairs.set_source_expressions.<locals>.<listcomp>]  s   € Ð4Ð4Ð4 s˜œ
Ð4Ð4Ð4r+   c                 ó   — g | ]	}|j         ‘Œ
S r*   )rã   rn  s     r$   r¹   z3ColPairs.set_source_expressions.<locals>.<listcomp>^  s   € Ð3Ð3Ð3 c˜œ	Ð3Ð3Ð3r+   )r  r_  r`  r­   s   ` r$   r¯   zColPairs.set_source_expressions[  s[   ø€ ÝÐXÐXÐXÐXÐRWÐXÑXÔXÑXÔXÐXÐXÐXØ4Ð4¨eÐ4Ñ4Ô4ˆŒØ3Ð3¨UÐ3Ñ3Ô3ˆŒˆˆr+   c                 óð   — g }g }|                       ¦   «         }|D ]E}|                     ||¦  «        \  }}|                     |¦  «         |                     |¦  «         ŒFd                     |¦  «        |fS )Nrë   )rd  r   rc  r  r  )	r   r    r   Úcols_sqlÚcols_paramsr!  rÜ  r"   r#   s	            r$   r   zColPairs.as_sql`  s   € ØˆØˆØ�}Š}‰Œˆàð 	'ð 	'ˆCØŸ*š* X¨zÑ:Ô:‰KˆC�Ø�OŠO˜CÑ Ô Ð Ø×Ò˜vÑ&Ô&Ð&Ð&à�yŠy˜Ñ"Ô" KÐ/Ð/r+   c                 óŒ   — |                       |                     | j        | j        ¦  «        | j        | j        | j        ¦  «        S r“   )rÝ   r  rS  r_  r`  rã   rÞ  s     r$   r  zColPairs.relabeled_clonel  s9   € Ø�~Š~Ø�LŠL˜œ T¤ZÑ0Ô0°$´,ÀÄÈdÌjñ
ô 
ð 	
r+   c                 ó   — | S r“   r*   rÙ  s      r$   r7   zColPairs.resolve_expressionq  r2  r+   c                 ó
   — ||fS r“   r*   r7  s       r$   r6  zColPairs.select_formatt  s   € Ø�Fˆ{Ðr+   )r&   r'   r(   r�   rb  re  r�  rd  rª   r¯   r   r  r7   r6  r¨  r©  s   @r$   rÙ   rÙ   ?  sÎ   ø€ € € € € ðð ð ð ð ð!ð !ð !ð%ð %ð %ð
ð 
ð 
ð
ð 
ð 
ðð ð ð4ð 4ð 4ð

0ð 
0ð 
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                 óf   •— t          ¦   «                              ¦   «          ||c| _        | _        d S r“   )rŒ  r�   r  rê   )r   r  rê   rÝ   s      €r$   r�   zRef.__init__~  s-   ø€ Ý‰Œ×ÒÑÔÐØ!% vÐˆŒ	�4”;�;�;r+   c                 óX   — d                      | j        j        | j        | j        ¦  «        S r3  )rŽ  rÝ   r&   r  rê   rC   s    r$   r�  zRef.__repr__‚  s#   € Ø×"Ò" 4¤>Ô#:¸D¼IÀtÄ{ÑSÔSÐSr+   c                 ó   — | j         gS r“   ©rê   rC   s    r$   rª   zRef.get_source_expressions…  s   € Ø”ˆ}Ðr+   c                 ó   — |\  | _         d S r“   r{  r­   s     r$   r¯   zRef.set_source_expressionsˆ  s   € Ø‰ˆŒˆˆr+   NTFc                 ó   — | S r“   r*   rÊ  s         r$   r7   zRef.resolve_expression‹  s	   € ð
 ˆr+   c                 ó   — | j         hS r“   )r  rC   s    r$   r  zRef.get_refs’  s   € Ø”	ˆ{Ðr+   c                 ól   — |                       ¦   «         }| j                             |¦  «        |_        |S r“   )r¡   rê   r  )r   rß  r  s      r$   r  zRef.relabeled_clone•  s+   € Ø—	’	‘”ˆØ”{×2Ò2°8Ñ<Ô<ˆŒØˆr+   c                 óD   — |j                              | j        ¦  «        g fS r“   )r™  Ú
quote_namer  r½   s      r$   r   z
Ref.as_sqlš  s   € ØŒ~×(Ò(¨¬Ñ3Ô3°RÐ7Ð7r+   c                 ó   — | gS r“   r*   rC   s    r$   r  zRef.get_group_by_cols�  r6  r+   r;  )r&   r'   r(   r)   r�   r�  rª   r¯   r7   r  r  r   r  r¨  r©  s   @r$   rw  rw  x  sÉ   ø€ € € € € ðð ð
.ð .ð .ð .ð .ðTð Tð Tðð ð ðð ð ð SXðð ð ð ðð ð ðð ð ð
8ð 8ð 8ðð ð ð ð ð ð r+   rw  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                 óT   — | j                              d„ | j        D ¦   «         ¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r“   rþ  r¶   s     r$   rÃ   z)ExpressionList.__str__.<locals>.<genexpr>«  rÿ  r+   )r  r  rß   rC   s    r$   r‘  zExpressionList.__str__ª  s*   € ØŒ×#Ò#Ð#PÐ#P¸Ô8OÐ#PÑ#PÔ#PÑPÔPÐPr+   c                 óH   •— | j         sdS  t          ¦   «         j        |i |¤ŽS )N)Ú r*   )rß   rŒ  r   )r   rd  r(  rÝ   s      €r$   r   zExpressionList.as_sql­  s.   ø€ ØÔ&ð 	Ø�6Ø�u‰wŒ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°=ÐAÐAÐAr+   c                 ó†   — g }|                       ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r“   ©rª   r  r  )r   Úgroup_by_colsrÂ   s      r$   r  z ExpressionList.get_group_by_cols¶  sK   € ØˆØ×/Ò/Ñ1Ô1ð 	;ð 	;ˆDØ× Ò  ×!7Ò!7Ñ!9Ô!9Ñ:Ô:Ð:Ð:ØÐr+   )
r&   r'   r(   r)   r  r‘  r   r%   r  r¨  r©  s   @r$   r„  r„  ¡  s|   ø€ € € € € ðð ð !€HðQð Qð Qð/ð /ð /ð /ð /ð
Bð Bð Bðð ð ð ð ð ð r+   r„  c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚOrderByListFzORDER BY %(expressions)sc                 óR   •— d„ |D ¦   «         } t          ¦   «         j        |i |¤Ž d S )Nc              3   ó¨   K  — | ]M}t          |t          ¦  «        r2|d          dk    r&t          t          |dd…         ¦  «        d¬¦  «        n|V — ŒNdS )r   r/   rç  NT©r-  )r³   r´   r&  rµ   rÁ   s     r$   rÃ   z'OrderByList.__init__.<locals>.<genexpr>Â  sz   è è € ð 
ð 
ð õ ˜d¥CÑ(Ô(ðØ-1°!¬W¸ª^¨^õ �˜$˜q˜r˜rœ(™œ°Ð5Ñ5Ô5Ð5àð	
ð 
ð 
ð 
ð 
ð 
r+   )rŒ  r�   )r   rº   rû  rÝ   s      €r$   r�   zOrderByList.__init__Á  sG   ø€ ð
ð 
ð $ð
ñ 
ô 
ˆð 	�‰ŒÔ˜+Ð/¨Ð/Ð/Ð/Ð/Ð/r+   )r&   r'   r(   r@  r  r�   r¨  r©  s   @r$   rŽ  rŽ  ½  sB   ø€ € € € € Ø€OØ)€Hð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0r+   rŽ  z"django.db.models.ExpressionWrapperc                   óZ   ‡ — 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                 óZ   •— t          ¦   «                              |¬¦  «         || _        d S r‹  rE  rF  s      €r$   r�   zExpressionWrapper.__init__Ô  s)   ø€ Ý‰Œ×Ò lÐÑ3Ô3Ð3Ø$ˆŒˆˆr+   c                 ó    — |d         | _         d S ©Nr   rH  r­   s     r$   r¯   z(ExpressionWrapper.set_source_expressionsØ  ó   € Ø œ(ˆŒˆˆr+   c                 ó   — | j         gS r“   rH  rC   s    r$   rª   z(ExpressionWrapper.get_source_expressionsÛ  rI  r+   c                 óê   •— t          | j        t          ¦  «        r9| j                             ¦   «         }| j        |_        |                     ¦   «         S t          ¦   «                              ¦   «         S r“   )r³   rò   rE  r¡   r   r  rŒ  ©r   rò   rÝ   s     €r$   r  z#ExpressionWrapper.get_group_by_colsÞ  s_   ø€ Ý�d”o¥zÑ2Ô2ð 	2Øœ×-Ò-Ñ/Ô/ˆJØ&*Ô&7ˆJÔ#Ø×/Ò/Ñ1Ô1Ð1õ ‰wŒw×(Ò(Ñ*Ô*Ð*r+   c                 ó6   — |                      | j        ¦  «        S r“   )r˜  rò   r½   s      r$   r   zExpressionWrapper.as_sqlç  s   € Ø×Ò ¤Ñ0Ô0Ð0r+   c                 óL   — d                      | j        j        | j        ¦  «        S r¿  )rŽ  rÝ   r&   rò   rC   s    r$   r�  zExpressionWrapper.__repr__ê  s   € Ø�Š˜tœ~Ô6¸¼ÑHÔHÐHr+   c                 ó   — | j         j        S r“   )rò   r@  rC   s    r$   r@  z!ExpressionWrapper.allowed_defaultí  s   € àŒÔ.Ð.r+   )r&   r'   r(   r)   r�   r¯   rª   r  r   r�  rB  r@  r¨  r©  s   @r$   r“  r“  Í  sµ   ø€ € € € € ðð ð
%ð %ð %ð %ð %ð#ð #ð #ð!ð !ð !ð+ð +ð +ð +ð +ð1ð 1ð 1ðIð Ið Ið ð/ð /ñ „Xð/ð /ð /ð /ð /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                 óp   •— t          ¦   «                              |t          j        ¦   «         ¬¦  «         d S r‹  )rŒ  r�   r   rá   rš  s     €r$   r�   zNegatedExpression.__init__õ  s/   ø€ Ý‰Œ×Ò˜µ&Ô2EÑ2GÔ2GÐÑHÔHÐHÐHÐHr+   c                 ó4   — | j                              ¦   «         S r“   )rò   r¡   rC   s    r$   r•   zNegatedExpression.__invert__ø  s   € ØŒ×#Ò#Ñ%Ô%Ð%r+   c                 óL  •— 	 t          ¦   «                              ||¦  «        \  }}nH# t          $ r; |j        j        }|j        sY dS |                     t          d¦  «        ¦  «        cY S w xY w|j        j        }| 	                    | j
        ¦  «        sd|› d�|fS d|› �|fS )N)z1=1r*   Tz
CASE WHEN z = 0 THEN 1 ELSE 0 ENDzNOT )rŒ  r   r   r   r°  Ú&supports_boolean_expr_in_select_clauser˜  r9   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��øÝð 	1ð 	1ð 	1ØÔ*Ô3ˆHØÔBð !Ø �y�yØ×#Ò#¥E¨$¡K¤KÑ0Ô0Ð0Ð0Ð0ð		1øøøð
 Ô!Ô%ˆð ×CÒCÀDÄOÑTÔTð 	DØ; Ð;Ð;Ð;¸VÐCÐCØ�cˆ|ˆ|˜VÐ#Ð#s   ƒ%) ©A.Á	"A.Á-A.NTFc                 óœ   •— t          ¦   «                              |||||¦  «        }t          |j        dd¦  «        st	          d¦  «        ‚|S )Nr`   Fz*Cannot negate non-conditional expressions.)rŒ  r7   rc   rò   rÆ  )r   rÕ   rÓ   rÖ   r×   rÔ   r¥  rÝ   s          €r$   r7   z$NegatedExpression.resolve_expression  sW   ø€ õ ‘7”7×-Ò-Ø�;  y°(ñ
ô 
ˆõ �xÔ*¨M¸5ÑAÔAð 	JÝÐHÑIÔIÐIØˆr+   c                 ó˜   — |j         j        j        }|j         j        j        s% || j        ¦  «        rd                     |¦  «        }||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$   r6  zNegatedExpression.select_format  s^   € ð
 ÔÔ#ÔTð 	-ð Ô#Ô,ÔSð	?ð 5Ð4°T´_ÑEÔEð	?ð
 3×9Ò9¸#Ñ>Ô>ˆCØ�Fˆ{Ðr+   r;  )
r&   r'   r(   r)   r�   r•   r   r7   r6  r¨  r©  s   @r$   r”   r”   ò  sŸ   ø€ € € € € Ø;Ð;ðIð Ið Ið Ið Ið&ð &ð &ð$ð $ð $ð $ð $ð" SXðð ð ð ð ð ðð ð ð ð ð ð r+   r”   zdjango.db.models.Whenc                   óx   ‡ — 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)sFNc                 ó”  •— |r1|€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 ¬¦  «         || _        |                      |¦  «        d         | _	        d S )Nr`   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   rc   rÆ  r³   rÜ   rŒ  r�   Ú	conditionr»   r~  )r   r«  ÚthenÚlookupsrÝ   s       €r$   r�   zWhen.__init__+  sõ   ø€ Øð 	CØÐ Ý%& \ \¨ \ \°4˜7�	�	Ý˜ M°5Ñ9Ô9ð CÝ%& yÐ%<Ð%<°GÐ%<Ð%<¸d˜7�	ØÐ¥G¨I°}ÀeÑ$LÔ$LÐÐPWÐÝð"ñô ð õ �i¥Ñ#Ô#ð 	R¨Ið 	RÝÐPÑQÔQÐQÝ‰Œ×Ò dÐÑ+Ô+Ð+Ø"ˆŒØ×-Ò-¨dÑ3Ô3°AÔ6ˆŒˆˆr+   c                 ó&   — d| j         ›d| j        ›�S )NzWHEN z THEN ©r«  r~  rC   s    r$   r‘  zWhen.__str__<  s   € € Ø$(¤N N N°D´K°KÐ@Ð@r+   c                 ó(   — d| j         j        ›d| ›d�S ©Nú<z: ú>©rÝ   r&   rC   s    r$   r�  zWhen.__repr__?  ó   € € Ø!œ^Ô4Ð4Ð4°d°d°dÐ;Ð;r+   c                 ó   — | j         | j        gS r“   r¯  rC   s    r$   rª   zWhen.get_source_expressionsB  s   € Ø” ¤Ð,Ð,r+   c                 ó$   — |\  | _         | _        d S r“   r¯  r­   s     r$   r¯   zWhen.set_source_expressionsE  s   € Ø&+Ñ#ˆŒ˜œ˜˜r+   Tc                 ó¬   •— t          ¦   «                              |||||¦  «        }|r+|j        �$| j                             ||||d¬¦  «        |_        |S )NF)rÔ   )rŒ  r7   r«  r"  s          €r$   r7   zWhen.resolve_expressionH  sc   ø€ õ ‰GŒG×&Ò& u¨k¸5À)ÈXÑVÔVˆØð 	˜œÐ/àœ.×;Ò;Ø�{ E¨9¸uð <ñ ô ˆAŒKð ˆr+   c                 ó   — | j         j        gS r“   )r~  rç   rC   s    r$   rí   zWhen.get_source_fieldsS  s   € à”Ô1Ð2Ð2r+   c                 óô   — |j                              | ¦  «         |}g }|                     | j        ¦  «        \  }}||d<   |                     | j        ¦  «        \  }	}
|	|d<   |p| j        }||z  g |¢|¢|
¢R fS )Nr«  r~  )r™  r²  r˜  r«  r~  r  )r   r    r   r  r!   Útemplate_paramsÚ
sql_paramsÚcondition_sqlÚcondition_paramsÚ
result_sqlÚresult_paramss              r$   r   zWhen.as_sqlW  s­   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø'ˆØˆ
Ø*2×*:Ò*:¸4¼>Ñ*JÔ*JÑ'ˆÐ'Ø'4ˆ˜Ñ$Ø$,×$4Ò$4°T´[Ñ$AÔ$AÑ!ˆ
�MØ$.ˆ˜Ñ!ØÐ,˜tœ}ˆØ˜/Ñ)ð ,
Øð,
àð,
ð ð,
ð ,
ð 
ð 	
r+   c                 ó†   — g }|                       ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r“   r‹  r   s      r$   r  zWhen.get_group_by_colsf  sH   € àˆØ×1Ò1Ñ3Ô3ð 	4ð 	4ˆFØ�KŠK˜×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Øˆr+   c                 ó2   — | j         j        o| j        j        S r“   )r«  r@  r~  rC   s    r$   r@  zWhen.allowed_defaultm  s   € àŒ~Ô-ÐM°$´+Ô2MÐMr+   ©NNr;  r“   )r&   r'   r(   r  r`   r�   r‘  r�  rª   r¯   r7   rí   r   r  r   r@  r¨  r©  s   @r$   r©  r©  %  sÿ   ø€ € € € € à3€Hà€Kð7ð 7ð 7ð 7ð 7ð 7ð"Að Að Að<ð <ð <ð-ð -ð -ð,ð ,ð ,ð SXð	ð 	ð 	ð 	ð 	ð 	ð3ð 3ð 3ð
ð 
ð 
ð 
ðð ð ð ðNð Nñ „_ðNð Nð Nð Nð Nr+   r©  zdjango.db.models.Casec                   ó~   ‡ — 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	          |¦  «        | _        |                      |¦  «        d         | _        || _        d S )Nc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S 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Æ  rŒ  r�   rx  Úcasesr»   rÆ  rû  )r   rÆ  r   rÊ  rû  rÝ   s        €r$   r�   zCase.__init__ƒ  s|   ø€ ÝÐ<Ð<°eÐ<Ñ<Ô<Ñ<Ô<ð 	NÝÐLÑMÔMÐMÝ‰Œ×Ò˜Ñ&Ô&Ð&Ý˜%‘[”[ˆŒ
Ø×.Ò.¨wÑ7Ô7¸Ô:ˆŒØˆŒ
ˆ
ˆ
r+   c                 ó`   — dd                      d„ | j        D ¦   «         ¦  «        ›d| j        ›�S )NzCASE rë   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r“   rþ  )r·   rÞ   s     r$   rÃ   zCase.__str__.<locals>.<genexpr>�  s(   è è € Ð1Ð1 •c˜!‘f”fÐ1Ð1Ð1Ð1Ð1Ð1r+   z, ELSE )r  rÊ  rÆ  rC   s    r$   r‘  zCase.__str__‹  s;   € € à�IŠIÐ1Ð1 d¤jÐ1Ñ1Ô1Ñ1Ô1Ð1Ð1ØŒLˆLð
ð 	
r+   c                 ó(   — d| j         j        ›d| ›d�S r±  r´  rC   s    r$   r�  zCase.__repr__‘  rµ  r+   c                 ó"   — | j         | j        gz   S r“   ©rÊ  rÆ  rC   s    r$   rª   zCase.get_source_expressions”  s   € ØŒz˜Tœ\˜NÑ*Ð*r+   c                 ó$   — |�^ | _         | _        d S r“   rÏ  r­   s     r$   r¯   zCase.set_source_expressions—  s   € Ø$)Ñ!ˆŒ�T”\�\�\r+   c                 óp   •— t          ¦   «                              ¦   «         }|j        d d …         |_        |S r“   )rŒ  r¡   rÊ  )r   rÞ   rÝ   s     €r$   r¡   z	Case.copyš  s*   ø€ Ý‰GŒG�LŠL‰NŒNˆØ”'˜!˜!˜!”*ˆŒØˆr+   c                 óþ  — |j                              | ¦  «         | j        s|                     | j        ¦  «        S i | j        ¥|¥}g }g }| j        D ]}		 |                     |	¦  «        \  }
}n9# t          $ r Y Œ(t          $ r! |                     |	j        ¦  «        \  }}Y  nLw xY w| 	                    |
¦  «         | 
                    |¦  «         Œ€|                     | j        ¦  «        \  }}|s||fS |p| j        }|                     |¦  «        |d<   ||d<   | 
                    |¦  «         |p|                     d| j        ¦  «        }||z  }| j        �"|j                              | j        ¦  «        |z  }||fS )NrÊ  rÆ  r  )r™  r²  rÊ  r˜  rÆ  rû  r   r   r~  rc  r  Úcase_joinerr  r  r  rç   Úunification_cast_sqlr   )r   r    r   r  rÓ  r!   r»  Ú
case_partsr¼  rÉ  Úcase_sqlÚcase_paramsÚdefault_sqlÚdefault_paramsr"   s                  r$   r   zCase.as_sqlŸ  sÍ  € ð 	Œ×/Ò/°Ñ5Ô5Ð5ØŒzð 	2Ø×#Ò# D¤LÑ1Ô1Ð1Ø9˜TœZÐ9¨=Ð9ˆØˆ
Øˆ
Ø”Jð 	Ið 	IˆDðØ(0×(8Ò(8¸Ñ(>Ô(>Ñ%�˜+˜+øÝ!ð ð ð Ø�Ý ð ð ð Ø.6×.>Ò.>¸t¼{Ñ.KÔ.KÑ+�˜^Ø��ðøøøð ×Ò˜hÑ'Ô'Ð'Ø×Ò˜kÑ*Ô*Ð*Ð*à*2×*:Ò*:¸4¼<Ñ*HÔ*HÑ'ˆK˜Øð 	/Ø Ð.Ð.Ø!Ð5 TÔ%5ˆØ#.×#3Ò#3°JÑ#?Ô#?ˆ˜Ñ Ø%0ˆ˜	Ñ"Ø×Ò˜.Ñ)Ô)Ð)ØÐM˜×2Ò2°:¸t¼}ÑMÔMˆØ˜Ñ(ˆØÔ%Ð1Ø”.×5Ò5°dÔ6GÑHÔHÈ3ÑNˆCØ�JˆÐs   ÁA.Á.
B$Á:&B$Â#B$c                 ó„   •— | j         s| j                             ¦   «         S t          ¦   «                              ¦   «         S r“   )rÊ  rÆ  r  rŒ  )r   rÝ   s    €r$   r  zCase.get_group_by_colsÀ  s7   ø€ ØŒzð 	4Ø”<×1Ò1Ñ3Ô3Ð3Ý‰wŒw×(Ò(Ñ*Ô*Ð*r+   c                 óV   — | j         j        ot          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó$   K  — | ]}|j         V — Œd S r“   r  )r·   Úcase_s     r$   rÃ   z'Case.allowed_default.<locals>.<genexpr>Ç  s6   è è € ð 4
ð 4
Ø&+ˆEÔ!ð4
ð 4
ð 4
ð 4
ð 4
ð 4
r+   )rÆ  r@  r  rÊ  rC   s    r$   r@  zCase.allowed_defaultÅ  s>   € àŒ|Ô+ð 
µð 4
ð 4
Ø/3¬zð4
ñ 4
ô 4
ñ 1
ô 1
ð 	
r+   rÃ  )r&   r'   r(   r)   r  rÓ  r�   r‘  r�  rª   r¯   r¡   r   r  r   r@  r¨  r©  s   @r$   rÅ  rÅ  r  s  ø€ € € € € ð
ð 
ð 5€HØ€Kà'+¸$ð ð ð ð ð ð ð ð
ð 
ð 
ð<ð <ð <ð+ð +ð +ð*ð *ð *ðð ð ð ð ð @Dðð ð ð ðB+ð +ð +ð +ð +ð
 ð
ð 
ñ „_ð
ð 
ð 
ð 
ð 
r+   rÅ  c                   óz   ‡ — 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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|¦  «                             ¦   «         | _        d| j        _        || _        t          ¦   «                              |¦  «         d S )NrÕ   T)rc   r  rÕ   rÏ   rû  rŒ  r�   )r   Úquerysetr   rû  rÝ   s       €r$   r�   zSubquery.__init__×  sQ   ø€ å˜X w°Ñ9Ô9×?Ò?ÑAÔAˆŒ
Ø"ˆŒ
ÔØˆŒ
Ý‰Œ×Ò˜Ñ&Ô&Ð&Ð&Ð&r+   c                 ó   — | j         gS r“   ©rÕ   rC   s    r$   rª   zSubquery.get_source_expressionsÞ  s   € Ø”
ˆ|Ðr+   c                 ó    — |d         | _         d S r–  rã  r­   s     r$   r¯   zSubquery.set_source_expressionsá  s   € Ø˜1”XˆŒ
ˆ
ˆ
r+   c                 ó   — | j         j        S r“   )rÕ   r   rC   s    r$   rå   zSubquery._resolve_output_fieldä  s   € ØŒzÔ&Ð&r+   c                 ó„   •— t          ¦   «                              ¦   «         }|j                             ¦   «         |_        |S r“   )rŒ  r¡   rÕ   r  )r   r  rÝ   s     €r$   r¡   zSubquery.copyç  s.   ø€ Ý‘”—’‘”ˆØ”k×'Ò'Ñ)Ô)ˆŒØˆr+   c                 ó   — | j         j        S r“   )rÕ   Úexternal_aliasesrC   s    r$   rè  zSubquery.external_aliasesì  s   € àŒzÔ*Ð*r+   c                 ó4   — | j                              ¦   «         S r“   )rÕ   Úget_external_colsrC   s    r$   rê  zSubquery.get_external_colsð  s   € ØŒz×+Ò+Ñ-Ô-Ð-r+   c                 óî   — |j                              | ¦  «         i | j        ¥|¥}| j                             ||¦  «        \  }}|dd…         |d<   |p|                     d| j        ¦  «        }||z  }||fS )Nrç  r@   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Ô5Ð5Ø9˜TœZÐ9¨=Ð9ˆØ#'¤:×#4Ò#4°X¸zÑ#JÔ#JÑ ˆ�jØ&2°1°R°4Ô&8ˆ˜
Ñ#àÐM˜×2Ò2°:¸t¼}ÑMÔMˆØ˜Ñ(ˆØ�JˆÐr+   c                 ó8   — | j                              | ¬¦  «        S )N)Úwrapper)rÕ   r  rC   s    r$   r  zSubquery.get_group_by_colsý  s   € ØŒz×+Ò+°DÐ+Ñ9Ô9Ð9r+   r“   )r&   r'   r(   r)   r  rÀ   r=  rÏ   r�   rª   r¯   rå   r¡   rB  rè  rê  r   r  r¨  r©  s   @r$   rß  rß  Ì  sò   ø€ € € € € ðð ð
  €HØÐØ!ÐØ€Hð'ð 'ð 'ð 'ð 'ð 'ðð ð ðð ð ð'ð 'ð 'ðð ð ð ð ð
 ð+ð +ñ „Xð+ð.ð .ð .ðð ð ð ð:ð :ð :ð :ð :ð :ð :r+   rß  c                   óT   ‡ — 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                 óx   •—  t          ¦   «         j        |fi |¤Ž | j                             ¦   «         | _        d S r“   )rŒ  r�   rÕ   Úexists)r   rá  r(  rÝ   s      €r$   r�   zExists.__init__  s;   ø€ Ø�‰ŒÔ˜Ð,Ð, VÐ,Ð,Ð,Ø”Z×&Ò&Ñ(Ô(ˆŒ
ˆ
ˆ
r+   c                 óV   — |j         j        j        sd                     |¦  «        }||fS r¦  )r   r°  r¢  rŽ  r7  s       r$   r6  zExists.select_format
  s2   € ð Ô"Ô+ÔRð 	?Ø2×9Ò9¸#Ñ>Ô>ˆCØ�Fˆ{Ðr+   c                 óÐ   •— 	  t          ¦   «         j        |g|¢R i |¤ŽS # t          $ r; |j        j        }|j        sY dS |                     t          d¦  «        ¦  «        cY S w xY w)N)z1=0r*   F)rŒ  r   r   r   r°  r¢  r˜  r9   )r   r    rd  r(  r°  rÝ   s        €r$   r   zExists.as_sql  s†   ø€ ð	2Ø!•5‘7”7”> (Ð<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<øÝð 	2ð 	2ð 	2ØÔ*Ô3ˆHØÔBð !Ø �y�yØ×#Ò#¥E¨%¡L¤LÑ1Ô1Ð1Ð1Ð1ð		2øøøs   ƒ   A%Á "A%Á$A%)r&   r'   r(   r  r   rá   r   r=  r�   r6  r   r¨  r©  s   @r$   rð  rð    s{   ø€ € € € € Ø%€HØ&�6Ô&Ñ(Ô(€LØ"Ðð)ð )ð )ð )ð )ðð ð ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 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dS )r&  z%(expression)s %(ordering)sFTNc                 óÐ   — |r|rt          d¦  «        ‚|du s|du rt          d¦  «        ‚|| _        || _        || _        t	          |d¦  «        st          d¦  «        ‚|| _        d S )Nz1nulls_first and nulls_last are mutually exclusiveFz7nulls_first and nulls_last values must be True or None.r7   z%expression must be an expression type)rÜ   Únulls_firstÚ
nulls_lastr-  r8   rò   )r   rò   r-  r÷  rø  s        r$   r�   zOrderBy.__init__#  sŠ   € Øð 	R˜:ð 	RÝÐPÑQÔQÐQØ˜%ÐÐ :°Ð#6Ð#6ÝÐVÑWÔWÐWØ&ˆÔØ$ˆŒØ$ˆŒÝ�zÐ#7Ñ8Ô8ð 	FÝÐDÑEÔEÐEØ$ˆŒˆˆr+   c                 óX   — d                      | j        j        | j        | j        ¦  «        S )Nz{}({}, descending={}))rŽ  rÝ   r&   rò   r-  rC   s    r$   r�  zOrderBy.__repr__/  s*   € Ø&×-Ò-ØŒNÔ# T¤_°d´oñ
ô 
ð 	
r+   c                 ó    — |d         | _         d S r–  rH  r­   s     r$   r¯   zOrderBy.set_source_expressions4  r—  r+   c                 ó   — | j         gS r“   rH  rC   s    r$   rª   zOrderBy.get_source_expressions7  rI  r+   c                 ó>  — t          | j        t          ¦  «        ržg }g }| j                             ¦   «         D ]i}|                      ¦   «         } |j        |g¦  «         |                     |¦  «        \  }	}
|                     |	¦  «         |                     |
¦  «         Œjd 	                    |¦  «        |fS |p| j
        }|j        j        r| j        rd|z  }nL| j        rd|z  }n?| j        r| j        r|j        j        sd|z  }n| j        r| j        s|j        j        sd|z  }|j                             | ¦  «         |                     | j        ¦  «        \  }}|| j        rdnddœ|¥}||                     d	¦  «        z  }||z                       ¦   «         |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Ù   rd  r¡   r¯   r˜  rc  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_sql:  sî  € Ý�d”o¥xÑ0Ô0ð 		0ØˆIØˆFØ”×/Ò/Ñ1Ô1ð *ð *�Ø—y’y‘{”{�Ø+�Ô+¨S¨EÑ2Ô2Ð2Ø"*×"2Ò"2°4Ñ"8Ô"8‘��ZØ× Ò  Ñ%Ô%Ð%Ø—’˜jÑ)Ô)Ð)Ð)Ø—9’9˜YÑ'Ô'¨Ð/Ð/ØÐ,˜tœ}ˆØÔÔ?ð 	HØŒð 7Ø*¨XÑ5��ØÔ!ð 7Ø+¨hÑ6�øàŒð HØ”ðHØ$.Ô$7Ô$LðHð 9¸8ÑC��ØÔ!ð HØ”OðHØ(2Ô(;Ô(PðHð =¸xÑG�ØŒ×/Ò/°Ñ5Ô5Ð5Ø!)×!1Ò!1°$´/Ñ!BÔ!BÑˆ˜à(Ø"&¤/Ð<˜˜°uð
ð 
ð ð
ˆð
 	�(—.’.Ð!1Ñ2Ô2Ñ2ˆØ˜<Ñ'×/Ò/Ñ1Ô1°6Ð9Ð9r+   c                 ó"  — |j         j        sn|j                             | j        ¦  «        rO|                      ¦   «         }t          t          | j        d¬¦  «        d¬¦  «        |_         |j        ||¦  «        S |                      ||¦  «        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ð	5à”×OÒOØ”ñô ð	5ð —9’9‘;”;ˆDÝ"Ý�T”_¨4Ð0Ñ0Ô0Øðñ ô ˆDŒOð �4”;˜x¨Ñ4Ô4Ð4Ø�{Š{˜8 ZÑ0Ô0Ð0r+   c                 ó†   — g }|                       ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r“   r‹  r   s      r$   r  zOrderBy.get_group_by_colso  sH   € ØˆØ×1Ò1Ñ3Ô3ð 	4ð 	4ˆFØ�KŠK˜×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Øˆr+   c                 óv   — | j          | _         | j        rd| _        d | _        n| j        rd| _        d | _        | S r|   )r-  r÷  rø  rC   s    r$   r1  zOrderBy.reverse_orderingu  sI   € Ø"œoÐ-ˆŒØÔð 	#Ø"ˆDŒOØ#ˆDÔÐØŒ_ð 	#Ø#ˆDÔØ"ˆDŒOØˆr+   c                 ó   — d| _         d S rF   r‘  rC   s    r$   r)  zOrderBy.asc  s   € ØˆŒˆˆr+   c                 ó   — d| _         d S r|   r‘  rC   s    r$   r.  zOrderBy.desc‚  s   € ØˆŒˆˆr+   )FNNr“   )r&   r'   r(   r  r`   r9  rÛ   r�   r�  r¯   rª   r   r  r  r1  r)  r.  r*   r+   r$   r&  r&    sË   € € € € € à,€HØ€KØ',Ð$Ø#'Ð ð
%ð 
%ð 
%ð 
%ð
ð 
ð 
ð
#ð #ð #ð!ð !ð !ð":ð ":ð ":ð ":ðH1ð 1ð 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)FTNc                 ó¬  •— || _         || _        || _        t          |dd¦  «        st	          d|j        j        z  ¦  «        ‚| j         �At          | j         t          t          f¦  «        s| j         f| _         t          | j         Ž | _         | j        �t          | j        t          t          f¦  «        rt          | j        Ž | _        nJt          | j        t          t          f¦  «        rt          | j        ¦  «        | _        nt	          d¦  «        ‚t          ¦   «                              |¬¦  «         |                      |¦  «        d         | _        d S )Nr?  Fz3Expression '%s' isn't compatible with OVER clauses.zhWindow.order_by must be either a string reference to a field, an expression, or a list or tuple of them.r›   r   )Úpartition_byÚorder_byÚframerc   rÜ   rÝ   r&   r³   rS  rx  r„  rŽ  r™   r´   rŒ  r�   r»   Úsource_expression)r   rò   r  r  r  r   rÝ   s         €r$   r�   zWindow.__init__Ž  sG  ø€ ð )ˆÔØ ˆŒØˆŒ
å�zÐ#6¸Ñ>Ô>ð 	ÝØEØÔ&Ô/ñ0ñô ð ð
 ÔÐ(Ý˜dÔ/µ%½°Ñ?Ô?ð 9Ø%)Ô%6Ð$8�Ô!Ý .°Ô0AÐ BˆDÔàŒ=Ð$Ý˜$œ-­$µ¨Ñ7Ô7ð Ý +¨T¬]Ð ;�”�Ý˜DœM­N½CÐ+@ÑAÔAð Ý +¨D¬MÑ :Ô :�”�å ðHñô ð õ 	‰Œ×Ò lÐÑ3Ô3Ð3Ø!%×!8Ò!8¸Ñ!DÔ!DÀQÔ!GˆÔÐÐr+   c                 ó   — | j         j        S r“   )r  r   rC   s    r$   rå   zWindow._resolve_output_field²  s   € ØÔ%Ô2Ð2r+   c                 ó6   — | j         | j        | j        | j        gS r“   ©r  r  r  r  rC   s    r$   rª   zWindow.get_source_expressionsµ  s   € ØÔ&¨Ô(9¸4¼=È$Ì*ÐUÐUr+   c                 ó<   — |\  | _         | _        | _        | _        d S r“   r  r­   s     r$   r¯   zWindow.set_source_expressions¸  s   € ØOTÑLˆÔ Ô 1°4´=À$Ä*À*À*r+   c                 óð  — |j                              | ¦  «         |j        j        st	          d¦  «        ‚|                     | j        ¦  «        \  }}g d}}| j        �G| j                             ||d¬¦  «        \  }}	| 	                    |¦  «         |t          |	¦  «        z  }| j        �D|                     | j        ¦  «        \  }
}| 	                    |
¦  «         |t          |¦  «        z  }| j        rD|                     | j        ¦  «        \  }}| 	                    |¦  «         |t          |¦  «        z  }|p| j        }||d                     |¦  «                             ¦   «         dœz  g |¢|¢R 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   rc  rS  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»  s˜  € ØŒ×/Ò/°Ñ5Ô5Ð5ØÔ"Ô7ð 	YÝ#Ð$WÑXÔXÐXØ#×+Ò+¨DÔ,BÑCÔCÑˆ�&Ø$&¨�Mˆ
àÔÐ(Ø#'Ô#4×#;Ò#;Ø!Ø%Ø7ð $<ñ $ô $Ñ ˆH�jð
 ×Ò˜hÑ'Ô'Ð'Ø�U :Ñ.Ô.Ñ.ˆMàŒ=Ð$Ø&.×&6Ò&6°t´}Ñ&EÔ&EÑ#ˆI�|Ø×Ò˜iÑ(Ô(Ð(Ø�U <Ñ0Ô0Ñ0ˆMàŒ:ð 	1Ø&.×&6Ò&6°t´zÑ&BÔ&BÑ#ˆI�|Ø×Ò˜iÑ(Ô(Ð(Ø�U <Ñ0Ô0Ñ0ˆMàÐ,˜tœ}ˆð  h¸#¿(º(À:Ñ:NÔ:N×:TÒ:TÑ:VÔ:VÐWÐWÑWØ%ˆfÐ%�}Ð%Ð%ð
ð 	
r+   c                 ób  •— t          | j        t          j        ¦  «        rz|                      ¦   «         } |j        ¦   «         }t          j        ¦   «         |d         _         |j        |¦  «         t          t          |¦  «         
                    ||¦  «        S |                      ||¦  «        S r–  )r³   r   r   r   r¡   rª   rô   r¯   rŒ  r  r%   r   )r   r    r   r¡   rß   rÝ   s        €r$   r%   zWindow.as_sqliteÜ  s™   ø€ Ý�dÔ'­Ô)<Ñ=Ô=ð 	Gà—9’9‘;”;ˆDØ!< Ô!<Ñ!>Ô!>ÐÝ17Ô1BÑ1DÔ1DÐ˜qÔ!Ô.Ø'ˆDÔ'Ð(:Ñ;Ô;Ð;Ý� Ñ&Ô&×0Ò0°¸:ÑFÔFÐFØ�{Š{˜8 ZÑ0Ô0Ð0r+   c                 óâ   — d                      t          | j        ¦  «        | j        rdt          | j        ¦  «        z   ndt          | j        pd¦  «        t          | j        pd¦  «        ¦  «        S )Nz{} OVER ({}{}{})zPARTITION BY rˆ  )rŽ  r´   r  r  r  r  rC   s    r$   r‘  zWindow.__str__æ  sl   € Ø!×(Ò(Ý�Ô&Ñ'Ô'Ø8<Ô8IÐQˆO�c $Ô"3Ñ4Ô4Ñ4Ð4ÈrÝ�”Ð# Ñ$Ô$Ý�”
Ð ˜bÑ!Ô!ñ	
ô 
ð 	
r+   c                 ó(   — d| j         j        ›d| ›d�S r±  r´  rC   s    r$   r�  zWindow.__repr__î  rµ  r+   c                 óÖ   — g }| j         r,|                     | j                              ¦   «         ¦  «         | j        �,|                     | j                             ¦   «         ¦  «         |S r“   )r  r  r  r  )r   rŒ  s     r$   r  zWindow.get_group_by_colsñ  sf   € ØˆØÔð 	HØ× Ò  Ô!2×!DÒ!DÑ!FÔ!FÑGÔGÐGØŒ=Ð$Ø× Ò  ¤×!@Ò!@Ñ!BÔ!BÑCÔCÐCØÐr+   )NNNNr“   )r&   r'   r(   r  rÀ   rÈ   r�   rå   rª   r¯   r   r%   r‘  r�  r  r¨  r©  s   @r$   r  r  †  só   ø€ € € € € Ø1€Hð ÐØÐð
 ØØØð"Hð "Hð "Hð "Hð "Hð "HðH3ð 3ð 3ðVð Vð VðUð Uð Uð
ð 
ð 
ð 
ðB1ð 1ð 1ð 1ð 1ð
ð 
ð 
ð<ð <ð <ðð ð ð ð ð ð r+   r  c                   ó$   — e Zd ZdZdZdZdZd„ ZdS )ÚWindowFrameExclusionzCURRENT ROWÚGROUPÚTIESz	NO OTHERSc                 ó.   — | j         j        › d| j        › �S rX  )rÝ   r(   Ú_name_rC   s    r$   r�  zWindowFrameExclusion.__repr__   s   € Ø”.Ô-Ð=Ð=°´Ð=Ð=Ð=r+   N)r&   r'   r(   ÚCURRENT_ROWr*  r+  Ú	NO_OTHERSr�  r*   r+   r$   r)  r)  ú  s7   € € € € € Ø€KØ€EØ€DØ€Ið>ð >ð >ð >ð >r+   r)  c                   óN   — 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dS )Ú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�¦  «        ‚|| _	        d S )Nz3.exclusion must be a WindowFrameExclusion instance.)
r9   ré  Úendr³   r	   r)  rÆ  rÝ   r(   Ú	exclusion)r   ré  r3  r4  s       r$   r�   zWindowFrame.__init__  sj   € Ý˜5‘\”\ˆŒ
Ý˜‘:”:ˆŒÝ˜)¥hÕ0DÐ%EÑFÔFð 	ÝØ”>Ô.ð 1ð 1ð 1ñô ð ð #ˆŒˆˆr+   c                 ó$   — |\  | _         | _        d S r“   ©ré  r3  r­   s     r$   r¯   z"WindowFrame.set_source_expressions  s   € Ø$ÑˆŒ
�D”H�H�Hr+   c                 ó   — | j         | j        gS r“   r6  rC   s    r$   rª   z"WindowFrame.get_source_expressions  s   € Ø”
˜DœHÐ%Ð%r+   c                 ó2   — | j         €dS d| j         j        › �S )Nrˆ  z	 EXCLUDE )r4  rñ   rC   s    r$   Úget_exclusionzWindowFrame.get_exclusion  s"   € ØŒ>Ð!Ø�2Ø1˜4œ>Ô/Ð1Ð1Ð1r+   c                 ó&  — |j                              | ¦  «         |                      || j        j        | j        j        ¦  «        \  }}| j        r|j        j        st          d¦  «        ‚| j
        | j        |||                      ¦   «         dœz  g fS )Nz6This backend does not support window frame exclusions.©Ú
frame_typeré  r3  Úexclude)r™  r²  Úwindow_frame_start_endré  rñ   r3  r4  r°  Úsupports_frame_exclusionr   r  r<  r9  )r   r    r   ré  r3  s        r$   r   zWindowFrame.as_sql$  s®   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø×0Ò0Ø˜œ
Ô(¨$¬(¬.ñ
ô 
‰
ˆˆsð Œ>ð 	 *Ô"5Ô"Nð 	Ý#ØHñô ð ð ŒMà"œoØØØ×-Ò-Ñ/Ô/ð	ð ñð ð	
ð 		
r+   c                 ó(   — d| j         j        ›d| ›d�S r±  r´  rC   s    r$   r�  zWindowFrame.__repr__8  rµ  r+   c                 ó   — g S r“   r*   rC   s    r$   r  zWindowFrame.get_group_by_cols;  r«   r+   c                 óf  — | j         j        �>| j         j        dk     r.dt          | j         j        ¦  «        t          j        j        fz  }n|| j         j        �"| j         j        dk    rt          j        j        }nN| j         j        �1| j         j        dk    r!d| j         j        t          j        j        fz  }nt          j        j        }| j	        j        �1| j	        j        dk    r!d| j	        j        t          j        j        fz  }n‰| j	        j        �"| j	        j        dk    rt          j        j        }n[| j	        j        �>| j	        j        dk     r.dt          | j	        j        ¦  «        t          j        j        fz  }nt          j        j
        }| j        | j        |||                      ¦   «         dœz  S )Nr   z%d %sr;  )ré  rñ   Úabsr   r™  Ú	PRECEDINGr.  Ú	FOLLOWINGÚUNBOUNDED_PRECEDINGr3  ÚUNBOUNDED_FOLLOWINGr  r<  r9  )r   ré  r3  s      r$   r‘  zWindowFrame.__str__>  sq  € ØŒ:ÔÐ'¨D¬JÔ,<¸qÒ,@Ð,@Ø�s 4¤:Ô#3Ñ4Ô4µj´nÔ6NÐOÑOˆEˆEØŒZÔÐ)¨d¬jÔ.>À!Ò.CÐ.CÝ”NÔ.ˆEˆEØŒZÔÐ)¨d¬jÔ.>ÀÒ.BÐ.BØ˜tœzÔ/µ´Ô1IÐJÑJˆEˆEå”NÔ6ˆEàŒ8Œ>Ð%¨$¬(¬.¸1Ò*<Ð*<Ø˜TœXœ^­Z¬^Ô-EÐFÑFˆCˆCØŒXŒ^Ð'¨D¬H¬N¸aÒ,?Ð,?Ý”.Ô,ˆCˆCØŒXŒ^Ð'¨D¬H¬N¸QÒ,>Ð,>Ø�S ¤¤Ñ0Ô0µ*´.Ô2JÐKÑKˆCˆCå”.Ô4ˆCØŒ}Øœ/ØØØ×)Ò)Ñ+Ô+ð	 
ð  
ñ 
ð 	
r+   c                 ó    — t          d¦  «        ‚)Nz3Subclasses must implement window_frame_start_end().r‹   ©r   r   ré  r3  s       r$   r>  z"WindowFrame.window_frame_start_endW  s   € Ý!Ð"WÑXÔXÐXr+   r  )r&   r'   r(   r)   r  r�   r¯   rª   r9  r   r�  r  r‘  r>  r*   r+   r$   r1  r1    s·   € € € € € ðð ð I€Hð#ð #ð #ð #ð%ð %ð %ð&ð &ð &ð2ð 2ð 2ð

ð 
ð 
ð(<ð <ð <ðð ð ð
ð 
ð 
ð2Yð Yð Yð Yð Yr+   r1  c                   ó   — e Zd ZdZd„ ZdS )ÚRowRangeÚROWSc                 ó8   — |j                              ||¦  «        S r“   )r™  Úwindow_frame_rows_start_endrI  s       r$   r>  zRowRange.window_frame_start_end^  s   € ØŒ~×9Ò9¸%ÀÑEÔEÐEr+   N©r&   r'   r(   r<  r>  r*   r+   r$   rK  rK  [  s-   € € € € € Ø€JðFð Fð Fð Fð Fr+   rK  c                   ó   — e Zd ZdZd„ ZdS )Ú
ValueRangeÚRANGEc                 ó8   — |j                              ||¦  «        S r“   )r™  Úwindow_frame_range_start_endrI  s       r$   r>  z!ValueRange.window_frame_start_ende  s   € ØŒ~×:Ò:¸5À#ÑFÔFÐFr+   NrO  r*   r+   r$   rQ  rQ  b  s-   € € € € € Ø€JðGð Gð Gð Gð Gr+   rQ  )cr¡   r'  rk  rJ  Ú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   r   r-   r—   r™   rE  rH   rB   rT   rX   r\   rN   rh   ry   rl   ro   rt   rŸ  rž  r¡  r   Ú_connector_combinationsrx  r{  r  ÚdrV  r<   Úfield_typesr|  r}  r~  rl  rˆ  r:   r¢  r£  rµ   r×  râ  rÂ  rô  r9   r0  r?  rC  rQ  rÙ   rw  r„  rŽ  r“  r”   r©  rÅ  rß  rð  r&  r  r)  r1  rK  rQ  r*   r+   r$   ú<module>rf     s«  ðØ €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ #Ð #Ð #Ð #Ð #Ð #Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ñ ô ð ð A'ð A'ð A'ð A'ð A'ñ A'ô A'ð A'ðH	ð 	ð 	ð 	ð 	˜Zñ 	ô 	ð 	ðTð Tð Tð Tð Tñ Tô Tð Tðn
 ð*#ð *#ð *#ð *#ð *#� ñ *#ô *#ñ „ð*#ðpð ð ŒNØŒNØŒNØŒNØŒNð
ðñ ô ð"ð ð ŒNØŒNØŒNð ŒNØŒNØŒNð	
ðñ ô ð$ð ð ŒNØŒNØŒNØŒNØŒNð
ðñ ô ð ð ð
 ÔØÔØÔ#ØÔ$ØÔð
ð	ñ ô ðð ð ŒNØŒNØŒNØŒNØŒNØŒNð
ðñ ô ð, 	ŒàÔ˜vÔ3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNØÔ! 6Ô#3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNàÔ! 6Ô#7¸Ô9MÐNàÔ˜vÔ3°VÔ5EÐFØÔ! 6Ô#3°VÔ5EÐFð
ðð 	ŒàÔ˜vÔ3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNØÔ˜vÔ/°Ô1EÐFØÔ˜vÔ3°VÔ5IÐJØÔ! 6Ô#3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNàÔ! 6Ô#7¸Ô9MÐNàÔ˜vÔ3°VÔ5EÐFØÔ˜vÔ/°Ô1EÐFð
ððOwÐ ðr %˜ TÑ*Ô*Ð ð	Að 	Að 	Að 
!ð Dð D€AØ"#§'¢'¡)¤)ð Dð DÑˆ	�;Ø +ð 	Dð 	DÑˆC��fØ&Ð& s¨I°s¸FÑCÔCÐCÐCð	DðDð
 €Ô˜SÐ!Ñ!Ô!ð!ð !ñ "Ô!ð!ðTEð TEð TEð TEð TEÐ+¨Zñ TEô TEð TEðn0ð 0ð 0ð 0ð 0Ð+ñ 0ô 0ð 0ðf
ð 
ð 
ð 
ð 
Ð,ñ 
ô 
ð 
ð €Ð*Ð+Ñ+Ô+ð=ð =ð =ð =ð =ˆ
ñ =ô =ñ ,Ô+ð=ð@"ð "ð "ð "ð "�qñ "ô "ð "ðJ
ð 
ð 
ð 
ð 
ˆqñ 
ô 
ð 
ð6Uð 6Uð 6Uð 6Uð 6UˆQñ 6Uô 6Uð 6Uðr €Ð-Ð.Ñ.Ô.ðZYð ZYð ZYð ZYð ZYÐ˜zñ ZYô ZYñ /Ô.ðZYðz €Ð.Ð/Ñ/Ô/ðMð Mð Mð Mð MÐ 
ñ Mô Mñ 0Ô/ðMð` 
ð  
ð  
ð  
ð  
ˆZñ  
ô  
ð  
ðFð ð ð ð ˆ:ñ ô ð ð$ð $ð $ð $ð $�jñ $ô $ð $ðN$6ð $6ð $6ð $6ð $6ˆ*ñ $6ô $6ð $6ðN6ð 6ð 6ð 6ð 6ˆzñ 6ô 6ð 6ðr&ð &ð &ð &ð &ˆ*ñ &ô &ð &ðRð ð ð ð �Tñ ô ð ð80ð 0ð 0ð 0ð 0�.ñ 0ô 0ð 0ð  €Ð:Ð;Ñ;Ô;ð!/ð !/ð !/ð !/ð !/Ð*¨Jñ !/ô !/ñ <Ô;ð!/ðH0ð 0ð 0ð 0ð 0Ð)ñ 0ô 0ð 0ðf €Ð-Ð.Ñ.Ô.ðINð INð INð INð INˆ:ñ INô INñ /Ô.ðINðX €Ð-Ð.Ñ.Ô.ðV
ð V
ð V
ð V
ð V
Ð˜zñ V
ô V
ñ /Ô.ðV
ðr2:ð 2:ð 2:ð 2:ð 2:ˆ~˜zñ 2:ô 2:ð 2:ðj2ð 2ð 2ð 2ð 2ˆXñ 2ô 2ð 2ð6 €Ð0Ð1Ñ1Ô1ðfð fð fð fð fˆjñ fô fñ 2Ô1ðfðRqð qð qð qð qÐ ñ qô qð qðh>ð >ð >ð >ð >˜4ñ >ô >ð >ðTYð TYð TYð TYð TY�*ñ TYô TYð TYðnFð Fð Fð Fð Fˆ{ñ Fô Fð FðGð Gð Gð Gð G�ñ Gô Gð Gð Gð Gr+   