§
    9ˆtj«  ã                  óx   — d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
 d dlmZmZmZmZ dZ G d„ d¦  «        Zd	S )
é    )Úannotations)ÚSequence)ÚURLÚHeaders)ÚPlainTextResponseÚRedirectResponseÚResponse)ÚASGIAppÚReceiveÚScopeÚSendz6Domain wildcard patterns must be like '*.example.com'.c                  ó$   — e Zd Z	 	 ddd„Zdd„ZdS )ÚTrustedHostMiddlewareNTÚappr
   Úallowed_hostsúSequence[str] | NoneÚwww_redirectÚboolÚreturnÚNonec                ó$  — |€dg}|D ]\}d|dd …         vsJ t           ¦   «         ‚|                     d¦  «        r*|dk    r$|                     d¦  «        sJ t           ¦   «         ‚Œ]|| _        t          |¦  «        | _        d|v | _        || _        d S )NÚ*é   z*.)ÚENFORCE_DOMAIN_WILDCARDÚ
startswithr   Úlistr   Ú	allow_anyr   )Úselfr   r   r   Úpatterns        ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/starlette/middleware/trustedhost.pyÚ__init__zTrustedHostMiddleware.__init__   s¸   € ð Ð Ø ˜EˆMà$ð 	Ið 	IˆGØ˜g a b bœkÐ)Ð)Ð)Õ+BÑ)Ô)Ð)Ø×!Ò! #Ñ&Ô&ð I¨7°cª>¨>Ø×)Ò)¨$Ñ/Ô/ÐHÐHÕ1HÑHÔHÐ/øØˆŒÝ! -Ñ0Ô0ˆÔØ Ð-ˆŒØ(ˆÔÐÐó    Úscoper   Úreceiver   Úsendr   c              ƒ  óÆ  K  — | j         s
|d         dvr|                      |||¦  «        ƒ d {V —† d S t          |¬¦  «        }|                     dd¦  «                             d¦  «        d         }d}d}| j        D ]I}||k    s2|                     d	¦  «        r!|                     |d
d …         ¦  «        rd} nd|z   |k    rd}ŒJ|r|                      |||¦  «        ƒ d {V —† d S |rS| j        rLt          |¬¦  «        }	|	 
                    d|	j        z   ¬¦  «        }
t          t          |
¦  «        ¬¦  «        }nt          dd¬¦  «        } ||||¦  «        ƒ d {V —† d S )NÚtype)ÚhttpÚ	websocket)r#   ÚhostÚ ú:r   Fr   r   Tzwww.)Únetloc)ÚurlzInvalid host headeri�  )Ústatus_code)r   r   r   ÚgetÚsplitr   r   Úendswithr   r   Úreplacer-   r   Ústrr   )r   r#   r$   r%   Úheadersr*   Úis_valid_hostÚfound_www_redirectr   r.   Úredirect_urlÚresponses               r    Ú__call__zTrustedHostMiddleware.__call__   sÍ  è è € ØŒ>ð 	˜U 6œ]ð 3
ð 
ð 
ð —(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØˆFå Ð&Ñ&Ô&ˆØ�{Š{˜6 2Ñ&Ô&×,Ò,¨SÑ1Ô1°!Ô4ˆØˆØ"ÐØÔ)ð 	*ð 	*ˆGØ�wŠˆ 7×#5Ò#5°cÑ#:Ô#:ˆ¸t¿}º}ÈWÐUVÐUWÐUWÌ[Ñ?YÔ?YˆØ $�Ø�Ø˜$‘ 'Ò)Ð)Ø%)Ð"øàð 
	1Ø—(’(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð "ð U dÔ&7ð UÝ Ð&Ñ&Ô&�Ø"Ÿ{š{°&¸3¼:Ñ2E˜{ÑFÔF�Ý+µ°LÑ0AÔ0AÐBÑBÔB��å,Ð-BÐPSÐTÑTÔT�Ø�(˜5 '¨4Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0r"   )NT)r   r
   r   r   r   r   r   r   )r#   r   r$   r   r%   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r!   r:   © r"   r    r   r      sI   € € € € € ð /3Ø!ð	)ð )ð )ð )ð )ð$1ð 1ð 1ð 1ð 1ð 1r"   r   N)Ú
__future__r   Úcollections.abcr   Ústarlette.datastructuresr   r   Ústarlette.responsesr   r   r	   Ústarlette.typesr
   r   r   r   r   r   r>   r"   r    ú<module>rD      s»   ðØ "Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9àRÐ ð01ð 01ð 01ð 01ð 01ñ 01ô 01ð 01ð 01ð 01r"   