§
    Ÿ²Åj  ã            	       óü  — U d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlZd dlmZmZ eeegef         Zeeegef         Zi Zee
e         ef         ed<   i Zee
e         ee         f         ed<   	 dde
e         ded	ee         d
dfd„Z	 ddeded
ee         fd„Zdeeef         ded
ee         fd„Zdee         ded
ee         fd„Zde	e         ded
ee         fd„Zdeded
ee         fd„Zdeeef         ded
efd„Zdee         ded
efd„Zde	e         ded
efd„Zdeded
efd„Z ee ee¦  «          ee!ee¦  «          ee"ee¦  «         ej#        j$        D ]Z% ee%ee¦  «         Œ eeee¦  «         dS )é    )Ú
namedtuple)ÚAnyÚCallableÚDictÚListÚ
NamedTupleÚOptionalÚTupleÚTypeN)ÚPyTreeÚTreeSpecÚSUPPORTED_NODESÚSUPPORTED_NODES_EXACT_MATCHÚclsÚflatten_fn_specÚflatten_fn_exact_match_specÚreturnc                 ó.   — |t           | <   |t          | <   d S ©N)r   r   )r   r   r   s      úAC:\Projects\Historical\venv\Lib\site-packages\torch/fx/_pytree.pyÚregister_pytree_flatten_specr      s   € ð
 +…O�CÑØ'BÕ Ñ$Ð$Ð$ó    FÚpytreeÚspecc                 óž  — |                      ¦   «         r| gS |j        t          vrt          t          | ¦  «        › d�¦  «        ‚t          |j                 } || |¦  «        }|r5t          |j                 }|r! || |¦  «        st          d| › d|› �¦  «        ‚g }t          ||j        ¦  «        D ]\  }}t          |||¦  «        }	||	z  }Œ|S )Nzê does not have a flatten_fn_spec associated with it. Please register one with torch.fx._pytree.register_pytree_flatten_spec.  If you have serialized your model, make sure that any custom pytrees have been registered before loading it.zCannot flatten pytree z, given spec: )Úis_leafÚtyper   ÚRuntimeErrorr   ÚzipÚchildren_specsÚtree_flatten_spec)
r   r   Úexact_structural_matchr   Úchild_pytreesr   ÚresultÚchildÚ
child_specÚflats
             r   r!   r!      s  € ð
 ‡|‚|�~„~ð ØˆxˆØ„y�Ð'Ð'ÝÝ�F‰|Œ|ð Sð Sð Sñ
ô 
ð 	
õ
 & d¤iÔ0€OØ#�O F¨DÑ1Ô1€MØð VÝ&AÀ$Ä)Ô&LÐ#Ø&ð 	VÐ/JÐ/JØØñ0
ô 0
ð 	Võ ÐT¸ÐTÐTÈdÐTÐTÑUÔUÐUØ€FÝ  °Ô0CÑDÔDð ð ÑˆˆzÝ  ¨
Ð4JÑKÔKˆØ�$‰ˆˆØ€Mr   Údc                 ó*   ‡ — ˆ fd„|j         D ¦   «         S )Nc                 ó    •— g | ]
}‰|         ‘ŒS © r+   )Ú.0Úkr(   s     €r   ú
<listcomp>z&_dict_flatten_spec.<locals>.<listcomp>7   s   ø€ Ð'Ð'Ð'�QˆAˆaŒDÐ'Ð'Ð'r   )Úcontext©r(   r   s   ` r   Ú_dict_flatten_specr1   6   s   ø€ Ø'Ð'Ð'Ð'˜$œ,Ð'Ñ'Ô'Ð'r   c                 óD   ‡ — ˆ fd„t          |j        ¦  «        D ¦   «         S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r+   r+   ©r,   Úir(   s     €r   r.   z&_list_flatten_spec.<locals>.<listcomp>;   ó   ø€ Ð3Ð3Ð3�QˆAˆaŒDÐ3Ð3Ð3r   ©ÚrangeÚnum_childrenr0   s   ` r   Ú_list_flatten_specr:   :   ó(   ø€ Ø3Ð3Ð3Ð3�% Ô 1Ñ2Ô2Ð3Ñ3Ô3Ð3r   c                 óD   ‡ — ˆ fd„t          |j        ¦  «        D ¦   «         S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r+   r+   r4   s     €r   r.   z'_tuple_flatten_spec.<locals>.<listcomp>?   r6   r   r7   r0   s   ` r   Ú_tuple_flatten_specr>   >   r;   r   c                 óD   ‡ — ˆ fd„t          |j        ¦  «        D ¦   «         S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r+   r+   r4   s     €r   r.   z,_namedtuple_flatten_spec.<locals>.<listcomp>C   r6   r   r7   r0   s   ` r   Ú_namedtuple_flatten_specrA   B   r;   r   c                 ó2   — t          | ¦  «        |j        k    S r   ©Úlenr9   r0   s     r   Ú_dict_flatten_spec_exact_matchrE   F   ó   € Ýˆq‰6Œ6�TÔ&Ò&Ð&r   c                 ó2   — t          | ¦  «        |j        k    S r   rC   r0   s     r   Ú_list_flatten_spec_exact_matchrH   J   rF   r   c                 ó2   — t          | ¦  «        |j        k    S r   rC   r0   s     r   Ú_tuple_flatten_spec_exact_matchrJ   N   rF   r   c                 ó2   — t          | ¦  «        |j        k    S r   rC   r0   s     r   Ú$_namedtuple_flatten_spec_exact_matchrL   R   rF   r   r   )F)&Úcollectionsr   Útypingr   r   r   r   r   r	   r
   r   Útorch.return_typesÚtorchÚtorch.utils._pytreer   r   ÚFlattenFuncSpecÚboolÚFlattenFuncExactMatchSpecr   Ú__annotations__r   r   r!   r1   r:   r>   rA   rE   rH   rJ   rL   ÚdictÚlistÚtupleÚreturn_typesÚall_return_typesÚreturn_typer+   r   r   ú<module>r\      s¥  ðà "Ð "Ð "Ð "Ð "Ð "Ð "Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oà Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ð ˜F HÐ-¨tÐ3Ô4€Ø$ f¨hÐ%7¸Ð%=Ô>Ð à46€��d˜3”i Ð0Ô1Ð 6Ð 6Ñ 6ØTVÐ ˜T $ s¤)¨XÐ6OÔ-PÐ"PÔQÐ VÐ VÑ Vð HLðCð CØ	ˆcŒðCà$ðCð "*Ð*CÔ!DðCð 
ð	Cð Cð Cð Cð !ðð Øðà
ðð 
ˆ#„Yð	ð ð ð ð:(˜$˜s C˜xœ.ð (°ð (¸TÀ#¼Yð (ð (ð (ð (ð4˜$˜sœ)ð 4¨8ð 4¸¸S¼	ð 4ð 4ð 4ð 4ð4˜5 œ:ð 4¨Xð 4¸$¸s¼)ð 4ð 4ð 4ð 4ð4 
ð 4°(ð 4¸tÀC¼yð 4ð 4ð 4ð 4ð' d¨3°¨8¤nð '¸Hð 'Èð 'ð 'ð 'ð 'ð' d¨3¤ið '°xð 'ÀDð 'ð 'ð 'ð 'ð' u¨S¤zð '¸ð 'Àdð 'ð 'ð 'ð 'ð'¨Jð '¸hð 'È4ð 'ð 'ð 'ð 'ð Ð ˜TÐ#5Ð7UÑ VÔ VÐ VØ Ð ˜TÐ#5Ð7UÑ VÔ VÐ VØ Ð Ø	ØØ#ñô ð ð
 Ô%Ô6ð ð €KØ Ð ØØØ'ñô ð ð ð
 Ð ØØØ(ñô ð ð ð r   