Ë
    ¹ûàgu ã                   óŠ  — 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«      Z'e G d„ de'e&«      «       Z(e&jR                  e&jT                  e&jV                  e&jX                  e&jZ                  fD � ci c]'  } | ej\                  ej\                  ej\                  fg“Œ) c} e&jR                  e&j^                  e&jT                  e&jV                  e&jX                  e&jZ                  fD � ci c]k  } | ej`                  ej`                  ej`                  fejb                  ejb                  ejb                  fejd                  ejd                  ejd                  fg“Œm c} e&jR                  e&j^                  e&jT                  e&jV                  e&jX                  fD � ci c]�  } | ej`                  ejd                  ejd                  fejd                  ej`                  ejd                  fej`                  ejb                  ejb                  fejb                  ej`                  ejb                  fg“Œ� c} e&jf                  e&jh                  e&jj                  e&jl                  e&jn                  fD � ci c]'  } | ej`                  ej`                  ej`                  fg“Œ) c} e&jR                  e&j^                  e&jT                  e&jV                  e&jX                  e&jZ                  fD � ci c]C  } |  e8 ejr                  d„ ej`                  ejd                  ejb                  fD «       «      «      “ŒE c} e&jR                  ejt                  ejv                  ejx                  fejx                  ejv                  ejx                  fejv                  ejt                  ejx                  fejv                  ejx                  ejx                  fejv                  ejv                  ejv                  fejz                  ejv                  ejz                  fejv                  ejz                  ejz                  fgie&j^                  ejt                  ejv                  ejx                  fejx                  ejv                  ejx                  fejt                  ejt                  ejv                  fejt                  ejx                  ejv                  fejx                  ejt                  ejv                  fejx                  ejx                  ejv                  fejv                  ejv                  ejv                  fejz                  ejv                  ejz                  fejz                  ejz                  ejv                  fg	igZ> ee8«      Z?d„ Z@e>D ]0  ZAeAj…                  «       D ]  \  ZCZDeDD ]  \  ZEZFZG e@eEeCeFeG«       Œ Œ Œ2  ej�                  d¬«      d„ «       ZI G d„ de%e(«      ZJ G d„ d eJ«      ZK G d!„ d"eJ«      ZL ed#¬$«       G d%„ d&e&«      «       ZM G d'„ d(eM«      ZN G d)„ d*eM«      ZO G d+„ d,eM«      ZP ed-¬$«       G d.„ d/e%e(«      «       ZQ ed0¬$«       G d1„ d2e%e(«      «       ZR G d3„ d4e(«      ZS G d5„ d6e(«      ZT G d7„ d8e(«      ZU G d9„ d:e(«      ZV G d;„ d<e(«      ZW G d=„ d>eQ«      ZX G d?„ d@eX«      ZY edA¬$«       G dB„ dCe%e(«      «       ZZ G dD„ dEeZ«      Z[ edF¬$«       G dG„ dHe(«      «       Z\ edI¬$«       G dJ„ dKe%e(«      «       Z] G dL„ dMe'e&«      Z^ G dN„ dOe^«      Z_ edP¬$«       G dQ„ dRe(«      «       Z` G dS„ dTe%e(«      Za G dU„ dVe	«      Zb G dW„ dXe(«      Zc G dY„ dZec«      Zd G d[„ d\ec«      Zeyc c} w c c} w c c} w c c} w c c} w )]é    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y)ÚSQLiteNumericMixinzp
    Some expressions with output_field=DecimalField() must be cast to
    numeric to be properly filtered.
    c                 ó¢   —  | j                   ||fi |¤Ž\  }}	 | j                  j                  «       dk(  rd|z  }||fS # t        $ r Y ||fS w xY w)NÚDecimalFieldz(CAST(%s AS NUMERIC)))Úas_sqlÚoutput_fieldÚget_internal_typer   )ÚselfÚcompilerr   Úextra_contextÚsqlÚparamss         úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/db/models/expressions.pyÚ	as_sqlitezSQLiteNumericMixin.as_sqlite   sm   € Ø!�d—k‘k (¨JÑH¸-ÑH‰ˆˆVð	Ø× Ñ ×2Ñ2Ó4¸ÒFØ-°Ñ3�ð �Fˆ{Ðøô ò 	ØØ�Fˆ{Ðð	ús   ™"? ¿	AÁAN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   © ó    r$   r   r      s   „ ñó
r+   r   c                   óØ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(y')(Ú
Combinablezu
    Provide the ability to combine one or two objects with
    some connector. For example F('foo') + F('bar').
    ú+ú-Ú*ú/ú^z%%ú&ú|z<<z>>ú#c                 óh   — t        |d«      st        |«      }|rt        ||| «      S t        | ||«      S ©NÚresolve_expression)ÚhasattrÚValueÚCombinedExpression)r   ÚotherÚ	connectorÚreverseds       r$   Ú_combinezCombinable._combine?   s7   € Ü�uÐ2Ô3ä˜%“LˆEáÜ% e¨Y¸Ó=Ð=Ü! $¨	°5Ó9Ð9r+   c                 ó<   — | j                  d| j                  d«      S )NéÿÿÿÿF©r?   ÚMUL©r   s    r$   Ú__neg__zCombinable.__neg__L   s   € Ø�}‰}˜R §¡¨5Ó1Ð1r+   c                 ó<   — | j                  || j                  d«      S ©NF©r?   ÚADD©r   r<   s     r$   Ú__add__zCombinable.__add__O   ó   € Ø�}‰}˜U D§H¡H¨eÓ4Ð4r+   c                 ó<   — | j                  || j                  d«      S rG   ©r?   ÚSUBrJ   s     r$   Ú__sub__zCombinable.__sub__R   rL   r+   c                 ó<   — | j                  || j                  d«      S rG   rB   rJ   s     r$   Ú__mul__zCombinable.__mul__U   rL   r+   c                 ó<   — | j                  || j                  d«      S rG   ©r?   ÚDIVrJ   s     r$   Ú__truediv__zCombinable.__truediv__X   rL   r+   c                 ó<   — | j                  || j                  d«      S rG   ©r?   ÚMODrJ   s     r$   Ú__mod__zCombinable.__mod__[   rL   r+   c                 ó<   — | j                  || j                  d«      S rG   ©r?   ÚPOWrJ   s     r$   Ú__pow__zCombinable.__pow__^   rL   r+   c                 óz   — t        | dd«      r$t        |dd«      rt        | «      t        |«      z  S t        d«      ‚©NÚconditionalFúFUse .bitand(), .bitor(), and .bitxor() for bitwise logical operations.©Úgetattrr   ÚNotImplementedErrorrJ   s     r$   Ú__and__zCombinable.__and__a   ó=   € Ü�4˜¨Ô.´7¸5À-ÐQVÔ3WÜ�T“7œQ˜u›XÑ%Ð%Ü!ØTó
ð 	
r+   c                 ó<   — | j                  || j                  d«      S rG   )r?   ÚBITANDrJ   s     r$   ÚbitandzCombinable.bitandh   ó   € Ø�}‰}˜U D§K¡K°Ó7Ð7r+   c                 ó<   — | j                  || j                  d«      S rG   )r?   ÚBITLEFTSHIFTrJ   s     r$   ÚbitleftshiftzCombinable.bitleftshiftk   s   € Ø�}‰}˜U D×$5Ñ$5°uÓ=Ð=r+   c                 ó<   — | j                  || j                  d«      S rG   )r?   ÚBITRIGHTSHIFTrJ   s     r$   ÚbitrightshiftzCombinable.bitrightshiftn   s   € Ø�}‰}˜U D×$6Ñ$6¸Ó>Ð>r+   c                 óz   — t        | dd«      r$t        |dd«      rt        | «      t        |«      z  S t        d«      ‚r`   rc   rJ   s     r$   Ú__xor__zCombinable.__xor__q   rg   r+   c                 ó<   — | j                  || j                  d«      S rG   )r?   ÚBITXORrJ   s     r$   ÚbitxorzCombinable.bitxorx   rk   r+   c                 óz   — t        | dd«      r$t        |dd«      rt        | «      t        |«      z  S t        d«      ‚r`   rc   rJ   s     r$   Ú__or__zCombinable.__or__{   rg   r+   c                 ó<   — | j                  || j                  d«      S rG   )r?   ÚBITORrJ   s     r$   ÚbitorzCombinable.bitor‚   s   € Ø�}‰}˜U D§J¡J°Ó6Ð6r+   c                 ó<   — | j                  || j                  d«      S ©NTrH   rJ   s     r$   Ú__radd__zCombinable.__radd__…   ó   € Ø�}‰}˜U D§H¡H¨dÓ3Ð3r+   c                 ó<   — | j                  || j                  d«      S r}   rN   rJ   s     r$   Ú__rsub__zCombinable.__rsub__ˆ   r   r+   c                 ó<   — | j                  || j                  d«      S r}   rB   rJ   s     r$   Ú__rmul__zCombinable.__rmul__‹   r   r+   c                 ó<   — | j                  || j                  d«      S r}   rT   rJ   s     r$   Ú__rtruediv__zCombinable.__rtruediv__Ž   r   r+   c                 ó<   — | j                  || j                  d«      S r}   rX   rJ   s     r$   Ú__rmod__zCombinable.__rmod__‘   r   r+   c                 ó<   — | j                  || j                  d«      S r}   r\   rJ   s     r$   Ú__rpow__zCombinable.__rpow__”   r   r+   c                 ó   — t        d«      ‚©Nrb   ©re   rJ   s     r$   Ú__rand__zCombinable.__rand__—   ó   € Ü!ØTó
ð 	
r+   c                 ó   — t        d«      ‚r‹   rŒ   rJ   s     r$   Ú__ror__zCombinable.__ror__œ   rŽ   r+   c                 ó   — t        d«      ‚r‹   rŒ   rJ   s     r$   Ú__rxor__zCombinable.__rxor__¡   rŽ   r+   c                 ó   — t        | «      S ©N)ÚNegatedExpressionrD   s    r$   Ú
__invert__zCombinable.__invert__¦   s   € Ü  Ó&Ð&r+   N))r&   r'   r(   r)   rI   rO   rC   rU   r]   rY   ri   rz   rm   rp   ru   r?   rE   rK   rP   rR   rV   rZ   r^   rf   rj   rn   rq   rs   rv   rx   r{   r~   r�   rƒ   r…   r‡   r‰   r�   r�   r’   r–   r*   r+   r$   r-   r-   &   sÆ   „ ñð €CØ
€CØ
€CØ
€CØ
€Cð €Cð
 €FØ€EØ€LØ€MØ€Fò:ò2ò5ò5ò5ò5ò5ò5ò
ò8ò>ò?ò
ò8ò
ò7ò4ò4ò4ò4ò4ò4ò
ò

ò

ó
'r+   r-   c                   ób  — e Zd ZdZe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%„ Z/d&„ Z0y))ÚBaseExpressionz%Base class for all query expressions.FTNc                 ó   — |�|| _         y y r”   ©r   ©r   r   s     r$   Ú__init__zBaseExpression.__init__º   s   € ØÐ#Ø ,ˆDÕð $r+   c                 ó^   — | j                   j                  «       }|j                  dd «       |S )NÚconvert_value)Ú__dict__ÚcopyÚpop)r   Ústates     r$   Ú__getstate__zBaseExpression.__getstate__¾   s'   € Ø—‘×"Ñ"Ó$ˆØ�	‰	�/ 4Ô(Øˆr+   c                 óˆ   — | j                   | j                  u rg n| j                   g| j                  j                  |«      z   S r”   )rž   Ú_convert_value_noopr   Úget_db_converters©r   r   s     r$   r¦   z BaseExpression.get_db_convertersÃ   sG   € ð ×!Ñ! T×%=Ñ%=Ñ=ñ à×$Ñ$Ð%Ø×Ñ×/Ñ/°
Ó;ñ	<ð 	<r+   c                 ó   — g S r”   r*   rD   s    r$   Úget_source_expressionsz%BaseExpression.get_source_expressionsÊ   ó   € Øˆ	r+   c                 ó   — |rJ ‚y r”   r*   ©r   Úexprss     r$   Úset_source_expressionsz%BaseExpression.set_source_expressionsÍ   s   € ÙÐˆy�5r+   c                 ó�   — |D �cg c]6  }t        |d«      r|n%t        |t        «      rt        |«      n
t	        |«      ‘Œ8 c}S c c}w r7   )r9   Ú
isinstanceÚstrÚFr:   )r   ÚexpressionsÚargs      r$   Ú_parse_expressionsz!BaseExpression._parse_expressionsÐ   sO   € ð #ö
ð ô ˜3Ð 4Ô5ñ ä *¨3´Ô 4”a˜”f¼%À»*ñFò
ð 	
ùò 
s   …;Ac                 ó   — t        d«      ‚)aÆ  
        Responsible for returning a (sql, [params]) tuple to be included
        in the current query.

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

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

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

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

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

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

        Return: an Expression to be added to the query.
        N)r    Ú
is_summaryr®   r©   r8   )r   ÚqueryÚallow_joinsÚreuseÚ	summarizeÚfor_saveÚcr½   s           r$   r8   z!BaseExpression.resolve_expression  sq   € ð" �I‰I‹KˆØ ˆŒØ	× Ñ ð ×4Ñ4Ó6öð ñ ð ×+Ñ+¨E°;ÀÀyÔQàñòô		
ð ˆùòs   µAc                 óJ   — t        | j                  t        j                  «      S r”   )r°   r   r   ÚBooleanFieldrD   s    r$   ra   zBaseExpression.conditional/  s   € ä˜$×+Ñ+¬V×-@Ñ-@ÓAÐAr+   c                 ó   — | j                   S r”   rš   rD   s    r$   ÚfieldzBaseExpression.field3  s   € à× Ñ Ð r+   c                 óN   — | j                  «       }|€d| _        t        d«      ‚|S )z+Return the output type of this expressions.Tz4Cannot resolve expression type, unknown output_field)Ú_resolve_output_fieldÚ_output_field_resolved_to_noner   r›   s     r$   r   zBaseExpression.output_field7  s2   € ð ×1Ñ1Ó3ˆØÐØ26ˆDÔ/ÜÐSÓTÐTØÐr+   c                 óT   — 	 | j                   S # t        $ r | j                  s‚ Y yw xY w)z†
        Return the output field of this expression, or None if
        _resolve_output_field() didn't return an output type.
        N)r   r   rÛ   rD   s    r$   Ú_output_field_or_nonez$BaseExpression._output_field_or_none@  s3   € ð	Ø×$Ñ$Ð$øÜò 	Ø×6Ò6Øñ 7ð	ús   ‚ Ž'¦'c           	      óô   — d„ | j                  «       D «       }|D ]\  }|D ]R  }t        ||j                  «      rŒt        d|j                  j                  ›d|j                  j                  ›d�«      ‚ |c S  y)a}  
        Attempt to infer the output type of the expression.

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

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

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

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

         * output_field: an instance of the model field type that this
           expression will return, such as IntegerField() or CharField().
        rš   N)rm  rœ   rè   )r   rè   r   rä   s      €r$   rœ   zValue.__init__q  s   ø€ ô 	‰Ñ lÐÔ3Øˆ�
r+   c                 óN   — | j                   j                  › d| j                  ›d�S )NrÊ  rË  )rä   r&   rè   rD   s    r$   rp  zValue.__repr__}  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯J©J¨>¸Ð;Ð;r+   c                 ó,  — |j                   j                  | «       | j                  }| j                  }|�U| j                  r|j                  ||¬«      }n|j                  ||¬«      }t        |d«      r|j                  |||«      |gfS |€dg fS d|gfS )N)r   Úget_placeholderÚNULLz%s)	rz  r’  rè   rÝ   rÓ   Úget_db_prep_saveÚget_db_prep_valuer9   r  )r   r    r   rá  r   s        r$   r   zValue.as_sql€  s¥   € Ø�‰×/Ñ/°Ô5Ø�j‰jˆØ×1Ñ1ˆØÐ#Ø�}Š}Ø"×3Ñ3°CÀJÐ3ÓO‘à"×4Ñ4°SÀZÐ4ÓP�Ü�|Ð%6Ô7Ø#×3Ñ3°C¸À:ÓNÐQTÐPUÐUÐUØˆ;ð ˜2�:ÐØ�c�Uˆ{Ðr+   c                 ó<   •— t         ‰| �  |||||«      }||_        |S r”   )rm  r8   rÓ   )r   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rä   s          €r$   r8   zValue.resolve_expression’  s(   ø€ ô ‰GÑ& u¨k¸5À)ÈXÓVˆØˆŒ
Øˆr+   c                 ó   — g S r”   r*   rD   s    r$   r  zValue.get_group_by_cols™  rª   r+   c                 óH  — t        | j                  t        «      rt        j                  «       S t        | j                  t
        «      rt        j                  «       S t        | j                  t        «      rt        j                  «       S t        | j                  t        «      rt        j                  «       S t        | j                  t        j                  «      rt        j                  «       S t        | j                  t        j                  «      rt        j                  «       S t        | j                  t        j                  «      rt        j                   «       S t        | j                  t        j"                  «      rt        j$                  «       S t        | j                  t&        «      rt        j(                  «       S t        | j                  t*        «      rt        j,                  «       S t        | j                  t.        «      rt        j0                  «       S y r”   )r°   rè   r±   r   Ú	CharFieldÚboolrÖ   rñ   rï   rí   rë   Údatetimer‚  Údater€  Útimer�  Ú	timedeltar  r   r   ÚbytesÚBinaryFieldr
   Ú	UUIDFieldrD   s    r$   rÚ   zValue._resolve_output_fieldœ  sZ  € Ü�d—j‘j¤#Ô&Ü×#Ñ#Ó%Ð%Ü�d—j‘j¤$Ô'Ü×&Ñ&Ó(Ð(Ü�d—j‘j¤#Ô&Ü×&Ñ&Ó(Ð(Ü�d—j‘j¤%Ô(Ü×$Ñ$Ó&Ð&Ü�d—j‘j¤(×"3Ñ"3Ô4Ü×'Ñ'Ó)Ð)Ü�d—j‘j¤(§-¡-Ô0Ü×#Ñ#Ó%Ð%Ü�d—j‘j¤(§-¡-Ô0Ü×#Ñ#Ó%Ð%Ü�d—j‘j¤(×"4Ñ"4Ô5Ü×'Ñ'Ó)Ð)Ü�d—j‘j¤'Ô*Ü×&Ñ&Ó(Ð(Ü�d—j‘j¤%Ô(Ü×%Ñ%Ó'Ð'Ü�d—j‘j¤$Ô'Ü×#Ñ#Ó%Ð%ð (r+   c                 ó   — | j                   S r”   )rè   rD   s    r$   r1  zValue.empty_result_set_value´  s   € à�z‰zÐr+   r”   r/  )r&   r'   r(   r)   rÓ   r4  rœ   rp  r   r8   r  rÚ   r5  r1  rˆ  r‰  s   @r$   r:   r:   h  sK   ø„ áCð €HØ€Oõ
ò<òð& SXõòò&ð0 ñó ôr+   r:   c                   óD   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Zd„ Z	 dˆ fd„	Zˆ xZ	S )	ÚRawSQLTc                 óp   •— |€t        j                  «       }||c| _        | _        t        ‰| �  |¬«       y rl  )r   rI  r"   r#   rm  rœ   )r   r"   r#   r   rä   s       €r$   rœ   zRawSQL.__init__¼  s4   ø€ ØÐÜ!Ÿ<™<›>ˆLØ # VÐˆŒ�$”+Ü‰Ñ lÐÕ3r+   c                 óx   — dj                  | j                  j                  | j                  | j                  «      S ©Nrâ  )ro  rä   r&   r"   r#   rD   s    r$   rp  zRawSQL.__repr__Â  s)   € Ø×"Ñ" 4§>¡>×#:Ñ#:¸D¿H¹HÀdÇkÁkÓRÐRr+   c                 ó8   — d| j                   z  | j                  fS rx  )r"   r#   r·   s      r$   r   zRawSQL.as_sqlÅ  s   € Ø˜Ÿ™Ñ  $§+¡+Ð-Ð-r+   c                 ó   — | gS r”   r*   rD   s    r$   r  zRawSQL.get_group_by_colsÈ  ó	   € Øˆvˆr+   c                 ój  •— |j                   r”|j                   j                  j                  D ]q  }|j                  j                  D ]V  }|j                  j                  «       | j                  j                  «       v sŒ8|j                  |j                  |||«        Œq Œs t        ‰| �)  |||||«      S r”   )rJ  rK  Úall_parentsÚlocal_fieldsÚcolumnÚlowerr"   r©  rû   rm  r8   )	r   rÏ   rÐ   rÑ   rÒ   rÓ   ÚparentÚparent_fieldrä   s	           €r$   r8   zRawSQL.resolve_expressionË  s§   ø€ ð �;Š;ØŸ+™+×+Ñ+×7Ñ7ò �Ø$*§L¡L×$=Ñ$=ò �LØ#×*Ñ*×0Ñ0Ó2°d·h±h·n±nÓ6FÒFØ×)Ñ)Ø(×-Ñ-¨{¸EÀ9ôñ ñðô ‰wÑ)Ø�;  y°(ó
ð 	
r+   r”   r/  )
r&   r'   r(   r4  rœ   rp  r   r  r8   rˆ  r‰  s   @r$   r  r  ¹  s.   ø„ Ø€Oõ4òSò.òð SX÷
ñ 
r+   r  c                   ó   — e Zd Zd„ Zd„ Zy)ÚStarc                  ó   — y)Nz'*'r*   rD   s    r$   rp  zStar.__repr__Ý  s   € Ør+   c                 ó
   — dg fS )Nr0   r*   r·   s      r$   r   zStar.as_sqlà  s   € Ø�Bˆwˆr+   N)r&   r'   r(   rp  r   r*   r+   r$   r"  r"  Ü  s   „ òór+   r"  c                   ó@   ‡ — e Zd ZdZdˆ fd„	Zd„ Zd„ Z	 dd„Zd„ Zˆ xZ	S )	ÚDatabaseDefaultz^
    Expression to use DEFAULT keyword during insert otherwise the underlying expression.
    c                 ó2   •— t         ‰| �  |«       || _        y r”   ©rm  rœ   ré   ©r   ré   r   rä   s      €r$   rœ   zDatabaseDefault.__init__é  s   ø€ Ü‰Ñ˜Ô&Ø$ˆ�r+   c                 ó   — | j                   gS r”   ©ré   rD   s    r$   r©   z&DatabaseDefault.get_source_expressionsí  ó   € Ø—‘Ð Ð r+   c                 ó   — |\  | _         y r”   r+  r¬   s     r$   r®   z&DatabaseDefault.set_source_expressionsð  s   € Ø"Ñˆ�r+   c                 óx   — | j                   j                  |||||¬«      }|s|S t        || j                  ¬«      S )N)rÏ   rÐ   rÑ   rÒ   rÓ   rš   )ré   r8   r&  rÝ   )r   rÏ   rÐ   rÑ   rÒ   rÓ   Úresolved_expressions          r$   r8   z"DatabaseDefault.resolve_expressionó  sQ   € ð #Ÿo™o×@Ñ@ØØ#ØØØð Aó 
Ðñ Ø&Ð&ÜØ¨d×.HÑ.Hô
ð 	
r+   c                 ól   — |j                   j                  s|j                  | j                  «      S dg fS )NÚDEFAULT)r�  Ú"supports_default_keyword_in_insertry  ré   r·   s      r$   r   zDatabaseDefault.as_sql  s0   € Ø×"Ñ"×EÒEØ×#Ñ# D§O¡OÓ4Ð4Ø˜"ˆ}Ðr+   r”   r/  )
r&   r'   r(   r)   rœ   r©   r®   r8   r   rˆ  r‰  s   @r$   r&  r&  ä  s(   ø„ ñõ%ò!ò#ð SXó
ö$r+   r&  c                   óF   ‡ — e Zd ZdZdZd	ˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )
ÚColTFc                 óL   •— |€|}t         ‰| �  |¬«       ||c| _        | _        y rl  )rm  rœ   ÚaliasÚtarget)r   r6  r7  r   rä   s       €r$   rœ   zCol.__init__  s.   ø€ ØÐØ!ˆLÜ‰Ñ lÐÔ3Ø"'¨ÐˆŒ
�D•Kr+   c                 óÒ   — | j                   | j                  }}|r|t        |«      fnt        |«      f}dj                  | j                  j
                  dj                  |«      «      S )Nr   rá   )r6  r7  r±   ro  rä   r&   rä  )r   r6  r7  Úidentifierss       r$   rp  zCol.__repr__  sO   € ØŸ
™
 D§K¡KˆvˆÙ.3�uœc &›kÑ*¼#¸f»+¸ˆØ�‰˜tŸ~™~×6Ñ6¸¿	¹	À+Ó8NÓOÐOr+   c                 óª   — | j                   | j                  j                  }}|r||fn|f}dj                  t	        |j
                  |«      «      }|g fS ©Nr•  )r6  r7  r  rä  ÚmapÚquote_name_unless_alias)r   r    r   r6  r  r9  r"   s          r$   r   z
Col.as_sql  sL   € ØŸ
™
 D§K¡K×$6Ñ$6ˆvˆÙ).�u˜f‘o°V°IˆØ�h‰h”s˜8×;Ñ;¸[ÓIÓJˆØ�Bˆwˆr+   c                 ó´   — | j                   €| S | j                  |j                  | j                   | j                   «      | j                  | j                  «      S r”   )r6  rä   r  r7  r   r¹  s     r$   rý   zCol.relabeled_clone   sF   € Ø�:‰:ÐØˆKØ�~‰~Ø�L‰L˜Ÿ™ T§Z¡ZÓ0°$·+±+¸t×?PÑ?Pó
ð 	
r+   c                 ó   — | gS r”   r*   rD   s    r$   r  zCol.get_group_by_cols'  r  r+   c                 óØ   — | j                   | j                  k(  r| j                  j                  |«      S | j                  j                  |«      | j                   j                  |«      z   S r”   )r7  r   r¦   r§   s     r$   r¦   zCol.get_db_converters*  s^   € Ø�;‰;˜$×+Ñ+Ò+Ø×$Ñ$×6Ñ6°zÓBÐBØ× Ñ ×2Ñ2Øó
à�K‰K×)Ñ)¨*Ó5ñ6ð 	6r+   r”   )r&   r'   r(   rÇ   r¶  rœ   rp  r   rý   r  r¦   rˆ  r‰  s   @r$   r4  r4    s.   ø„ Ø!%ÐØ Ðõ0òPò
ò
òö6r+   r4  c                   óV   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Z	 dd„Zd„ Z	d„ Z
d	„ Zd
„ Zˆ xZS )ÚRefz~
    Reference to column alias of the query. For example, Ref('sum_cost') in
    qs.annotate(sum_cost=Sum('cost')) query.
    c                 ó@   •— t         ‰| �  «        ||c| _        | _        y r”   )rm  rœ   r
  rà   )r   r
  rà   rä   s      €r$   rœ   zRef.__init__8  s   ø€ Ü‰ÑÔØ!% vÐˆŒ	�4•;r+   c                 óx   — dj                  | j                  j                  | j                  | j                  «      S r  )ro  rä   r&   r
  rà   rD   s    r$   rp  zRef.__repr__<  s)   € Ø×"Ñ" 4§>¡>×#:Ñ#:¸D¿I¹IÀtÇ{Á{ÓSÐSr+   c                 ó   — | j                   gS r”   ©rà   rD   s    r$   r©   zRef.get_source_expressions?  s   € Ø—‘ˆ}Ðr+   c                 ó   — |\  | _         y r”   rF  r¬   s     r$   r®   zRef.set_source_expressionsB  s   € Ø‰ˆ�r+   c                 ó   — | S r”   r*   rª  s         r$   r8   zRef.resolve_expressionE  s	   € ð
 ˆr+   c                 ó   — | j                   hS r”   )r
  rD   s    r$   r	  zRef.get_refsL  s   € Ø—	‘	ˆ{Ðr+   c                 óf   — | j                  «       }| j                  j                  |«      |_        |S r”   )r    rà   rý   )r   rº  rÿ   s      r$   rý   zRef.relabeled_cloneO  s(   € Ø—	‘	“ˆØ—{‘{×2Ñ2°8Ó<ˆŒØˆr+   c                 óP   — |j                   j                  | j                  «      g fS r”   )rz  Ú
quote_namer
  r·   s      r$   r   z
Ref.as_sqlT  s    € Ø�~‰~×(Ñ(¨¯©Ó3°RÐ7Ð7r+   c                 ó   — | gS r”   r*   rD   s    r$   r  zRef.get_group_by_colsW  r  r+   r/  )r&   r'   r(   r)   rœ   rp  r©   r®   r8   r	  rý   r   r  rˆ  r‰  s   @r$   rB  rB  2  s=   ø„ ñô
.òTòòð SXóòòò
8ör+   rB  c                   ó8   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zd„ Zˆ xZ	S )ÚExpressionListz¬
    An expression containing multiple expressions. Can be used to provide a
    list of expressions as an argument to another expression, like a partition
    clause.
    z%(expressions)sc                 óZ   — | j                   j                  d„ | j                  D «       «      S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr”   rÚ  rÛ  s     r$   r¾   z)ExpressionList.__str__.<locals>.<genexpr>e  rÜ  rÝ  )rã  rä  r  rD   s    r$   rr  zExpressionList.__str__d  s#   € Ø�‰×#Ñ#Ñ#P¸×8OÑ8OÔ#PÓPÐPr+   c                 ó<   •— | j                   syt        ‰| �  |i |¤ŽS )N)Ú r*   )r  rm  r   )r   rP  r  rä   s      €r$   r   zExpressionList.as_sqlg  s#   ø€ Ø×&Ò&ØÜ‰w‰~˜tÐ. vÑ.Ð.r+   c                 ó*   —  | j                   ||fi |¤ŽS r”   )r   )r   r    r   r!   s       r$   r%   zExpressionList.as_sqlitel  s   € àˆt�{‰{˜8 ZÑA°=ÑAÐAr+   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r”   ©r©   r  r  )r   Úgroup_by_colsr½   s      r$   r  z ExpressionList.get_group_by_colsp  s<   € ØˆØ×/Ñ/Ó1ò 	;ˆDØ× Ñ  ×!7Ñ!7Ó!9Õ:ð	;àÐr+   )
r&   r'   r(   r)   rð  rr  r   r%   r  rˆ  r‰  s   @r$   rO  rO  [  s%   ø„ ñð !€HòQô/ò
Bör+   rO  c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚOrderByListFzORDER BY %(expressions)sc                 ó6   •— d„ |D «       }t        ‰| �  |i |¤Ž y )Nc              3   ó‚   K  — | ]7  }t        |t        «      r!|d    dk(  rt        t        |dd «      d¬«      n|–— Œ9 y­w)r   r/   rÂ  NT©r   )r°   r±   r  r²   r»   s     r$   r¾   z'OrderByList.__init__.<locals>.<genexpr>|  sI   è ø€ ò 
ð ô ˜d¤CÔ(¨T°!©W¸ª^ô œ˜$˜q˜r˜(›°Õ5àóñ
ùs   ‚=?)rm  rœ   )r   r³   r×  rä   s      €r$   rœ   zOrderByList.__init__{  s(   ø€ ñ
ð $ô
ˆô 	‰Ñ˜+Ð/¨Ó/r+   )r&   r'   r(   r4  rð  rœ   rˆ  r‰  s   @r$   rY  rY  w  s   ø„ Ø€OØ)€H÷	0ð 	0r+   rY  z"django.db.models.ExpressionWrapperc                   óT   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Z	e
d„ «       Zˆ xZS )	ÚExpressionWrapperz”
    An expression that can wrap another expression so that it can provide
    extra context to the inner expression, such as the output_field.
    c                 ó4   •— t         ‰| �  |¬«       || _        y rl  r(  r)  s      €r$   rœ   zExpressionWrapper.__init__Ž  s   ø€ Ü‰Ñ lÐÔ3Ø$ˆ�r+   c                 ó   — |d   | _         y ©Nr   r+  r¬   s     r$   r®   z(ExpressionWrapper.set_source_expressions’  ó   € Ø ™(ˆ�r+   c                 ó   — | j                   gS r”   r+  rD   s    r$   r©   z(ExpressionWrapper.get_source_expressions•  r,  r+   c                 óÊ   •— t        | j                  t        «      r;| j                  j                  «       }| j                  |_        |j                  «       S t        ‰| �  «       S r”   )r°   ré   r8  r    r   r  rm  ©r   ré   rä   s     €r$   r  z#ExpressionWrapper.get_group_by_cols˜  sP   ø€ Ü�d—o‘o¤zÔ2ØŸ™×-Ñ-Ó/ˆJØ&*×&7Ñ&7ˆJÔ#Ø×/Ñ/Ó1Ð1ô ‰wÑ(Ó*Ð*r+   c                 ó8   — |j                  | j                  «      S r”   )ry  ré   r·   s      r$   r   zExpressionWrapper.as_sql¡  s   € Ø×Ñ §¡Ó0Ð0r+   c                 ób   — dj                  | j                  j                  | j                  «      S rŸ  )ro  rä   r&   ré   rD   s    r$   rp  zExpressionWrapper.__repr__¤  s!   € Ø�‰˜tŸ~™~×6Ñ6¸¿¹ÓHÐHr+   c                 ó.   — | j                   j                  S r”   )ré   r4  rD   s    r$   r4  z!ExpressionWrapper.allowed_default§  s   € à�‰×.Ñ.Ð.r+   )r&   r'   r(   r)   rœ   r®   r©   r  r   rp  r5  r4  rˆ  r‰  s   @r$   r^  r^  ‡  s;   ø„ ñô
%ò#ò!ô+ò1òIð ñ/ó ô/r+   r^  c                   óF   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ fd„Z	 dˆ fd„	Zd„ Zˆ xZ	S )r•   z1The logical negation of a conditional expression.c                 óL   •— t         ‰| �  |t        j                  «       ¬«       y rl  )rm  rœ   r   rÖ   re  s     €r$   rœ   zNegatedExpression.__init__¯  s   ø€ Ü‰Ñ˜´&×2EÑ2EÓ2GÐÕHr+   c                 ó6   — | j                   j                  «       S r”   )ré   r    rD   s    r$   r–   zNegatedExpression.__invert__²  s   € Ø�‰×#Ñ#Ó%Ð%r+   c                 óF  •— 	 t         ‰| �  ||«      \  }}|j                  j                  }|j                  | j                  «      sd|› d�|fS d|› �|fS # t        $ rA |j                  j                  }|j
                  sY y|j                  t        d«      «      cY S w xY w)N)z1=1r*   Tz
CASE WHEN z = 0 THEN 1 ELSE 0 ENDzNOT )rm  r   r   r   r�  Ú&supports_boolean_expr_in_select_clausery  r:   rz  Ú0conditional_expression_supported_in_where_clauseré   )r   r    r   r"   r#   r�  rz  rä   s          €r$   r   zNegatedExpression.as_sqlµ  s¬   ø€ ð	1Ü™'™.¨°:Ó>‰KˆC�ð ×!Ñ!×%Ñ%ˆð ×CÑCÀDÇOÁOÔTØ ˜uÐ$:Ð;¸VÐCÐCØ�c�Uˆ|˜VÐ#Ð#øô ò 	1Ø×*Ñ*×3Ñ3ˆHØ×BÒBÙ Ø×#Ñ#¤E¨$£KÓ0Ò0ð		1ús   ƒA Á+B ÂB ÂB c                 ór   •— t         ‰| �  |||||«      }t        |j                  dd«      st	        d«      ‚|S )Nra   Fz*Cannot negate non-conditional expressions.)rm  r8   rd   ré   r¦  )r   rÏ   rÐ   rÑ   rÒ   rÓ   rÎ  rä   s          €r$   r8   z$NegatedExpression.resolve_expressionÅ  sD   ø€ ô ‘7Ñ-Ø�;  y°(ó
ˆô �x×*Ñ*¨M¸5ÔAÜÐHÓIÐIØˆr+   c                 óÐ   — |j                   j                  j                  }|j                   j                  j                  s# || j
                  «      rdj                  |«      }||fS ©NzCASE WHEN {} THEN 1 ELSE 0 END)r   rz  rn  r�  rm  ré   ro  )r   r    r"   r#   Ú$expression_supported_in_where_clauses        r$   r)  zNegatedExpression.select_formatÏ  s[   € ð
 ×Ñ×#Ñ#×TÑTð 	-ð ×#Ñ#×,Ñ,×SÒSá4°T·_±_ÔEà2×9Ñ9¸#Ó>ˆCØ�Fˆ{Ðr+   r/  )
r&   r'   r(   r)   rœ   r–   r   r8   r)  rˆ  r‰  s   @r$   r•   r•   ¬  s'   ø„ Ù;ôIò&ô$ð" SXõör+   r•   zdjango.db.models.Whenc                   ón   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d„ Z
	 dd	„Zdd
„Zd„ Zed„ «       Zˆ xZS )ÚWhenz"WHEN %(condition)s THEN %(result)sFc                 ó2  •— |r+|€t        di |¤Žd }}nt        |dd«      rt        |fi |¤Žd }}|�t        |dd«      r|rt        d«      ‚t        |t         «      r|st	        d«      ‚t
        ‰| �  d ¬«       || _        | j                  |«      d   | _	        y )Nra   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   rd   r¦  r°   r-  rm  rœ   Ú	conditionrµ   r_  )r   rv  ÚthenÚlookupsrä   s       €r$   rœ   zWhen.__init__å  s¨   ø€ ÙØÐ Ü%&¡\¨¡\°4˜7‘	Ü˜ M°5Ô9Ü%& yÑ%<°GÑ%<¸d˜7�	ØÐ¤G¨I°}ÀeÔ$LÑPWÜð"óð ô �i¤Ô#©IÜÐPÓQÐQÜ‰Ñ dÐÔ+Ø"ˆŒØ×-Ñ-¨dÓ3°AÑ6ˆ�r+   c                 ó:   — d| j                   ›d| j                  ›�S )NzWHEN z THEN ©rv  r_  rD   s    r$   rr  zWhen.__str__ö  s   � Ø$(§N£N°D·K²KÐ@Ð@r+   c                 ó<   — d| j                   j                  ›d| ›d�S ©Nú<z: ú>©rä   r&   rD   s    r$   rp  zWhen.__repr__ù  ó   � Ø!Ÿ^™^×4Ó4²dÐ;Ð;r+   c                 ó2   — | j                   | j                  gS r”   rz  rD   s    r$   r©   zWhen.get_source_expressionsü  s   € Ø—‘ §¡Ð,Ð,r+   c                 ó"   — |\  | _         | _        y r”   rz  r¬   s     r$   r®   zWhen.set_source_expressionsÿ  s   € Ø&+Ñ#ˆŒ˜�r+   c                 ó0   — | j                   j                  gS r”   )r_  rÝ   rD   s    r$   rã   zWhen.get_source_fields  s   € à—‘×1Ñ1Ð2Ð2r+   c                 óð   — | j                  «       }||_        t        |j                  d«      r$|j                  j	                  ||||d«      |_        |j
                  j	                  |||||«      |_        |S )Nr8   F)r    rÎ   r9   rv  r8   r_  )r   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   s          r$   r8   zWhen.resolve_expression  sp   € ð �I‰I‹KˆØ ˆŒÜ�1—;‘;Ð 4Ô5ØŸ+™+×8Ñ8Ø�{ E¨9°eóˆAŒKð —8‘8×.Ñ.Ø�;  y°(ó
ˆŒð ˆr+   c                 ó  — |j                   j                  | «       |}g }|j                  | j                  «      \  }}||d<   |j                  | j                  «      \  }	}
|	|d<   |xs | j
                  }||z  g |¢|¢|
¢­fS )Nrv  r_  )rz  r’  ry  rv  r_  rð  )r   r    r   rð  r!   Útemplate_paramsÚ
sql_paramsÚcondition_sqlÚcondition_paramsÚ
result_sqlÚresult_paramss              r$   r   zWhen.as_sql  s¤   € Ø�‰×/Ñ/°Ô5Ø'ˆØˆ
Ø*2×*:Ñ*:¸4¿>¹>Ó*JÑ'ˆÐ'Ø'4ˆ˜Ñ$Ø$,×$4Ñ$4°T·[±[Ó$AÑ!ˆ
�MØ$.ˆ˜Ñ!ØÒ,˜tŸ}™}ˆØ˜/Ñ)ð ,
Øð,
àð,
ð ñ,
ð 
ð 	
r+   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r”   rV  r  s      r$   r  zWhen.get_group_by_cols#  s9   € àˆØ×1Ñ1Ó3ò 	4ˆFØ�K‰K˜×0Ñ0Ó2Õ3ð	4àˆr+   c                 ó^   — | j                   j                  xr | j                  j                  S r”   )rv  r4  r_  rD   s    r$   r4  zWhen.allowed_default*  s!   € à�~‰~×-Ñ-ÒM°$·+±+×2MÑ2MÐMr+   ©NNr/  r”   )r&   r'   r(   rð  ra   rœ   rr  rp  r©   r®   rã   r8   r   r  r   r4  rˆ  r‰  s   @r$   rt  rt  ß  sX   ø„ à3€Hà€Kõ7ò"Aò<ò-ò,ò3ð
 SXóó
òð ñNó ôNr+   rt  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
	 dd„Zˆ fd„Z	 dd„Zˆ fd„Zed„ «       Zˆ xZS )ÚCasezÊ
    An SQL searched CASE expression:

        CASE
            WHEN n > 0
                THEN 'positive'
            WHEN n < 0
                THEN 'negative'
            ELSE 'zero'
        END
    z#CASE %(cases)s ELSE %(default)s ENDrÓ  N)Údefaultr   c                ó¾   •— t        d„ |D «       «      st        d«      ‚t        ‰| �  |«       t	        |«      | _        | j                  |«      d   | _        || _        y )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr”   )r°   rt  )r¼   Úcases     r$   r¾   z Case.__init__.<locals>.<genexpr>A  s   è ø€ Ò<¨d”:˜d¤D×)Ñ<ùr¿   z.Positional arguments must all be When objects.r   )	rû  r¦  rm  rœ   ÚlistÚcasesrµ   r‘  r×  )r   r‘  r   r–  r×  rä   s        €r$   rœ   zCase.__init__@  sS   ø€ ÜÑ<°eÔ<Ô<ÜÐLÓMÐMÜ‰Ñ˜Ô&Ü˜%“[ˆŒ
Ø×.Ñ.¨wÓ7¸Ñ:ˆŒØˆ�
r+   c                 óf   — ddj                  d„ | j                  D «       «      ›d| j                  ›�S )NzCASE rá   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr”   rÚ  )r¼   rÔ   s     r$   r¾   zCase.__str__.<locals>.<genexpr>J  s   è ø€ Ò1 ”c˜!—fÑ1ùrÝ  z, ELSE )rä  r–  r‘  rD   s    r$   rr  zCase.__str__H  s)   � à�I‰IÑ1 d§j¡jÔ1Õ1Ø�LŠLð
ð 	
r+   c                 ó<   — d| j                   j                  ›d| ›d�S r|  r  rD   s    r$   rp  zCase.__repr__N  r€  r+   c                 ó6   — | j                   | j                  gz   S r”   ©r–  r‘  rD   s    r$   r©   zCase.get_source_expressionsQ  s   € Ø�z‰z˜TŸ\™\˜NÑ*Ð*r+   c                 ó"   — |�^ | _         | _        y r”   r›  r¬   s     r$   r®   zCase.set_source_expressionsT  s   € Ø$)Ñ!ˆŒ�T•\r+   c                 óú   — | j                  «       }||_        t        |j                  «      D ]'  \  }}|j	                  |||||«      |j                  |<   Œ) |j
                  j	                  |||||«      |_        |S r”   )r    rÎ   rì  r–  r8   r‘  )	r   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rí  r”  s	            r$   r8   zCase.resolve_expressionW  s   € ð �I‰I‹KˆØ ˆŒÜ" 1§7¡7Ó+ò 	‰IˆC�Ø×2Ñ2Ø�{ E¨9°hóˆA�G‰G�CŠLð	ð —I‘I×0Ñ0Ø�;  y°(ó
ˆŒ	ð ˆr+   c                 óL   •— t         ‰| �  «       }|j                  d d  |_        |S r”   )rm  r    r–  )r   rÔ   rä   s     €r$   r    z	Case.copye  s"   ø€ Ü‰G‰L‹NˆØ—'‘'™!�*ˆŒØˆr+   c                 ó$  — |j                   j                  | «       | j                  s|j                  | j                  «      S i | j
                  ¥|¥}g }g }|j                  | j                  «      \  }	}
| j                  D ]9  }	 |j                  |«      \  }}|j                  |«       |j                  |«       Œ; |s|	|
fS |xs | j                  }|j                  |«      |d<   |	|d<   |j                  |
«       |xs |j                  d| j                  «      }||z  }| j                  �(|j                   j!                  | j"                  «      |z  }||fS # t        $ r Y Œät        $ r" |j                  |j                  «      \  }	}
Y  ŒÑw xY w)Nr–  r‘  rð  )rz  r’  r–  ry  r‘  r×  r   r   r_  rN  r  Úcase_joinerrä  r  rð  rÝ   Úunification_cast_sqlr   )r   r    r   rð  r   r!   r†  Ú
case_partsr‡  Údefault_sqlÚdefault_paramsr”  Úcase_sqlÚcase_paramsr"   s                  r$   r   zCase.as_sqlj  s’  € ð 	�‰×/Ñ/°Ô5Ø�zŠzØ×#Ñ# D§L¡LÓ1Ð1Ø9˜TŸZ™ZÐ9¨=Ð9ˆØˆ
Øˆ
Ø&.×&6Ñ&6°t·|±|Ó&DÑ#ˆ�^Ø—J‘Jò 		+ˆDðØ(0×(8Ñ(8¸Ó(>Ñ%�˜+ð ×Ñ˜hÔ'Ø×Ñ˜kÕ*ð		+ñ Ø Ð.Ð.Ø!Ò5 T×%5Ñ%5ˆØ#.×#3Ñ#3°JÓ#?ˆ˜Ñ Ø%0ˆ˜	Ñ"Ø×Ñ˜.Ô)ØÒM˜×2Ñ2°:¸t¿}¹}ÓMˆØ˜Ñ(ˆØ×%Ñ%Ð1Ø—.‘.×5Ñ5°d×6GÑ6GÓHÈ3ÑNˆCØ�JˆÐøô# "ò ÙÜ ò Ø.6×.>Ñ.>¸t¿{¹{Ó.KÑ+�˜^Úðús   ÂEÅ	FÅ%&FÆFc                 ól   •— | j                   s| j                  j                  «       S t        ‰| �	  «       S r”   )r–  r‘  r  rm  )r   rä   s    €r$   r  zCase.get_group_by_colsŠ  s+   ø€ Ø�zŠzØ—<‘<×1Ñ1Ó3Ð3Ü‰wÑ(Ó*Ð*r+   c                 ój   — | j                   j                  xr t        d„ | j                  D «       «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr”   rù  )r¼   Úcase_s     r$   r¾   z'Case.allowed_default.<locals>.<genexpr>‘  s   è ø€ ò 4
Ø&+ˆE×!Õ!ñ4
ùrú  )r‘  r4  rû  r–  rD   s    r$   r4  zCase.allowed_default�  s1   € à�|‰|×+Ñ+ò 
´ñ 4
Ø/3¯z©zô4
ó 1
ð 	
r+   r/  rŽ  )r&   r'   r(   r)   rð  r   rœ   rr  rp  r©   r®   r8   r    r   r  r   r4  rˆ  r‰  s   @r$   r�  r�  /  si   ø„ ñ
ð 5€HØ€Kà'+¸$ö ò
ò<ò+ò*ð SXóôð @Dóô@+ð
 ñ
ó ô
r+   r�  c                   ót   ‡ — 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|«      j                  «       | _        d| j                  _        || _        t
        ‰| �  |«       y )NrÏ   T)rd   rÿ   rÏ   rË   r×  rm  rœ   )r   Úquerysetr   r×  rä   s       €r$   rœ   zSubquery.__init__¡  s<   ø€ ä˜X w°Ó9×?Ñ?ÓAˆŒ
Ø"ˆ�
‰
ÔØˆŒ
Ü‰Ñ˜Õ&r+   c                 ó   — | j                   gS r”   ©rÏ   rD   s    r$   r©   zSubquery.get_source_expressions¨  s   € Ø—
‘
ˆ|Ðr+   c                 ó   — |d   | _         y ra  r°  r¬   s     r$   r®   zSubquery.set_source_expressions«  s   € Ø˜1‘Xˆ�
r+   c                 ó.   — | j                   j                  S r”   )rÏ   r   rD   s    r$   rÚ   zSubquery._resolve_output_field®  s   € Ø�z‰z×&Ñ&Ð&r+   c                 ób   •— t         ‰| �  «       }|j                  j                  «       |_        |S r”   )rm  r    rÏ   rÿ   )r   rÿ   rä   s     €r$   r    zSubquery.copy±  s'   ø€ Ü‘‘“ˆØ—k‘k×'Ñ'Ó)ˆŒØˆr+   c                 ó.   — | j                   j                  S r”   )rÏ   Úexternal_aliasesrD   s    r$   rµ  zSubquery.external_aliases¶  s   € à�z‰z×*Ñ*Ð*r+   c                 ó6   — | j                   j                  «       S r”   )rÏ   Úget_external_colsrD   s    r$   r·  zSubquery.get_external_colsº  s   € Ø�z‰z×+Ñ+Ó-Ð-r+   c                 óø   — |j                   j                  | «       i | j                  ¥|¥}| j                  j	                  ||«      \  }}|dd |d<   |xs |j                  d| j                  «      }||z  }||fS )NrÂ  rA   rË   rð  )rz  r’  r×  rÏ   r   r  rð  )	r   r    r   rð  r!   r†  Úsubquery_sqlr‡  r"   s	            r$   r   zSubquery.as_sql½  s‚   € Ø�‰×/Ñ/°Ô5Ø9˜TŸZ™ZÐ9¨=Ð9ˆØ#'§:¡:×#4Ñ#4°X¸zÓ#JÑ ˆ�jØ&2°1°RÐ&8ˆ˜
Ñ#àÒM˜×2Ñ2°:¸t¿}¹}ÓMˆØ˜Ñ(ˆØ�JˆÐr+   c                 ó:   — | j                   j                  | ¬«      S )N)Úwrapper)rÏ   r  rD   s    r$   r  zSubquery.get_group_by_colsÇ  s   € Ø�z‰z×+Ñ+°DÐ+Ó9Ð9r+   r”   )r&   r'   r(   r)   rð  rº   r1  rË   rœ   r©   r®   rÚ   r    r5  rµ  r·  r   r  rˆ  r‰  s   @r$   r¬  r¬  –  s\   ø„ ñð
  €HØÐØ!ÐØ€Hõ'òòò'ôð
 ñ+ó ð+ò.óö:r+   r¬  c                   óX   ‡ — e Zd ZdZ ej
                  «       ZdZˆ fd„Zd„ Z	ˆ fd„Z
ˆ xZS )ÚExistszEXISTS(%(subquery)s)Fc                 ód   •— t        ‰| �  |fi |¤Ž | j                  j                  «       | _        y r”   )rm  rœ   rÏ   Úexists)r   r®  r  rä   s      €r$   rœ   zExists.__init__Ð  s)   ø€ Ü‰Ñ˜Ñ, VÒ,Ø—Z‘Z×&Ñ&Ó(ˆ�
r+   c                 ól   — |j                   j                  j                  sdj                  |«      }||fS rq  )r   r�  rm  ro  r*  s       r$   r)  zExists.select_formatÔ  s3   € ð ×"Ñ"×+Ñ+×RÒRØ2×9Ñ9¸#Ó>ˆCØ�Fˆ{Ðr+   c                 óÆ   •— 	 t        ‰| �  |g|¢­i |¤ŽS # t        $ rA |j                  j                  }|j
                  sY y|j                  t        d«      «      cY S w xY w)N)z1=0r*   F)rm  r   r   r   r�  rm  ry  r:   )r   r    rP  r  r�  rä   s        €r$   r   zExists.as_sqlÜ  sb   ø€ ð	2Ü‘7‘> (Ð<¨TÒ<°VÑ<Ð<øÜò 	2Ø×*Ñ*×3Ñ3ˆHØ×BÒBÙ Ø×#Ñ#¤E¨%£LÓ1Ò1ð		2ús   ƒ –+A ÁA ÁA )r&   r'   r(   rð  r   rÖ   r   r1  rœ   r)  r   rˆ  r‰  s   @r$   r½  r½  Ë  s2   ø„ Ø%€HØ&�6×&Ñ&Ó(€LØ"Ðô)ò÷2ð 2r+   r½  zdjango.db.models.OrderByc                   óX   — e Zd ZdZdZdZdd„Zd„ Zd„ Zd„ Z	dd„Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)r  z%(expression)s %(ordering)sFNc                 ó®   — |r|rt        d«      ‚|du s|du rt        d«      ‚|| _        || _        || _        t	        |d«      st        d«      ‚|| _        y )Nz1nulls_first and nulls_last are mutually exclusiveFz7nulls_first and nulls_last values must be True or None.r8   z%expression must be an expression type)r-  Únulls_firstÚ
nulls_lastr   r9   ré   )r   ré   r   rÄ  rÅ  s        r$   rœ   zOrderBy.__init__ì  sb   € Ù™:ÜÐPÓQÐQØ˜%Ñ :°Ñ#6ÜÐVÓWÐWØ&ˆÔØ$ˆŒØ$ˆŒÜ�zÐ#7Ô8ÜÐDÓEÐEØ$ˆ�r+   c                 óx   — dj                  | j                  j                  | j                  | j                  «      S )Nz{}({}, descending={}))ro  rä   r&   ré   r   rD   s    r$   rp  zOrderBy.__repr__ø  s.   € Ø&×-Ñ-Ø�N‰N×#Ñ# T§_¡_°d·o±oó
ð 	
r+   c                 ó   — |d   | _         y ra  r+  r¬   s     r$   r®   zOrderBy.set_source_expressionsý  rb  r+   c                 ó   — | j                   gS r”   r+  rD   s    r$   r©   zOrderBy.get_source_expressions   r,  r+   c                 óR  — |xs | j                   }|j                  j                  r$| j                  rd|z  }ny| j                  rmd|z  }ng| j                  r(| j
                  r|j                  j                  sd|z  }n3| j                  r'| j
                  s|j                  j                  sd|z  }|j                  j                  | «       |j                  | j                  «      \  }}|| j
                  rdnddœ|¥}||j                  d«      z  }||z  j                  «       |fS )	Nz%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�  Ú supports_order_by_nulls_modifierrÅ  rÄ  r   Úorder_by_nulls_firstrz  r’  ry  ré   ÚcountÚrstrip)r   r    r   rð  r!   Úexpression_sqlr#   Úplaceholderss           r$   r   zOrderBy.as_sql  s
  € ØÒ,˜tŸ}™}ˆØ×Ñ×?Ò?Ø�ŠØ*¨XÑ5‘Ø×!Ò!Ø+¨hÑ6‘à�ŠØ—’ J×$7Ñ$7×$LÒ$Là8¸8ÑC‘Ø×!Ò!Ø—O’O¨
×(;Ñ(;×(PÒ(Pà<¸xÑG�Ø�‰×/Ñ/°Ô5Ø!)×!1Ñ!1°$·/±/Ó!BÑˆ˜à(Ø"&§/¢/™°uñ
ð ð
ˆð
 	�(—.‘.Ð!1Ó2Ñ2ˆØ˜<Ñ'×/Ñ/Ó1°6Ð9Ð9r+   c                 ó0  — |j                   j                  so|j                  j                  | j                  «      rJ| j                  «       }t        t        | j                  d¬«      d¬«      |_         |j                  ||«      S | j                  ||«      S )NT)rw  F)r‘  )	r�  rm  rz  rn  ré   r    r�  rt  r   )r   r    r   r    s       r$   Ú	as_oraclezOrderBy.as_oracle  s|   € ð ×#Ñ#×JÒJØ—‘×OÑOØ—‘ôð —9‘9“;ˆDÜ"Ü�T—_‘_¨4Ô0ØôˆDŒOð �4—;‘;˜x¨Ó4Ð4Ø�{‰{˜8 ZÓ0Ð0r+   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r”   rV  r  s      r$   r  zOrderBy.get_group_by_cols.  s9   € ØˆØ×1Ñ1Ó3ò 	4ˆFØ�K‰K˜×0Ñ0Ó2Õ3ð	4àˆr+   c                 ó–   — | j                    | _         | j                  rd| _        d | _        | S | j                  rd| _        d | _        | S r}   )r   rÄ  rÅ  rD   s    r$   r$  zOrderBy.reverse_ordering4  sL   € Ø"Ÿo™oÐ-ˆŒØ×ÒØ"ˆDŒOØ#ˆDÔð ˆð �_Š_Ø#ˆDÔØ"ˆDŒOØˆr+   c                 ó   — d| _         y rG   r\  rD   s    r$   r  zOrderBy.asc>  s	   € Øˆ�r+   c                 ó   — d| _         y r}   r\  rD   s    r$   r!  zOrderBy.descA  s	   € Øˆ�r+   )FNNr”   )r&   r'   r(   rð  ra   r,  rœ   rp  r®   r©   r   rÔ  r  r$  r  r!  r*   r+   r$   r  r  æ  sD   „ à,€HØ€KØ',Ð$ó
%ò
ò
#ò!ó:ò41ò"òò ór+   r  c                   ój   ‡ — e Zd ZdZdZdZ	 	 	 	 dˆ fd„	Zd„ Zd„ Zd„ Z	dd„Z
ˆ fd	„Zd
„ Zd„ Zd„ Zˆ xZS )ÚWindowz %(expression)s OVER (%(window)s)FTc                 óž  •— || _         || _        || _        t        |dd«      s"t	        d|j
                  j                  z  «      ‚| j                   �It        | j                   t        t        f«      s| j                   f| _         t        | j                   Ž | _         | j                  �~t        | j                  t        t        f«      rt        | j                  Ž | _        nFt        | j                  t        t        f«      rt        | j                  «      | _        nt	        d«      ‚t        ‰| �=  |¬«       | j!                  |«      d   | _        y )Nr3  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Úframerd   r-  rä   r&   r°   rO  r•  rO  rY  r˜   r±   rm  rœ   rµ   Úsource_expression)r   ré   rÜ  rÝ  rÞ  r   rä   s         €r$   rœ   zWindow.__init__M  s  ø€ ð )ˆÔØ ˆŒØˆŒ
ä�zÐ#6¸Ô>ÜØEØ×&Ñ&×/Ñ/ñ0óð ð
 ×ÑÐ(Ü˜d×/Ñ/´%¼°Ô?Ø%)×%6Ñ%6Ð$8�Ô!Ü .°×0AÑ0AÐ BˆDÔà�=‰=Ð$Ü˜$Ÿ-™-¬$´¨Ô7Ü +¨T¯]©]Ð ;�•Ü˜DŸM™M¬N¼CÐ+@ÔAÜ +¨D¯M©MÓ :�•ä ðHóð ô 	‰Ñ lÐÔ3Ø!%×!8Ñ!8¸Ó!DÀQÑ!GˆÕr+   c                 ó.   — | j                   j                  S r”   )rß  r   rD   s    r$   rÚ   zWindow._resolve_output_fieldq  s   € Ø×%Ñ%×2Ñ2Ð2r+   c                 ó^   — | j                   | j                  | j                  | j                  gS r”   ©rß  rÜ  rÝ  rÞ  rD   s    r$   r©   zWindow.get_source_expressionst  s%   € Ø×&Ñ&¨×(9Ñ(9¸4¿=¹=È$Ï*É*ÐUÐUr+   c                 ó:   — |\  | _         | _        | _        | _        y r”   râ  r¬   s     r$   r®   zWindow.set_source_expressionsw  s   € ØOTÑLˆÔ Ô 1°4´=À$Å*r+   c                 óò  — |j                   j                  | «       |j                  j                  st	        d«      ‚|j                  | j                  «      \  }}g d}}| j                  �@| j                  j                  ||d¬«      \  }}	|j                  |«       |t        |	«      z  }| j                  �=|j                  | j                  «      \  }
}|j                  |
«       |t        |«      z  }| j                  r=|j                  | j                  «      \  }}|j                  |«       |t        |«      z  }|xs | j                  }||dj                  |«      j                  «       dœz  g |¢|¢­fS )Nz1This backend does not support window expressions.r*   zPARTITION BY %(expressions)s)r    r   rð  rÓ  )ré   Úwindow)rz  r’  r�  Úsupports_over_clauser   ry  rß  rÜ  r   rN  rO  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_sqlz  sj  € Ø�‰×/Ñ/°Ô5Ø×"Ñ"×7Ò7Ü#Ð$WÓXÐXØ#×+Ñ+¨D×,BÑ,BÓCÑˆ�&Ø$&¨�Mˆ
à×ÑÐ(Ø#'×#4Ñ#4×#;Ñ#;Ø!Ø%Ø7ð $<ó $Ñ ˆH�jð
 ×Ñ˜hÔ'ØœU :Ó.Ñ.ˆMà�=‰=Ð$Ø&.×&6Ñ&6°t·}±}Ó&EÑ#ˆI�|Ø×Ñ˜iÔ(ØœU <Ó0Ñ0ˆMà�:Š:Ø&.×&6Ñ&6°t·z±zÓ&BÑ#ˆI�|Ø×Ñ˜iÔ(ØœU <Ó0Ñ0ˆMàÒ,˜tŸ}™}ˆð  h¸#¿(¹(À:Ó:N×:TÑ:TÓ:VÑWÑWØ%ˆfÐ%�}Ñ%ð
ð 	
r+   c                 ó6  •— t        | j                  t        j                  «      rc| j	                  «       } |j
                  «       }t        j                  «       |d   _         |j                  |«       t        t        |�+  ||«      S | j                  ||«      S ra  )r°   r   r   r   r    r©   rë   r®   rm  rÚ  r%   r   )r   r    r   r    r  rä   s        €r$   r%   zWindow.as_sqlite›  s‚   ø€ Ü�d×'Ñ'¬×)<Ñ)<Ô=à—9‘9“;ˆDØ!< ×!<Ñ!<Ó!>ÐÜ17×1BÑ1BÓ1DÐ˜qÑ!Ô.Ø'ˆD×'Ñ'Ð(:Ô;Üœ Ñ0°¸:ÓFÐFØ�{‰{˜8 ZÓ0Ð0r+   c           	      óô   — dj                  t        | j                  «      | j                  rdt        | j                  «      z   ndt        | j                  xs d«      t        | j
                  xs d«      «      S )Nz{} OVER ({}{}{})zPARTITION BY rS  )ro  r±   rß  rÜ  rÝ  rÞ  rD   s    r$   rr  zWindow.__str__¥  sb   € Ø!×(Ñ(Ü�×&Ñ&Ó'Ø8<×8IÒ8IˆOœc $×"3Ñ"3Ó4Ò4ÈrÜ�—‘Ò# Ó$Ü�—
‘
Ò ˜bÓ!ó	
ð 	
r+   c                 ó<   — d| j                   j                  ›d| ›d�S r|  r  rD   s    r$   rp  zWindow.__repr__­  r€  r+   c                 óÞ   — g }| j                   r)|j                  | j                   j                  «       «       | j                  �)|j                  | j                  j                  «       «       |S r”   )rÜ  r  r  rÝ  )r   rW  s     r$   r  zWindow.get_group_by_cols°  sX   € ØˆØ×ÒØ× Ñ  ×!2Ñ!2×!DÑ!DÓ!FÔGØ�=‰=Ð$Ø× Ñ  §¡×!@Ñ!@Ó!BÔCØÐr+   )NNNNr”   )r&   r'   r(   rð  rº   rÄ   rœ   rÚ   r©   r®   r   r%   rr  rp  r  rˆ  r‰  s   @r$   rÚ  rÚ  E  sV   ø„ Ø1€Hð ÐØÐð
 ØØØõ"HòH3òVòUó
ôB1ò
ò<ör+   rÚ  c                   ó"   — e Zd ZdZdZdZdZd„ Zy)ÚWindowFrameExclusionzCURRENT ROWÚGROUPÚTIESz	NO OTHERSc                 óL   — | j                   j                  › d| j                  › �S r;  )rä   r(   Ú_name_rD   s    r$   rp  zWindowFrameExclusion.__repr__¿  s"   € Ø—.‘.×-Ñ-Ð.¨a°·±¨}Ð=Ð=r+   N)r&   r'   r(   ÚCURRENT_ROWrö  r÷  Ú	NO_OTHERSrp  r*   r+   r$   rõ  rõ  ¹  s   „ Ø€KØ€EØ€DØ€Ió>r+   rõ  c                   óL   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zy)ÚWindowFrameaV  
    Model the frame clause in window expressions. There are two types of frame
    clauses which are subclasses, however, all processing and validation (by no
    means intended to be complete) is done here. Thus, providing an end for a
    frame is optional (the default is UNBOUNDED FOLLOWING, which is the last
    row in the frame).
    z7%(frame_type)s BETWEEN %(start)s AND %(end)s%(exclude)sNc                 óÂ   — t        |«      | _        t        |«      | _        t        |t        t
        f«      s"t        | j                  j                  › d�«      ‚|| _	        y )Nz3.exclusion must be a WindowFrameExclusion instance.)
r:   rÄ  Úendr°   r	   rõ  r¦  rä   r(   Ú	exclusion)r   rÄ  rÿ  r   s       r$   rœ   zWindowFrame.__init__Î  sX   € Ü˜5“\ˆŒ
Ü˜“:ˆŒÜ˜)¤hÔ0DÐ%EÔFÜØ—>‘>×.Ñ.Ð/ð 01ð 1óð ð #ˆ�r+   c                 ó"   — |\  | _         | _        y r”   ©rÄ  rÿ  r¬   s     r$   r®   z"WindowFrame.set_source_expressionsØ  s   € Ø$ÑˆŒ
�D•Hr+   c                 ó2   — | j                   | j                  gS r”   r  rD   s    r$   r©   z"WindowFrame.get_source_expressionsÛ  s   € Ø—
‘
˜DŸH™HÐ%Ð%r+   c                 óN   — | j                   €yd| j                   j                  › �S )NrS  z	 EXCLUDE )r   rè   rD   s    r$   Úget_exclusionzWindowFrame.get_exclusionÞ  s'   € Ø�>‰>Ð!ØØ˜4Ÿ>™>×/Ñ/Ð0Ð1Ð1r+   c                 ój  — |j                   j                  | «       | j                  || j                  j                  | j
                  j                  «      \  }}| j                  r!|j                  j                  st        d«      ‚| j                  | j                  ||| j                  «       dœz  g fS )Nz6This backend does not support window frame exclusions.©Ú
frame_typerÄ  rÿ  Úexclude)rz  r’  Úwindow_frame_start_endrÄ  rè   rÿ  r   r�  Úsupports_frame_exclusionr   rð  r  r  )r   r    r   rÄ  rÿ  s        r$   r   zWindowFrame.as_sqlã  s£   € Ø�‰×/Ñ/°Ô5Ø×0Ñ0Ø˜Ÿ
™
×(Ñ(¨$¯(©(¯.©.ó
‰
ˆˆsð �>Š> *×"5Ñ"5×"NÒ"NÜ#ØHóð ð �M‰Mà"Ÿo™oØØØ×-Ñ-Ó/ñ	ñð ð	
ð 		
r+   c                 ó<   — d| j                   j                  ›d| ›d�S r|  r  rD   s    r$   rp  zWindowFrame.__repr__÷  r€  r+   c                 ó   — g S r”   r*   rD   s    r$   r  zWindowFrame.get_group_by_colsú  rª   r+   c                 ó&  — | j                   j                  �V| j                   j                  dk  r=dt        | j                   j                  «      t        j                  j
                  fz  }nÇ| j                   j                  �4| j                   j                  dk(  rt        j                  j                  }n}| j                   j                  �M| j                   j                  dkD  r4d| j                   j                  t        j                  j                  fz  }nt        j                  j                  }| j                  j                  �M| j                  j                  dkD  r4d| j                  j                  t        j                  j                  fz  }nÐ| j                  j                  �4| j                  j                  dk(  rt        j                  j                  }n†| j                  j                  �V| j                  j                  dk  r=dt        | j                  j                  «      t        j                  j
                  fz  }nt        j                  j                  }| j                  | j                  ||| j                  «       dœz  S )Nr   z%d %sr  )rÄ  rè   Úabsr   rz  Ú	PRECEDINGrú  Ú	FOLLOWINGÚUNBOUNDED_PRECEDINGrÿ  ÚUNBOUNDED_FOLLOWINGrð  r  r  )r   rÄ  rÿ  s      r$   rr  zWindowFrame.__str__ý  s¹  € Ø�:‰:×ÑÐ'¨D¯J©J×,<Ñ,<¸qÒ,@Øœs 4§:¡:×#3Ñ#3Ó4´j·n±n×6NÑ6NÐOÑO‰EØ�Z‰Z×ÑÐ)¨d¯j©j×.>Ñ.>À!Ò.CÜ—N‘N×.Ñ.‰EØ�Z‰Z×ÑÐ)¨d¯j©j×.>Ñ.>ÀÒ.BØ˜tŸz™z×/Ñ/´·±×1IÑ1IÐJÑJ‰Eä—N‘N×6Ñ6ˆEà�8‰8�>‰>Ð%¨$¯(©(¯.©.¸1Ò*<Ø˜TŸX™XŸ^™^¬Z¯^©^×-EÑ-EÐFÑF‰CØ�X‰X�^‰^Ð'¨D¯H©H¯N©N¸aÒ,?Ü—.‘.×,Ñ,‰CØ�X‰X�^‰^Ð'¨D¯H©H¯N©N¸QÒ,>ØœS §¡§¡Ó0´*·.±.×2JÑ2JÐKÑK‰Cä—.‘.×4Ñ4ˆCØ�}‰}ØŸ/™/ØØØ×)Ñ)Ó+ñ	 
ñ 
ð 	
r+   c                 ó   — t        d«      ‚)Nz3Subclasses must implement window_frame_start_end().rŒ   ©r   r   rÄ  rÿ  s       r$   r
  z"WindowFrame.window_frame_start_end  s   € Ü!Ð"WÓXÐXr+   rü  )r&   r'   r(   r)   rð  rœ   r®   r©   r  r   rp  r  rr  r
  r*   r+   r$   rý  rý  Ã  s=   „ ñð I€Hó#ò%ò&ò2ò

ò(<òò
ó2Yr+   rý  c                   ó   — e Zd ZdZd„ Zy)ÚRowRangeÚROWSc                 ó:   — |j                   j                  ||«      S r”   )rz  Úwindow_frame_rows_start_endr  s       r$   r
  zRowRange.window_frame_start_end  s   € Ø�~‰~×9Ñ9¸%ÀÓEÐEr+   N©r&   r'   r(   r  r
  r*   r+   r$   r  r    s   „ Ø€JóFr+   r  c                   ó   — e Zd ZdZd„ Zy)Ú
ValueRangeÚRANGEc                 ó:   — |j                   j                  ||«      S r”   )rz  Úwindow_frame_range_start_endr  s       r$   r
  z!ValueRange.window_frame_start_end$  s   € Ø�~‰~×:Ñ:¸5À#ÓFÐFr+   Nr  r*   r+   r$   r  r  !  s   „ Ø€JóGr+   r  )fr    r
  rW  r=  Ú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˜   r8  rI   rC   rU   rY   r]   ÚPositiveIntegerFieldrO   rï   rë   r   ri   rz   rm   rp   ru   r•  Úfrom_iterabler€  r  r‚  r�  Ú_connector_combinationsr\  r`  ÚdrG  r=   Úfield_typesr]  r^  r_  rX  ri  r;   rƒ  r„  r²   r²  r½  r¢  rÐ  r:   r  r"  r&  r4  rB  rO  rY  r^  r•   rt  r�  r¬  r½  r  rÚ  rõ  rý  r  r  )r=   s   0r$   ú<module>r4     s  ðÛ Û Û Û Ý #Ý Ý Ý Ý Ý ç LÑ Lß BÑ BÝ #Ý 1Ý *Ý 4ß BÝ /÷ñ ÷ A'ñ A'÷HKñ Kð\
 ô!#� ó !#ó ð!#ðp �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nð
öð ð 	à×+Ñ+Ø×+Ñ+Ø×+Ñ+ðð
ñ 	
òð0 �N‰NØ�N‰NØ�N‰Nð �N‰NØ�N‰NØ�N‰Nð	
öð ð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ×Ñ × 1Ñ 1°6×3DÑ3DÐEØ× Ñ  &×"5Ñ"5°v×7JÑ7JÐKð
ñ 	
òð4 �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nð
öð ð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ× Ñ  &×"3Ñ"3°V×5FÑ5FÐGØ×Ñ × 3Ñ 3°V×5FÑ5FÐGð	
ñ 	
òð* ×ÑØ×ÑØ×#Ñ#Ø×$Ñ$Ø×Ñð
ö	ð ð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKð
ñ 	
òð2 �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nð
öð ð 	‘4ØˆE×Ññ  ð ×'Ñ'Ø×'Ñ'Ø×%Ñ%ð#ô ó ó	
ñ 		
òð, 	�‰à×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNØ×!Ñ! 6×#3Ñ#3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×Ñ˜v×3Ñ3°V×5EÑ5EÐFØ×!Ñ! 6×#3Ñ#3°V×5EÑ5EÐFð
ðð 	�‰à×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNØ×Ñ˜v×/Ñ/°×1EÑ1EÐFØ×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#3Ñ#3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×Ñ˜v×3Ñ3°V×5EÑ5EÐFØ×Ñ˜v×/Ñ/°×1EÑ1EÐFð
ððOwÐ ñr % TÓ*Ð ò	Að 
!ò D€AØ"#§'¡'£)ò DÑˆ	�;Ø +ò 	DÑˆC��fÙ& s¨I°s¸FÕCñ	DñDðDð €×Ñ˜SÔ!ñ!ó "ð!ôcEÐ+¨Zô cEôL0Ð+ô 0ôf
Ð,ô 
ñ Ð*Ô+ô,ˆ
ó ,ó ,ð,ô^"�qô "ôJ
ˆqô 
ô6UˆQô 6Uñr Ð-Ô.ôeYÐ˜zó eYó /ðeYñP Ð.Ô/ôMÐ 
ó Mó 0ðMô` 
ˆZô  
ôFˆ:ô ô$�jô $ôN$6ˆ*ô $6ôN&ˆ*ô &ôR�Tô ô80�.ô 0ñ  Ð:Ô;ô!/Ð*¨Jó !/ó <ð!/ôH0Ð)ô 0ñf Ð-Ô.ôLNˆ:ó LNó /ðLNñ^ Ð-Ô.ôc
Ð˜zó c
ó /ðc
ôL2:ˆ~˜zô 2:ôj2ˆXô 2ñ6 Ð0Ô1ô[ˆjó [ó 2ð[ô|qÐ ô qôh>˜4ô >ôTY�*ô TYônFˆ{ô FôG�õ Gùòs/ùò"ùò$ùò ùòs!   Ã,^,ÅA0^1Ç:B^6Ë	,^;
Ì=A_ 