
    ^i                        S SK Jr  S SKrS SKrS SKJrJr  S SKJr  S SKrS SK	J
r
  S SKJrJr  S SKJr  S SKJrJrJrJrJr   " S	 S
5      r " S S\\\R2                  4   5      rg)    )annotationsN)	b64decode	b64encode)Literal)BadSignature)MutableHeadersSecret)HTTPConnection)ASGIAppMessageReceiveScopeSendc                  Z    \ rS rSr      S                 SS jjrSS jrSrg)	SessionMiddleware   Nc	                    Xl         [        R                  " [        U5      5      U l        X0l        X@l        XPl        SU-   U l        U(       a  U =R                  S-  sl        Ub  U =R                  SU 3-  sl        g g )Nzhttponly; samesite=z; securez	; domain=)	appitsdangerousTimestampSignerstrsignersession_cookiemax_agepathsecurity_flags)	selfr   
secret_keyr   r   r   	same_site
https_onlydomains	            M/root/zsrc/venv/lib/python3.13/site-packages/starlette/middleware/sessions.py__init__SessionMiddleware.__init__   ss     "223z?C,	3i?:-Yvh#77     c                H  ^ ^^^#    TS   S;  a  T R                  TUT5      I S h  vN   g [        T5      nSmT R                  UR                  ;   a{  UR                  T R                     R	                  S5      n T R
                  R                  UT R                  S9n[        [        R                  " [        U5      5      5      TS'   SmO[        5       TS'   S	UUU U4S jjnT R                  TX&5      I S h  vN   g  N! [         a    [        5       TS'    NAf = f N$7f)
Ntype)http	websocketTutf-8)r   sessionFc                  >#    U S   S:X  Ga`  TS   n[        U S9nUR                  (       a  UR                  S5        UR                  (       a  U(       a  [	        [
        R                  " U5      R                  S5      5      nTR                  R                  U5      nSR                  TR                  UR                  S5      TR                  TR                  (       a  STR                   S	3OS
TR                  S9nUR!                  SU5        O[UR                  (       aJ  T(       dC  SR                  TR                  STR                  STR                  S9nUR!                  SU5        T" U 5      I S h  vN   g  N7f)Nr'   zhttp.response.startr+   )scopeCookier*   z?{session_cookie}={data}; path={path}; {max_age}{security_flags}zMax-Age=z;  )r   datar   r   r   z
Set-Cookiez?{session_cookie}={data}; path={path}; {expires}{security_flags}nullz'expires=Thu, 01 Jan 1970 00:00:00 GMT; )r   r0   r   expiresr   )r   accessedadd_vary_headermodifiedr   jsondumpsencoder   signformatr   decoder   r   r   append)	messager+   headersr0   header_valueinitial_session_was_emptyr-   r   sends	        r"   send_wrapper0SessionMiddleware.__call__.<locals>.send_wrapper:   s=    v"77#(#3(w7##++H5##$TZZ%8%?%?%HID;;++D1D#d#k#k'+':':![[1!YY?C||(4<<. ;QS'+':': $l $L NN<>%%.G#d#k#k'+':':#!YY I'+':': $l $L NN<>w-s   E6F9E?:F)r=   r   returnNone)r   r
   r   cookiesr8   r   unsignr   Sessionr6   loadsr   r   )r   r-   receiverA   
connectionr0   rB   r@   s   `` `   @r"   __call__SessionMiddleware.__call__'   s    = 55((5'4000#E*
$(!*"4"44%%d&9&9:AA'JD-{{))$)E#*4::io+F#Gi ,1)  'yE)	  	 < hhug444_ 1   -#*9i -F 	5sA    D"DAD"<AD .D";D <D"DD"DD")r   r   r   r   r   r   )r+   i u /laxFN)r   r   r   zstr | Secretr   r   r   z
int | Noner   r   r   z Literal['lax', 'strict', 'none']r    boolr!   z
str | NonerD   rE   )r-   r   rJ   r   rA   r   rD   rE   )__name__
__module____qualname____firstlineno__r#   rL   __static_attributes__ r%   r"   r   r      sx    
 (/6; !88 !8 	8
 8 8 48 8 8 
8,15r%   r   c                     ^  \ rS rSr% SrS\S'   SrS\S'   SS jrSS jrSU 4S jjr	SU 4S	 jjr
SU 4S
 jjrSU 4S jjrSSU 4S jjjrSU 4S jjrSrU =r$ )rH   [   FrP   r3   r5   c                    SU l         g NT)r3   r   s    r"   mark_accessedSession.mark_accessed_   s	    r%   c                     SU l         SU l        g rZ   r3   r5   r[   s    r"   mark_modifiedSession.mark_modifiedb   s    r%   c                D   > U R                  5         [        TU ]	  X5        g N)r`   super__setitem__)r   keyvalue	__class__s      r"   re   Session.__setitem__f   s    C'r%   c                D   > U R                  5         [        TU ]	  U5        g rc   )r`   rd   __delitem__)r   rf   rh   s     r"   rk   Session.__delitem__j   s    C r%   c                B   > U R                  5         [        TU ]	  5         g rc   )r`   rd   clear)r   rh   s    r"   rn   Session.clearn   s    r%   c                ^   > U R                   =(       d    X;   U l         [        TU ]  " U/UQ76 $ rc   )r5   rd   pop)r   rf   argsrh   s      r"   rq   Session.popr   s)    4w{3&&&r%   c                L   > X;  a  U R                  5         [        TU ]	  X5      $ rc   )r`   rd   
setdefault)r   rf   defaultrh   s      r"   ru   Session.setdefaultv   s$    ? w!#//r%   c                F   > U R                  5         [        TU ]  " U0 UD6  g rc   )r`   rd   update)r   rr   kwargsrh   s      r"   ry   Session.update{   s     ''r%   r_   )rD   rE   )rf   r   rg   
typing.AnyrD   rE   )rf   r   rD   rE   )rf   r   rr   r|   rD   r|   rc   )rf   r   rv   r|   rD   r|   )rr   r|   rz   r|   rD   rE   )rQ   rR   rS   rT   r3   __annotations__r5   r\   r`   re   rk   rn   rq   ru   ry   rU   __classcell__)rh   s   @r"   rH   rH   [   sI    HdHd(!'0 0
( (r%   rH   )
__future__r   r6   typingbase64r   r   r   r   itsdangerous.excr   starlette.datastructuresr   r	   starlette.requestsr
   starlette.typesr   r   r   r   r   r   dictr   AnyrH   rV   r%   r"   <module>r      sL    "   '   ) ; - B BH5 H5V"(d3

?# "(r%   