Ë
    +Œ:jŸ  ã                   ó`   — d dl 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y)é    N)ÚURLÚHeaders)ÚPlainTextResponseÚRedirectResponseÚResponse)ÚASGIAppÚReceiveÚScopeÚSendz6Domain wildcard patterns must be like '*.example.com'.c            	       óv   — e Zd Z	 	 ddedej
                  ej                  e      deddfd„Z	de
ded	eddfd
„Zy)ÚTrustedHostMiddlewareNÚappÚallowed_hostsÚwww_redirectÚreturnc                 óö   — |€dg}|D ]H  }d|dd  vsJ t         «       ‚|j                  d«      sŒ'|dk7  sŒ-|j                  d«      rŒ?J t         «       ‚ || _        t        |«      | _        d|v | _        || _        y )NÚ*é   z*.)ÚENFORCE_DOMAIN_WILDCARDÚ
startswithr   Úlistr   Ú	allow_anyr   )Úselfr   r   r   Úpatterns        úb/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/starlette/middleware/trustedhost.pyÚ__init__zTrustedHostMiddleware.__init__   s”   € ð Ð Ø ˜EˆMà$ò 	IˆGØ˜g a b˜kÑ)ÐBÔ+BÓBÐ)Ø×!Ñ! #Õ&¨7°c«>Ø×)Ñ)¨$Õ/ÐHÔ1HÓHÐ/ð	Ið ˆŒÜ! -Ó0ˆÔØ Ð-ˆŒØ(ˆÕó    ÚscopeÚreceiveÚsendc              ƒ   óŒ  K  — | j                   s|d   dvr| j                  |||«      ƒ d {  –—†  y t        |¬«      }|j                  dd«      j	                  d«      d   }d}d}| j
                  D ];  }||k(  s%|j                  d	«      r|j                  |d
d  «      rd} nd|z   |k(  sŒ:d}Œ= |r| j                  |||«      ƒ d {  –—†  y |rM| j                  rAt        |¬«      }	|	j                  d|	j                  z   ¬«      }
t        t        |
«      ¬«      }nt        dd¬«      } ||||«      ƒ d {  –—†  y 7 �Œ7 Œw7 Œ
­w)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__   sM  è ø€ Ø�>Š>˜U 6™]ð 3
ñ 
ð —(‘(˜5 '¨4Ó0×0Ð0Øä Ô&ˆØ�{‰{˜6 2Ó&×,Ñ,¨SÓ1°!Ñ4ˆØˆØ"ÐØ×)Ñ)ò 	*ˆGØ�wŠØ×"Ñ" 3Ô'¨D¯M©M¸'À!À"¸+Ô,Fà $�ÙØ˜$‘ 'Ó)Ø%)Ñ"ð	*ñ Ø—(‘(˜5 '¨4Ó0×0Ñ0ñ " d×&7Ò&7Ü Ô&�Ø"Ÿ{™{°&¸3¿:¹:Ñ2E˜{ÓF�Ü+´°LÓ0AÔB‘ä,Ð-BÐPSÔT�Ù˜5 '¨4Ó0×0Ñ0ð5 1ùð" 1øð 1ús;   ‚*E¬D=­A>EÂ,EÃE Ã	A.EÄ7EÄ8EÅ EÅE)NT)Ú__name__Ú
__module__Ú__qualname__r   ÚtypingÚOptionalÚSequencer/   Úboolr   r
   r	   r   r5   © r   r   r   r   
   sj   „ ð @DØ!ñ	)àð)ð —‘ v§¡°sÑ';Ñ<ð)ð ð	)ð
 
ó)ð$1 Eð 1°Gð 1À4ð 1ÈDô 1r   r   )r9   Ústarlette.datastructuresr   r   Ústarlette.responsesr   r   r   Ústarlette.typesr   r	   r
   r   r   r   r=   r   r   ú<module>rA      s'   ðÛ ç 1ß MÑ Mß 9Ó 9àRÐ ÷21ò 21r   