§
    oF§j½  ã                   ó   — d dl Z d„ ZdS )é    Nc                 óZ   ‡‡‡— d„ Šˆfd„Šˆˆfd„|                       ¦   «         D ¦   «         S )a  
    Match Nvidia architecture against condition dictionary.
    
    Args:
        conditions_dict: dict with condition strings as keys, parameters as values
        architecture: int representing architecture (e.g., 89 for Ada Lovelace)
    
    Returns:
        list of matched parameters
    
    Condition syntax:
        - Operators: '<', '>', '<=', '>=', '=' (or no operator for equality)
        - OR: '+' between conditions (e.g., '<=50+>89')
        - AND: '&' between conditions (e.g., '>=70&<90')
        - Examples:
          * '<89': architectures below Ada (89)
          * '>=75': architectures 75 and above
          * '89': exactly Ada architecture
          * '<=50+>89': Maxwell (50) and below OR above Ada
          * '>=70&<90': Ampere range (70-89)
    c                 ó(  — |                       ¦   «         } | sdS t          j        d| ¦  «        }|sdS |                     ¦   «         \  }}t	          |¦  «        }|dv r||k    S |dk    r||k    S |dk    r||k    S |dk    r||k    S |dk    r||k     S dS )z.Evaluate single condition against architectureFz(>=|<=|>|<|=?)(\d+))Ú Ú=z>=z<=Ú>Ú<)ÚstripÚreÚmatchÚgroupsÚint)ÚcondÚarchr   ÚopÚvals        ú+C:\Users\johnn\Wan2GP\shared\match_archi.pyÚeval_conditionz1match_nvidia_architecture.<locals>.eval_condition   s¿   € à�zŠz‰|Œ|ˆØð 	Ø�5õ ”Ð/°Ñ6Ô6ˆØð 	Ø�5à—,’,‘.”.‰ˆˆCÝ�#‰hŒhˆð �ˆ?ˆ?Ø˜3’;ÐØ�4ŠZˆZØ˜3’;ÐØ�4ŠZˆZØ˜3’;ÐØ�3ŠYˆYØ˜#’:ÐØ�3ŠYˆYØ˜#’:ÐØˆuó    c                 ód   •‡— t          ˆˆfd„|                      d¦  «        D ¦   «         ¦  «        S )z3Check if architecture matches full condition stringc              3   óž   •K  — | ]G}|                      ¦   «         ¯t          ˆˆfd „|                     d¦  «        D ¦   «         ¦  «        V — ŒHdS )c              3   ó0   •K  — | ]} ‰|‰¦  «        V — Œd S )N© )Ú.0Úand_condr   r   s     €€r   ú	<genexpr>zQmatch_nvidia_architecture.<locals>.matches_condition.<locals>.<genexpr>.<genexpr>9   s/   øè è € ÐRÐR°8��˜x¨Ñ.Ô.ÐRÐRÐRÐRÐRÐRr   ú&N)r	   ÚallÚsplit)r   Úor_condr   r   s     €€r   r   zGmatch_nvidia_architecture.<locals>.matches_condition.<locals>.<genexpr>8   sq   øè è € ð 
ð 
àØ�}Š}‰Œð
ÝÐRÐRÐRÐRÐR¸w¿}º}ÈSÑ?QÔ?QÐRÑRÔRÑRÔRð
ð 
ð 
ð 
ð 
ð 
r   ú+)Úanyr   )Úcondition_strr   r   s    `€r   Úmatches_conditionz4match_nvidia_architecture.<locals>.matches_condition5   sQ   øø€ õ ð 
ð 
ð 
ð 
ð 
à(×.Ò.¨sÑ3Ô3ð
ñ 
ô 
ñ 
ô 
ð 	
r   c                 ó2   •— g | ]\  }} ‰|‰¦  «        ¯|‘ŒS r   r   )r   Ú	conditionÚparamsÚarchitecturer#   s      €€r   ú
<listcomp>z-match_nvidia_architecture.<locals>.<listcomp>?   s?   ø€ ð ;ð ;ð ;Ñ(�y &Ø Ð  ¨LÑ9Ô9ð;ˆFð ;ð ;ð ;r   )Úitems)Úconditions_dictr'   r   r#   s    `@@r   Úmatch_nvidia_architecturer+      sh   øøø€ ð.ð ð ð6
ð 
ð 
ð 
ð 
ð;ð ;ð ;ð ;ð ;¨O×,AÒ,AÑ,CÔ,Cð ;ñ ;ô ;ð ;r   )r
   r+   r   r   r   ú<module>r,      s'   ðØ 	€	€	€	ð=;ð =;ð =;ð =;ð =;r   