§
    ‚Ûgå  ã                   ó:   — d dl mZmZmZ d„ Z G d„ d¦  «        ZdS )é    )ÚVariationModelÚnormalizeValueÚpiecewiseLinearMapc                 ó^   — t          t          |                      ¦   «         ¦  «        ¦  «        S ©N)ÚtupleÚsortedÚitems)Úlocs    úU/granary/edev/quantum/lib/python3.11/site-packages/fontTools/feaLib/variableScalar.pyÚLocationr      s    € Ý•˜Ÿ	š	™œÑ$Ô$Ñ%Ô%Ð%ó    c                   óœ   — e Zd ZdZi fd„Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zd	„ Zed
„ ¦   «         Zdd„Zdd„Zdd„Zdd„ZdS )ÚVariableScalarzFA scalar with different values at different points in the designspace.c                 ó‚   — i | _         i | _        |                     ¦   «         D ]\  }}|                      ||¦  «         Œd S r   )ÚvaluesÚaxesr
   Ú	add_value)ÚselfÚlocation_valueÚlocationÚvalues       r   Ú__init__zVariableScalar.__init__   sP   € ØˆŒØˆŒ	Ø-×3Ò3Ñ5Ô5ð 	,ð 	,‰OˆH�eØ�NŠN˜8 UÑ+Ô+Ð+Ð+ð	,ð 	,r   c                 óì   — g }| j                              ¦   «         D ]>\  }}d                     d„ |D ¦   «         ¦  «        }|                     d||fz  ¦  «         Œ?dd                     |¦  «        z   dz   S )Nú,c                 ó"   — g | ]\  }}d ||fz  ‘ŒS )z%s=%i© )Ú.0Úaxr   s      r   ú
<listcomp>z+VariableScalar.__repr__.<locals>.<listcomp>   s%   € ÐHÐHÐH±G°B¸˜G r¨3 iÑ/ÐHÐHÐHr   z%s:%iú(ú ú))r   r
   ÚjoinÚappend)r   r
   r   r   r   s        r   Ú__repr__zVariableScalar.__repr__   s€   € ØˆØ#œ{×0Ò0Ñ2Ô2ð 	1ð 	1‰OˆH�eØ—(’(ÐHÐH¸xÐHÑHÔHÑIÔIˆCØ�LŠL˜ C¨ <Ñ/Ñ0Ô0Ð0Ð0Ø�c—h’h˜u‘o”oÑ&¨Ñ,Ð,r   c                 ó–   ‡— t          | j                             ¦   «         ¦  «        Št          ˆfd„‰dd …         D ¦   «         ¦  «        S )Nc              3   ó0   •K  — | ]}|‰d          k    V — ŒdS )r   Nr   )r   Úvr   s     €r   ú	<genexpr>z+VariableScalar.does_vary.<locals>.<genexpr>   s+   øè è € Ð6Ð6 a�1˜˜qœ	’>Ð6Ð6Ð6Ð6Ð6Ð6r   é   )Úlistr   Úany)r   r   s    @r   Ú	does_varyzVariableScalar.does_vary   sI   ø€ å�d”k×(Ò(Ñ*Ô*Ñ+Ô+ˆÝÐ6Ð6Ð6Ð6¨6°!°"°"¬:Ð6Ñ6Ô6Ñ6Ô6Ð6r   c                 óP   — | j         st          d¦  «        ‚d„ | j         D ¦   «         S )Nz=.axes must be defined on variable scalar before interpolatingc                 ó   — i | ]
}|j         |“ŒS r   )ÚaxisTag©r   r   s     r   ú
<dictcomp>z,VariableScalar.axes_dict.<locals>.<dictcomp>#   s   € Ð3Ð3Ð3 2�”
˜BÐ3Ð3Ð3r   )r   Ú
ValueError©r   s    r   Ú	axes_dictzVariableScalar.axes_dict   s9   € àŒyð 	ÝØOñô ð ð 4Ð3¨¬Ð3Ñ3Ô3Ð3r   c                 ó(  — |                       |¦  «        }i }|                     ¦   «         D ]X}|| j        vrt          d|›d|›�¦  «        ‚| j        |         }t	          ||         |j        |j        |j        f¦  «        ||<   ŒYt          |¦  «        S )NzUnknown axis z in )	Úfix_locationÚkeysr6   r4   r   ÚminValueÚdefaultValueÚmaxValuer   )r   r   Únormalized_locationÚaxtagÚaxiss        r   Ú_normalized_locationz#VariableScalar._normalized_location%   s¦   € Ø×$Ò$ XÑ.Ô.ˆØ ÐØ—]’]‘_”_ð 	ð 	ˆEØ˜DœNÐ*Ð*Ý �j¸E¸E¸EÀ8À8Ð!LÑMÔMÐMØ”> %Ô(ˆDÝ)7Ø˜” $¤-°Ô1BÀDÄMÐ!Rñ*ô *Ð Ñ&Ð&õ Ð+Ñ,Ô,Ð,r   c                 ó~   — t          |¦  «        }| j                             ¦   «         D ]\  }}||vr
|j        ||<   Œ|S r   )Údictr6   r
   r;   )r   r   Útagr?   s       r   r8   zVariableScalar.fix_location2   sK   € Ý˜‘>”>ˆØœ×-Ò-Ñ/Ô/ð 	2ð 	2‰IˆC�Ø˜(Ð"Ð"Ø $Ô 1�˜‘øØˆr   c                 ól   — | j         r|                      |¦  «        }|| j        t          |¦  «        <   d S r   )r   r8   r   r   )r   r   r   s      r   r   zVariableScalar.add_value9   s9   € ØŒ9ð 	3Ø×(Ò(¨Ñ2Ô2ˆHà*/ˆŒ•H˜XÑ&Ô&Ñ'Ð'Ð'r   c                 ó\   ‡ — ˆ fd„‰ j                              ¦   «         D ¦   «         ‰ _         d S )Nc                 ó\   •— i | ](\  }}t          ‰                     |¦  «        ¦  «        |“Œ)S r   )r   r8   )r   Úlr)   r   s      €r   r3   z4VariableScalar.fix_all_locations.<locals>.<dictcomp>@   sB   ø€ ð 
ð 
ð 
Ù26°!°Q�H�T×&Ò& qÑ)Ô)Ñ*Ô*¨Að
ð 
ð 
r   )r   r
   r5   s   `r   Úfix_all_locationsz VariableScalar.fix_all_locations?   s?   ø€ ð
ð 
ð 
ð 
Ø:>¼+×:KÒ:KÑ:MÔ:Mð
ñ 
ô 
ˆŒˆˆr   c                 ó°   — |                       ¦   «          t          d„ | j        D ¦   «         ¦  «        }|| j        vrt	          d¦  «        ‚| j        |         S )Nc                 ó(   — i | ]}|j         |j        “ŒS r   )r1   r;   r2   s     r   r3   z*VariableScalar.default.<locals>.<dictcomp>G   s   € ÐHÐHÐH¸˜œ
 B¤OÐHÐHÐHr   z Default value could not be found)rH   r   r   r   r4   )r   Úkeys     r   ÚdefaultzVariableScalar.defaultD   s[   € à×ÒÑ Ô Ð ÝÐHÐH¸d¼iÐHÑHÔHÑIÔIˆØ�d”kÐ!Ð!ÝÐ?Ñ@Ô@Ð@àŒ{˜3ÔÐr   Nc                 óT  — t          |¦  «        }|| j                             ¦   «         v r| j        |         S t          | j                             ¦   «         ¦  «        }t	          |                      |¦  «        ¦  «        }|                      ||¦  «                             ||¦  «        S r   )r   r   r9   r,   rB   r@   ÚmodelÚinterpolateFromMasters)r   r   Úmodel_cacheÚavarr   r   s         r   Úvalue_at_locationz VariableScalar.value_at_locationM   s�   € Ý�xÑ Ô ˆØ�$”+×"Ò"Ñ$Ô$Ð$Ð$Ø”;˜sÔ#Ð#Ý�d”k×(Ò(Ñ*Ô*Ñ+Ô+ˆÝ�4×,Ò,¨SÑ1Ô1Ñ2Ô2ˆØ�zŠz˜+ tÑ,Ô,×CÒCÀCÈÑPÔPÐPr   c                 ó  ‡ ‡— |�2t          ‰ j                             ¦   «         ¦  «        }||v r||         S ˆ fd„‰ j                             ¦   «         D ¦   «         }|�|j        Šˆfd„|D ¦   «         }t	          |¦  «        }|�|||<   |S )Nc                 óT   •— g | ]$}t          ‰                     |¦  «        ¦  «        ‘Œ%S r   )rB   r@   )r   Úkr   s     €r   r    z(VariableScalar.model.<locals>.<listcomp>Z   s/   ø€ ÐTÐTÐT¸A•T˜$×3Ò3°AÑ6Ô6Ñ7Ô7ÐTÐTÐTr   c                 óP   •— g | ]"}ˆfd „|                      ¦   «         D ¦   «         ‘Œ#S )c                 óP   •— i | ]"\  }}||‰v rt          |‰|         ¦  «        n|“Œ#S r   )r   )r   rU   r)   Úmappings      €r   r3   z3VariableScalar.model.<locals>.<listcomp>.<dictcomp>^   sK   ø€ ð ð ð á˜˜1ð ¸AÀ¸L¸LÕ)¨!¨W°Q¬ZÑ8Ô8Ð8Èaðð ð r   )r
   )r   r   rX   s     €r   r    z(VariableScalar.model.<locals>.<listcomp>]   sV   ø€ ð ð ð ð
 ð	ð ð ð à (§¢Ñ 0Ô 0ðñ ô ðð ð r   )r   r   r9   Úsegmentsr   )r   rP   rQ   rK   Ú	locationsÚmrX   s   `     @r   rN   zVariableScalar.modelU   s½   øø€ ØÐ"Ý˜œ×(Ò(Ñ*Ô*Ñ+Ô+ˆCØ�kÐ!Ð!Ø" 3Ô'Ð'ØTÐTÐTÐTÀÄ×AQÒAQÑASÔASÐTÑTÔTˆ	ØÐØ”mˆGðð ð ð ð
 !*ðñ ô ˆIõ ˜9Ñ%Ô%ˆØÐ"Ø ˆK˜ÑØˆr   c                 ó    — t          | j                             ¦   «         ¦  «        }|                      ||¦  «                             |¦  «        S r   )r,   r   rN   ÚgetDeltasAndSupports)r   rP   rQ   r   s       r   Úget_deltas_and_supportsz&VariableScalar.get_deltas_and_supportsi   s?   € Ý�d”k×(Ò(Ñ*Ô*Ñ+Ô+ˆØ�zŠz˜+ tÑ,Ô,×AÒAÀ&ÑIÔIÐIr   c                 ó´   — |                       ||¦  «        \  }}|                     |¦  «         |                     |¦  «        }t          | j        ¦  «        |fS r   )r^   ÚsetSupportsÚstoreDeltasÚintrL   )r   Ústore_builderrP   rQ   ÚdeltasÚsupportsÚindexs          r   Úadd_to_variation_storez%VariableScalar.add_to_variation_storem   sX   € Ø×7Ò7¸ÀTÑJÔJÑˆ�Ø×!Ò! (Ñ+Ô+Ð+Ø×)Ò)¨&Ñ1Ô1ˆÝ�4”<Ñ Ô  %Ð'Ð'r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r&   Úpropertyr.   r6   r@   r8   r   rH   rL   rR   rN   r^   rg   r   r   r   r   r      s%  € € € € € ØPÐPà&(ð ,ð ,ð ,ð ,ð-ð -ð -ð ð7ð 7ñ „Xð7ð ð4ð 4ñ „Xð4ð-ð -ð -ðð ð ð0ð 0ð 0ð
ð 
ð 
ð
 ð ð  ñ „Xð ðQð Qð Qð Qðð ð ð ð(Jð Jð Jð Jð(ð (ð (ð (ð (ð (r   r   N)ÚfontTools.varLib.modelsr   r   r   r   r   r   r   r   ú<module>rn      sn   ðØ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Vð&ð &ð &ði(ð i(ð i(ð i(ð i(ñ i(ô i(ð i(ð i(ð i(r   