§
    nF§jÙa  ã                  óì  — U d Z ddlmZ ddlm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mZmZmZmZ dd
lmZ dZdZddgZg Zded<    e¦   «         Zded<   e G d„ d¦  «        ¦   «         Zdd„Zdd„Zd€d„Zd�d„Z d‚d!„Z!dƒd#„Z"d„d%„Z#d…d)„Z$d†d+„Z%d‡d-„Z&dˆd‰d1„Z'dˆdŠd2„Z(d‹dŒd6„Z)d�d7„Z*d‹dŽd9„Z+d�d:„Z,d�d;„Z-d‘d=„Z.d‘d>„Z/d’d@„Z0d“dB„Z1d”dD„Z2d•dE„Z3d–dF„Z4d–dG„Z5d—dI„Z6d˜dK„Z7d™dL„Z8d™dM„Z9dšdO„Z:dšdP„Z;d‹d›dQ„Z<ddRœd™dS„Z=ddRœdœdU„Z>d™dV„Z?d3dWœd�dY„Z@dZd3dd3dd[œdžd^„ZAd3d_œdŸda„ZBdddbœdc„ZCdd„ ZDd dŽde„ZEd™df„ZFd¡dh„ZGd¢di„ZHd£dk„ZId¡dl„ZJd¤dm„ZKd¥dn„ZLd3doœd¦dr„ZMd§dt„ZNd¨du„ZOd©dx„ZPdªdy„ZQd«d|„ZR G d}„ d~¦  «        ZSdS )¬aÎ  Temporal upsampler plugin API.

Temporal upsamplers are interchangeable handlers for frame interpolation.
Handlers expose methods and supported multipliers through
``query_temporal_upsampler_def()`` and may expose config controls under
``wgp_config["temporal_upsamplers"][config_key]``.
Definitions may also expose an optional ``description`` plus optional
``method_descriptions`` and ``method_parameters`` mappings for reusable
discovery interfaces. Existing handlers without these fields remain valid.
Discovery tests the existing optional ``enabled()`` method first. When it is
absent, handlers may expose a ``status`` property containing ``"enabled"`` or
``"disabled"``. Discovery reports ``"unknown"`` only when neither contract
provides a valid status. Disabled handlers may expose ``reason_disabled``.

Plugin authors can register processors from ``plugin_info.json`` with:

```json
{
  "temporal_upsampler_handlers": ["my_plugin.temporal.MyTemporalUpsampler"]
}
```
é    )Úannotations)Ú	dataclassN)ÚAny)Úattention_shared_state)Úoffload_registryé   )ÚPROCESSOR_STATUS_DISABLEDÚPROCESSOR_STATUS_ENABLEDÚPROCESSOR_STATUS_UNKNOWNÚhandler_reason_disabledÚhandler_status)Úcompatible_loaded_modelÚtemporal_upsamplersÚ*z<postprocessing.rife.temporal_upsampler.RifeTemporalUpsamplerz>postprocessing.dlss5.temporal_upsampler.DLSSGTemporalUpsamplerú	list[Any]Ú_temporal_upsampler_handlerszset[str]Ú,_registered_temporal_upsampler_handler_pathsc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )ÚTemporalUpsamplerConfigBindingr   ÚhandlerÚstrÚ
config_keyzlist[tuple[str, Any]]ÚcontrolsN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú;C:\Users\johnn\Wan2GP\postprocessing\temporal_upsamplers.pyr   r   0   s0   € € € € € € à€L€L�LØ€O€O�OØ#Ð#Ð#Ñ#Ð#Ð#r   r   ÚscaleÚfloatÚreturnr   c                óˆ   — t          | ¦  «        } |                      ¦   «         rt          t          | ¦  «        ¦  «        n| d›S )NÚg)r"   Ú
is_integerr   Úint©r!   s    r    Úformat_multiplierr)   7   s8   € Ý�%‰LŒL€EØ#×.Ò.Ñ0Ô0ÐB�3�s�5‰zŒz‰?Œ?ˆ?¸°l°lÐBr   c                ó&   — dt          | ¦  «        › �S )NÚx)r)   r(   s    r    Úformat_multiplier_labelr,   <   s   € Ø)Õ  Ñ'Ô'Ð)Ð)Ð)r   Úmethodc                óœ   — t          | pd¦  «                             ¦   «                              ¦   «         › t          › t	          |¦  «        › �S ©NÚ )r   ÚstripÚlowerÚMULTIPLIER_SEPARATORr)   )r-   r!   s     r    Úformat_multiplier_valuer4   @   sG   € Ý�&�,˜BÑÔ×%Ò%Ñ'Ô'×-Ò-Ñ/Ô/ÐaÕ1EÐaÕGXÐY^ÑG_ÔG_ÐaÐaÐar   Údefault_scaleúfloat | Nonec                ó  — t          | pd¦  «                             ¦   «                              ¦   «         }t          |pd¦  «                             ¦   «                              ¦   «         }|                     |¦  «        sd S |t	          |¦  «        d …         }|                     t
          ¦  «        r!|t	          t
          ¦  «        d …         }|sd S nt
          |v rd S 	 t          |p|¦  «        S # t          $ r Y d S w xY wr/   )r   r1   r2   Ú
startswithÚlenr3   r"   Ú
ValueError)Úvaluer-   r5   ÚtextÚsuffixs        r    Úparse_multiplier_suffixr>   D   s  € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#×)Ò)Ñ+Ô+€DÝ��˜2ÑÔ×$Ò$Ñ&Ô&×,Ò,Ñ.Ô.€FØ�?Š?˜6Ñ"Ô"ð ØˆtØ•#�f‘+”+�,�,Ô€FØ×ÒÕ-Ñ.Ô.ð Ø�Õ0Ñ1Ô1Ð2Ð2Ô3ˆØð 	Ø�4ð	å	 Ð	'Ð	'ØˆtðÝ�VÐ,˜}Ñ-Ô-Ð-øÝð ð ð Øˆtˆtðøøøs   Ã C1 Ã1
C?Ã>C?Úlabelc                ón   — t          | pd¦  «                             d¦  «        › dt          |¦  «        › �S )Nr0   z
 UpsamplerÚ )r   Úremovesuffixr,   )r?   r!   s     r    Úformat_method_scale_labelrC   V   s:   € Ý�%�+˜2ÑÔ×+Ò+¨LÑ9Ô9Ð\Ð\Õ<SÐTYÑ<ZÔ<ZÐ\Ð\Ð\r   ÚNonec                óP   — | t           vrt                                | ¦  «         d S d S ©N)r   Úappend©r   s    r    Úregister_temporal_upsamplerrI   Z   s0   € ØÕ2Ð2Ð2Ý$×+Ò+¨GÑ4Ô4Ð4Ð4Ð4ð 3Ð2r   Úpathc                óx   — |                       dd¦  «        \  }}t          t          j        |¦  «        |¦  «        S )Nú.r   )ÚrsplitÚgetattrÚ	importlibÚimport_module)rJ   Úmodule_pathÚ
class_names      r    Ú_load_upsampler_classrS   _   s5   € Ø"Ÿkšk¨#¨qÑ1Ô1Ñ€K�Ý•9Ô*¨;Ñ7Ô7¸ÑDÔDÐDr   Úhandler_defúdict[str, Any]úlist[tuple[str, str]]c                óB   — d„ |                       dg ¦  «        D ¦   «         S )Nc                ó   — g | ]	\  }}||f‘Œ
S r   r   ©Ú.0r?   r-   s      r    ú
<listcomp>z#_method_choices.<locals>.<listcomp>e   s    € ÐPÐPÐP¡  vˆU�FˆOÐPÐPÐPr   Úmethods)Úget©rT   s    r    Ú_method_choicesr_   d   s$   € ØPÐP°·²ÀÈBÑ1OÔ1OÐPÑPÔPÐPr   údict[str, str]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó   — i | ]\  }}||“Œ	S r   r   rY   s      r    ú
<dictcomp>z"_method_labels.<locals>.<dictcomp>i   s   € ÐLÐLÐL™m˜e VˆF�EÐLÐLÐLr   )r_   r^   s    r    Ú_method_labelsrd   h   s   € ØLÐL­¸{Ñ/KÔ/KÐLÑLÔLÐLr   Úfallback_namec                óÞ   — t          |                      dd¦  «        pd¦  «                             ¦   «         }|r|S t          | ¦  «        }|r|d         d         S |                     ¦   «         S )Nr   r0   r   r   )r   r]   r1   r_   r2   )rT   re   r   Úmethod_choicess       r    Ú_config_key_from_handler_defrh   l   ss   € Ý�[—_’_ \°2Ñ6Ô6Ð<¸"Ñ=Ô=×CÒCÑEÔE€JØð ØÐÝ$ [Ñ1Ô1€NØð $Ø˜aÔ  Ô#Ð#Ø×ÒÑ Ô Ð r   Úhandler_modulesúlist[str] | Noneúdict[str, dict[str, Any]]c                óH  — i }| €t           n| D ]“}t          t          |pd¦  «                             ¦   «         ¦  «        }t	          |d¦  «        sŒCt          |                     ¦   «         ¦  «        }|sŒg|                     ¦   «         }||t          ||j	        ¦  «        <   Œ”|S )Nr0   Údefault_config)
Útemporal_upsampler_handlersrS   r   r1   ÚhasattrÚdictrm   Úquery_temporal_upsampler_defrh   r   )ri   ÚsectionsrJ   Úhandler_clsÚconfigrT   s         r    Údefault_config_sectionsru   v   s±   € Ø€HØ/>Ð/FÕ+Ð+ÈOð [ð [ˆÝ+­C°°
¸©O¬O×,AÒ,AÑ,CÔ,CÑDÔDˆÝ�{Ð$4Ñ5Ô5ð 	ØÝ�k×0Ò0Ñ2Ô2Ñ3Ô3ˆØð 	ØØ!×>Ò>Ñ@Ô@ˆØTZˆÕ-¨k¸;Ô;OÑPÔPÑQÐQØ€Or   c                ó  — |€t           n|}|D ]q}t          |pd¦  «                             ¦   «         }|r	|t          v rŒ1t	           t          |¦  «        | |¦  «        ¦  «         t                               |¦  «         Œrd S r/   )rn   r   r1   r   rI   rS   Úadd)Úserver_configÚfiles_locatorri   ÚmodulesrJ   s        r    Úregister_temporal_upsamplersr{   „   s—   € Ø-<Ð-DÕ)Ð)È/€GØð ?ð ?ˆÝ�4�:˜2‰Œ×$Ò$Ñ&Ô&ˆØð 	�tÕKÐKÐKØÝ#Ð$?Õ$9¸$Ñ$?Ô$?ÀÈ}Ñ$]Ô$]Ñ^Ô^Ð^Ý4×8Ò8¸Ñ>Ô>Ð>Ð>ð?ð ?r   FÚenabled_onlyÚboolc                ó*   ‡ — ˆ fd„t           D ¦   «         S )Nc                ó6   •— g | ]}‰rt          |¦  «        ¯|‘ŒS r   )Úhandler_enabled)rZ   r   r|   s     €r    r[   z2registered_temporal_upsamplers.<locals>.<listcomp>�   s-   ø€ ÐpÐpÐp˜À|ÐpÕWfÐgnÑWoÔWoÐpˆGÐpÐpÐpr   )r   ©r|   s   `r    Úregistered_temporal_upsamplersr‚   Ž   s   ø€ ØpÐpÐpÐpÕ#?ÐpÑpÔpÐpr   c                óL   — t          | d¦  «         p|                      ¦   «         S )NÚenabled)ro   r„   rH   s    r    r€   r€   ’   s$   € Ý�w 	Ñ*Ô*Ð*Ð?¨g¯oªoÑ.?Ô.?Ð?r   úlist[dict[str, Any]]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r   )rq   )rZ   r   s     r    r[   z1query_temporal_upsampler_defs.<locals>.<listcomp>—   s$   € ÐoÐoÐo°wˆG×0Ò0Ñ2Ô2ÐoÐoÐor   )r‚   r�   s    r    Úquery_temporal_upsampler_defsrˆ   –   s    € ØoÐoÕB`ÐamÑBnÔBnÐoÑoÔoÐor   c                óz   — 	 t          |                      dd¦  «        ¦  «        S # t          t          f$ r Y dS w xY w)NÚposiè  )r"   r]   Ú	TypeErrorr:   r^   s    r    Ú_handler_posrŒ   š   sJ   € ðÝ�[—_’_ U¨DÑ1Ô1Ñ2Ô2Ð2øÝ•zÐ"ð ð ð Øˆtˆtðøøøs   ‚"% ¥:¹:c                óØ   — |                       di ¦  «        }t          |t          ¦  «        r1||v r-	 t          ||         ¦  «        S # t          t
          f$ r Y nw xY wt          | ¦  «        S )NÚ
method_pos)r]   Ú
isinstancerp   r"   r‹   r:   rŒ   )rT   r-   rŽ   s      r    Ú_method_posr�   ¡   s|   € Ø—’ ¨rÑ2Ô2€JÝ�*�dÑ#Ô#ð ¨°*Ð(<Ð(<ð	Ý˜ FÔ+Ñ,Ô,Ð,øÝ�:Ð&ð 	ð 	ð 	ØˆDð	øøøå˜Ñ$Ô$Ð$s   ±A ÁAÁAú
Any | Nonec                ó�   ‡ — t          ‰ pd¦  «                             ¦   «         sd S t          ˆ fd„t          D ¦   «         d ¦  «        S )Nr0   c              3  óF   •K  — | ]}|                      ‰¦  «        ¯|V — Œd S rF   )Úis_upsampling)rZ   r   Útemporal_upsamplings     €r    ú	<genexpr>z*find_temporal_upsampler.<locals>.<genexpr>®   s7   øè è € ÐsÐs˜WÈ×H]ÒH]Ð^qÑHrÔHrÐs�ÐsÐsÐsÐsÐsÐsr   )r   r1   Únextr   )r•   s   `r    Úfind_temporal_upsamplerr˜   «   sQ   ø€ ÝÐ"Ð( bÑ)Ô)×/Ò/Ñ1Ô1ð ØˆtÝÐsÐsÐsÐsÕ(DÐsÑsÔsÐuyÑzÔzÐzr   c                óÊ   — t          | pd¦  «                             ¦   «         } | sd S t          D ]3}| d„ t          |                     ¦   «         ¦  «        D ¦   «         v r|c S Œ4d S )Nr0   c                ó   — g | ]\  }}|‘ŒS r   r   ©rZ   Ú_Úkeys      r    r[   z5find_temporal_upsampler_by_method.<locals>.<listcomp>¶   s   € Ð`Ð`Ð`™f˜a �cÐ`Ð`Ð`r   )r   r1   r   r_   rq   ©r-   r   s     r    Ú!find_temporal_upsampler_by_methodrŸ   ±   s}   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FØð ØˆtÝ/ð ð ˆØÐ`Ð`­¸×8\Ò8\Ñ8^Ô8^Ñ(_Ô(_Ð`Ñ`Ô`Ð`Ð`ØˆNˆNˆNð aàˆ4r   r   c                óN   — t          | ¦  «        }|€t          d| › d�¦  «        ‚|S )Nz-No temporal upsampler registered for method 'ú')rŸ   ÚRuntimeErrorrž   s     r    Ú$require_temporal_upsampler_by_methodr£   »   s3   € Ý/°Ñ7Ô7€GØ€ÝÐTÈ6ÐTÐTÐTÑUÔUÐUØ€Nr   útuple[float, ...]c                óÔ   — t          | ¦  «        }|€dS t          |                     ¦   «                              di ¦  «                             t	          | ¦  «        d¦  «        ¦  «        S )Nr   Úmultipliers)rŸ   Útuplerq   r]   r   rž   s     r    Úmethod_multipliersr¨   Â   s^   € Ý/°Ñ7Ô7€GØ€ØˆrÝ�×5Ò5Ñ7Ô7×;Ò;¸MÈ2ÑNÔN×RÒRÕSVÐW]ÑS^ÔS^Ð`bÑcÔcÑdÔdÐdr   úlist[tuple[str, float]]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó0   — g | ]}t          |¦  «        |f‘ŒS r   )r,   )rZ   r!   s     r    r[   z1multiplier_choices_for_method.<locals>.<listcomp>Ê   s&   € Ð\Ð\Ð\¸Õ$ UÑ+Ô+¨UÐ3Ð\Ð\Ð\r   )r¨   )r-   s    r    Úmultiplier_choices_for_methodr¬   É   s    € Ø\Ð\ÕASÐTZÑA[ÔA[Ð\Ñ\Ô\Ð\r   c                ó@  — t          |                      di ¦  «                             |d¦  «        ¦  «        }|sd S |                      dd¦  «        }t          |¦  «        }|�5|                     |¦  «        }|�|d         |k    r|d         |v r|d         S |d         S )Nr¦   r   Údefault_temporal_upsamplingr0   r   r   )r§   r]   r˜   Úsplit_value)rT   r-   r¦   Údefault_valuer   Úsplits         r    Ú_default_multiplier_from_defr²   Í   s©   € Ý˜Ÿš¨°rÑ:Ô:×>Ò>¸vÀrÑJÔJÑKÔK€KØð ØˆtØ—O’OÐ$AÀ2ÑFÔF€MÝ% mÑ4Ô4€GØÐØ×#Ò# MÑ2Ô2ˆØÐ  q¤¨VÒ!3Ð!3¸¸a¼ÀKÐ8OÐ8OØ˜”8ˆOØ�qŒ>Ðr   c                ó²   — t          | ¦  «        }|€dS t          |                     ¦   «         t          | pd¦  «                             ¦   «         ¦  «        pdS )Nç       @r0   )rŸ   r²   rq   r   r1   rž   s     r    Údefault_multiplier_for_methodrµ   Ú   sW   € Ý/°Ñ7Ô7€GØ€ØˆsÝ'¨×(LÒ(LÑ(NÔ(NÕPSÐTZÐT`Ð^`ÑPaÔPa×PgÒPgÑPiÔPiÑjÔjÐqÐnqÐqr   c                óÀ   — t          | ¦  «        }|sdS 	 t          |¦  «        }n&# t          t          f$ r t	          | ¦  «        }Y nw xY w||v r|nt	          | ¦  «        S )Nr´   )r¨   r"   r‹   r:   rµ   )r-   r!   r¦   s      r    Únormalize_multiplier_for_methodr·   á   s|   € Ý$ VÑ,Ô,€KØð Øˆsð6Ý�e‘”ˆˆøÝ•zÐ"ð 6ð 6ð 6Ý-¨fÑ5Ô5ˆˆˆð6øøøà˜[Ð(Ð(ˆ5ˆ5Õ.KÈFÑ.SÔ.SÐSs   •% ¥ AÁAútuple[str, float] | Nonec                óR   — t          | ¦  «        }|€d n|                     | ¦  «        S rF   )r˜   r¯   )r;   r   s     r    Úsplit_temporal_upsampling_valuerº   ì   s+   € Ý% eÑ,Ô,€GØ�?ˆ4ˆ4¨×(;Ò(;¸EÑ(BÔ(BÐBr   ú
str | Nonec                óT   — t          | ¦  «        }|€d n|                     | |¦  «        S rF   )rŸ   Úbuild_value)r-   r!   r   s      r    Úbuild_temporal_upsampling_valuer¾   ñ   s-   € Ý/°Ñ7Ô7€GØ�?ˆ4ˆ4¨×(;Ò(;¸FÀEÑ(JÔ(JÐJr   c                óÄ   — t          | pd¦  «                             ¦   «         }|sdS t          |¦  «        }|€|S t          |d         ¦  «        }|€d n	 |j        |Ž }|p|S )Nr0   r   )r   r1   rº   rŸ   r½   )r;   r<   r±   r   Ú
normalizeds        r    Ú#normalize_temporal_upsampling_valuerÁ   ö   sw   € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#€DØð ØˆrÝ+¨DÑ1Ô1€EØ€}ØˆÝ/°°a´Ñ9Ô9€GØ ˜��Ð.A¨gÔ.AÀ5Ð.I€JØÐ˜Ðr   c                óB  — t          | pd¦  «                             ¦   «         }|sdS t          |¦  «        }|€|S |                     |¦  «        }|€|S |\  }}t	          |                     ¦   «         ¦  «                             |¦  «        }|rt          ||¦  «        n|S r/   )r   r1   r˜   r¯   rd   rq   r]   rC   )r;   r<   r   r±   r-   r!   r?   s          r    Ú format_temporal_upsampling_labelrÃ     s«   € Ýˆuˆ{˜ÑÔ×!Ò!Ñ#Ô#€DØð ØˆrÝ% dÑ+Ô+€GØ€ØˆØ×Ò Ñ%Ô%€EØ€}ØˆØ�M€FˆEÝ˜7×?Ò?ÑAÔAÑBÔB×FÒFÀvÑNÔN€EØ6;ÐEÕ$ U¨EÑ2Ô2Ð2ÀÐEr   ú1tuple[list[tuple[str, float]], float | None, str]c                ó¾   — t          | pd¦  «                             ¦   «         } | sg d dfS t          | ¦  «        }t          | |¦  «        }||t	          | |¦  «        pdfS r/   )r   r1   r¬   r·   r¾   )r-   r!   Úmultiplier_choicess      r    Ú#normalize_temporal_upsampling_staterÇ     sn   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FØð Ø�4˜ˆ|ÐÝ6°vÑ>Ô>ÐÝ+¨F°EÑ:Ô:€EØ˜uÕ&EÀfÈeÑ&TÔ&TÐ&ZÐXZÐZÐZr   c                óT   — t          |¦  «        }t          | |€dn|d         ¦  «        S )Nr´   r   )rº   rÇ   )r-   Úcurrent_valuer±   s      r    Ú.normalize_temporal_upsampling_value_for_methodrÊ     s.   € Ý+¨MÑ:Ô:€EÝ.¨v¸e¸m°s°sÐQVÐWXÔQYÑZÔZÐZr   c                óÂ   ‡— g }t          | ¦  «        D ]4}|                     ¦   «         Š|ˆfd„t          ‰¦  «        D ¦   «         z  }Œ5d„ t          |¦  «        D ¦   «         S )Nc                ó    •— g | ]J\  }}t          ‰|¦  «        t          |pd ¦  «                             ¦   «         t          |pd ¦  «        ||f‘ŒKS ©r0   )r�   r   Úcasefold)rZ   r?   r-   rT   s      €r    r[   z(query_method_choices.<locals>.<listcomp>#  sy   ø€ ð  ið  ið  iñ  {HÐzð  BH•[ ¨fÑ5Ô5µs¸5¸;ÀBÑ7GÔ7G×7PÒ7PÑ7RÔ7RÕTWÐX^ÐXdÐbdÑTeÔTeÐglÐntÐuð  ið  ið  ir   c                ó"   — g | ]\  }}}}}||f‘ŒS r   r   )rZ   rœ   r?   r-   s       r    r[   z(query_method_choices.<locals>.<listcomp>$  s'   € ÐJÐJÐJÑ 6  1 a¨°ˆU�FˆOÐJÐJÐJr   )r‚   rq   r_   Úsorted)r|   Úchoicesr   rT   s      @r    Úquery_method_choicesrÒ     sŸ   ø€ Ø€GÝ1°,Ñ?Ô?ð ið iˆØ×:Ò:Ñ<Ô<ˆØð  ið  ið  ið  iõ  L[ð  \gñ  Lhô  Lhð  iñ  iô  iñ  	iˆˆØJÐJ½&À¹/¼/ÐJÑJÔJÐJr   ©Ú
field_helpc               ó.  ‡‡— t          |dd¦  «        }|g}i }| D ]A\  }}t          |¦  «        }|�+|                     |g ¦  «                             ||f¦  «         ŒB|                     ¦   «         D �]\  }}|                     ¦   «         }	t          |	                     d|d         d         ¦  «        ¦  «        }
t          |	                     dd¦  «        pd¦  «                             ¦   «         Šd|
› �g}‰r|                     ‰¦  «         |	                     di ¦  «        Št          ‰t          ¦  «        rˆfd	„|D ¦   «         }|ˆfd
„|D ¦   «         z  }|                     d                     |¦  «        ¦  «         �Œd                     |¦  «        S )NÚTEMPORAL_UPSAMPLER_HELP_INTROzJTemporal upsamplers increase frame rate by generating intermediate frames.Únamer   Údescriptionr0   z### Úmethod_descriptionsc           	     ó¢   •— g | ]K\  }}t          |¦  «        t          ‰                     |d ¦  «        pd ¦  «                             ¦   «         f‘ŒLS rÍ   )r   r]   r1   )rZ   r?   r-   rÙ   s      €r    r[   z*temporal_help_markdown.<locals>.<listcomp>8  sU   ø€ ÐyÐyÐyÑ`mÐ`eÐgm�˜E™
œ
¥CÐ(;×(?Ò(?ÀÈÑ(KÔ(KÐ(QÈrÑ$RÔ$R×$XÒ$XÑ$ZÔ$ZÐ[ÐyÐyÐyr   c                ó6   •— g | ]\  }}|¯|‰k    ¯d |› d|› �‘ŒS )z- **z:** r   )rZ   r?   ÚdetailrØ   s      €r    r[   z*temporal_help_markdown.<locals>.<listcomp>9  s@   ø€ ÐrÐrÐr±]°U¸FÐQWÐrÐ\bÐfqÒ\qÐ\qÐ0˜UÐ0Ð0¨Ð0Ð0Ð\qÐ\qÐ\qr   z

)rN   rŸ   Ú
setdefaultrG   Úitemsrq   r   r]   r1   r�   rp   Újoin)rg   rÔ   Úintrorr   Úhandler_choicesr?   r-   r   rÑ   rT   r×   ÚlinesÚdetailsrØ   rÙ   s                @@r    Útemporal_help_markdownrä   '  sº  øø€ Ý�JÐ ?ð  BNñ  Oô  O€EØˆw€HØ€OØ'ð Lð L‰ˆˆvÝ3°FÑ;Ô;ˆØÐØ×&Ò& w°Ñ3Ô3×:Ò:¸EÀ6¸?ÑKÔKÐKøØ+×1Ò1Ñ3Ô3ð ,ñ ,Ñˆ�Ø×:Ò:Ñ<Ô<ˆÝ�;—?’? 6¨7°1¬:°a¬=Ñ9Ô9Ñ:Ô:ˆÝ˜+Ÿ/š/¨-¸Ñ<Ô<ÐBÀÑCÔC×IÒIÑKÔKˆØ˜���ˆØð 	&Ø�LŠL˜Ñ%Ô%Ð%Ø)ŸošoÐ.CÀRÑHÔHÐÝÐ)­4Ñ0Ô0ð 	sØyÐyÐyÐyÐqxÐyÑyÔyˆGØÐrÐrÐrÐrÀgÐrÑrÔrÑrˆEØ�Š˜Ÿš EÑ*Ô*Ñ+Ô+Ð+Ñ+Ø�;Š;�xÑ Ô Ð r   útuple[str, str]c               ó(   — dt          | |¬¦  «        fS )NzTemporal UpsamplerrÓ   )rä   )rg   rÔ   s     r    Útemporal_help_popuprç   >  s   € ØÕ!7¸ÐS]Ð!^Ñ!^Ô!^Ð^Ð^r   c                óÈ   — d                      d„ | D ¦   «         ¦  «        }dt          j        |                     d¦  «        ¦  «                             ¦   «         d d…         › �S )NÚ|c              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S rF   )r   )rZ   Ú_labelr-   s      r    r–   z#temporal_help_id.<locals>.<genexpr>C  s,   è è € ÐJÐJ©¨°�˜V™œÐJÐJÐJÐJÐJÐJr   Útemporal_upsampling_zutf-8é   )rß   ÚhashlibÚsha1ÚencodeÚ	hexdigest)rg   Ú	signatures     r    Útemporal_help_idró   B  s`   € Ø—’ÐJÐJ¸>ÐJÑJÔJÑJÔJ€IØ\¥'¤,¨y×/?Ò/?ÀÑ/HÔ/HÑ"IÔ"I×"SÒ"SÑ"UÔ"UÐVYÐWYÐVYÔ"ZÐ\Ð\Ð\r   ©Úlate_postprocessingrõ   c               ó¬   — t          | ¦  «        pd\  }}dgt          | ¬¦  «        z   }|d„ |D ¦   «         vrd}t          ||¦  «        \  }}}|||||dœS )N)r0   r´   )rD   r0   r�   c                ó   — h | ]\  }}|’ŒS r   r   )rZ   rœ   r;   s      r    ú	<setcomp>z!dropdown_state.<locals>.<setcomp>J  s   € Ð;Ð;Ð;¡  5�eÐ;Ð;Ð;r   r0   )r-   r!   r;   rg   rÆ   )rº   rÒ   rÇ   )r•   rõ   r-   r!   rg   rÆ   r;   s          r    Údropdown_staterù   G  s�   € Ý3Ð4GÑHÔHÐUÈI�M€FˆEØ"�^Õ&:ÐL_ÐH_Ð&`Ñ&`Ô&`Ñ`€NØÐ;Ð;¨NÐ;Ñ;Ô;Ð;Ð;ØˆÝ'JÈ6ÐSXÑ'YÔ'YÑ$Ð˜˜uØ u°uÐP^ð  wIð  Jð  Jð  Jr   T)Úvisiblerõ   Úelem_classesÚupdate_formrÔ   rú   rü   c          	     óº  ‡ — t          |r|nd|¬¦  «        }‰                      ¦   «         5  ‰                      |d         |d         |dd|¬¦  «        }|�Ft          |d         |¬¦  «        \  }	}
|                     |t          |d         ¦  «        |	|
¬	¦  «         ‰                      |d
         |d         |o|d         dk    dd|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   ‰                      |d         d|¬¦  «        }ˆ fd„}ˆ fd„}|sH||g}‰                      |j        g|||g|d¬¦  «         ‰                      |j        g|||g|d¬¦  «         |||dœS )Nr0   rô   rg   r-   é   zTemporal Upsampling)rÑ   r;   rú   r!   r?   rû   rÓ   )ÚtitleÚmarkdownrÆ   r!   r   Ú
Multiplierr;   F)r;   rú   rû   c                óz   •— t          | |¦  «        \  }}}‰                     ||t          | ¦  «        ¬¦  «        |fS )N)rÑ   r;   rú   )rÊ   Úupdater}   )r-   r;   rÆ   r!   Úgrs       €r    Úrefresh_methodz5create_generation_temporal_ui.<locals>.refresh_methodZ  sA   ø€ Ý+YÐZ`ÐbgÑ+hÔ+hÑ(Ð˜E 5Ø�yŠyÐ!3¸5Í$ÈvÉ,Ì,ˆyÑWÔWÐY^Ð^Ð^r   c                óx   •— t          | |¦  «        \  }}}‰                     |t          | ¦  «        ¬¦  «        |fS )N)r;   rú   )rÇ   r  r}   )r-   r!   rœ   r;   r  s       €r    Úrefresh_multiplierz9create_generation_temporal_ui.<locals>.refresh_multiplier^  s9   ø€ Ý=¸fÀeÑLÔL‰ˆˆ5�%Ø�yŠy˜u­d°6©l¬lˆyÑ;Ô;¸UÐBÐBr   Úhidden)ÚtriggersÚfnÚinputsÚoutputsÚshow_progress)r;   r-   Ú
multiplier)	rù   ÚRowÚDropdownrç   Úbindró   ÚTextboxÚonÚinput)r  r•   rú   rõ   rû   rü   rÔ   Ústater-   Ú
help_titleÚhelp_markdownr  r;   r  r  r  s   `               r    Úcreate_generation_temporal_uir  P  sU  ø€ Ý°'ÐAÐ.Ð.¸rÐWjÐkÑkÔk€EØ	�Š‰Œð ð Ø—’ UÐ+;Ô%<ÀEÈ(ÄOÐ]dÐlmð  vKð  Zf�ñ  gô  gˆØÐ!Ý(;¸EÐBRÔ<SÐ`jÐ(kÑ(kÔ(kÑ%ˆJ˜Ø�OŠO˜FÕ$4°UÐ;KÔ5LÑ$MÔ$MÐU_ÐjwˆOÑxÔxÐxØ—[’[¨Ð/CÔ)DÈEÐRYÌNÐdkð  eFÐpuÐv~Ôpð  DFò  qFð  NOð  Wcð  r~�[ñ  ô  ˆ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �JŠJ˜U 7œ^°UÈˆJÑVÔV€Eð_ð _ð _ð _ð _ðCð Cð Cð Cð Cð ð HØ˜uÐ%ˆØ
�Š˜œ�~¨.À&È%ÀÐZaÐqyˆÑzÔzÐzØ
�Š˜
Ô(Ð)Ð.@È&ÐR\ÐI]Ðgnð  Gˆñ  	Hô  	Hð  	HØ f¸JÐGÐGÐGs   «B#CÃCÃ!C©Úsource_is_imager  c               óØ   — t          | pd¦  «                             ¦   «         } | sdS t          | ¦  «        }|€d| › d�S t          |d¦  «        r|                     | |¬¦  «        S |rdndS )Nr0   ú&No temporal upsampler registered for 'r¡   Úvalidate_upsamplingr  z1Temporal Upsampling can not be used with an Image)r   r1   r˜   ro   r  )r•   r  r   s      r    Úvalidate_temporal_upsamplingr  i  s•   € ÝÐ1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@ÐØð ØˆrÝ%Ð&9Ñ:Ô:€GØ€ØNÐ8KÐNÐNÐNÐNÝˆwÐ-Ñ.Ô.ð aØ×*Ò*Ð+>ÐP_Ð*Ñ`Ô`Ð`ØBQÐYÐ>Ð>ÐWYÐYr   )Úmain_offloadobjÚloaded_model_contextc               ó²  — t          | ¦  «        }|€;t          | pd¦  «                             ¦   «         rt          d| › d�¦  «        ‚|||fS |                     ¦   «         d         }t          |d¦  «        r|                     ¦   «         nd}	t          || |¦  «        }
t          ¦   «         5  	 |�|j	        n|}|�| 
                    ¦   «          |
�%t          |d¦  «        r|                     ¦   «          n |
€t          |d¦  «        r |j        | fi |¤Ž  |j        | |||fd	|
i|¤Ž|
�|
j	         
                    ¦   «          n-|	rt          j        |g¦  «         nt          j        |g¦  «         cd d d ¦  «         S # |
�|
j	         
                    ¦   «          w |	rt          j        |g¦  «         w t          j        |g¦  «         w xY w# 1 swxY w Y   d S )
Nr0   r  r¡   r×   Úpersistent_modelsFÚrelease_private_runtimeÚload_upsamplerr   )r˜   r   r1   r:   rq   ro   r"  r   r   Ú
offloadobjÚ
unload_allr#  r$  Útemporal_upsampler   Úunload_vramÚrelease_all)r•   ÚsampleÚprevious_last_frameÚfpsr  r   Úkwargsr   r×   Ú
persistentÚborrowed_contextÚcore_offloadobjs               r    r'  r'  u  s–  € Ý%Ð&9Ñ:Ô:€GØ€ÝÐ"Ð( bÑ)Ô)×/Ò/Ñ1Ô1ð 	^ÝÐ\ÐFYÐ\Ð\Ð\Ñ]Ô]Ð]ØÐ*¨CÐ/Ð/Ø×/Ò/Ñ1Ô1°&Ô9€DÝ07¸ÐATÑ0UÔ0UÐ`�×*Ò*Ñ,Ô,Ð,Ð[`€JÝ.¨wÐ8KÐMaÑbÔbÐÝ	Ñ	!Ô	!ð 5ð 5ð	5ØAUÐAaÐ2Ô=Ð=ÐgvˆOØÐ*Ø×*Ò*Ñ,Ô,Ð,ØÐ+µ¸ÐAZÑ0[Ô0[Ð+Ø×/Ò/Ñ1Ô1Ð1Ð1Ø!Ð)­g°gÐ?OÑ.PÔ.PÐ)Ø&�Ô&Ð':ÐEÐE¸fÐEÐEÐEØ,�7Ô,Ð-@À&ÐJ]Ð_bð  Uð  Uð  zJð  Uð  NTð  Uð  UàÐ+Ø Ô+×6Ò6Ñ8Ô8Ð8Ð8Øð 5Ý Ô,¨d¨VÑ4Ô4Ð4Ð4å Ô,¨d¨VÑ4Ô4Ð4ð!5ð 5ð 5ð 5ñ 5ô 5ð 5ð 5øð  Ð+Ø Ô+×6Ò6Ñ8Ô8Ð8Ð8Øð 5Ý Ô,¨d¨VÑ4Ô4Ð4Ð4å Ô,¨d¨VÑ4Ô4Ð4Ð4øøøð!5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5s-   Â,GÂ.A:E>Ä(A	GÅ>AG	Ç	GÇGÇGc                óh   — t          | ¦  «        }|�t          |d¦  «        sdS  |j        |fd| i|¤ŽS )NÚdownloadFr•   )r˜   ro   r2  )r•   Úprocess_filesr-  r   s       r    Údownload_for_valuer4  ‘  sJ   € Ý%Ð&9Ñ:Ô:€GØ€�g g¨zÑ:Ô:€ØˆuØˆ7Ô˜MÐ]Ð]Ð?RÐ]ÐV\Ð]Ð]Ð]r   c                ó  — g }t          | ¦  «        D ]y}t          |d¦  «        r*|                     |                     | ¬¦  «        ¦  «         Œ<t          |d¦  «        r-|                     | ¬¦  «        }|�|                     |¦  «         Œz|S )NÚquery_download_defsr�   Úquery_download_def)r‚   ro   Úextendr6  r7  rG   )r|   Údefsr   Údownload_defs       r    r6  r6  ˜  sž   € Ø€DÝ1°,Ñ?Ô?ð *ð *ˆÝ�7Ð1Ñ2Ô2ð 	*Ø�KŠK˜×3Ò3ÀÐ3ÑNÔNÑOÔOÐOÐOÝ�WÐ2Ñ3Ô3ð 	*Ø"×5Ò5À<Ð5ÑPÔPˆLØÐ'Ø—’˜LÑ)Ô)Ð)øØ€Kr   c                ó^   — |                       ¦   «         }t          || j        j        ¦  «        S rF   )rq   rh   Ú	__class__r   )r   rT   s     r    Úconfig_key_for_handlerr=  ¤  s)   € Ø×6Ò6Ñ8Ô8€KÝ'¨°WÔ5FÔ5OÑPÔPÐPr   rx   c                ó¶   — |                       t          i ¦  «        }t          |t          ¦  «        si }|| t          <   n|                      t          |¦  «         |S rF   )r]   ÚTEMPORAL_UPSAMPLER_CONFIG_KEYr�   rp   rÝ   )rx   Úconfigss     r    Ú_nested_configsrA  ©  sZ   € Ø×ÒÕ =¸rÑBÔB€GÝ�g�tÑ$Ô$ð IØˆØ7>ˆÕ3Ñ4Ð4à× Ò Õ!>ÀÑHÔHÐHØ€Nr   c                óh   — t          | d¦  «        r!t          |                      ¦   «         ¦  «        ni S )Nrm   )ro   rp   rm   rH   s    r    Ú_default_configrC  ³  s2   € Ý-4°WÐ>NÑ-OÔ-OÐW�4�×&Ò&Ñ(Ô(Ñ)Ô)Ð)ÐUWÐWr   rt   c                ó„   — t          | d¦  «        r"t          |                      |¦  «        ¦  «        nt          |¦  «        S )NÚnormalize_config_section)ro   rp   rE  )r   rt   s     r    Ú_normalize_config_sectionrF  ·  s=   € Ý=DÀWÐNhÑ=iÔ=iÐ{�4�×0Ò0°Ñ8Ô8Ñ9Ô9Ð9ÕosÐtzÑo{Ôo{Ð{r   c                ó   — |                       t          i ¦  «        }t          |t          ¦  «        r#|                      t	          |¦  «        i ¦  «        ni }i t          |¦  «        ¥t          |t          ¦  «        r|ni ¥}t          ||¦  «        S rF   )r]   r?  r�   rp   r=  rC  rF  )rx   r   r@  ÚnestedÚvaluess        r    Úread_config_sectionrJ  »  s…   € Ø×ÒÕ =¸rÑBÔB€GÝAKÈGÕUYÑAZÔAZÐbˆW�[Š[Õ/°Ñ8Ô8¸"Ñ=Ô=Ð=Ð`b€FØY• Ñ(Ô(ÐYµzÀ&Í$Ñ7OÔ7OÐ-W¨V¨VÐUWÐY€FÝ$ W¨fÑ5Ô5Ð5r   c                ó¤   — t          |i t          |¦  «        ¥t          |pi ¦  «        ¥¦  «        }|t          | ¦  «        t	          |¦  «        <   |S rF   )rF  rC  rp   rA  r=  )rx   r   rt   s      r    Úwrite_config_sectionrL  Â  sS   € Ý& wÐ0bµ?À7Ñ3KÔ3KÐ0bÍtÐTZÐT`Ð^`ÑOaÔOaÐ0bÑcÔc€FØFL…O�MÑ"Ô"Õ#9¸'Ñ#BÔ#BÑCØ€Mr   c           	     ó  — t          |                      t          d ¦  «        ¦  «        }t          D ]0}t	          |¦  «        rt          | |t          | |¦  «        ¦  «         Œ1|t          |                      t          d ¦  «        ¦  «        k    S rF   )Úreprr]   r?  r   rC  rL  rJ  )rx   Úbeforer   s      r    Ú!migrate_temporal_upsampler_configrP  È  s…   € Ý�-×#Ò#Õ$AÀ4ÑHÔHÑIÔI€FÝ/ð fð fˆÝ˜7Ñ#Ô#ð 	fÝ  °Õ9LÈ]Ð\cÑ9dÔ9dÑeÔeÐeøØ•T˜-×+Ò+Õ,IÈ4ÑPÔPÑQÔQÒQÐQr   ©Úlock_configrR  ú$list[TemporalUpsamplerConfigBinding]c          
     ó.  — g }t           D ]Š}t          |d¦  «        sŒt          ||t          ||¦  «        ¦  «        }|                     | ||¬¦  «        }|r>|                     t          |t          |¦  «        t          |¦  «        ¦  «        ¦  «         Œ‹|S )NÚcreate_config_uirQ  )	r   ro   rL  rJ  rU  rG   r   r=  Úlist)r  rx   rR  Úbindingsr   rt   r   s          r    rU  rU  Ð  s¨   € Ø€HÝ/ð vð vˆÝ�wÐ 2Ñ3Ô3ð 	ØÝ% m°WÕ>QÐR_ÐahÑ>iÔ>iÑjÔjˆØ×+Ò+¨B°ÀKÐ+ÑPÔPˆØð 	vØ�OŠOÕ:¸7ÕDZÐ[bÑDcÔDcÕeiÐjrÑesÔesÑtÔtÑuÔuÐuøØ€Or   rW  c                ó   — d„ | D ¦   «         S )Nc                ó,   — g | ]}|j         D ]\  }}|‘ŒŒS r   )r   )rZ   Úbindingrœ   Ú	components       r    r[   z%config_components.<locals>.<listcomp>Ý  s,   € ÐSÐSÐS˜'À'ÔBRÐSÐS±,°!°YˆIÐSÐSÐSÐSr   r   )rW  s    r    Úconfig_componentsr\  Ü  s   € ØSÐS XÐSÑSÔSÐSr   c                óf  — t          |pg ¦  «        }i d}}| D ]v}i }|j        D ]7\  }}|t          |¦  «        k    rt          d¦  «        ‚||         ||<   |dz  }Œ8t	          |j        i t          |j        ¦  «        ¥|¥¦  «        ||j        <   Œw|t          |¦  «        k    rt          d¦  «        ‚|S )Nr   zDTemporal upsampler config UI values do not match registered controlsr   )rV  r   r9   r:   rF  r   rC  r   )rW  rI  ÚupdatesÚindexrZ  rt   Úfieldrœ   s           r    Úcollect_config_updatera  à  sà   € Ý�&�,˜BÑÔ€FØ˜ˆU€GØð Að AˆØˆØÔ(ð 	ð 	‰HˆE�1Ø�˜F™œÒ#Ð#Ý Ð!gÑhÔhÐhØ" 5œMˆF�5‰MØ�Q‰JˆEˆEÝ&?ÀÄÐQÕTcÐdkÔdsÑTtÔTtÐQÐx~ÐQñ  'Aô  'Aˆ�Ô"Ñ#Ð#Ø•�F‘”ÒÐÝÐ_Ñ`Ô`Ð`Ø€Nr   r^  ú	list[str]c                ó<  — g }| D ]–}|j         |v r‹t          |j        d¦  «        rv|j                             ||j                  ¦  «        }t	          |t
          ¦  «        r|r|                     |¦  «         Œrt	          |t          ¦  «        r|d„ |D ¦   «         z  }Œ—|S )NÚvalidate_config_sectionc                ó   — g | ]}|¯|‘ŒS r   r   )rZ   r<   s     r    r[   z3validate_config_update_messages.<locals>.<listcomp>ø  s   € Ð>Ð>Ð> d¸Ð>˜TÐ>Ð>Ð>r   )r   ro   r   rd  r�   r   rG   rV  )rW  r^  ÚmessagesrZ  Úmessages        r    Úvalidate_config_update_messagesrh  ð  s²   € Ø€HØð ?ð ?ˆØÔ Ð(Ð(­W°W´_ÐF_Ñ-`Ô-`Ð(Ø”o×=Ò=¸gÀgÔFXÔ>YÑZÔZˆGÝ˜'¥3Ñ'Ô'ð ?¨Gð ?Ø—’ Ñ(Ô(Ð(Ð(Ý˜G¥TÑ*Ô*ð ?ØÐ>Ð>¨gÐ>Ñ>Ô>Ñ>�øØ€Or   c                ód   — |D ],}|j         |v r!t          | |j        ||j                  ¦  «         Œ-d S rF   )r   rL  r   )rx   rW  r^  rZ  s       r    Úapply_config_updaterj  ü  sJ   € Øð ^ð ^ˆØÔ Ð(Ð(Ý  °´ÀÈÔI[ÔA\Ñ]Ô]Ð]øð^ð ^r   Ú
old_configÚ
new_configc                ó"  — t          |¦  «        }t          D ]w}t          |d¦  «        sŒt          | |¦  «        }t          ||¦  «        }t          |d¦  «        r|                     |||¦  «        }n||k    }|r|                     ¦   «          Œxd S )NÚrelease_vramÚconfig_requires_release)Úsetr   ro   rJ  ro  rn  )rk  rl  Úchanged_keysr   Úold_sectionÚnew_sectionÚshould_releases          r    Ú*release_changed_config_temporal_upsamplersru    s­   € Ý�|Ñ$Ô$€LÝ/ð 
#ð 
#ˆÝ�w Ñ/Ô/ð 	ØÝ)¨*°gÑ>Ô>ˆÝ)¨*°gÑ>Ô>ˆÝ�7Ð5Ñ6Ô6ð 	8Ø$×<Ò<¸[È+ÐWcÑdÔdˆNˆNà(¨KÒ7ˆNØð 	#Ø× Ò Ñ"Ô"Ð"øð
#ð 
#r   c                  ó,   — e Zd ZdZd„ Zd„ Zd„ Zd	d„ZdS )
ÚSimpleScaleSuffixMixinz[Value helpers writing '<method>*<multiplier>' while accepting the legacy concatenated form.c                óX   — d„ t          |                      ¦   «         ¦  «        D ¦   «         S )Nc                ó   — g | ]\  }}|‘ŒS r   r   r›   s      r    r[   z7SimpleScaleSuffixMixin._method_keys.<locals>.<listcomp>  s   € ÐWÐWÐW™˜˜3�ÐWÐWÐWr   )r_   rq   )Úselfs    r    Ú_method_keysz#SimpleScaleSuffixMixin._method_keys  s*   € ØWÐW¥/°$×2SÒ2SÑ2UÔ2UÑ"VÔ"VÐWÑWÔWÐWr   c                ó(  — t          |pd¦  «                             ¦   «                              ¦   «         }t          |                      ¦   «         t
          d¬¦  «        D ]2}|                     |¦  «        rt          ||d¦  «        }|€d n||fc S Œ3d S )Nr0   T)r�   Úreverser´   )r   r1   r2   rÐ   r{  r9   r8   r>   )rz  r;   r<   r-   r!   s        r    r¯   z"SimpleScaleSuffixMixin.split_value  s¢   € Ý�5�;˜BÑÔ×%Ò%Ñ'Ô'×-Ò-Ñ/Ô/ˆÝ˜T×.Ò.Ñ0Ô0µcÀ4ÐHÑHÔHð 	Bð 	BˆFØ�Š˜vÑ&Ô&ð BÝ/°°f¸cÑBÔB�Ø$˜}�t�t°6¸5°/ÐAÐAÐAðBð ˆtr   c                ó¦  — t          |pd¦  «                             ¦   «                              ¦   «         }||                      ¦   «         vrd S |                      ¦   «                              di ¦  «                             |d¦  «        }t          |pd¦  «        }||vr$t          |                      ¦   «         |¦  «        pd}t          ||¦  «        S )Nr0   r¦   r   r   )	r   r1   r2   r{  rq   r]   r"   r²   r4   )rz  r-   r!   r¦   s       r    r½   z"SimpleScaleSuffixMixin.build_value  sÈ   € Ý�V�\˜rÑ"Ô"×(Ò(Ñ*Ô*×0Ò0Ñ2Ô2ˆØ˜×*Ò*Ñ,Ô,Ð,Ð,Ø�4Ø×7Ò7Ñ9Ô9×=Ò=¸mÈRÑPÔP×TÒTÐU[Ð]_Ñ`Ô`ˆÝ�e�j˜qÑ!Ô!ˆØ˜Ð#Ð#Ý0°×1RÒ1RÑ1TÔ1TÐV\Ñ]Ô]ÐbÐabˆEÝ& v¨uÑ5Ô5Ð5r   r#   r}   c                ó0   — |                       |¦  «        d uS rF   )r¯   )rz  r;   s     r    r”   z$SimpleScaleSuffixMixin.is_upsampling)  s   € Ø×Ò Ñ&Ô&¨dÐ2Ð2r   N©r#   r}   )r   r   r   Ú__doc__r{  r¯   r½   r”   r   r   r    rw  rw    s^   € € € € € ØeÐeðXð Xð Xðð ð ð6ð 6ð 6ð3ð 3ð 3ð 3ð 3ð 3r   rw  )r!   r"   r#   r   )r-   r   r!   r"   r#   r   )r-   r   r5   r"   r#   r6   )r?   r   r!   r"   r#   r   )r#   rD   )rJ   r   )rT   rU   r#   rV   )rT   rU   r#   r`   )rT   rU   re   r   r#   r   rF   )ri   rj   r#   rk   )ri   rj   r#   rD   )F)r|   r}   r#   r   r€  )r|   r}   r#   r…   )rT   rU   r#   r"   )rT   rU   r-   r   r#   r"   )r#   r‘   )r#   r   )r#   r¤   )r#   r©   )rT   rU   r-   r   r#   r6   )r#   r"   )r#   r¸   )r#   r»   )r#   r   )r#   rÄ   )r|   r}   r#   rV   )r#   rå   )rõ   r}   r#   rU   )rú   r}   rõ   r}   rü   r}   r#   rU   )r  r}   r#   r   )T)rx   rU   r#   rU   )r#   rU   )rt   rU   r#   rU   )rx   rU   rt   rU   r#   rU   )rx   rU   r#   r}   )rx   rU   rR  r}   r#   rS  )rW  rS  r#   r   )rW  rS  r#   rk   )rW  rS  r^  rk   r#   rb  )rx   rU   rW  rS  r^  rk   r#   rD   )rk  rU   rl  rU   r#   rD   )Tr�  Ú
__future__r   Údataclassesr   rî   rO   Útypingr   Úshared.attentionr   Úshared.utilsr   Úprocessor_statusr	   r
   r   r   r   Úmodel_contextr   r?  r3   rn   r   r   rp  r   r   r)   r,   r4   r>   rC   rI   rS   r_   rd   rh   ru   r{   r‚   r€   rˆ   rŒ   r�   r˜   rŸ   r£   r¨   r¬   r²   rµ   r·   rº   r¾   rÁ   rÃ   rÇ   rÊ   rÒ   rä   rç   ró   rù   r  r  r'  r4  r6  r=  rA  rC  rF  rJ  rL  rP  rU  r\  ra  rh  rj  ru  rw  r   r   r    ú<module>r‰     s   ððð ð ð. #Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø )Ð )Ð )Ð )Ð )Ð )ð Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  UØ 2Ð 2Ð 2Ð 2Ð 2Ð 2ð !6Ð ØÐ ð CØDðÐ ð +-Ð Ð ,Ð ,Ð ,Ñ ,Ø9<¸¹¼Ð ,Ð >Ð >Ð >Ñ >ð ð$ð $ð $ð $ð $ñ $ô $ñ „ð$ðCð Cð Cð Cð
*ð *ð *ð *ðbð bð bð bðð ð ð ð$]ð ]ð ]ð ]ð5ð 5ð 5ð 5ð
Eð Eð Eð Eð
Qð Qð Qð QðMð Mð Mð Mð!ð !ð !ð !ðð ð ð ð ð?ð ?ð ?ð ?ð ?ðqð qð qð qð qð@ð @ð @ð @ðpð pð pð pð pðð ð ð ð%ð %ð %ð %ð{ð {ð {ð {ðð ð ð ðð ð ð ðeð eð eð eð]ð ]ð ]ð ]ð
ð 
ð 
ð 
ðrð rð rð rðTð Tð Tð TðCð Cð Cð Cð
Kð Kð Kð Kð
	ð 	ð 	ð 	ðFð Fð Fð Fð[ð [ð [ð [ð[ð [ð [ð [ð
Kð Kð Kð Kð Kð :>ð !ð !ð !ð !ð !ð !ð. 7;ð _ð _ð _ð _ð _ð _ð]ð ]ð ]ð ]ð
 HMð Jð Jð Jð Jð Jð Jð OSÐpuð  EIð  _dð  quð Hð Hð Hð Hð Hð Hð2 RWð 	Zð 	Zð 	Zð 	Zð 	Zð 	Zð aeÐ{ð 5ð 5ð 5ð 5ð 5ð8^ð ^ð ^ð	ð 	ð 	ð 	ð 	ðQð Qð Qð Qð
ð ð ð ðXð Xð Xð Xð|ð |ð |ð |ð6ð 6ð 6ð 6ðð ð ð ðRð Rð Rð Rð PUð 	ð 	ð 	ð 	ð 	ð 	ðTð Tð Tð Tðð ð ð ð 	ð 	ð 	ð 	ð^ð ^ð ^ð ^ð#ð #ð #ð #ð3ð 3ð 3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3r   