§
    …ßjý  ã                   ó¸   — d dl m Z  d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ  G d„ d	e¦  «        Z G d
„ dej        ¦  «        ZdS )é    )ÚdatetimeN)Úhttp)Úwsgi)Úsock)Úutil)Úbasec                   ó   — e Zd ZdZdS )ÚStopWaitingz3 exception raised to stop waiting for a connection N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úH/var/www/html/venv/lib/python3.11/site-packages/gunicorn/workers/sync.pyr
   r
      s   € € € € € Ø=Ð=Ð=Ð=r   r
   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Ú
SyncWorkerc                 ó´   — |                      ¦   «         \  }}|                     d¦  «         t          j        |¦  «         |                      |||¦  «         d S )Né   )ÚacceptÚsetblockingr   Úclose_on_execÚhandle)ÚselfÚlistenerÚclientÚaddrs       r   r   zSyncWorker.accept   sV   € Ø—’Ñ(Ô(‰ˆ�Ø×Ò˜1ÑÔÐÝÔ˜6Ñ"Ô"Ð"Ø�Š�H˜f dÑ+Ô+Ð+Ð+Ð+r   c                 óØ  — 	 |                       ¦   «          t          j        | j        g g |¦  «        }|d         r=| j        d         |d         v r t	          j        | j        d         d¦  «         |d         S d S # t          $ rf}|j        d         t          j	        k    r| j
        cY d }~S |j        d         t          j        k    r| j        dk     r| j
        cY d }~S t          ‚‚ d }~ww xY w)Nr   r   )ÚnotifyÚselectÚwait_fdsÚPIPEÚosÚreadÚOSErrorÚargsÚerrnoÚEINTRÚsocketsÚEBADFÚnrr
   )r   ÚtimeoutÚretÚes       r   ÚwaitzSyncWorker.wait    s   € ð	Ø�KŠK‰MŒMˆMÝ”- ¤¨r°2°wÑ?Ô?ˆCØ�1Œvð Ø”9˜Q”< 3 q¤6Ð)Ð)Ý”G˜DœI aœL¨!Ñ,Ô,Ð,Ø˜1”v�ðð øõ
 ð 	ð 	ð 	ØŒv�aŒy�EœKÒ'Ð'Ø”|Ð#Ð#Ð#Ð#Ð#Ð#ØŒv�aŒy�EœKÒ'Ð'Ø”7˜Q’;�;Øœ<Ð'Ð'Ð'Ð'Ð'Ð'å%Ð%Øøøøøð	øøøs0   ‚A4A9 Á9
C)Â!C$Â$C)Â*,C$ÃC)ÃC$Ã$C)c                 óx   — | j         t          j        ¦   «         k    r| j                             d| ¦  «         dS dS )Nz!Parent changed, shutting down: %sFT)Úppidr#   ÚgetppidÚlogÚinfo)r   s    r   Úis_parent_alivezSyncWorker.is_parent_alive3   s6   € àŒ9�œ
™œÒ$Ð$ØŒH�MŠMÐ=¸tÑDÔDÐDØ�5Øˆtr   c                 ó–  — | j         d         }| j        r´|                      ¦   «          	 |                      |¦  «         Œ2# t          $ r5}|j        t
          j        t
          j        t
          j        fvr‚ Y d }~nd }~ww xY w|  	                    ¦   «         sd S 	 |  
                    |¦  «         n# t          $ r Y d S w xY w| j        °²d S d S ©Nr   )r)   Úaliver   r   r%   r'   ÚEAGAINÚECONNABORTEDÚEWOULDBLOCKr5   r/   r
   )r   r,   r   r.   s       r   Úrun_for_onezSyncWorker.run_for_one:   s  € Ø”< ”?ˆØŒjð 	Ø�KŠK‰MŒMˆMð
Ø—’˜HÑ%Ô%Ð%ð øåð ð ð Ø”7¥5¤<µÔ1CÝ#(Ô#4ð#6ð 6ð 6àð6ð 6ð 6ð 6ð 6øøøøðøøøð
 ×'Ò'Ñ)Ô)ð Ø�ðØ—	’	˜'Ñ"Ô"Ð"Ð"øÝð ð ð Ø��ðøøøð1 Œjð 	ð 	ð 	ð 	ð 	s)   ªA  Á 
A?Á
+A:Á:A?ÂB/ Â/
B=Â<B=c                 ó¬  — | j         rÌ|                      ¦   «          	 |                      |¦  «        }n# t          $ r Y d S w xY w|�o|D ]l}|| j        d         k    rŒ	 |                      |¦  «         Œ+# t          $ r5}|j        t          j        t          j	        t          j
        fvr‚ Y d }~Œed }~ww xY w|                      ¦   «         sd S | j         °Êd S d S r7   )r8   r   r/   r
   r"   r   r%   r'   r9   r:   r;   r5   )r   r,   Úreadyr   r.   s        r   Úrun_for_multiplezSyncWorker.run_for_multipleW   s1  € ØŒjð 	Ø�KŠK‰MŒMˆMðØŸ	š	 'Ñ*Ô*��øÝð ð ð Ø��ðøøøð Ð Ø %ð 	"ð 	"�HØ 4¤9¨Q¤<Ò/Ð/Ø ð"ØŸš HÑ-Ô-Ð-Ð-øÝ"ð "ð "ð "Øœ7­5¬<½Ô9KÝ+0Ô+<ð+>ð >ð >à!ð>ð >ð >ð >ð >øøøøð"øøøð
 ×'Ò'Ñ)Ô)ð Ø�ð+ Œjð 	ð 	ð 	ð 	ð 	s'   �3 ³
AÁ AÁA3Á3
B2Á=+B-Â-B2c                 ó.  — | j         pd}d| j        j        v r| j                             d¦  «         | j        D ]}|                     d¦  «         Œt          | j        ¦  «        dk    r|                      |¦  «         d S |  	                    |¦  «         d S )Ng      à?Úh2zƒHTTP/2 is not supported by the sync worker. Use gthread, gevent, or asgi workers for HTTP/2 support. Falling back to HTTP/1.1 only.r   r   )
r,   ÚcfgÚhttp_protocolsr3   Úwarningr)   r   Úlenr?   r<   )r   r,   Úss      r   ÚrunzSyncWorker.runo   s²   € ð ”,Ð% #ˆð �4”8Ô*Ð*Ð*ØŒH×Òð1ñô ð ð ”ð 	ð 	ˆAØ�MŠM˜!ÑÔÐÐåˆtŒ|ÑÔ˜qÒ Ð Ø×!Ò! 'Ñ*Ô*Ð*Ð*Ð*à×Ò˜WÑ%Ô%Ð%Ð%Ð%r   c                 ó.  — d }	 | j         j        rt          j        || j         ¦  «        }t	          j        | j         ||¦  «        }t          |¦  «        }|                      ||||¦  «         �nú# t          j        j	        $ r&}| j
                             d|¦  «         Y d }~�nÅd }~wt          $ r&}| j
                             d|¦  «         Y d }~�n—d }~wt          j        $ r‡}|j        d         t          j        k    r/| j
                             d¦  «         |                     ¦   «          n2| j
                             d¦  «         |                      ||||¦  «         Y d }~�nd }~wt&          $ rÉ}|j        t(          j        t(          j        t(          j        fvr| j
                             d¦  «         nz|j        t(          j        k    r| j
                             d¦  «         nJ|j        t(          j        k    r| j
                             d¦  «         n| j
                             d	¦  «         Y d }~n2d }~wt2          $ r"}|                      ||||¦  «         Y d }~nd }~ww xY wt5          j        |¦  «         d S # t5          j        |¦  «         w xY w)
Nz*Ignored premature client disconnection. %szClosing connection. %sr   zssl connection closedzError processing SSL request.z Socket error processing request.zIgnoring connection resetzIgnoring socket not connectedzIgnoring EPIPE)rB   Úis_sslr   Ússl_wrap_socketr   Ú
get_parserÚnextÚhandle_requestÚerrorsÚ
NoMoreDatar3   ÚdebugÚStopIterationÚsslÚSSLErrorr&   ÚSSL_ERROR_EOFÚcloseÚhandle_errorr%   r'   ÚEPIPEÚ
ECONNRESETÚENOTCONNÚ	exceptionÚBaseExceptionr   Úclose_graceful)r   r   r   r   ÚreqÚparserr.   s          r   r   zSyncWorker.handle†   sš  € Øˆð	(ØŒxŒð @ÝÔ-¨f°d´hÑ?Ô?�Ý”_ T¤X¨v°tÑ<Ô<ˆFÝ�v‘,”,ˆCØ×Ò ¨#¨v°tÑ<Ô<Ð<Ñ<øÝŒ{Ô%ð 	Lð 	Lð 	LØŒH�NŠNÐGÈÑKÔKÐKÐKÐKÐKÐKÑKøøøøÝð 	8ð 	8ð 	8ØŒH�NŠNÐ3°QÑ7Ô7Ð7Ð7Ð7Ð7Ð7Ñ7øøøøÝŒ|ð 	8ð 	8ð 	8ØŒv�aŒy�CÔ-Ò-Ð-Ø”—’Ð6Ñ7Ô7Ð7Ø—’‘”��à”—’Ð>Ñ?Ô?Ð?Ø×!Ò! # v¨t°QÑ7Ô7Ð7øøøøùøøøøÝð 		5ð 		5ð 		5ØŒw�uœ{­EÔ,<½e¼nÐMÐMÐMØ”×"Ò"Ð#EÑFÔFÐFÐFà”7�eÔ.Ò.Ð.Ø”H—N’NÐ#>Ñ?Ô?Ð?Ð?Ø”W¥¤Ò.Ð.Ø”H—N’NÐ#BÑCÔCÐCÐCà”H—N’NÐ#3Ñ4Ô4Ð4øøøøøøøøøÝð 	4ð 	4ð 	4Ø×Ò˜c 6¨4°Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3øøøøð	4øøøõ Ô Ñ'Ô'Ð'Ð'Ð'ø�DÔ Ñ'Ô'Ð'Ð'øøøsz   „A(A. Á,I> Á.I%ÂB#ÂI> Â#I%Â0CÃI> ÃI%Ã#A<E%ÅI> Å%I%Å2B?H6È1I> È6I%ÉI ÉI> É I%É%I> É>Jc                 óú  — i }d }	 | j                              | |¦  «         t          j        ¦   «         }t	          j        ||||                     ¦   «         | j         ¦  «        \  }}|                     ¦   «          | xj        dz  c_        | j        | j	        k    r!| j
                             d¦  «         d| _        |                      ||j        ¦  «        }	 t          ||d         ¦  «        r|                     |¦  «         n|D ]}	|                     |	¦  «         Œ|                     ¦   «          t          j        ¦   «         |z
  }
| j
                             ||||
¦  «         t'          |d¦  «        r|                     ¦   «          n]# t          j        ¦   «         |z
  }
| j
                             ||||
¦  «         t'          |d¦  «        r|                     ¦   «          w w xY wn~# t(          $ r" t+          j        t/          j        ¦   «         Ž  Y nSt2          $ rG |rC|j        r<| j
                             d¦  «         t+          j        |¦  «         t;          ¦   «         ‚‚ w xY w	 | j                              | |||¦  «         d S # t2          $ r | j
                             d¦  «         Y d S w xY w# 	 | j                              | |||¦  «         w # t2          $ r | j
                             d¦  «         Y w w xY wxY w)Nr   z,Autorestarting worker after current request.Fzwsgi.file_wrapperrU   zError handling requestzException in post_request hook)rB   Úpre_requestr   Únowr   ÚcreateÚgetsocknameÚforce_closer+   Úmax_requestsr3   r4   r8   Ústart_responseÚ
isinstanceÚ
write_fileÚwriterU   ÚaccessÚhasattrr%   r   ÚreraiseÚsysÚexc_infoÚ	ExceptionÚheaders_sentrZ   r\   rQ   Úpost_request)r   r   r]   r   r   ÚenvironÚrespÚrequest_startÚrespiterÚitemÚrequest_times              r   rM   zSyncWorker.handle_request¨   s0  € ØˆØˆð)	EØŒH× Ò   sÑ+Ô+Ð+Ý$œL™NœNˆMÝ œK¨¨V°TØ(0×(<Ò(<Ñ(>Ô(>ÀÄñJô J‰MˆD�'ð
 ×ÒÑÔÐØˆGŒG�q‰LˆGŒGØŒw˜$Ô+Ò+Ð+Ø”—’ÐLÑMÔMÐMØ"�”
Ø—y’y ¨$Ô*=Ñ>Ô>ˆHð%Ý˜h¨Ð0CÔ(DÑEÔEð )Ø—O’O HÑ-Ô-Ð-Ð-à (ð )ð )˜ØŸ
š
 4Ñ(Ô(Ð(Ð(Ø—
’
‘”�å'œ|™~œ~°Ñ=�Ø”—’  c¨7°LÑAÔAÐAÝ˜8 WÑ-Ô-ð %Ø—N’NÑ$Ô$Ð$øøõ  (œ|™~œ~°Ñ=�Ø”—’  c¨7°LÑAÔAÐAÝ˜8 WÑ-Ô-ð %Ø—N’NÑ$Ô$Ð$Ð$ð%øøøøøåð 	*ð 	*ð 	*åŒL�#œ,™.œ.Ð)Ð)Ð)Ð)Ýð 	ð 	ð 	Øð &˜Ô)ð &ð ”×"Ò"Ð#;Ñ<Ô<Ð<ÝÔ# FÑ+Ô+Ð+Ý#‘o”oÐ%Øð	øøøðEØ”×%Ò% d¨C°¸$Ñ?Ô?Ð?Ð?Ð?øÝð Eð Eð EØ”×"Ò"Ð#CÑDÔDÐDÐDÐDÐDðEøøøøðEØ”×%Ò% d¨C°¸$Ñ?Ô?Ð?Ð?øÝð Eð Eð EØ”×"Ò"Ð#CÑDÔDÐDÐDÐDðEøøøøøøs|   †CG' ÃAF	 Ä1AG' Æ	AG#Ç#G' Ç&J0 Ç')I"ÈJ0 ÈAI"É"J0 É&J Ê$J-Ê,J-Ê0K:Ê2KËK:Ë$K7Ë4K:Ë6K7Ë7K:N)r   r   r   r   r/   r5   r<   r?   rG   r   rM   r   r   r   r   r      s’   € € € € € ð,ð ,ð ,ðð ð ð&ð ð ðð ð ð:ð ð ð0&ð &ð &ð. (ð  (ð  (ðD,Eð ,Eð ,Eð ,Eð ,Er   r   )r   r'   r#   r    rR   rm   Úgunicornr   Úgunicorn.httpr   r   r   Úgunicorn.workersr   ro   r
   ÚWorkerr   r   r   r   ú<module>r|      s  ðð Ð Ð Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø 
€
€
€
à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð>ð >ð >ð >ð >�)ñ >ô >ð >ð|Eð |Eð |Eð |Eð |E�”ñ |Eô |Eð |Eð |Eð |Er   