§
    Ç! h‹  ã                  óŒ   — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZ dZh d£Z G d„ d	¦  «        ZdS )
é    )ÚannotationsN)ÚHeadersÚMutableHeaders)ÚPlainTextResponseÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)ÚDELETEÚGETÚHEADÚOPTIONSÚPATCHÚPOSTÚPUT>   úContent-TypeúAccept-LanguageúContent-LanguageÚAcceptc                  óf   — e Zd Z	 	 	 	 	 	 	 d+d,d„Zd-d„Zd.d„Zd/d#„Zd0d$„Zd1d'„Ze	d2d*„¦   «         Z
dS )3ÚCORSMiddleware© ©r   FNéX  Úappr   Úallow_originsútyping.Sequence[str]Úallow_methodsÚallow_headersÚallow_credentialsÚboolÚallow_origin_regexú
str | NoneÚexpose_headersÚmax_ageÚintÚreturnÚNonec	                óv  — d|v rt           }d }	|�t          j        |¦  «        }	d|v }
d|v }|
 p|}i }|
rd|d<   |rd|d<   |rd                     |¦  «        |d<   i }|rd|d<   nd|d<   |                     d                     |¦  «        t          |¦  «        d	œ¦  «         t          t          t          |¦  «        z  ¦  «        }|r|sd                     |¦  «        |d
<   |rd|d<   || _	        || _
        || _        d„ |D ¦   «         | _        |
| _        || _        || _        |	| _        || _        || _        d S )NÚ*úAccess-Control-Allow-OriginÚtruez Access-Control-Allow-Credentialsú, zAccess-Control-Expose-HeadersÚOriginÚVary)zAccess-Control-Allow-MethodszAccess-Control-Max-AgeúAccess-Control-Allow-Headersc                ó6   — g | ]}|                      ¦   «         ‘ŒS r   ©Úlower©Ú.0Úhs     úSc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\starlette/middleware/cors.pyú
<listcomp>z+CORSMiddleware.__init__.<locals>.<listcomp>C   s    € Ð?Ð?Ð?¨A˜aŸgšg™iœiÐ?Ð?Ð?ó    )ÚALL_METHODSÚreÚcompileÚjoinÚupdateÚstrÚsortedÚSAFELISTED_HEADERSÚsetr   r   r    r!   Úallow_all_originsÚallow_all_headersÚpreflight_explicit_allow_originr$   Úsimple_headersÚpreflight_headers)Úselfr   r   r    r!   r"   r$   r&   r'   Úcompiled_allow_origin_regexrE   rF   rG   rH   rI   s                  r9   Ú__init__zCORSMiddleware.__init__   sÅ  € ð �-ÐÐÝ'ˆMà&*Ð#ØÐ)Ý*,¬*Ð5GÑ*HÔ*HÐ'à =Ð0ÐØ =Ð0ÐØ.?Ð*?Ð*TÐCTÐ'àˆØð 	@Ø<?ˆNÐ8Ñ9Øð 	HØAGˆNÐ=Ñ>Øð 	XØ>B¿iºiÈÑ>WÔ>WˆNÐ:Ñ;àÐØ*ð 	Cà(0Ð˜fÑ%Ð%à?BÐÐ;Ñ<Ø× Ò à04·	²	¸-Ñ0HÔ0HÝ*-¨g©,¬,ðð ñ	
ô 	
ð 	
õ Õ1µC¸Ñ4FÔ4FÑFÑGÔGˆØð 	YÐ!2ð 	YØ@DÇ	Â	È-Ñ@XÔ@XÐÐ<Ñ=Øð 	KØDJÐÐ@ÑAàˆŒØ*ˆÔØ*ˆÔØ?Ð?°Ð?Ñ?Ô?ˆÔØ!2ˆÔØ!2ˆÔØ/NˆÔ,Ø"=ˆÔØ,ˆÔØ!2ˆÔÐÐr;   Úscoper   Úreceiver
   Úsendr   c              ƒ  ó¤  K  — |d         dk    r|                       |||¦  «        ƒ d {V —† d S |d         }t          |¬¦  «        }|                     d¦  «        }|€|                       |||¦  «        ƒ d {V —† d S |dk    r/d|v r+|                      |¬¦  «        } ||||¦  «        ƒ d {V —† d S |                      ||||¬¦  «        ƒ d {V —† d S )	NÚtypeÚhttpÚmethod©rM   Úoriginr   úaccess-control-request-method)Úrequest_headers)r   r   ÚgetÚpreflight_responseÚsimple_response)rJ   rM   rN   rO   rS   ÚheadersrU   Úresponses           r9   Ú__call__zCORSMiddleware.__call__K   s*  è è € Ø�Œ=˜FÒ"Ð"Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFà�x”ˆÝ Ð&Ñ&Ô&ˆØ—’˜XÑ&Ô&ˆàˆ>Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFà�YÒÐÐ#BÀgÐ#MÐ#MØ×.Ò.¸wÐ.ÑGÔGˆHØ�(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFà×"Ò" 5¨'°4ÈÐ"ÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQr;   rU   rA   c                ól   — | j         rdS | j        �| j                             |¦  «        rdS || j        v S )NT)rE   r$   Ú	fullmatchr   )rJ   rU   s     r9   Úis_allowed_originz CORSMiddleware.is_allowed_origin_   sE   € ØÔ!ð 	Ø�4àÔ"Ð.°4Ô3J×3TÒ3TÐU[Ñ3\Ô3\Ð.Ø�4à˜Ô+Ð+Ð+r;   rW   r   r   c                ój  — |d         }|d         }|                      d¦  «        }t          | j        ¦  «        }g }|                      |¬¦  «        r| j        r||d<   n|                     d¦  «         || j        vr|                     d¦  «         | j        r|�||d<   nV|�Td„ |                     d	¦  «        D ¦   «         D ]4}| 	                    ¦   «         | j
        vr|                     d
¦  «          nŒ5|r*dd                     |¦  «        z   }t          |d|¬¦  «        S t          dd|¬¦  «        S )NrU   rV   zaccess-control-request-headers©rU   r-   rS   r2   c                ó6   — g | ]}|                      ¦   «         ‘ŒS r   r4   r6   s     r9   r:   z5CORSMiddleware.preflight_response.<locals>.<listcomp>€   s    € ÐKÐKÐK¨˜1Ÿ7š7™9œ9ÐKÐKÐKr;   ú,r[   zDisallowed CORS r/   i�  )Ústatus_coder[   ÚOKéÈ   )rX   ÚdictrI   r`   rG   Úappendr    rF   ÚsplitÚstripr!   r?   r   )	rJ   rW   Úrequested_originÚrequested_methodÚrequested_headersr[   ÚfailuresÚheaderÚfailure_texts	            r9   rY   z!CORSMiddleware.preflight_responseh   sz  € Ø*¨8Ô4ÐØ*Ð+JÔKÐØ+×/Ò/Ð0PÑQÔQÐå�tÔ-Ñ.Ô.ˆØˆà×!Ò!Ð)9Ð!Ñ:Ô:ð 	&ØÔ3ð Jð :J�Ð5Ñ6øà�OŠO˜HÑ%Ô%Ð%à 4Ô#5Ð5Ð5Ø�OŠO˜HÑ%Ô%Ð%ð Ô!ð 	Ð&7Ð&CØ6GˆGÐ2Ñ3Ð3ØÐ*ØKÐKÐ.?×.EÒ.EÀcÑ.JÔ.JÐKÑKÔKð ð �Ø—<’<‘>”>¨Ô);Ð;Ð;Ø—O’O IÑ.Ô.Ð.Ø�Eð <ð ð 	UØ-°·	²	¸(Ñ0CÔ0CÑCˆLÝ$ \¸sÈGÐTÑTÔTÐTå  °3ÀÐHÑHÔHÐHr;   c              ƒ  ó|   K  — t          j        | j        ||¬¦  «        }|                      |||¦  «        ƒ d {V —† d S )N)rO   rW   )Ú	functoolsÚpartialrO   r   )rJ   rM   rN   rO   rW   s        r9   rZ   zCORSMiddleware.simple_responseŽ   sM   è è € ÝÔ  ¤°ÀÐWÑWÔWˆØ�hŠh�u˜g tÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,r;   Úmessager	   c              ƒ  ó¨  K  — |d         dk    r ||¦  «        ƒ d {V —† d S |                      dg ¦  «         t          |¬¦  «        }|                     | j        ¦  «         |d         }d|v }| j        r|r|                      ||¦  «         n3| j        s,|                      |¬¦  «        r|                      ||¦  «          ||¦  «        ƒ d {V —† d S )NrQ   zhttp.response.startr[   rT   r0   Úcookierb   )Ú
setdefaultr   r@   rH   rE   Úallow_explicit_originr`   )rJ   ru   rO   rW   r[   rU   Ú
has_cookies          r9   rO   zCORSMiddleware.send’   s  è è € Ø�6Œ?Ð3Ò3Ð3Ø�$�w‘-”-ÐÐÐÐÐÐÐØˆFà×Ò˜9 bÑ)Ô)Ð)Ý  wÐ/Ñ/Ô/ˆØ�Š�tÔ*Ñ+Ô+Ð+Ø  Ô*ˆØ Ð0ˆ
ð Ô!ð 	8 jð 	8Ø×&Ò& w°Ñ7Ô7Ð7Ð7ð Ô'ð 	8¨D×,BÒ,BÈ&Ð,BÑ,QÔ,Qð 	8Ø×&Ò& w°Ñ7Ô7Ð7àˆd�7‰mŒmÐÐÐÐÐÐÐÐÐr;   r[   r   c                ó:   — || d<   |                       d¦  «         d S )Nr-   r0   )Úadd_vary_header)r[   rU   s     r9   ry   z$CORSMiddleware.allow_explicit_origin©   s'   € à17ˆÐ-Ñ.Ø×Ò Ñ)Ô)Ð)Ð)Ð)r;   )r   r   r   FNr   r   )r   r   r   r   r    r   r!   r   r"   r#   r$   r%   r&   r   r'   r(   r)   r*   )rM   r   rN   r
   rO   r   r)   r*   )rU   rA   r)   r#   )rW   r   r)   r   )
rM   r   rN   r
   rO   r   rW   r   r)   r*   )ru   r	   rO   r   rW   r   r)   r*   )r[   r   rU   rA   r)   r*   )Ú__name__Ú
__module__Ú__qualname__rL   r]   r`   rY   rZ   rO   Ústaticmethodry   r   r;   r9   r   r      sÒ   € € € € € ð /1Ø.6Ø.0Ø"'Ø)-Ø/1Øð93ð 93ð 93ð 93ð 93ðvRð Rð Rð Rð(,ð ,ð ,ð ,ð$Ið $Ið $Ið $IðL-ð -ð -ð -ðð ð ð ð. ð*ð *ð *ñ „\ð*ð *ð *r;   r   )Ú
__future__r   rs   r=   ÚtypingÚstarlette.datastructuresr   r   Ústarlette.responsesr   r   Ústarlette.typesr   r	   r
   r   r   r<   rC   r   r   r;   r9   ú<module>r†      sÜ   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 	€	€	€	Ø €€€à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BàJ€ØVÐVÐVÐ ð]*ð ]*ð ]*ð ]*ð ]*ñ ]*ô ]*ð ]*ð ]*ð ]*r;   