§
     ’Þjº%  ã                   ó®   — d Z ddl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	 d„ Z
 ed¬¦  «        d„ ¦   «         Zd	„ Zd
„ Zd„ Zd„ ZdZdZd„ Zd„ Zd„ Zd„ ZdS )zFCache Gradio constructor bookkeeping and safely traverse shared state.é    N)Ú	lru_cacheÚwraps)ÚPathc                 ó‚   ‡ ‡‡— ddl mŠ t          j        ‰ ¦  «        j        Št          ‰ ¦  «        ˆ ˆˆfd„¦   «         }|S )Nr   )Úget_local_contextsc                  ó*  •— | d         }t          |d¦  «        }|sg |_        t          | ¦  «        D ]*\  }}|dk    s|t          ‰	¦  «        k    rŒ||‰	|         <   Œ+|j                             |¦  «          ‰
¦   «         \  }}|r|r|sd S  ‰|fi |¤ŽS )Nr   Ú_constructor_args)Úhasattrr	   Ú	enumerateÚlenÚappend)ÚargsÚkwargsÚselfÚinitialized_beforeÚiÚargÚin_event_listenerÚ	is_renderÚfnÚfn_argsr   s           €€€úIC:\Users\johnn\OneDrive\Documents\AI\shared\gradio\gradio_engine_patch.pyÚwrapperz_updateable.<locals>.wrapper   sÒ   ø€ à�AŒwˆÝ$ TÐ+>Ñ?Ô?ÐØ!ð 	(Ø%'ˆDÔ"Ý ‘o”oð 	%ð 	%‰FˆAˆsØ�AŠvˆv˜�c '™lœlÒ*Ð*ØØ!$ˆF�7˜1”:ÑÐØÔ×%Ò% fÑ-Ô-Ð-Ø'9Ð'9Ñ';Ô';Ñ$Ð˜9Øð 	Ð!3ð 	¸Ið 	Ø�4Øˆr�$Ð!Ð!˜&Ð!Ð!Ð!ó    )Úgradio.component_metar   ÚinspectÚgetfullargspecr   r   )r   r   r   r   s   ` @@r   Ú_updateabler      sf   øøø€ Ø8Ð8Ð8Ð8Ð8Ð8õ Ô$ RÑ(Ô(Ô-€Gå
ˆ2�Y„Yð"ð "ð "ð "ð "ð "ñ „Yð"ð €Nr   é   )Úmaxsizec                 ód   — t          t          | ¦  «        dz                       ¦   «         ¦  «        S )NÚgradio)Ústrr   Úresolve)Útemp_dirs    r   Ú_resolved_upload_folderr&   $   s'   € å•�X‘” Ñ)×2Ò2Ñ4Ô4Ñ5Ô5Ð5r   c                  óº   — t           j                             d¦  «        p<t          t           j                             t          j        ¦   «         ¦  «        ¦  «        S )NÚGRADIO_TEMP_DIR)ÚosÚenvironÚgetr&   ÚpathÚabspathÚtempfileÚ
gettempdir© r   r   Ú_get_upload_folderr1   )   s?   € õ Œ:�>Š>Ð+Ñ,Ô,ÐoÕ0GÍÌÏÊÕX`ÔXkÑXmÔXmÑHnÔHnÑ0oÔ0oÐor   c                 óâ   — t          | |¦  «        D ]]\  }}t          |¦  «                             ¦   «         r"t          |¦  «                             ¦   «          ŒHt	          j        ||¦  «         Œ^d S ©N)Úzipr   ÚexistsÚunlinkÚshutilÚmove)ÚfilesÚdestinationsÚsourceÚdestinations       r   Ú_move_uploaded_files_to_cacher=   /   sx   € Ý" 5¨,Ñ7Ô7ð -ð -Ñˆ�õ �ÑÔ×#Ò#Ñ%Ô%ð 	-Ý�‰LŒL×ÒÑ!Ô!Ð!Ð!åŒK˜ Ñ,Ô,Ð,Ð,ð-ð -r   c                 ó  ‡‡—  ‰| ¦  «        r ‰| ¦  «        S t          | t          ¦  «        r.ˆˆfd„t          |                      ¦   «         ¦  «        D ¦   «         S t          | t          t          f¦  «        rˆˆfd„| D ¦   «         S | S )Nc                 ó:   •— i | ]\  }}|t          |‰‰¦  «        “ŒS r0   ©Ú_snapshot_traverse)Ú.0ÚkeyÚitemÚfuncÚis_roots      €€r   ú
<dictcomp>z&_snapshot_traverse.<locals>.<dictcomp>A   s,   ø€ ÐbÐbÐbÁÀÀd�Õ'¨¨d°GÑ<Ô<ÐbÐbÐbr   c                 ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS r0   r@   )rB   rD   rE   rF   s     €€r   ú
<listcomp>z&_snapshot_traverse.<locals>.<listcomp>C   s&   ø€ ÐJÐJÐJ¸DÕ" 4¨¨wÑ7Ô7ÐJÐJÐJr   )Ú
isinstanceÚdictÚlistÚitemsÚtuple)ÚvaluerE   rF   s    ``r   rA   rA   :   s£   øø€ Ø€wˆu�~„~ð Øˆt�E‰{Œ{ÐÝ�%�ÑÔð cð cÐbÐbÐbÐbÍdÐSX×S^ÒS^ÑS`ÔS`ÑNaÔNaÐbÑbÔbÐbÝ�%�$¥˜Ñ'Ô'ð KØJÐJÐJÐJÐJÀEÐJÑJÔJÐJØ€Lr   c                 óº   ‡ ‡— ‰                       ¦   «         ‰                      ¦   «         k    rdS 	 t          ˆˆ fd„‰ D ¦   «         ¦  «        S # t          $ r Y dS w xY w)NFc              3   ó\   •K  — | ]&}‰|         ‰|         u p‰|         ‰|         k    V — Œ'd S r3   r0   )rB   rC   Úcurrentr   s     €€r   ú	<genexpr>z)_same_constructor_args.<locals>.<genexpr>K   sC   øè è € Ð`Ð`ÐRU�6˜#”; '¨#¤,Ð.ÐM°&¸´+ÀÈÄÒ2MÐ`Ð`Ð`Ð`Ð`Ð`r   )ÚkeysÚallÚ	Exception)r   rR   s   ``r   Ú_same_constructor_argsrW   G   sr   øø€ Ø‡{‚{�}„}˜Ÿš™œÒ&Ð&ØˆuðÝÐ`Ð`Ð`Ð`Ð`ÐY_Ð`Ñ`Ô`Ñ`Ô`Ð`øÝð ð ð Øˆuˆuðøøøs   °A Á
AÁAÚb9962fc450b9ccb8Ú74d61935b157993cc              ƒ   óH  K  — ddl m}m}m}m} |p|                     | ¦  «        }t          |t          ¦  «        rZ||                     ¦   «         k    rBt          |j
        ¦  «        dk    r*|                     ¦   «         gt          |j
        ¦  «        z  }t          |t          ¦  «        r8t          |¦  «        dk    r%|                     d„ |j
        D ¦   «         |¦  «        }t          |j
        ¦  «        dk    r
|j        s|g}|                      ||¦  «         g }t          |j
        ¦  «        D �]ð\  }	}
	 ||	         |j        j        u r|                     d ¦  «         Œ1n1# t$          t&          f$ r}t)          d|j        › �¦  «        |‚d }~ww xY w|
j        rA|                     ||	         ¦  «        s||	         ||
j        <   |                     d ¦  «         Œ«||	         }|                     |¦  «        r|                     |d¬¦  «        }t          ||j        ¦  «        r|j                             ¦   «         }d|d	<   |                     |¦  «        r¾||
j                 }|j                             ¦   «         }|                     |¦  «         |                     d
d ¦  «         |                     d	¦  «         d|d<   t?          ||j        ¦  «        s |
j         di |¤Ž||
j        <   | !                    ||
j                 ||j"        ¬¦  «        }nÚ|j"        rÓt          |
|j#        ¦  «        s| $                    |
j         › d�¦  «        ‚|
j        |v r||
j                 }
|
 "                    |¦  «        }t          ||j%        |j&        f¦  «        r| '                    ¦   «         }n|}| (                    ||
d¬¦  «        ƒ d {V —†}|
j        |vr
|
||
j        <   |||
j                 _)        |                     | (                    ||
d¬¦  «        ƒ d {V —†¦  «         �Œò|S )Nr   )ÚblocksÚ
componentsÚprocessing_utilsÚutilsé   c                 ó   — g | ]	}|j         ‘Œ
S r0   )Ú_id©rB   Úblocks     r   rI   z%_postprocess_data.<locals>.<listcomp>`   s   € Ð<eÐ<eÐ<eÈ5¸U¼YÐ<eÐ<eÐ<er   zXNumber of output components does not match number of values returned from from function T)Ú
skip_valueÚupdateÚ__type__rO   FÚrender)rc   Úupdate_dictÚpostprocessz( Component not a valid output component.)ri   r0   )*r"   r[   r\   r]   r^   ÚSessionStaterJ   rK   Úskipr   ÚoutputsÚconvert_component_dict_to_listÚbatchÚvalidate_outputsr   Ú	_KeywordsÚFINISHED_ITERATINGr   Ú
IndexErrorÚKeyErrorÚ
ValueErrorÚnameÚstatefulÚis_prop_updatera   Údelete_noneÚBlockÚconstructor_argsÚcopyre   ÚpoprW   Ú	__class__Úpostprocess_update_dictri   Ú	ComponentÚInvalidComponentErrorÚGradioModelÚGradioRootModelÚ
model_dumpÚasync_move_files_to_cacherO   )r   Úblock_fnÚpredictionsÚstater[   r\   r]   r^   Úoutputr   rc   ÚerrÚprediction_valuerR   r   Úprediction_value_serializeds                   r   Ú_postprocess_datarŒ   Y   så  è è € ØBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBàÐ.�V×(Ò(¨Ñ.Ô.€EÝ�+�tÑ$Ô$ð >¨¸¿º¹¼Ò)EÐ)EÍ#ÈhÔN^ÑJ_ÔJ_ÐbcÒJcÐJcØ—{’{‘}”}�o­¨HÔ,<Ñ(=Ô(=Ñ=ˆÝ�+�tÑ$Ô$ð t­¨[Ñ)9Ô)9¸AÒ)=Ð)=Ø×;Ò;Ð<eÐ<eÐT\ÔTdÐ<eÑ<eÔ<eÐgrÑsÔsˆÝ
ˆ8ÔÑÔ Ò!Ð!¨(¬.Ð!Ø"�mˆØ×Ò˜( KÑ0Ô0Ð0Ø€FÝ˜hÔ.Ñ/Ô/ð *sñ *s‰ˆˆ5ð	RØ˜1Œ~ Ô!5Ô!HÐHÐHØ—’˜dÑ#Ô#Ð#Øð Iøõ �HÐ%ð 	Rð 	Rð 	RÝð  Hð  yAô  yFð  Hð  Hñ  Iô  Ið  ORð  Røøøøð	RøøøàŒ>ð 	Ø×'Ò'¨°A¬Ñ7Ô7ð 2Ø#.¨q¤>��e”iÑ Ø�MŠM˜$ÑÔÐØØ& qœ>ÐØ×ÒÐ 0Ñ1Ô1ð 	TØ$×0Ò0Ð1AÈdÐ0ÑSÔSÐÝÐ&¨¬Ñ5Ô5ð 	4Ø/Ô@×EÒEÑGÔGÐØ+3Ð˜ZÑ(Ø×ÒÐ 0Ñ1Ô1ð 	AØ˜EœIÔ&ˆGØÔ-×2Ò2Ñ4Ô4ˆFØ�MŠMÐ*Ñ+Ô+Ð+Ø�JŠJ�w Ñ%Ô%Ð%Ø�JŠJ�zÑ"Ô"Ð"Ø$ˆF�8ÑÝ)¨&°'Ô2JÑKÔKð =Ø#2 5¤?Ð#<Ð#<°VÐ#<Ð#<��e”iÑ Ø%×=Ò=ÀEÈ%Ì)ÔDTÐbrð  AIô  AUÐ=ñ   Vô   VÐÐØÔ!ð 	AÝ˜e ZÔ%9Ñ:Ô:ð qØ×2Ò2°e´oÐ3oÐ3oÐ3oÑpÔpÐpØŒy˜EÐ!Ð!Ø˜eœiÔ(�Ø$×0Ò0Ð1AÑBÔBÐÝÐ*¨VÔ-?ÀÔAWÐ,XÑYÔYð ?Ø.>×.IÒ.IÑ.KÔ.KÐ+Ð+à.>Ð+Ø0@×0ZÒ0ZÐ[vÐx}ð  LPÐ0Zñ  1Qô  1Qð  +Qð  +Qð  +Qð  +Qð  +Qð  +QÐ'ØŒy Ð%Ð%Ø#(��e”iÑ Ø%@ˆE�%”)ÔÔ"Ø�ŠÐ,×FÒFÐGWÐY^ÐlpÐFÑqÔqÐqÐqÐqÐqÐqÐqÑrÔrÐrÑrØ€Ms   Ä7)E"Å"FÅ3FÆFc                 óZ  — ddl m} |€g g fS g g }}d„ |j        D ¦   «         }|r…d„ |j        j                             ¦   «         D ¦   «         }|D ]Z}|j        df|v rM|                     |j        ¦  «         |                     |                     ||j                 ¦  «        ¦  «         Œ[||fS )Nr   ©r^   c                 ó    — g | ]}|j         ¯	|‘ŒS r0   )rv   rb   s     r   rI   z+_get_state_ids_to_track.<locals>.<listcomp>™   s   € ÐFÐFÐF˜%°u´~ÐF�ÐFÐFÐFr   c                 ó&   — h | ]}|j         D ]}|’ŒŒS r0   )Útargets)rB   r   Útargets      r   ú	<setcomp>z*_get_state_ids_to_track.<locals>.<setcomp>œ   s)   € Ð^Ð^Ð^˜bÐSUÔS]Ð^Ð^È�6Ð^Ð^Ð^Ð^r   Úchange)	r"   r^   rl   Úblocks_configÚfnsÚvaluesra   r   Ú	deep_hash)	r   r…   r‡   r^   Ústate_ids_to_trackÚhashed_valuesrv   Úchangedrc   s	            r   Ú_get_state_ids_to_trackrœ   “   sÜ   € ØÐÐÐÐÐà€}Ø�2ˆvˆØ(*¨B˜ÐØFÐF 8Ô#3ÐFÑFÔF€HØð Hà^Ð^ EÔ$7Ô$;×$BÒ$BÑ$DÔ$DÐ^Ñ^Ô^ˆØð 	Hð 	HˆEØ”	˜8Ð$¨Ð/Ð/Ø"×)Ò)¨%¬)Ñ4Ô4Ð4Ø×$Ò$ U§_¢_°U¸5¼9Ô5EÑ%FÔ%FÑGÔGÐGøØ˜}Ð,Ð,r   c                 ó~  — dd l }dt          fdt          ffD ]ƒ\  }}t          j        t          | j        |¦  «        ¦  «        }|                     |                     ¦   «         ¦  «         	                    ¦   «         d d…         |k    rt          d|› �¦  «        ‚Œ„t          | j        _        t          | j        _        d S )Nr   Úpostprocess_dataÚget_state_ids_to_tracké   z;Gradio engine patch requires the pinned Gradio 5.29 Blocks.)ÚhashlibÚ_POSTPROCESS_DATA_HASHÚ_STATE_IDS_HASHr   Ú	getsourceÚgetattrÚBlocksÚsha256ÚencodeÚ	hexdigestÚRuntimeErrorrŒ   rž   rœ   rŸ   )r[   r¡   ru   Úexpectedr;   s        r   Ú_install_postprocess_patchr¬   ¤   sº   € Ø€N€N€NØ.Õ0FÐGÐJbÕdsÐItÐuð eð e‰ˆˆhÝÔ"¥7¨6¬=¸$Ñ#?Ô#?Ñ@Ô@ˆØ�>Š>˜&Ÿ-š-™/œ/Ñ*Ô*×4Ò4Ñ6Ô6°s¸°sÔ;¸xÒGÐGÝÐcÐ]aÐcÐcÑdÔdÐdð Hå%6€F„MÔ"Ý+B€F„MÔ(Ð(Ð(r   c                  ó²  — ddl m} m}m}m}m}m} ddlm} ddlm	}m
}m}	m}
m} |                     ¦   «          |                     ¦   «          |
                     ¦   «          |	                     ¦   «          |                     ¦   «          t          |_        | j        j        t&          urt)          | ¦  «         |j        t,          u rd S |j        } |d„ ¦  «        j        }| j        gt3          ¦   «         }}|r§|                     ¦   «         }||v rŒ|                     |¦  «         |                     |                     ¦   «         ¦  «         |j                             d¦  «        }tA          j!        |¦  «        r"|j        |u rt-          |j"        ¦  «        |_#        |°§t,          |_        tH          x| _%        x|_%        |_%        tL          x|_'        |_'        d S )Nr   )r[   Úcomponent_metaÚdata_classesr]   Úroutesr^   rŽ   )Úgradio_frontend_patchÚgradio_image_preprocess_cacheÚgradio_media_response_patchÚgradio_model_change_queueÚgradio_queue_wakeup_patchc                 ó   — d S r3   r0   )r   s    r   ú<lambda>zinstall.<locals>.<lambda>¿   s   € ¨€ r   Ú__init__)(r"   r[   r®   r¯   r]   r°   r^   Úgradio_clientÚshared.gradior±   r²   r³   r´   rµ   Úinstallr=   Úmove_uploaded_files_to_cacher¦   rž   rŒ   r¬   Ú
updateabler   Ú__code__ry   Úsetr|   ÚaddÚextendÚ__subclasses__Ú__dict__r+   r   Ú
isfunctionÚ__wrapped__r¸   r1   Úget_upload_folderrA   Útraverse)r[   r®   r¯   r]   r°   r^   Úclient_utilsr±   r²   r³   r´   rµ   ÚoriginalÚwrapper_codeÚpendingÚvisitedÚclsÚconstructors                     r   r»   r»   ®   s;  € Ø\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ø3Ð3Ð3Ð3Ð3Ð3ð fð  fð  fð  fð  fð  fð  fð  fð  fð  fð  fð  fð  fð  fà×%Ò%Ñ'Ô'Ð'Ø!×)Ò)Ñ+Ô+Ð+Ø×%Ò%Ñ'Ô'Ð'Ø×'Ò'Ñ)Ô)Ð)Ø×!Ò!Ñ#Ô#Ð#Ý*G€FÔ'Ø„}Ô%Õ->Ð>Ð>Ý" 6Ñ*Ô*Ð*àÔ ¥KÐ/Ð/ØˆØÔ(€HØ�8Ð-Ð-Ñ.Ô.Ô7€Lð œ�~¥s¡u¤uˆW€GØ
ð @Ø�kŠk‰mŒmˆØ�'ˆ>ˆ>ØØ�Š�CÑÔÐØ�Š�s×)Ò)Ñ+Ô+Ñ,Ô,Ð,Ø”l×&Ò& zÑ2Ô2ˆÝÔ˜kÑ*Ô*ð 	@¨{Ô/CÀ|Ð/SÐ/SÝ& {Ô'>Ñ?Ô?ˆCŒLð ð @õ !,€NÔÝ^pÐp€FÔÐp˜uÔ6Ð9IÔ9[Ý4FÐF€LÔ˜LÔ1Ð1Ð1r   )Ú__doc__r   r)   r7   r.   Ú	functoolsr   r   Úpathlibr   r   r&   r1   r=   rA   rW   r¢   r£   rŒ   rœ   r¬   r»   r0   r   r   ú<module>rÒ      s,  ðà LÐ LØ €€€Ø 	€	€	€	Ø €€€Ø €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð ðð ð ð2 €�1ÐÑÔð6ð 6ñ Ôð6ðpð pð pð-ð -ð -ð
ð 
ð 
ðð ð ð ,Ð Ø$€ð7ð 7ð 7ðt-ð -ð -ð"Cð Cð Cð Gð  Gð  Gð  Gð  Gr   