§
    ¢”jú*  ã                   ój   — d dl mZ d dlmZ d dlmZ dgZdZd„ Zdd„Z	 ed	¦  «        d
„ ¦   «         Z
dS )é    )ÚsupportScalar)ÚMAX_F2DOT14)Ú	lru_cacheÚ
rebaseTentg      ?c                 ó6   — | d          | d          | d          fS )Né   é   r   © )Úvs    úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/varLib/instancer/solver.pyÚ_reverse_negater   
   s!   € ØˆqŒTˆE�A�a”D�5˜1˜Qœ4˜%Ð Ð ó    Fc                 ó  ‡— |\  }}}}}| \  }}	}
||	k    r;d„ t          t          | ¦  «        |                     ¦   «         | ¦  «        D ¦   «         S ||k    r||	k     rg S ||	k     r5t          d|id| i¦  «        Š|||f} ˆfd„t          | |¦  «        D ¦   «         S t          d|id| i¦  «        }|d fg}t          d|id| i¦  «        }||k    r¸|	d|z
  |
|	z
  z  z   }t	          ||¦  «        |	|f}d}|                     ||z
  |f¦  «         |
|k    r"|||f}|}|                     ||z
  |f¦  «         nÈ|
|k    r
|
t          z  }
||
|f}d}|
||f}d}|                     ||z
  |f¦  «         |                     ||z
  |f¦  «         nu||	k    r|	}
|	d|z
  |
|	z
  z  z   }||k    sJ ‚	 t	          ||¦  «        |	|f}d}|	||f}|}|                     ||z
  |f¦  «         |	|k     r|                     ||z
  |f¦  «         ||k    r4|||f}t          d|id| i¦  «        }|                     ||z
  |f¦  «         nR||k    r
|t          z  }|||f}d}|||f}d}|                     ||z
  |f¦  «         |                     ||z
  |f¦  «         |S )Nc                 ó>   — g | ]\  }}||�t          |¦  «        nd f‘ŒS ©N)r   )Ú.0ÚscalarÚts      r   ú
<listcomp>z_solve.<locals>.<listcomp>   sB   € ð 
ð 
ð 
á�˜ð ¨1¨=•_ QÑ'Ô'Ð'¸dÐCð
ð 
ð 
r   Útagc                 ó$   •— g | ]\  }}|‰z  |f‘ŒS r
   r
   )r   r   r   Úmults      €r   r   z_solve.<locals>.<listcomp>J   s&   ø€ ÐLÐLÐL¡y v¨q�˜$‘ Ð"ÐLÐLÐLr   r	   r   )Ú_solver   Úreverse_negater   ÚmaxÚappendÚEPSILONr   )ÚtentÚ	axisLimitÚnegativeÚaxisMinÚaxisDefÚaxisMaxÚ_distanceNegativeÚ_distancePositiveÚlowerÚpeakÚupperÚgainÚoutÚoutGainÚcrossingÚlocr   Úloc1Úscalar1Úloc2Úscalar2ÚnewUpperr   s                         @r   r   r      s£  ø€ ØFOÑC€GˆW�gÐ0Ð2CØÑ€Eˆ4�ð �‚~€~ð
ð 
å#Ý Ñ%Ô%Ø×(Ò(Ñ*Ô*Ø�ñô ð
ñ 
ô 
ð 	
ð* �%ÒÐ˜G dšN˜NØˆ	ð: �‚~€~Ý˜e WÐ-°°t¨}Ñ=Ô=ˆØ�w Ð(ˆØLÐLÐLÐLµF¸4ÀÑ4KÔ4KÐLÑLÔLÐLõ ˜% Ð)¨E°4¨=Ñ9Ô9€DØ�$ˆ<ˆ.€Cõ
 ˜U GÐ,¨u°d¨mÑ<Ô<€Gð$ ˆw‚€ð ˜1˜t™8¨°©Ñ5Ñ5ˆå�5˜'Ñ"Ô" D¨(Ð3ˆØˆð 	�
Š
�F˜T‘M 3Ð'Ñ(Ô(Ð(ð �GÒÐØ˜W gÐ.ˆCØˆFà�JŠJ˜ ™ sÐ+Ñ,Ô,Ð,Ð,ð( ˜ÒÐØ�Ñ �ð ˜e WÐ-ˆDØˆGð ˜7 GÐ,ˆDØˆGà�JŠJ˜ $™¨Ð-Ñ.Ô.Ð.Ø�JŠJ˜ $™¨Ð-Ñ.Ô.Ð.Ð.ð �dŠ?ˆ?ØˆEð$ ˜1˜t™8¨°©Ñ5Ñ5ˆØ˜(Ò"Ð"Ð"Ð"ð&	3õ: ˜ Ñ'Ô'¨¨wÐ7ˆDØˆGà˜' 7Ð+ˆDØˆGà�JŠJ˜ $™¨Ð-Ñ.Ô.Ð.à�gŠ~ˆ~Ø—
’
˜G d™N¨DÐ1Ñ2Ô2Ð2ð$ �ÒÐØ˜ Ð)ˆÝ  wÐ/°%¸°Ñ?Ô?ˆà�
Š
�F˜T‘M 3Ð'Ñ(Ô(Ð(Ð(ð& �GÒÐØ•WÑˆEð ˜ Ð(ˆØˆð ˜ %Ð(ˆØˆà�
Š
�G˜d‘N DÐ)Ñ*Ô*Ð*Ø�
Š
�G˜d‘N DÐ)Ñ*Ô*Ð*à€Jr   é€   c                 óø   ‡‡— ‰\  }}}}}d|cxk    r|cxk    r|cxk    rdk    sn J ‚| \  }}}	d|cxk    r|cxk    r|	cxk    rdk    sn J ‚|dk    sJ ‚t          | ‰¦  «        }
ˆfd„Šˆfd„|
D ¦   «         }
|
S )a7  Given a tuple (lower,peak,upper) "tent" and new axis limits
    (axisMin,axisDefault,axisMax), solves how to represent the tent
    under the new axis configuration.  All values are in normalized
    -1,0,+1 coordinate system. Tent values can be outside this range.

    Return value is a list of tuples. Each tuple is of the form
    (scalar,tent), where scalar is a multipler to multiply any
    delta-sets by, and tent is a new tent for that output delta-set.
    If tent value is None, that is a special deltaset that should
    be always-enabled (called "gain").éÿÿÿÿr	   éþÿÿÿr   r   c                 ó.   •— ‰                      | ¦  «        S r   )ÚrenormalizeValue)r   r   s    €r   ú<lambda>zrebaseTent.<locals>.<lambda>.  s   ø€ �)×,Ò,¨QÑ/Ô/€ r   c           	      óŠ   •— g | ]?\  }}|¯||�2 ‰|d         ¦  «         ‰|d         ¦  «         ‰|d         ¦  «        fnd f‘Œ@S )Nr   r	   r   r
   )r   r   r   Úns      €r   r   zrebaseTent.<locals>.<listcomp>/  sl   ø€ ð ð ð áˆF�AØðØ	°°�!�!�A�a”D‘'”'˜1˜1˜Q˜qœT™7œ7 A A a¨¤d¡G¤GÐ,Ð,À4ÐHðð ð r   )r   )r   r   r!   r"   r#   r$   r%   r&   r'   r(   Úsolsr;   s    `         @r   r   r     s  øø€ ð GPÑC€GˆW�gÐ0Ð2CØ�Ð4Ð4Ò4Ð4˜GÐ4Ð4Ò4Ð4 wÐ4Ð4Ò4Ð4°"Ò4Ð4Ð4Ð4Ð4Ð4àÑ€Eˆ4�Ø�Ð-Ð-Ò-Ð-˜$Ð-Ð-Ò-Ð- %Ð-Ð-Ò-Ð-¨2Ò-Ð-Ð-Ð-Ð-Ð-à�1Š9ˆ9ˆ9ˆ9å�$˜	Ñ"Ô"€Dà/Ð/Ð/Ð/€Aðð ð ð àðñ ô €Dð €Kr   N)F)ÚfontTools.varLib.modelsr   ÚfontTools.misc.fixedToolsr   Ú	functoolsr   Ú__all__r   r   r   r   r
   r   r   ú<module>rA      sœ   ðØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð àˆ.€à
€ð!ð !ð !ðFð Fð Fð FðR €ˆ3�„ðð ñ „ðð ð r   