
    -hh.                       / S Qr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r
SSKrSSKJr  SrSqS rSrSr\" \R*                  R,                  5      r\R0                  " S5      rS	rS
rS rSrS r/ SQr/ SQr \  V s/ s H  o RC                  5       PM     sn r"SKS jr#SKS jr$SSSSS.r%\R0                  " S\RL                  5      r'S r(S r)\R0                  " S\RL                  5      r*\R0                  " S\RV                  \RL                  -  5      r,\R0                  " S\RZ                  \RL                  -  5      r.S r/\R0                  " S\RZ                  \RL                  -  5      r0S r1S r2\R0                  " S5      r3\R0                  " S5      r4\R0                  " S5      r5\R0                  " S 5      r6S! r7\R0                  " S"5      r8\R0                  " S#5      r9S$ r:S% r;S& r<\R0                  " S'\RL                  5      r=S( r>S) r?S* r@S+ rA\R0                  " S,\RL                  5      rBS- rCS. rDS/ rES0 rFS1rG\R0                  " S25      rHS3 rIS4 rJS5 rKS6 rL " S7 S85      rM " S9 S:5      rN " S; S<\N5      rOS= rP " S> S?5      rQ " S@ SA5      rR " SB SC\S5      rT " SD SE\R5      rUSF rV " SG SH\U5      rW " SI SJ\U5      rXgs  sn f )L)Cookie	CookieJarCookiePolicyDefaultCookiePolicyFileCookieJarLWPCookieJar	LoadErrorMozillaCookieJar    N)timegmFc                      [         (       d  g [        (       d  SS KnUR                  S5      q[        R                   " U 6 $ )Nr
   zhttp.cookiejar)debugloggerlogging	getLogger)argsr   s     7/opt/python-3.13.8/usr/lib/python3.13/http/cookiejar.py_debugr   ,   s2    56""#34<<    HTTPOnlyz
#HttpOnly_z#( Netscape)? HTTP Cookie FilezQa filename was not supplied (nor was the CookieJar instance initialised with one)zr# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file!  Do not edit.

c                      SS K n SS KnSS KnU R                  5       nUR	                  S U5        UR                  5       nUR                  SU-  SS9  g )Nr
   zhttp.cookiejar bug!
%s   )
stacklevel)iowarnings	tracebackStringIO	print_excgetvaluewarn)r   r   r   fmsgs        r   _warn_unhandled_exceptionr"   B   sF     #"
Aa 
**,CMM+c1aM@r   i  c                     U S S u  pp4pVU[         :  a[  SUs=::  a  S::  aN  O  g SUs=::  a  S::  a>  O  g SUs=::  a  S::  a.  O  g SUs=::  a  S::  a  O  g SUs=::  a  S::  a  O  g [        U 5      $ g )	N            r
      ;   =   )
EPOCH_YEARr   )ttyearmonthmdayhourminsecs          r   _timegmr3   Q   s    (*2A%DS		!u"2"2 	 :;db  
db   !C~2~  56NN  bzr   )MonTueWedThuFriSatSun)JanFebMarAprMayJunJulAugSepOctNovDecc                 F   U c,  [         R                   R                  [         R                  S9nO,[         R                   R                  U [         R                  S9nSUR                  UR
                  UR                  UR                  UR                  UR                  4-  $ )Ntzz%04d-%02d-%02d %02d:%02d:%02dZ)
datetimenowUTCfromtimestampr-   r.   dayr0   minutesecondtdts     r   	time2isozrT   ^   s     	y""hll"3,,Q8<<,@+
266277BIIryy/B B Br   c                    U c,  [         R                   R                  [         R                  S9nO,[         R                   R                  U [         R                  S9nS[        UR                  5          UR                  [        UR                  S-
     UR                  UR                  UR                  UR                  4-  $ )NrH   z#%s, %02d-%s-%04d %02d:%02d:%02d GMTr%   )rJ   rK   rL   rM   DAYSweekdayrN   MONTHSr.   r-   r0   rO   rP   rQ   s     r   time2netscaperY   q   s     	y""hll"3,,Q8<<,@0RZZ\BFFF288A:$6
"))RYY40 0 0r   )GMTrL   UTZz^([-+])?(\d\d?):?(\d\d)?$c                 4   S nU [         ;   a  SnU$ [        R                  U 5      nU(       ak  S[        UR	                  S5      5      -  nUR	                  S5      (       a   US[        UR	                  S5      5      -  -   nUR	                  S5      S:X  a  U* nU$ )Nr
   i  r      <   r%   -)	UTC_ZONESTIMEZONE_REsearchintgroup)rI   offsetms      r   offset_from_tz_stringrh      s    F	Y M r"C
O+Fwwqzz"s1771:"66wwqzS  Mr   c           	         [        U5      nU[        R                  :  a  g  [        R	                  UR                  5       5      S-   nUc  SnUc  SnUc  Sn[        U 5      n [        U5      n[        U5      n[        U5      nUS:  a^  [        R                  " [        R                  " 5       5      S   nUS-  n	Un
X(-   U	-
  nX-
  n	[        U	5      S:  a  U	S:  a  US-   nOUS-
  n[        X!XXEU45      nUb(  Uc  SnUR                  5       n[        U5      nUc  g X-
  nU$ ! [         a6     [        U5      nO! [         a      g f = fSUs=::  a  S::  a  O  OUn GN g f = f)Nr%   r&   r
   i  d   2   rL   )rd   rJ   MAXYEARMONTHS_LOWERindexlower
ValueErrortime	localtimeabsr3   upperrh   )rN   monyrhrr1   r2   rI   imoncur_yrrg   tmprR   rf   s                r   	_str2timer{      sr   	RB	H  -a/ 
z2
{!C
{!C
c(C	RB
c(C
c(C	Dy		,Q/SL[1_Gq6B;1u28bCx" 	#3R01A}:BXXZ&r*>JH[  		s8D 		??C	s5   &D# #
E#.D:9E#:
EE#EE#"E#zV^[SMTWF][a-z][a-z], (\d\d) ([JFMASOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$z+^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*a  ^
    (\d\d?)            # day
       (?:\s+|[-\/])
    (\w+)              # month
        (?:\s+|[-\/])
    (\d+)              # year
    (?:
          (?:\s+|:)    # separator before clock
       (\d\d?):(\d\d)  # hour:min
       (?::(\d\d))?    # optional seconds
    )?                 # optional clock
       \s*
    (?:
       ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+) # timezone
       \s*
    )?
    (?:
       \(\w+\)         # ASCII representation of timezone in parens.
       \s*
    )?$c           	      (   [         R                  U 5      nU(       a  UR                  5       n[        R	                  US   R                  5       5      S-   n[        US   5      U[        US   5      [        US   5      [        US   5      [        US   5      4n[        U5      $ U R                  5       n [        R                  SU S5      n S /S-  u  pSpgpn
[        R                  U 5      nUb  UR                  5       u  pSpgpn
Og [        XSXgXU
5      $ )	Nr%   r   r
   r^             )STRICT_DATE_RErc   groupsrm   rn   ro   rd   floatr3   lstrip
WEEKDAY_REsubLOOSE_HTTP_DATE_REr{   )textrg   gru   r,   rN   rv   rw   r1   r2   rI   s              r   	http2timer      s    < 	d#AHHJ  1.2!A$ic!A$i!A$iQqTE!A$K1r{
 ;;=D>>"dA&D '+VAX"Cbc 	!!$'A})*&"#BSrs44r   a  ^
    (\d{4})              # year
       [-\/]?
    (\d\d?)              # numerical month
       [-\/]?
    (\d\d?)              # day
   (?:
         (?:\s+|[-:Tt])  # separator before clock
      (\d\d?):?(\d\d)    # hour:min
      (?::?(\d\d(?:\.\d*)?))?  # optional seconds (and fractional)
   )?                    # optional clock
      \s*
   (?:
      ([-+]?\d\d?:?(:?\d\d)?
       |Z|z)             # timezone  (Z is "zero meridian", i.e. GMT)
      \s*
   )?$c           	          U R                  5       n S /S-  u  pp4pVn[        R                  U 5      nUb  UR                  5       u  p2ppVpyOg [	        XX4XVU5      $ )Nr   )r   ISO_DATE_RErc   r   r{   )
r   rN   ru   rv   rw   r1   r2   rI   rg   _s
             r   iso2timer   2  sh     ;;=D '+VAX"Cbc 	4 A} -.HHJ)#BSrs44r   c                 f    U R                  S5      u  pU R                  S U U R                  US  -   $ )Nr
   )spanstring)matchstartends      r   	unmatchedr   S  s2    AJE<<ST 222r   z^\s*([^=\s;,]+)z&^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"z^\s*=\s*([^\s;,]*)z\\(.)c                 (   / nU  GH  nUn/ nU(       Ga]  [         R                  U5      nU(       a  [        U5      nUR                  S5      n[        R                  U5      nU(       a3  [        U5      nUR                  S5      n[
        R                  SU5      nOK[        R                  U5      nU(       a-  [        U5      nUR                  S5      nUR                  5       nOS nUR                  Xg45        OnUR                  5       R                  S5      (       a.  UR                  5       SS  nU(       a  UR                  U5        / nO[        R                  " SSU5      u  pUnU(       a  GM]  U(       d  GMw  UR                  U5        GM     U$ )Nr%   z\1,z^[=\s;]*r   )HEADER_TOKEN_RErc   r   re   HEADER_QUOTED_VALUE_REHEADER_ESCAPE_REr   HEADER_VALUE_RErstripappendr   
startswithresubn)
header_valuesresultr   	orig_textpairsrg   namevaluenon_junknr_junk_charss
             r   split_header_wordsr   \  sK   \ F	&&t,A |wwqz*11$7$Q<DGGAJE,00>E'..t4A(| !
 % !%d]+))#..{{}QR(&--. +-''+r4*H'  ? d@ 5&--&G H Mr   z[!#$%&'*+\-.^_`|~0-9A-Za-z]+([\"\\])c                 J   / nU  H  n/ nU HW  u  pEUb>  [         R                  U5      (       d  [        R                  SU5      nSU-  nU< SU< 3nUR	                  U5        MY     U(       d  Mk  UR	                  SR                  U5      5        M     SR                  U5      $ )N\\\1z"%s"=; , )HEADER_JOIN_TOKEN_RE	fullmatchHEADER_JOIN_ESCAPE_REr   r   join)listsheadersr   attrkvs         r   join_header_wordsr     s     GDA}+55a88-11'1=A
A !$KKN  4		$0  99Wr   c                 r    U R                  S5      (       a  U SS  n U R                  S5      (       a  U S S n U $ )N"r%   )r   endswithr   s    r   strip_quotesr     s;    sABx}}SCRyKr   c                 X   Sn/ nU  GH  n/ nSn[        UR                  S5      5       H  u  pgUR                  5       nUR                  S5      u  pn
UR                  5       nU(       d
  US:X  a    OMJ  U	(       a  U
R                  5       OS n
US:w  aK  UR	                  5       nX;   a  UnUS:X  a  U
b  [        U
5      n
SnOUS:X  a  U
b  [        [        U
5      5      n
UR                  X45        M     U(       d  M  U(       d  UR                  S	5        UR                  U5        GM!     U$ )
N)expiresdomainpathsecureversionportmax-ageF;r   r
   r   Tr   )r   0)	enumeratesplitstrip	partitionro   r   r   r   )
ns_headersknown_attrsr   	ns_headerr   version_setiiparamkeysepvallcs               r   parse_ns_headersr     s   1K F	 #9??3#78IBKKME!OOC0MCc))+C7 "%#))+$CQwYY[$C)#*3/"&KI%'S(9:LL#$= 9@ 5-.MM% W  Z Mr   z\.\d+$c                 n    [         R                  U 5      (       a  gU S:X  a  gU S   S:X  d	  U S   S:X  a  gg)NFr   r
   .r   TIPV4_RErc   r   s    r   is_HDNr     s;     ~~drzAw#~bSr   c                    U R                  5       n UR                  5       nX:X  a  g[        U 5      (       d  gU R                  U5      nUS:X  d  US:X  a  gUR                  S5      (       d  g[        USS  5      (       d  gg)NTFr   r
   r   r%   )ro   r   rfindr   )ABis      r   domain_matchr   '  sr    . 	
	A		Av!99	
ABw!q&<<!AB%==r   c                 :    [         R                  U 5      (       a  ggNFTr   r   s    r   liberal_is_HDNr   N  s     ~~dr   c                 
   U R                  5       n UR                  5       n[        U 5      (       a  [        U5      (       d  X:X  a  ggUR                  S5      nU(       a  U R                  U5      (       a  gU(       d  X:X  a  gg)NTFr   )ro   r   r   r   )r   r   initial_dots      r   user_domain_matchr   X  sg     	
	A		A1."3"36,,s#Kqzz!}}16r   z:\d+$c                     U R                  5       n[        R                  R                  U5      S   nUS:X  a  U R	                  SS5      n[
        R                  SUS5      nUR                  5       $ )Nr%   r   Host)get_full_urlurllibparseurlparse
get_headercut_port_rer   ro   )requesturlhosts      r   request_hostr   m  sd     


 C<<  %a(Drz!!&"- ??2tQ'D::<r   c                 6    [        U 5      =pSU;  a  US-   nX!4$ )Nr   .local)r   )r   erhnreq_hosts      r   eff_request_hostr   }  s+     #7++D
((">r   c                     U R                  5       n[        R                  R                  U5      n[	        UR
                  5      nUR                  S5      (       d  SU-   nU$ )N/)r   r   r   urlsplitescape_pathr   r   )r   r   partsr   s       r   request_pathr     sO    



 CLL!!#&Euzz"D??3TzKr   c                     U R                   nUR                  S5      nUS:  a  XS-   S  n [        U5        U$ [
        nU$ ! [         a    [	        SU5         g f = f)N:r
   r%   znonnumeric port: '%s')r   findrd   rp   r   DEFAULT_HTTP_PORT)r   r   r   r   s       r   request_portr    sj    <<D		#AAvaCDz	I K !K  	*D1	s   A AAz%/;:@&=+$,!~*'()z%([0-9a-fA-F][0-9a-fA-F])c                 F    SU R                  S5      R                  5       -  $ )Nz%%%sr%   )re   rt   )r   s    r   uppercase_escaped_charr    s    EKKN((***r   c                     [         R                  R                  U [        5      n [        R                  [        U 5      n U $ N)r   r   quoteHTTP_PATH_SAFEESCAPED_CHAR_REr   r  )r   s    r   r   r     s2     <<dN3D5t<DKr   c                     U R                  S5      nUS:  a9  XS-   S  nUR                  S5      n[        U 5      (       a  US:  d  US:X  a  SU-   $ U $ )Nr   r
   r%   local)r  r   )hr   bs      r   reachr    sU    4 	
sAAvcdGFF3K!99!q&ALq5LHr   c                 d    [        U 5      n[        U[        U R                  5      5      (       d  ggNTF)r   r   r  origin_req_host)r   r   s     r   is_third_partyr    s,     G$H%(?(?"@AAr   c                   L    \ rS rSr SS jrS rSS jrS rSS jrS r	S	 r
S
rg)r   i  c                    Ub  [        U5      nUb  [        [        U5      5      nUc  USL a  [        S5      eXl        X l        X0l        X@l        XPl        UR                  5       U l	        Xpl
        Xl        Xl        Xl        Xl        Xl        Xl        Xl        Xl        UU l        [(        R(                  " U5      U l        g )NTz-if port is None, port_specified must be false)rd   r   rp   r   r   r   r   port_specifiedro   r   domain_specifieddomain_initial_dotr   path_specifiedr   r   discardcommentcomment_urlrfc2109copy_rest)selfr   r   r   r   r  r   r  r  r   r  r   r   r  r  r  restr  s                     r   __init__Cookie.__init__  s     #g,#eGn*=<Nd2LMM	
	,lln 0
 #5	,&YYt_
r   c                     XR                   ;   $ r	  r!  )r"  r   s     r   has_nonstandard_attrCookie.has_nonstandard_attr$  s    zz!!r   Nc                 8    U R                   R                  X5      $ r	  )r!  get)r"  r   defaults      r   get_nonstandard_attrCookie.get_nonstandard_attr&  s    zz~~d,,r   c                      X R                   U'   g r	  r'  )r"  r   r   s      r   set_nonstandard_attrCookie.set_nonstandard_attr(  s     

4r   c                 p    Uc  [         R                   " 5       nU R                  b  U R                  U::  a  ggr  )rq   r   )r"  rK   s     r   
is_expiredCookie.is_expired+  s,    ;diikLL$4<<3+>r   c                     U R                   c  SnOSU R                   -   nU R                  U-   U R                  -   nU R                  b  U R                  < SU R                  < 3nOU R                  nSU< SU< S3$ )Nr   r  r   z<Cookie z for >)r   r   r   r   r   )r"  plimit	namevalues       r   __str__Cookie.__str__1  sd    99"adii-aa$))+::!#'99djj9I		I'0%88r   c                 f   / nS H/  n[        X5      nUR                  U< S[        U5      < 35        M1     UR                  S[        U R                  5      -  5        UR                  S[        U R                  5      -  5        U R
                  R                  < SSR                  U5      < S3$ )N)r   r   r   r   r  r   r  r  r   r  r   r   r  r  r  r   zrest=%sz
rfc2109=%s(r   ))getattrr   reprr!  r  	__class____name__r   )r"  r   r   r   s       r   __repr__Cookie.__repr__;  s    D 4&DKK4d45 	ITZZ 001L4#556>>22DIIdODDr   )r!  r  r  r  r   r  r  r   r   r   r  r   r  r  r   r   r   )Fr	  )rB  
__module____qualname____firstlineno__r$  r(  r-  r0  r3  r:  rC  __static_attributes__ r   r   r   r     s,    8 (%T"-!9Er   r   c                   ,    \ rS rSrS rS rS rS rSrg)r   iJ  c                     [        5       er	  NotImplementedErrorr"  cookier   s      r   set_okCookiePolicy.set_okS  s     "##r   c                     [        5       er	  rL  rN  s      r   	return_okCookiePolicy.return_ok\      !##r   c                     gNTrI  )r"  r   r   s      r   domain_return_okCookiePolicy.domain_return_ok`       r   c                     grW  rI  )r"  r   r   s      r   path_return_okCookiePolicy.path_return_oke  rZ  r   rI  N)	rB  rE  rF  rG  rP  rS  rX  r\  rH  rI  r   r   r   r   J  s    $$
r   r   c                       \ rS rSrSrSrSrSr\\-  rSSSSSSSSS\SSS	4S
 jr	S r
S rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS  rS!r g)"r   ik  r%   r   r}   r
   NTF)httpswssc                     X0l         X@l        XPl        X`l        Xpl        Xl        Xl        Xl        Xl        Xl	        Xl
        Ub  [        U5      U l        OSU l        Ub  [        U5      nX l        g )NrI  )netscaperfc2965rfc2109_as_netscapehide_cookie2strict_domainstrict_rfc2965_unverifiablestrict_ns_unverifiablestrict_ns_domainstrict_ns_set_initial_dollarstrict_ns_set_pathsecure_protocolstuple_blocked_domains_allowed_domains)r"  blocked_domainsallowed_domainsrb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  s                 r   r$  DefaultCookiePolicy.__init__u  su     !#6 (*+F(&<# 0,H)"4 0&$)/$:D!$&D!&#O4O /r   c                     U R                   $ r	  )rn  r"  s    r   rp  #DefaultCookiePolicy.blocked_domains      $$$r   c                 $    [        U5      U l        g r	  )rm  rn  )r"  rp  s     r   set_blocked_domains'DefaultCookiePolicy.set_blocked_domains  s     %o 6r   c                 N    U R                    H  n[        X5      (       d  M    g   gr  )rn  r   )r"  r   blocked_domains      r   
is_blockedDefaultCookiePolicy.is_blocked  s%    "33N 88 4 r   c                     U R                   $ r	  )ro  rt  s    r   rq  #DefaultCookiePolicy.allowed_domains  rv  r   c                 ,    Ub  [        U5      nXl        g r	  )rm  ro  )r"  rq  s     r   set_allowed_domains'DefaultCookiePolicy.set_allowed_domains  s    &#O4O /r   c                 j    U R                   c  gU R                    H  n[        X5      (       d  M    g   gr   )ro  r   )r"  r   allowed_domains      r   is_not_allowed"DefaultCookiePolicy.is_not_allowed  s4      ("33N 88 4 r   c                     [        SUR                  UR                  5        S H"  nSU-   n[        X5      nU" X5      (       a  M"    g   g)N - checking cookie %s=%s)r   verifiabilityr   r   r   r   set_ok_FTr   r   r   r?  r"  rO  r   nfn_namefns         r   rP  DefaultCookiePolicy.set_ok  sM     	)6;;E NAkG'Bf&&	 N r   c                    UR                   c"  [        SUR                  UR                  5        gUR                   S:  a  U R                  (       d  [        S5        gUR                   S:X  a  U R
                  (       d  [        S5        gg)Nz0   Set-Cookie2 without version attribute (%s=%s)Fr
   $   RFC 2965 cookies are switched off$   Netscape cookies are switched offT)r   r   r   r   rc  rb  rN  s      r   set_ok_version"DefaultCookiePolicy.set_ok_version  sh    >>! E;;.>>Adll9:^^q 9:r   c                     UR                   (       aj  [        U5      (       aZ  UR                  S:  a  U R                  (       a  [	        S5        gUR                  S:X  a  U R
                  (       a  [	        S5        ggNr
   z>   third-party RFC 2965 cookie during unverifiable transactionFz>   third-party Netscape cookie during unverifiable transactionTunverifiabler  r   rg  r   rh  rN  s      r   set_ok_verifiability(DefaultCookiePolicy.set_ok_verifiability  s`    N7$;$;~~!d&F&F 8 91$)D)D 8 9r   c                     UR                   S:X  aH  U R                  (       a7  UR                  R                  S5      (       a  [	        SUR                  5        gg)Nr
   $z'   illegal name (starts with '$'): '%s'FT)r   rj  r   r   r   rN  s      r   set_ok_nameDefaultCookiePolicy.set_ok_name  sB     NNaD$E$EKK""3''<fkkJr   c                    UR                   (       au  [        U5      nUR                  S:  d!  UR                  S:X  aJ  U R                  (       a9  U R	                  UR
                  U5      (       d  [        SUR
                  U5        gg)Nr
   z7   path attribute %s is not a prefix of request path %sFT)r  r   r   rk  r\  r   r   )r"  rO  r   req_paths       r   set_ok_pathDefaultCookiePolicy.set_ok_path  sh      #G,H!#..A%$*A*A''W== !"(++x9r   c                    U R                  UR                  5      (       a  [        SUR                  5        gU R                  UR                  5      (       a  [        SUR                  5        gUR                  (       GaB  [        U5      u  p4UR                  nU R                  (       a}  UR                  S5      S:  ah  UR                  S5      nUR                  SSU5      nUS:X  a>  XVS-   S  nXWS-   U n	U	R                  5       S;   a  [        U5      S:X  a  [        S	U5        gUR                  S5      (       a  USS  n
OUn
U
R                  S5      S:  nU(       d#  UR                  S
5      (       d  [        SU5        gUR                  S:X  ak  UR                  U5      (       dU  UR                  U
 S
35      (       d<  UR                  S5      (       d&  SU-   R                  U5      (       d  [        SXE5        gUR                  S:  d  U R                  U R                   -  (       a  [#        XE5      (       d  [        SXE5        gUR                  S:  d  U R                  U R$                  -  (       aK  US [        U5      *  nUR                  S5      S:  a'  [&        R)                  U5      (       d  [        SX5        gg)N"   domain %s is in user block-listF&   domain %s is not in user allow-listr   r   r
   r%   )coaccomeduorgnetgovmilrd   aerobizcatcoopinfojobsmobimuseumr   protraveleuz&   country-code second level domain %sr   z/   non-local domain %s contains no embedded dotzO   effective request-host %s (even with added initial dot) does not end with %sz5   effective request-host %s does not domain-match %sz.   host prefix %s for domain %s contains a dotT)r|  r   r   r  r  r   rf  countr   ro   lenr   r  r   r   ri  DomainRFC2965Matchr   DomainStrictNoDotsr   rc   )r"  rO  r   r   r   r   r   jtldsldundotted_domainembedded_dotshost_prefixs                r   set_ok_domain!DefaultCookiePolicy.set_ok_domain  sb   ??6==))7Gv}}--;V]]K"""-g6NH]]F!!v||C'8A'= LL%LLa+6 1,C 1Q-Cyy{ '' ' ,/s8q=GP$  %%"(*"(,11#6!;M x)@)@H~~"v../):&'ABB--d(,,V44 ?) !"&&)@)@@#D11  !%/ "&&)@)@@&}V5$$S)Q.x00K&0 r   c                 0   UR                   (       ah  [        U5      nUc  SnO[        U5      nUR                  R	                  S5       H  n [        U5        XC:X  d  M    g   [        SX1R                  5        gg! [         a    [        SU5           gf = f)N80r   z   bad port %s (not numeric)Fz$   request port (%s) not found in %sT)r  r  strr   r   rd   rp   r   r"  rO  r   req_portr7  s        r   set_ok_portDefaultCookiePolicy.set_ok_port4  s      #G,Hx=[[&&s+!F =
  , =. " !91= !s   A;;BBc                     [        SUR                  UR                  5        S H"  nSU-   n[        X5      nU" X5      (       a  M"    g   g)Nr  )r   r  r   r   r   r   
return_ok_FTr  r  s         r   rS  DefaultCookiePolicy.return_okI  sJ     	)6;;ERA"1nG'Bf&&	 S
 r   c                     UR                   S:  a  U R                  (       d  [        S5        gUR                   S:X  a  U R                  (       d  [        S5        gg)Nr
   r  Fr  T)r   rc  r   rb  rN  s      r   return_ok_version%DefaultCookiePolicy.return_ok_version[  sA    >>Adll9:^^q 9:r   c                     UR                   (       aj  [        U5      (       aZ  UR                  S:  a  U R                  (       a  [	        S5        gUR                  S:X  a  U R
                  (       a  [	        S5        ggr  r  rN  s      r   return_ok_verifiability+DefaultCookiePolicy.return_ok_verifiabilityd  s`    N7$;$;~~!d&F&F % &1$)D)D % &r   c                 r    UR                   (       a&  UR                  U R                  ;  a  [        S5        gg)Nz(   secure cookie with non-secure requestFT)r   typerl  r   rN  s      r   return_ok_secure$DefaultCookiePolicy.return_ok_securep  s)    ==W\\1F1FF=>r   c                 \    UR                  U R                  5      (       a  [        S5        gg)Nz   cookie expiredFT)r3  _nowr   rN  s      r   return_ok_expires%DefaultCookiePolicy.return_ok_expiresv  s&    TYY''&'r   c                     UR                   (       aP  [        U5      nUc  SnUR                   R                  S5       H
  nXC:X  d  M
    g   [        SX1R                   5        gg)Nr  r   z0   request port %s does not match cookie port %sFT)r   r  r   r   r  s        r   return_ok_port"DefaultCookiePolicy.return_ok_port|  s^    ;;#G,H[[&&s+=
  , I.r   c                    [        U5      u  p4UR                  nU(       a  UR                  S5      (       d  SU-   nOUnUR                  S:X  a@  U R                  U R
                  -  (       a"  UR                  (       d  XT:w  a  [        S5        gUR                  S:  a  [        XE5      (       d  [        SXE5        gUR                  S:X  a&  SU-   R                  U5      (       d  [        SX55        gg)Nr   r
   zQ   cookie with unspecified domain does not string-compare equal to request domainFzQ   effective request-host name %s does not domain-match RFC 2965 cookie domain %sz;   request-host %s does not match Netscape cookie domain %sT)
r   r   r   r   ri  DomainStrictNonDomainr  r   r   r   )r"  rO  r   r   r   r   	dotdomains          r   return_ok_domain$DefaultCookiePolicy.return_ok_domain  s    )'2&++C00fII NNa""T%?%??''FN - .>>Al4&@&@ /04>>>QD':':9'E'E !+r   c                    [        U5      u  p4UR                  S5      (       d  SU-   nUR                  S5      (       d  SU-   nU(       a  UR                  S5      (       d  SU-   nOUnUR                  U5      (       d  UR                  U5      (       d  gU R                  U5      (       a  [	        SU5        gU R                  U5      (       a  [	        SU5        gg)Nr   Fr  r  T)r   r   r   r|  r   r  )r"  r   r   r   r   r  s         r   rX  $DefaultCookiePolicy.domain_return_ok  s     *'2""3''8|Hs##t8D&++C00fII!!),,i0H0H ??6""7@v&&;VDr   c                     [        SU5        [        U5      n[        U5      nX1:X  a  gUR                  U5      (       a"  UR	                  S5      (       d  X4US-    S:X  a  g[        SX15        g)Nz- checking cookie path=%sTr   r%   z  %s does not path-match %sF)r   r   r  r   r   )r"  r   r   r  pathlens        r   r\  "DefaultCookiePolicy.path_return_ok  sj    *D1(d)!!$''}}S!!Xgai%@C%G,h=r   )ro  rn  re  rb  rd  rc  rl  rf  ri  rj  rk  rh  rg  )!rB  rE  rF  rG  r  r  r  DomainLiberalDomainStrictr$  rp  rx  r|  rq  r  r  rP  r  r  r  r  r  r  rS  r  r  r  r  r  r  rX  r\  rH  rI  r   r   r   r   k  s     M%&;;L "&t%)#$-1(-"/.3$)"2!0F%7%0&
	:x*$
64r   r   c              #      #    [        U R                  5       5       H4  nSn  UR                    Sn [        U5       S h  vN   U (       a  M0  Uv   M6     g  N! [         a     N f = f7fr   )listvaluesitems
deepvaluesAttributeError)mappingobjs     r   r  r    sb     GNN$%	'II G!#&&wI & '	  		s7   A'AA'A	A'
A'
A$!A'#A$$A'c                       \ rS rSrSrg)Absenti  rI  NrB  rE  rF  rG  rH  rI  r   r   r  r    s    dr   r  c                      \ rS rSr\R
                  " S5      r\R
                  " S5      r\R
                  " S5      r\R
                  " S5      r	\R
                  " S5      r
\R
                  " S\R                  5      rSS	 jrS
 rS rS rS rS rS rS rS rS rS rS rS rS rS S jrS rS rS rS rS r S r!Sr"g)!r   i  z\Wr   z\.?[^.]*z[^.]*z^\.+z^\#LWP-Cookies-(\d+\.\d+)Nc                 l    Uc
  [        5       nXl        [        R                  " 5       U l        0 U l        g r	  )r   _policy
_threadingRLock_cookies_lock_cookiesr"  policys     r   r$  CookieJar.__init__  s,    >(*F'--/r   c                     Xl         g r	  )r  r  s     r   
set_policyCookieJar.set_policy  s    r   c                    / nU R                   R                  X5      (       d  / $ [        SU5        U R                  U   nUR	                  5        H  nU R                   R                  XR5      (       d  M%  XE   nUR                  5        HL  nU R                   R                  Xr5      (       d  [        S5        M0  [        S5        UR                  U5        MN     M     U$ )Nz!Checking %s for cookies to returnz   not returning cookiez   it's a match)	r  rX  r   r  keysr\  r  rS  r   )r"  r   r   cookiescookies_by_pathr   cookies_by_namerO  s           r   _cookies_for_domainCookieJar._cookies_for_domain  s    ||,,V==I2F;--/#((*D<<..t==-3O)002||--f>>45()v& 3	 + r   c                     / nU R                   R                  5        H#  nUR                  U R                  X15      5        M%     U$ r	  )r  r  extendr
  )r"  r   r  r   s       r   _cookies_for_requestCookieJar._cookies_for_request  s:    mm((*FNN433FDE +r   c                    UR                  S SS9  Sn/ nU GH  nUR                  nU(       d  SnUS:  a  UR                  SU-  5        UR                  bW  U R                  R                  UR                  5      (       a-  US:  a'  U R                  R                  SUR                  5      nOUR                  nUR                  c  UR                  UR                  5        O"UR                  UR                  < SU< 35        US:  d  M  UR                  (       a  UR                  S	UR                  -  5        UR                  R                  S
5      (       aL  UR                  nUR                  (       d  UR                  S
5      (       a  USS  nUR                  SU-  5        UR                  c  GM  SnUR                  (       a  USUR                  -  -   nUR                  U5        GM     U$ )Nc                 ,    [        U R                  5      $ r	  )r  r   )as    r   <lambda>)CookieJar._cookie_attrs.<locals>.<lambda>  s    3qvv;r   T)r   reverseFr
   z$Version=%sr   r   z
$Path="%s"r   r%   z$Domain="%s"z$Portz="%s")sortr   r   r   non_word_rerc   quote_rer   r   r  r   r   r   r  r   r  )	r"  r  r   attrsrO  r   r   r   r7  s	            r   _cookie_attrsCookieJar._cookie_attrs  s    	.=F nnG"Q;LL!89
 )  ''55'A+))'6<<@ ||#V[[)U;<{((LL!;<==++C00#]]F"55))#..!'LL&!89;;*A,,6;;!67LLOQ T r   c                    [        S5        U R                  R                  5          [        [        R                  " 5       5      =U R
                  l        U l        U R                  U5      nU R                  U5      nU(       a7  UR                  S5      (       d!  UR                  SSR                  U5      5        U R
                  R                  (       a^  U R
                  R                  (       dC  UR                  S5      (       d-  U H'  nUR                  S:w  d  M  UR                  SS5          O   U R                  R                  5         U R!                  5         g ! U R                  R                  5         f = f)Nadd_cookie_headerr   r   Cookie2r%   z$Version="1")r   r  acquirerd   rq   r  r  r  r  
has_headeradd_unredirected_headerr   rc  re  r   releaseclear_expired_cookies)r"  r   r  r  rO  s        r   r  CookieJar.add_cookie_headerM  s    	"#""$	),/		,<<DLL	//8G&&w/E))(3333 $))E"24 $$T\\-F-F&&y11%F~~*77	>R & &&(""$ &&(s   C3E E E;c                 h   / nSnSnU GH  nUS   u  pgSnSn	0 n
0 nUSS   H  u  pUR                  5       nX;   d  X;   a  UnX;   a  Uc  SnX;   a  M2  US:X  a"  Uc  [        S5        Sn	  OUR                  5       nUS	:X  a  U(       a  Mi  Uc  [        S
5        My  US:X  a  Sn [        U5      nS	nU R                  U-   nX;   d  X;   a!  Uc  US;  a  [        SU-  5        Sn	  OXU'   M  XU'   M     U	(       a  M  UR                  XgX45        GM     U$ ! [         a    [        S5        Sn	   M>  f = f)N)r  r   )r   r   r   r   r   r   r  
commenturlr
   Fr%   Tr   z%   missing value for domain attributer   zM   missing or invalid value for expires attribute: treating as session cookier   z?   missing or invalid (non-numeric) value for max-age attribute)r   r  r&  z!   missing value for %s attribute)ro   r   rd   rp   r  r   )r"  	attrs_setcookie_tuplesboolean_attrsvalue_attrscookie_attrsr   r   max_age_set
bad_cookiestandardr#  r   r   r   s                  r   _normalized_cookie_tuples#CookieJar._normalized_cookie_tuplesn  s    +0
 &L&q/KD  KJHD$QR(WWY$(;A%!) A==yFG%)
	A	>" y  F G 	>"&KF "A		AA$!*<	!BBBQFG%)
"#QKGe )h   $x!>?Q &T 5 &   2 3%)
	s   #DD10D1c                 v   Uu  p4pVUR                  S[        5      nUR                  S[        5      nUR                  S[        5      n	UR                  S[        5      n
UR                  SS 5      nUb   [        U5      nUR                  SS5      nUR                  SS5      nUR                  S	S 5      nUR                  S
S 5      nU[        La  US:w  a  Sn[	        U5      nOISn[        U5      nUR                  S5      nUS:w  a  US:X  a  US U nOUS US-    n[        U5      S:X  a  SnU[        LnSnU(       a  [        UR                  S5      5      nU[        L a  [        U5      u  nnUnOUR                  S5      (       d  SU-   nSnU	[        La*  U	c  [        U5      n	OSn[        R                  " SSU	5      n	OS n	U
[        L a  S n
SnO0XR                  ::  a!   U R                  XxU5        [#        SXxU5        g [%        UX4U	UUUUUUUU
UUUU5      $ ! [         a     g f = f! [          a     NCf = f)Nr   r   r   r   r   r   Fr  r  r&  r   Tr   r   r
   r%   r   z\s+z2Expiring cookie, domain='%s', path='%s', name='%s')r+  r  rd   rp   r   r   r   r  boolr   r   r  r   r   r  clearKeyErrorr   r   )r"  tupr   r   r   r.  r#  r   r   r   r   r   r   r  r  r  r  r   r  r  r   r   r  s                          r   _cookie_from_cookie_tuple#CookieJar._cookie_from_cookie_tuple  sm    '*#Xh/||FF+||FF+,,y&1 ,,y$/g, h.,,y%0,,y$/ll<6 v$"*!Nt$D"N(D

3ABwa<8D1:D4yA~ct "/"!%f&7&7&<!=V-g6NHdF""3''ZF v| $G,!%vvfb$/ D fGG		!

6. G'gN.0BN!
 
	C  v  s$   4H "H+ 
H('H(+
H87H8c                     U R                  U5      n/ nU H.  nU R                  XR5      nU(       d  M  UR                  U5        M0     U$ r	  )r/  r6  r   )r"  r'  r   r(  r  r5  rO  s          r   _cookies_from_attrs_set!CookieJar._cookies_from_attrs_set+  sH    66yA C33CAFvw~~f- ! r   c                     [        U R                  SS 5      nUc  U R                  R                  (       + nU H,  nUR                  S:X  d  M  SUl        U(       d  M%  SUl        M.     g )Nrd  r%   Tr
   )r?  r  rc  r   r  )r"  r  rfc2109_as_nsrO  s       r   _process_rfc2109_cookies"CookieJar._process_rfc2109_cookies4  sX    .CTJ  $ 4 44MF~~"!% = &'FN r   c                    UR                  5       nUR                  S/ 5      nUR                  S/ 5      n[        [        R                  " 5       5      =U R                  l        U l        U R                  R                  nU R                  R                  nU(       d  U(       a*  U(       d  U(       a  U(       d  U(       a  U(       d	  U(       d  / $  U R                  [        U5      U5      nU(       a  U(       a   U R                  [        U5      U5      n	U R                  U	5        U(       aA  0 n
U H(  nS XR                  UR                  UR                   4'   M*     U
4S jn[#        X5      n	U	(       a  UR%                  U	5        U$ ! [         a    [        5         / n Nf = f! [         a    [        5         / n	 Nf = f)NzSet-Cookie2z
Set-Cookiec                 P    U R                   U R                  U R                  4nX!;  $ r	  )r   r   r   )	ns_cookielookupr   s      r   no_matching_rfc29653CookieJar.make_cookies.<locals>.no_matching_rfc2965m  s%    #**INNINNJC,,r   )r  get_allrd   rq   r  r  rc  rb  r9  r   	Exceptionr"   r   r=  r   r   r   filterr  )r"  responser   r   rfc2965_hdrsns_hdrsrc  rb  r  
ns_cookiesrB  rO  rC  s                r   make_cookiesCookieJar.make_cookies@  sl    --/}b9//,3(+DIIK(88DI,,&&<<((gh'I	22"<0';G x !99$W-w8

 ))*5 %FHLFMM6;;DE & ;A - $$7D
z*C  	%'G	   )+
 s$   F :F$ F! F!$F=<F=c                 v   U R                   R                  5          [        [        R                  " 5       5      =U R                  l        U l        U R                  R                  X5      (       a  U R                  U5        U R                   R                  5         g ! U R                   R                  5         f = fr	  )	r  r  rd   rq   r  r  rP  
set_cookier"  rN  s      r   set_cookie_if_okCookieJar.set_cookie_if_okw  s    ""$	),/		,<<DLL	||""633' &&(D&&(s   A%B B8c                    U R                   nU R                  R                  5          UR                  U;  a  0 X!R                  '   X!R                     nUR                  U;  a  0 X1R                  '   X1R                     nXUR
                  '   U R                  R                  5         g ! U R                  R                  5         f = fr	  )r  r  r  r   r   r   r"  )r"  rO  cc2c3s        r   rO  CookieJar.set_cookie  s    MM""$	)}}A%"q'7==!B{{"$boKKB$v{{O&&(D&&(s   A&B) )Cc                    [        SUR                  5       5        U R                  R                  5          U R	                  X5       HB  nU R
                  R                  X25      (       d  M%  [        SU5        U R                  U5        MD     U R                  R                  5         g ! U R                  R                  5         f = f)Nzextract_cookies: %sz setting cookie: %s)	r   r  r  r  rL  r  rP  rO  r"  )r"  rH  r   rO  s       r   extract_cookiesCookieJar.extract_cookies  s    $hmmo6""$	)++H><<&&v770&9OOF+ ?
 &&(D&&(s   2B( ,!B( (Cc                     Ub%  Ub  Uc  [        S5      eU R                  U   U   U	 g Ub  Uc  [        S5      eU R                  U   U	 g Ub  U R                  U	 g 0 U l        g )Nz8domain and path must be given to remove a cookie by namez.domain must be given to remove cookies by path)rp   r  )r"  r   r   r   s       r   r3  CookieJar.clear  s     DL NP Pf%d+D1~ DF Ff%d+f%DMr   c                 F   U R                   R                  5          U  HG  nUR                  (       d  M  U R                  UR                  UR
                  UR                  5        MI     U R                   R                  5         g ! U R                   R                  5         f = fr	  )r  r  r  r3  r   r   r   r"  )r"  rO  s     r   clear_session_cookiesCookieJar.clear_session_cookies  sq     	""$	)>>>JJv}}fkk6;;G  &&(D&&(s   B 5B B c                 z   U R                   R                  5          [        R                  " 5       nU  HL  nUR                  U5      (       d  M  U R	                  UR
                  UR                  UR                  5        MN     U R                   R                  5         g ! U R                   R                  5         f = fr	  )	r  r  rq   r3  r3  r   r   r   r"  )r"  rK   rO  s      r   r#  CookieJar.clear_expired_cookies  s     	""$	)))+C$$S))JJv}}fkk6;;G  &&(D&&(s   .B 5B B:c                 ,    [        U R                  5      $ r	  )r  r  rt  s    r   __iter__CookieJar.__iter__  s    $--((r   c                 $    SnU  H  o!S-   nM	     U$ )Nr
   r%   rI  )r"  r   rO  s      r   __len__CookieJar.__len__  s    FAAdr   c                     / nU  H  o!R                  [        U5      5        M     SU R                  R                  < SSR	                  U5      < S3$ N<[r   z]>)r   r@  rA  rB  r   r"  rrO  s      r   rC  CookieJar.__repr__  s8    FHHT&\2d!^^44diilCCr   c                     / nU  H  o!R                  [        U5      5        M     SU R                  R                  < SSR	                  U5      < S3$ rh  )r   r  rA  rB  r   rk  s      r   r:  CookieJar.__str__  s8    FHHS[1d!^^44diilCCr   )r  r  r  r  r	  )NNN)#rB  rE  rF  rG  r   compiler  r  strict_domain_re	domain_redots_reASCIImagic_rer$  r  r
  r  r  r  r/  r6  r9  r=  rL  rP  rO  rX  r3  r]  r#  rb  re  rC  r:  rH  rI  r   r   r   r     s     **U#Kzz+&Hzz+.

8$Ijj!Gzz6AH$9v%B_BZx
'5n))
)6))&)D
Dr   r   c                       \ rS rSrSrg)r   i  rI  Nr  rI  r   r   r   r     s    $r   r   c                   @    \ rS rSrSS jrS	S jrS	S jr  S	S jrSrg)
r   i  Nc                     [         R                  X5        Ub  [        R                  " U5      nXl        [        U5      U l        g r	  )r   r$  osfspathfilenamer2  	delayload)r"  r{  r|  r   s       r   r$  FileCookieJar.__init__  s6     	4(yy*H ir   c                     [        5       er	  rL  )r"  r{  ignore_discardignore_expiress       r   saveFileCookieJar.save   rU  r   c                     Uc)  U R                   b  U R                   nO[        [        5      e[        U5       nU R	                  XAX#5        S S S 5        g ! , (       d  f       g = fr	  )r{  rp   MISSING_FILENAME_TEXTopen_really_loadr"  r{  r  r  r    s        r   loadFileCookieJar.load  sI    }}(T]]("#899(^qa>J ^^s   A
A"c                    Uc)  U R                   b  U R                   nO[        [        5      eU R                  R	                  5          [
        R                  " U R                  5      n0 U l         U R                  XU5         U R                  R                  5         g ! [         a    X@l        e f = f! U R                  R                  5         f = fr	  )r{  rp   r  r  r  r   deepcopyr  r  OSErrorr"  )r"  r{  r  r  	old_states        r   revertFileCookieJar.revert  s     }}(T]]("#899""$	)dmm4IDM		(NC &&(   )
 &&(s   'B3 0B B00B3 3C)r  r|  r{  )NFNNFF)	rB  rE  rF  rG  r$  r  r  r  rH  rI  r   r   r   r     s    
)$K #49)r   r   c                 V   U R                   U R                  4SU R                  4SU R                  4/nU R                  b  UR                  SU R                  45        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  (       a/  UR                  S[        [        U R                  5      5      45        U R                  (       a  UR                  S	5        U R                  (       a  UR                  S
U R                  45        U R                  (       a  UR                  SU R                  45        [!        U R"                  R%                  5       5      nU H,  nUR                  U['        U R"                  U   5      45        M.     UR                  S['        U R(                  5      45        [+        U/5      $ )Nr   r   r   )	path_specN)	port_specN)
domain_dotN)r   Nr   )r  Nr  r&  r   )r   r   r   r   r   r   r  r  r  r   r   rT   r   r  r  r  sortedr!  r  r  r   r   )rO  r  r  r   s       r   lwp_cookie_strr  (  s    ++v||	$
&++	
FMM	"	$A {{&&++)> ?ahh':;ahh':;  !((+?"@}}ahh/0~~qxx(v~~)>?!A B~~qxx 12~~qxxFNN ;<188\63E3E$FG&,,##%&D	!Sa)*+  HHiV^^,-.aS!!r   c                   .    \ rS rSrSS jrSS jrS rSrg)	r   iD  c                    [         R                   " 5       n/ nU  HY  nU(       d  UR                  (       a  M  U(       d  UR                  U5      (       a  M<  UR                  S[	        U5      -  5        M[     SR                  US/-   5      $ )NzSet-Cookie3: %s
r   )rq   r  r3  r   r  r   )r"  r  r  rK   rl  rO  s         r   
as_lwp_strLWPCookieJar.as_lwp_strQ  sn     iikF!fnn!f&7&7&<&<HH&)??@  yyB4  r   Nc                    Uc)  U R                   b  U R                   nO[        [        5      e[        R                  " [        R
                  " U[        R                  [        R                  -  [        R                  -  S5      S5       nUR                  S5        UR                  U R                  X#5      5        S S S 5        g ! , (       d  f       g = f)N  wz#LWP-Cookies-2.0
)r{  rp   r  ry  fdopenr  O_CREATO_WRONLYO_TRUNCwriter  r  s        r   r  LWPCookieJar.savea  s    }}(T]]("#899YYGGHbjj2;;6CUK
  GG()GGDOONCD
 
 
s   
2C
Cc                    UR                  5       nU R                  R                  U5      (       d  SU-  n[        U5      e[        R                  " 5       nSnSn	Sn
 UR                  5       =nS:w  Ga  UR                  U5      (       d  M/  U[        U5      S  R                  5       n[        U/5       GHW  nUS   u  p0 n0 nU	 H  nSUU'   M
     USS   HN  u  nnUb  UR                  5       nOS nUU
;   d  UU	;   a  UnUU	;   a  Uc  S	nUUU'   M<  UU
;   a  UUU'   MI  UUU'   MP     UR                  nU" S
5      nU" S5      nUb  [        U5      nUc  S	nU" S5      nUR                  S5      n[        U" S5      XU" S5      U" S5      UUU" S5      U" S5      U" S5      U" S5      UUU" S5      U" S5      U5      nU(       d  UR                  (       a  GM&  U(       d  UR                  U5      (       a  GMF  U R                  U5        GMZ     UR                  5       =nS:w  a  GM  g g ! [          a    e ["         a    [%        5         [        SU< SW< 35      ef = f)Nz5%r does not look like a Set-Cookie3 (LWP) format filezSet-Cookie3:)r  r  r  r   r  )r   r   r   r   r   r  r&  r   r
   Fr%   Tr   r  r   r   r   r   r  r  r   r  r   r  r&  z invalid Set-Cookie3 format file : )readlineru  rc   r   rq   r   r  r   r   ro   r+  r   r   r  r3  rO  r  rF  r"   )r"  r    r{  r  r  magicr!   rK   headerr)  r*  linedatar   r   r.  r#  r   r   r   r  r   r  r   r  rS  s                             r   r  LWPCookieJar._really_loadp  sn   

}}##E**$%CC. iik.0
9	.::<'4B.v..CKL)//1.v6D"&q'KD!HD*&+ + $QR1=!"B!%B+-23F "A- yd!*+HQK+-*+HQK&'DG !)  !A	lG	lG*"*7"3"&x[F'-'8'8'=$q|T y!K.%'7< y!K. {&& | #	%A *aii )all3.?.? OOA&[ 7 ::<'4B..f  	 	.%'%t- . .	.s   G	H+ +2IrI  )TTr  )rB  rE  rF  rG  r  r  r  rH  rI  r   r   r   r   D  s    ! EJ.r   r   c                   $    \ rS rSrS rSS jrSrg)r	   i  c                    [         R                   " 5       n[        R                  UR                  5       5      (       d  [	        SU-  5      e UR                  5       =nS:w  GaQ  0 nUR                  [        5      (       a  SU[        '   U[        [        5      S  nUR                  S5      (       a  US S nUR                  5       R                  S5      (       d  UR                  5       S:X  a  M  UR                  S5      u  pppnUS:H  nU	S:H  n	US:X  a  UnS nUR                  S5      nS	nUS:X  a  S nS
n[        SXS S	XUU
S	UUUS S U5      nU(       d  UR                  (       a  GM  U(       d  UR                  U5      (       a  GM=  U R                  U5        UR                  5       =nS:w  a  GMP  g g ! [          a    e ["         a    [%        5         [	        SU< SW< 35      ef = f)Nz4%r does not look like a Netscape format cookies filer   r  r   )#r  	TRUEr   FTr
   z%invalid Netscape format cookies file r  )rq   NETSCAPE_MAGIC_RGXr   r  r   r   HTTPONLY_PREFIXHTTPONLY_ATTRr  r   r   r   r   r  r3  rO  r  rF  r"   )r"  r    r{  r  r  rK   r  r#  r   r  r   r   r   r   r   r   r  rS  s                     r   r  MozillaCookieJar._really_load  s   iik!''

55F <	.::<'4B.
 ???33*,D'O 4 56D ==&&tCRy JJL++J77JJLB& 

4( M$u F*$4$> 2: !D E$//4  b="G"G 1d![!""	! &!))%!,,s*;*;"i ::<'4B..l  	 	.%'%t- . .	.s   E$F6 62G(Nc                    Uc)  U R                   b  U R                   nO[        [        5      e[        R                  " [        R
                  " U[        R                  [        R                  -  [        R                  -  S5      S5       nUR                  [        5        [        R                  " 5       nU  GH'  nUR                  nU(       d  UR                  (       a  M*  U(       d  UR                  U5      (       a  MI  UR                  (       a  SnOSnUR!                  S5      (       a  Sn	OSn	UR"                  b  [%        UR"                  5      n
OSn
UR&                  c  SnUR(                  nOUR(                  nUR&                  nUR+                  [,        5      (       a	  [.        U-   nUR                  SR1                  XyUR2                  XX/5      S-   5        GM*     S S S 5        g ! , (       d  f       g = f)	Nr  r  r  FALSEr   r   r  r  )r{  rp   r  ry  r  r  r  r  r  r  NETSCAPE_HEADER_TEXTrq   r   r  r3  r   r   r   r  r   r   r(  r  r  r   r   )r"  r{  r  r  r    rK   rO  r   r   r   r   r   r   s                r   r  MozillaCookieJar.save#  s}   }}(T]]("#899YYGGHbjj2;;6CUK
 GG()))+C%&..%&*;*;C*@*@==6&&f$$S));$+k>>-!&..1G G<<' D"KKE!;;D"LLE..}==,v5FIIvFKK%= >3 
 
 
s   
EG,,
G:rI  r  )rB  rE  rF  rG  r  r  rH  rI  r   r   r	   r	     s    @D.L'r   r	   r	  )Y__all__ry  r   rJ   r   rq   urllib.parser   urllib.request	threadingr  http.clienthttpcalendarr   r   r   r   r  r  r  client	HTTP_PORTr  rp  r  r  r  r"   r+   r3   rV   rX   ro   rm   rT   rY   ra   rt  rb   rh   r{   r   Ir   Xr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r  r  r   r   r   r  r  r   r  r   r   r  r   r	   )r.   s   0r   <module>r     s  8M 
   	  #   	 --. ZZ @A :  A 
 9
4+126%62B&0( T=	jj5rxx@6p ,-/XX7 ZZ2BDD288OE
ZZ& DD288O) *65p jj
  44"))#$5B3
 $67$MN $9:::h' Sj zz"AB 

;/ 2AH **Y
)%N( jj288, 	  $**9:+!F"_E _ED B_, _B"  LD LD`  4)I 4)n"8v.= v.rM} MC; 3s    K