§
    *‚Kg€M  ã                   ó¸  — d Z ddlZddlZddlZg d¢Zdj        Zdj        Zdj        Z G d„ de	¦  «        Z
ej        ej        z   d	z   Zed
z   Zd„  e ed¦  «        ¦  «         e eee¦  «        ¦  «        z
  D ¦   «         Ze                      ed¦  «        d ed¦  «        di¦  «          ej        d ej        e¦  «        z  ¦  «        j        Zd„ Z ej        d¦  «        j        Zd„ Zd„ Zg d¢Zg d¢Zdeefd„Z  G d„ de!¦  «        Z"dZ#e#dz   Z$ ej        de#z   dz   e$z   dz   ej%        ej&        z  ¦  «        Z' G d „ d!e!¦  «        Z( G d"„ d#e(¦  «        Z)dS )$a.
  
Here's a sample session to show how to use this module.
At the moment, this is the only documentation.

The Basics
----------

Importing is easy...

   >>> from http import cookies

Most of the time you start by creating a cookie.

   >>> C = cookies.SimpleCookie()

Once you've created your Cookie, you can add values just as if it were
a dictionary.

   >>> C = cookies.SimpleCookie()
   >>> C["fig"] = "newton"
   >>> C["sugar"] = "wafer"
   >>> C.output()
   'Set-Cookie: fig=newton\r\nSet-Cookie: sugar=wafer'

Notice that the printable representation of a Cookie is the
appropriate format for a Set-Cookie: header.  This is the
default behavior.  You can change the header and printed
attributes by using the .output() function

   >>> C = cookies.SimpleCookie()
   >>> C["rocky"] = "road"
   >>> C["rocky"]["path"] = "/cookie"
   >>> print(C.output(header="Cookie:"))
   Cookie: rocky=road; Path=/cookie
   >>> print(C.output(attrs=[], header="Cookie:"))
   Cookie: rocky=road

The load() method of a Cookie extracts cookies from a string.  In a
CGI script, you would use this method to extract the cookies from the
HTTP_COOKIE environment variable.

   >>> C = cookies.SimpleCookie()
   >>> C.load("chips=ahoy; vienna=finger")
   >>> C.output()
   'Set-Cookie: chips=ahoy\r\nSet-Cookie: vienna=finger'

The load() method is darn-tootin smart about identifying cookies
within a string.  Escaped quotation marks, nested semicolons, and other
such trickeries do not confuse it.

   >>> C = cookies.SimpleCookie()
   >>> C.load('keebler="E=everybody; L=\\"Loves\\"; fudge=\\012;";')
   >>> print(C)
   Set-Cookie: keebler="E=everybody; L=\"Loves\"; fudge=\012;"

Each element of the Cookie also supports all of the RFC 2109
Cookie attributes.  Here's an example which sets the Path
attribute.

   >>> C = cookies.SimpleCookie()
   >>> C["oreo"] = "doublestuff"
   >>> C["oreo"]["path"] = "/"
   >>> print(C)
   Set-Cookie: oreo=doublestuff; Path=/

Each dictionary element has a 'value' attribute, which gives you
back the value associated with the key.

   >>> C = cookies.SimpleCookie()
   >>> C["twix"] = "none for you"
   >>> C["twix"].value
   'none for you'

The SimpleCookie expects that all values should be standard strings.
Just to be sure, SimpleCookie invokes the str() builtin to convert
the value to a string, when the values are set dictionary-style.

   >>> C = cookies.SimpleCookie()
   >>> C["number"] = 7
   >>> C["string"] = "seven"
   >>> C["number"].value
   '7'
   >>> C["string"].value
   'seven'
   >>> C.output()
   'Set-Cookie: number=7\r\nSet-Cookie: string=seven'

Finis.
é    N)ÚCookieErrorÚ
BaseCookieÚSimpleCookieÚ z; ú c                   ó   — e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© ó    ú#/usr/lib/python3.11/http/cookies.pyr   r   ‘   s   € € € € € Ø€Dr   r   z!#$%&'*+-.^_`|~:z ()/<=>?@[]{}c                 ó   — i | ]}|d |z  “Œ	S )z\%03or   )Ú.0Úns     r   ú
<dictcomp>r   ¥   s4   € ð Jð Jð JØð �(˜Q‘,ð Jð Jð Jr   é   ú"ú\"ú\z\\z[%s]+c                 óh   — | �t          | ¦  «        r| S d|                      t          ¦  «        z   dz   S )zãQuote a string for use in a cookie header.

    If the string does not need to be double-quoted, then just return the
    string.  Otherwise, surround the string in doublequotes and quote
    (with a \) special characters.
    Nr   )Ú_is_legal_keyÚ	translateÚ_Translator©Ústrs    r   Ú_quoter   ®   s6   € ð €{•m CÑ(Ô(€{Øˆ
à�S—]’]¥;Ñ/Ô/Ñ/°#Ñ5Ð5r   z\\(?:([0-3][0-7][0-7])|(.))c                 óh   — | d         r#t          t          | d         d¦  «        ¦  «        S | d         S )Né   é   é   )ÚchrÚint)Úms    r   Ú_unquote_replacer%   ½   s1   € Øˆ„tð Ý•3�q˜”t˜Q‘<”<Ñ Ô Ð à�Œtˆr   c                 ó¢   — | �t          | ¦  «        dk     r| S | d         dk    s| d         dk    r| S | dd…         } t          t          | ¦  «        S )Nr!   r   r   éÿÿÿÿr   )ÚlenÚ_unquote_subr%   r   s    r   Ú_unquoter*   Ã   s\   € ð €{•c˜#‘h”h ’l�lØˆ
Ø
ˆ1„v�‚}€}˜˜Bœ 3š˜Øˆ
ð ˆa�ˆdŒ)€Cõ Õ(¨#Ñ.Ô.Ð.r   )ÚMonÚTueÚWedÚThuÚFriÚSatÚSun)NÚJanÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecc           	      ó†   — ddl m}m }  |¦   «         } ||| z   ¦  «        \	  }}}}	}
}}}}d||         |||         ||	|
|fz  S )Nr   )ÚgmtimeÚtimez#%s, %02d %3s %4d %02d:%02d:%02d GMT)r@   r?   )ÚfutureÚweekdaynameÚ	monthnamer?   r@   ÚnowÚyearÚmonthÚdayÚhhÚmmÚssÚwdÚyÚzs                  r   Ú_getdaterN   ä   su   € Ø!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ø
ˆ$‰&Œ&€CØ-3¨V°C¸&±LÑ-AÔ-AÑ*€Dˆ%��b˜"˜b " a¨Ø0Ø˜ŒO˜S )¨EÔ"2°D¸"¸bÀ"ÐEñFð Fr   c            
       ó  — e Zd ZdZdddddddd	d
dœ	ZddhZd„ Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Zd!d„Zd„ Zej        Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd"d„ZeZd„ Zd!d„Zd!d „Z eej        ¦  «        ZdS )#ÚMorselaC  A class to hold ONE (key, value) pair.

    In a cookie, each such pair may have several attributes, so this class is
    used to keep the attributes associated with the appropriate key,value pair.
    This class also includes a coded_value attribute, which is used to hold
    the network representation of the value.
    ÚexpiresÚPathÚCommentÚDomainzMax-AgeÚSecureÚHttpOnlyÚVersionÚSameSite)	rQ   ÚpathÚcommentÚdomainúmax-ageÚsecureÚhttponlyÚversionÚsamesiter]   r^   c                 ó|   — d x| _         x| _        | _        | j        D ]}t                               | |d¦  «         Œd S )Nr   )Ú_keyÚ_valueÚ_coded_valueÚ	_reservedÚdictÚ__setitem__)ÚselfÚkeys     r   Ú__init__zMorsel.__init__  sP   € à6:Ð:ˆŒ	Ð:�D”K $Ô"3ð ”>ð 	,ð 	,ˆCÝ×Ò˜T 3¨Ñ+Ô+Ð+Ð+ð	,ð 	,r   c                 ó   — | j         S ©N)rb   ©rh   s    r   ri   z
Morsel.key  s
   € àŒyÐr   c                 ó   — | j         S rl   )rc   rm   s    r   ÚvaluezMorsel.value  s
   € àŒ{Ðr   c                 ó   — | j         S rl   )rd   rm   s    r   Úcoded_valuezMorsel.coded_value  s   € àÔ Ð r   c                 óœ   — |                      ¦   «         }|| j        vrt          d|›�¦  «        ‚t                               | ||¦  «         d S ©NzInvalid attribute )Úlowerre   r   rf   rg   )rh   ÚKÚVs      r   rg   zMorsel.__setitem__#  sO   € Ø�GŠG‰IŒIˆØ�D”NÐ"Ð"Ý�+¸¸Ð;Ñ<Ô<Ð<Ý×Ò˜˜q !Ñ$Ô$Ð$Ð$Ð$r   Nc                 ó˜   — |                      ¦   «         }|| j        vrt          d|›�¦  «        ‚t                               | ||¦  «        S rs   )rt   re   r   rf   Ú
setdefault)rh   ri   Úvals      r   rx   zMorsel.setdefault)  sG   € Ø�iŠi‰kŒkˆØ�d”nÐ$Ð$Ý�+¸¸Ð=Ñ>Ô>Ð>Ý�Š˜t S¨#Ñ.Ô.Ð.r   c                 óÐ   — t          |t          ¦  «        st          S t                               | |¦  «        o/| j        |j        k    o| j        |j        k    o| j        |j        k    S rl   )Ú
isinstancerP   ÚNotImplementedrf   Ú__eq__rc   rb   rd   ©rh   Úmorsels     r   r}   zMorsel.__eq__/  sg   € Ý˜&¥&Ñ)Ô)ð 	"Ý!Ð!Ý—’˜D &Ñ)Ô)ð 9Ø”˜vœ}Ò,ð9à”	˜Vœ[Ò(ð9ð Ô! VÔ%8Ò8ð	:r   c                 ó–   — t          ¦   «         }t                               || ¦  «         |j                             | j        ¦  «         |S rl   )rP   rf   ÚupdateÚ__dict__r~   s     r   ÚcopyzMorsel.copy9  s<   € Ý‘”ˆÝ�Š�F˜DÑ!Ô!Ð!ØŒ×Ò˜tœ}Ñ-Ô-Ð-Øˆr   c                 óö   — i }t          |¦  «                             ¦   «         D ]9\  }}|                     ¦   «         }|| j        vrt	          d|›�¦  «        ‚|||<   Œ:t                                | |¦  «         d S rs   )rf   Úitemsrt   re   r   r�   )rh   ÚvaluesÚdatari   ry   s        r   r�   zMorsel.update?  s€   € ØˆÝ˜V™œ×*Ò*Ñ,Ô,ð 	ð 	‰HˆC�Ø—)’)‘+”+ˆCØ˜$œ.Ð(Ð(Ý!�k¸C¸CÐ"AÑBÔBÐBØˆD�‰IˆIÝ�Š�D˜$ÑÔÐÐÐr   c                 ó8   — |                      ¦   «         | j        v S rl   )rt   re   )rh   ru   s     r   ÚisReservedKeyzMorsel.isReservedKeyH  s   € Ø�wŠw‰yŒy˜DœNÐ*Ð*r   c                 óÌ   — |                      ¦   «         | j        v rt          d|›�¦  «        ‚t          |¦  «        st          d|›�¦  «        ‚|| _        || _        || _        d S )NzAttempt to set a reserved key zIllegal key )rt   re   r   r   rb   rc   rd   )rh   ri   ry   Ú	coded_vals       r   Úsetz
Morsel.setK  so   € Ø�9Š9‰;Œ;˜$œ.Ð(Ð(Ý�+ÀCÀCÐIÑJÔJÐJÝ˜SÑ!Ô!ð 	9Ý�+°#°#Ð7Ñ8Ô8Ð8ð ˆŒ	ØˆŒØ%ˆÔÐÐr   c                 ó,   — | j         | j        | j        dœS )N)ri   ro   rq   ©rb   rc   rd   rm   s    r   Ú__getstate__zMorsel.__getstate__V  s!   € à”9Ø”[ØÔ,ð
ð 
ð 	
r   c                 óT   — |d         | _         |d         | _        |d         | _        d S )Nri   ro   rq   rŽ   )rh   Ústates     r   Ú__setstate__zMorsel.__setstate__]  s+   € Ø˜%”LˆŒ	Ø˜G”nˆŒØ! -Ô0ˆÔÐÐr   úSet-Cookie:c                 ó6   — |›d|                       |¦  «        ›�S )Nr   )ÚOutputString)rh   ÚattrsÚheaders      r   ÚoutputzMorsel.outputb  s"   € Ø ˜&˜& $×"3Ò"3°EÑ":Ô":Ð":Ð;Ð;r   c                 óL   — d| j         j        ›d|                      ¦   «         ›d�S )Nú<ú: ú>)Ú	__class__r	   r•   rm   s    r   Ú__repr__zMorsel.__repr__g  s,   € € Ø!œ^Ô4Ð4Ð4°d×6GÒ6GÑ6IÔ6IÐ6IÐ6IÐJÐJr   c                 óZ   — d|                       |¦  «                             dd¦  «        z  S )Nz—
        <script type="text/javascript">
        <!-- begin hiding
        document.cookie = "%s";
        // end hiding -->
        </script>
        r   r   )r•   Úreplace)rh   r–   s     r   Ú	js_outputzMorsel.js_outputj  s4   € ðð × Ò  Ñ'Ô'×/Ò/°°UÑ;Ô;ñ=ð 	=r   c                 óú  — g }|j         } || j        ›d| j        ›�¦  «         |€| j        }t	          |                      ¦   «         ¦  «        }|D �]\  }}|dk    rŒ||vrŒ|dk    r>t          |t          ¦  «        r) || j        |         ›dt          |¦  «        ›�¦  «         ŒV|dk    r1t          |t          ¦  «        r |d| j        |         |fz  ¦  «         Œ�|dk    r>t          |t          ¦  «        r) || j        |         ›dt          |¦  «        ›�¦  «         ŒÑ|| j        v r'|r# |t          | j        |         ¦  «        ¦  «         �Œ || j        |         ›d|›�¦  «         �Œt          |¦  «        S )Nú=r   rQ   r\   z%s=%drZ   )Úappendri   rq   re   Úsortedr…   r{   r#   rN   r   r   Ú_flagsÚ_semispacejoin)rh   r–   Úresultr¤   r…   ri   ro   s          r   r•   zMorsel.OutputStringt  s»  € ð ˆØ”ˆð 	ˆ˜$œ(˜(˜( DÔ$4Ð$4Ð5Ñ6Ô6Ð6ð ˆ=Ø”NˆEÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	?ñ 	?‰JˆC�Ø˜Š{ˆ{ØØ˜%ÐÐØØ�iÒÐ¥J¨uµcÑ$:Ô$:ÐØ� $¤.°Ô"5Ð"5Ð"5µxÀ±´°ÐGÑHÔHÐHÐHØ˜	Ò!Ð!¥j°½Ñ&<Ô&<Ð!Ø��w $¤.°Ô"5°uÐ!=Ñ=Ñ>Ô>Ð>Ð>Ø˜	Ò!Ð!¥j°½Ñ&<Ô&<Ð!Ø� $¤.°Ô"5Ð"5Ð"5µv¸e±}´}°}ÐEÑFÔFÐFÐFØ˜œÐ#Ð#Øð 5Ø�F�3˜tœ~¨cÔ2Ñ3Ô3Ñ4Ô4Ð4ùà� $¤.°Ô"5Ð"5Ð"5°u°uÐ=Ñ>Ô>Ð>Ñ>õ ˜fÑ%Ô%Ð%r   rl   )Nr“   )r	   r
   r   Ú__doc__re   r¦   rj   Úpropertyri   ro   rq   rg   rx   r}   ÚobjectÚ__ne__rƒ   r�   r‰   rŒ   r�   r’   r˜   Ú__str__rž   r¡   r•   ÚclassmethodÚtypesÚGenericAliasÚ__class_getitem__r   r   r   rP   rP   ì   s¯  € € € € € ðð ð* ØØØØØØØØð
ð 
€Ið ˜
Ð#€Fð,ð ,ð ,ð ðð ñ „Xðð ðð ñ „Xðð ð!ð !ñ „Xð!ð%ð %ð %ð/ð /ð /ð /ð:ð :ð :ð Œ]€Fðð ð ð ð  ð  ð+ð +ð +ð	&ð 	&ð 	&ð
ð 
ð 
ð1ð 1ð 1ð
<ð <ð <ð <ð €GðKð Kð Kð=ð =ð =ð =ð&ð &ð &ð &ðB $˜ EÔ$6Ñ7Ô7ÐÐÐr   rP   z,\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=z\[\]zŒ
    \s*                            # Optional whitespace at start of cookie
    (?P<key>                       # Start of group 'key'
    [a	  ]+?   # Any word of at least one letter
    )                              # End of group 'key'
    (                              # Optional group: there may not be a value.
    \s*=\s*                          # Equal Sign
    (?P<val>                         # Start of group 'val'
    "(?:[^\\"]|\\.)*"                  # Any doublequoted string
    |                                  # or
    \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT  # Special case for "expires" attr
    |                                  # or
    [a-  ]*      # Any word or empty string
    )                                # End of group 'val'
    )?                             # End of optional value group
    \s*                            # Any number of spaces.
    (\s+|;|$)                      # Ending either at space, semicolon, or EOS.
    c                   ó\   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zd„ Zdd
„Z	e	Z
d„ Zdd„Zd„ Zefd„ZdS )r   z'A container class for a set of Morsels.c                 ó
   — ||fS )a
  real_value, coded_value = value_decode(STRING)
        Called prior to setting a cookie's value from the network
        representation.  The VALUE is the value read from HTTP
        header.
        Override this function to modify the behavior of cookies.
        r   ©rh   ry   s     r   Úvalue_decodezBaseCookie.value_decode½  s   € ð �Cˆxˆr   c                 ó(   — t          |¦  «        }||fS )zýreal_value, coded_value = value_encode(VALUE)
        Called prior to setting a cookie's value from the dictionary
        representation.  The VALUE is the value being assigned.
        Override this function to modify the behavior of cookies.
        r   ©rh   ry   Ústrvals      r   Úvalue_encodezBaseCookie.value_encodeÆ  s   € õ �S‘”ˆØ�vˆ~Ðr   Nc                 ó8   — |r|                       |¦  «         d S d S rl   )Úload)rh   Úinputs     r   rj   zBaseCookie.__init__Ï  s,   € Øð 	Ø�IŠI�eÑÔÐÐÐð	ð 	r   c                 ó°   — |                       |t          ¦   «         ¦  «        }|                     |||¦  «         t                               | ||¦  «         dS )z+Private method for setting a cookie's valueN)ÚgetrP   rŒ   rf   rg   )rh   ri   Ú
real_valuerq   ÚMs        r   Ú__setzBaseCookie.__setÓ  sM   € à�HŠH�S�&™(œ(Ñ#Ô#ˆØ	�Šˆc�:˜{Ñ+Ô+Ð+Ý×Ò˜˜s AÑ&Ô&Ð&Ð&Ð&r   c                 óÊ   — t          |t          ¦  «        rt                               | ||¦  «         dS |                      |¦  «        \  }}|                      |||¦  «         dS )zDictionary style assignment.N)r{   rP   rf   rg   r¹   Ú_BaseCookie__set)rh   ri   ro   ÚrvalÚcvals        r   rg   zBaseCookie.__setitem__Ù  se   € å�e�VÑ$Ô$ð 	(å×Ò˜T 3¨Ñ.Ô.Ð.Ð.Ð.à×*Ò*¨5Ñ1Ô1‰JˆD�$Ø�JŠJ�s˜D $Ñ'Ô'Ð'Ð'Ð'r   r“   ú
c                 óÔ   — g }t          |                      ¦   «         ¦  «        }|D ].\  }}|                     |                     ||¦  «        ¦  «         Œ/|                     |¦  «        S )z"Return a string suitable for HTTP.)r¥   r…   r¤   r˜   Újoin)rh   r–   r—   Úsepr¨   r…   ri   ro   s           r   r˜   zBaseCookie.outputâ  sd   € àˆÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	7ð 	7‰JˆC�Ø�MŠM˜%Ÿ,š, u¨fÑ5Ô5Ñ6Ô6Ð6Ð6Ø�xŠx˜ÑÔÐr   c                 óð   — g }t          |                      ¦   «         ¦  «        }|D ]1\  }}|                     |›dt          |j        ¦  «        ›�¦  «         Œ2d| j        j        ›dt          |¦  «        ›d�S )Nr£   rš   r›   rœ   )r¥   r…   r¤   Úreprro   r�   r	   Ú
_spacejoin)rh   Úlr…   ri   ro   s        r   rž   zBaseCookie.__repr__ì  s   € ØˆÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	9ð 	9‰JˆC�Ø�HŠH   ¥T¨%¬+Ñ%6Ô%6Ð%6Ð7Ñ8Ô8Ð8Ð8ð	9à!œ^Ô4Ð4Ð4µjÀ±m´m°m°mÐDÐDr   c                 óÆ   — g }t          |                      ¦   «         ¦  «        }|D ]-\  }}|                     |                     |¦  «        ¦  «         Œ.t	          |¦  «        S )z(Return a string suitable for JavaScript.)r¥   r…   r¤   r¡   Ú	_nulljoin)rh   r–   r¨   r…   ri   ro   s         r   r¡   zBaseCookie.js_outputó  s^   € àˆÝ�t—z’z‘|”|Ñ$Ô$ˆØð 	2ð 	2‰JˆC�Ø�MŠM˜%Ÿ/š/¨%Ñ0Ô0Ñ1Ô1Ð1Ð1Ý˜Ñ Ô Ð r   c                 óš   — t          |t          ¦  «        r|                      |¦  «         n|                     ¦   «         D ]
\  }}|| |<   ŒdS )zÝLoad cookies from a string (presumably HTTP_COOKIE) or
        from a dictionary.  Loading cookies from a dictionary 'd'
        is equivalent to calling:
            map(Cookie.__setitem__, d.keys(), d.values())
        N)r{   r   Ú_BaseCookie__parse_stringr…   )rh   Úrawdatari   ro   s       r   r»   zBaseCookie.loadû  sZ   € õ �g�sÑ#Ô#ð 	"Ø×Ò Ñ(Ô(Ð(Ð(ð &Ÿmšm™oœoð "ð "‘
��UØ!��S‘	�	Øˆr   c                 óŽ  — d}t          |¦  «        }g }d}d}d}d|cxk    r|k     �rVn �nR|                     ||¦  «        }	|	s�n8|	                     d¦  «        |	                     d¦  «        }}
|	                     d¦  «        }|
d         dk    r$|sŒz|                     ||
dd …         |f¦  «         n¹|
                     ¦   «         t          j        v rg|sd S |€;|
                     ¦   «         t          j        v r|                     ||
df¦  «         nZd S |                     ||
t          |¦  «        f¦  «         n2|�.|                     ||
|  
                    |¦  «        f¦  «         d}nd S d|cxk    r|k     �°Pn d }|D ]B\  }}
}||k    r
|€J ‚|||
<   Œ||k    sJ ‚|\  }}|                      |
||¦  «         | |
         }ŒCd S )	Nr   Fr   r!   ri   ry   ú$T)r(   ÚmatchÚgroupÚendr¤   rt   rP   re   r¦   r*   rµ   rÃ   )rh   r   ÚpattÚir   Úparsed_itemsÚmorsel_seenÚTYPE_ATTRIBUTEÚTYPE_KEYVALUErÕ   ri   ro   rÀ   ÚtprÄ   rÅ   s                   r   Ú__parse_stringzBaseCookie.__parse_string	  s-  € ØˆÝ�‰HŒHˆØˆØˆàˆØˆð
 �1ˆjˆjŠjˆj�qŠj‰jˆjˆj‰jà—J’J˜s AÑ&Ô&ˆEØð áàŸš UÑ+Ô+¨U¯[ª[¸Ñ-?Ô-?�ˆCØ—	’	˜!‘”ˆAà�1Œv˜Š}ˆ}Ø"ð ð Ø×#Ò# ^°S¸¸¸´W¸eÐ$DÑEÔEÐEÐEØ—’‘”¥Ô 0Ð0Ð0Ø"ð à�FØ�=Ø—y’y‘{”{¥f¤mÐ3Ð3Ø$×+Ò+¨^¸SÀ$Ð,GÑHÔHÐHÐHð ˜à ×'Ò'¨¸½hÀu¹o¼oÐ(NÑOÔOÐOÐOØÐ"Ø×#Ò# ]°C¸×9JÒ9JÈ5Ñ9QÔ9QÐ$RÑSÔSÐSØ"��ð �ðE �1ˆjˆjŠjˆj�qŠj‰jˆjˆjðJ ˆØ*ð 	ð 	‰NˆB��UØ�^Ò#Ð#Ø�}�}�}Ø��#‘�à˜]Ò*Ð*Ð*Ð*Ø"‘
��dØ—
’
˜3  dÑ+Ô+Ð+Ø˜”I��ð	ð 	r   rl   )Nr“   rÆ   )r	   r
   r   r©   rµ   r¹   rj   rÃ   rg   r˜   r­   rž   r¡   r»   Ú_CookiePatternrÑ   r   r   r   r   r   º  sÓ   € € € € € Ø1Ð1ðð ð ðð ð ðð ð ð ð'ð 'ð 'ð(ð (ð (ð ð  ð  ð  ð €GðEð Eð Eð!ð !ð !ð !ðð ð ð (6ð :ð :ð :ð :ð :ð :r   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   zþ
    SimpleCookie supports strings as cookie values.  When setting
    the value using the dictionary assignment notation, SimpleCookie
    calls the builtin str() to convert the value to a string.  Values
    received from HTTP are kept as strings.
    c                 ó$   — t          |¦  «        |fS rl   )r*   r´   s     r   rµ   zSimpleCookie.value_decodeM  s   € Ý˜‰}Œ}˜cÐ!Ð!r   c                 óB   — t          |¦  «        }|t          |¦  «        fS rl   )r   r   r·   s      r   r¹   zSimpleCookie.value_encodeP  s   € Ý�S‘”ˆØ•v˜f‘~”~Ð%Ð%r   N)r	   r
   r   r©   rµ   r¹   r   r   r   r   r   F  s<   € € € € € ðð ð"ð "ð "ð&ð &ð &ð &ð &r   r   )*r©   ÚreÚstringr¯   Ú__all__rÈ   rÏ   r§   rÌ   Ú	Exceptionr   Úascii_lettersÚdigitsÚ_LegalCharsÚ_UnescapedCharsrŒ   ÚrangeÚmapÚordr   r�   ÚcompileÚescapeÚ	fullmatchr   r   Úsubr)   r%   r*   Ú_weekdaynameÚ
_monthnamerN   rf   rP   Ú_LegalKeyCharsÚ_LegalValueCharsÚASCIIÚVERBOSErà   r   r   r   r   r   ú<module>rù      sÆ  ððNXð Xðz 
€	€	€	Ø €€€Ø €€€à
7Ð
7Ð
7€àŒG€	Ø”€ØŒX€
ð
	ð 	ð 	ð 	ð 	�)ñ 	ô 	ð 	ð" Ô" V¤]Ñ2Ð5GÑG€Ø Ñ/€ðJð JØ˜˜E˜E #™JœJ™œ¨#¨#¨c¨c°#°Ñ.GÔ.GÑ*HÔ*HÑHðJñ Jô J€à × Ò Ø€Cˆ�H„HˆeØ€Cˆ�I„Iˆvðñ ô ð ð
 �”
˜7 Y R¤Y¨{Ñ%;Ô%;Ñ;Ñ<Ô<ÔF€ð
6ð 
6ð 
6ð ˆrŒzÐ8Ñ9Ô9Ô=€ðð ð ð/ð /ð /ð6 AÐ@Ð@€ð8ð 8ð 8€
ð  <¸:ð Fð Fð Fð Fði8ð i8ð i8ð i8ð i8ˆTñ i8ô i8ð i8ðj B€Ø! GÑ+Ð Ø�”ð 	ð ñð		ñ	ð ñðñð" 
Œ�B”JÑ	ñ# ô  €ð.Ið Ið Ið Ið I�ñ Iô Ið IðX&ð &ð &ð &ð &�:ñ &ô &ð &ð &ð &r   