§
    ¢”jÄ}  ã                   ó  — d dl mZmZmZmZm	Z	 d dl
mZ d dlZd dlmZmZ d dlZd dlZd dlZd dlZdZdZdZdZd	Zd
Zd
ZdZdZdZdZdZdZ  ej!        e"¦  «        Z# G d„ de$¦  «        Z%d„ Z&e dz   fd„Z'	 dddœd„Z(d„ Z)d„ Z*d„ Z+dS )é    )ÚfixedToFloatÚfloatToFixedÚfloatToFixedToStrÚstrToFixedToFloatÚotRound)ÚsafeEvalN)ÚCounterÚdefaultdicti €  i @  i    é€   é@   éÀ   é?   é   iÿ  c                   óv  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	i dfd	d
œd„Z
d„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd#d„Zed$d	d
œd„¦   «         Zed„ ¦   «         Zed#d„¦   «         Zed#d„¦   «         Zed#d„¦   «         Zed%d„¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd&d „Zd!„ Zd"„ ZdS )'ÚTupleVariationc                 ó`   — |                      ¦   «         | _        t          |¦  «        | _        d S ©N)ÚcopyÚaxesÚlistÚcoordinates)Úselfr   r   s      út/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/ttLib/tables/TupleVariation.pyÚ__init__zTupleVariation.__init__(   s'   € Ø—I’I‘K”KˆŒ	Ý Ñ,Ô,ˆÔÐÐó    c                 ó¤   — d                      t          d„ | j                             ¦   «         D ¦   «         ¦  «        ¦  «        }d|›d| j        ›d�S )Nú,c                 ó"   — g | ]\  }}|›d |›�‘ŒS )ú=© )Ú.0ÚnameÚvalues      r   ú
<listcomp>z+TupleVariation.__repr__.<locals>.<listcomp>.   s'   € ÐSÐSÐS±°°u˜t˜t˜t U UÐ+ÐSÐSÐSr   z<TupleVariation ú ú>)ÚjoinÚsortedr   Úitemsr   )r   r   s     r   Ú__repr__zTupleVariation.__repr__,   sW   € Ø�xŠxÝÐSÐSÀÄÇÂÑARÔARÐSÑSÔSÑTÔTñ
ô 
ˆˆð ,0¨4¨4°Ô1AÐ1AÐ1AÐBÐBr   c                 óB   — | j         |j         k    o| j        |j        k    S r   )r   r   )r   Úothers     r   Ú__eq__zTupleVariation.__eq__2   s!   € ØÔ 5Ô#4Ò4ÐP¸¼ÀeÄjÒ9PÐPr   c                 ó’   — d | j         vrt          ¦   «         S t          d„ t          | j         ¦  «        D ¦   «         ¦  «        }|r|nd S )Nc                 ó   — g | ]	\  }}|®|‘Œ
S r   r    )r!   ÚiÚps      r   r$   z0TupleVariation.getUsedPoints.<locals>.<listcomp>9   s   € ÐUÐUÐU¡  1ÀqÀ}˜!À}À}À}r   )r   Ú	frozensetÚ	enumerate)r   Úuseds     r   ÚgetUsedPointszTupleVariation.getUsedPoints5   sP   € à�tÔ'Ð'Ð'Ý‘;”;ÐÝÐUÐU­	°$Ô2BÑ(CÔ(CÐUÑUÔUÑVÔVˆàÐ%ˆtˆt Ð%r   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )zÄReturns True if this TupleVariation has any visible impact.

        If the result is False, the TupleVariation can be omitted from the font
        without making any visible difference.
        c              3   ó   K  — | ]}|d uV — Œ	d S r   r    ©r!   Úcs     r   ú	<genexpr>z+TupleVariation.hasImpact.<locals>.<genexpr>C   s&   è è € Ð;Ð; Q�1˜D�=Ð;Ð;Ð;Ð;Ð;Ð;r   )Úanyr   )r   s    r   Ú	hasImpactzTupleVariation.hasImpact=   s$   € õ Ð;Ð;¨$Ô*:Ð;Ñ;Ô;Ñ;Ô;Ð;r   c           	      óà  — |                      d¦  «         |                     ¦   «          |D ]Ù}| j                             |¦  «        }|�»|\  }}}t	          |d¦  «        }t          |d¦  «        }||k    r-||k    r'|                     d|t          |d¦  «        ¬¦  «         nNd|fdt          |d¦  «        fdt          |d¦  «        fd	t          |d¦  «        fg}	|                     d|	¦  «         |                     ¦   «          ŒÚd
}
t          | j	        ¦  «        D ]ý\  }}t          |¦  «        t          k    rOt          |¦  «        dk    r<|                     d||d         |d         ¬¦  «         |                     ¦   «          d}
Œlt          |¦  «        t          k    r/|                     d||¬¦  «         |                     ¦   «          d}
Œ³|�Ht                               d¦  «         |                     d|z  ¦  «         |                     ¦   «          d}
Œþ|
s)|                     d¦  «         |                     ¦   «          |                     d¦  «         |                     ¦   «          d S )NÚtupleç        Úcoordé   )Úaxisr#   rB   Úminr#   ÚmaxFé   Údeltar   é   )ÚptÚxÚyT)Úcvtr#   zbad delta formatzbad delta #%dz	no deltas)ÚbegintagÚnewliner   ÚgetrC   rD   Ú	simpletagÚfl2strr3   r   Útyper>   ÚlenÚintÚlogÚerrorÚcommentÚendtag)r   ÚwriterÚaxisTagsrB   r#   ÚminValueÚmaxValueÚdefaultMinValueÚdefaultMaxValueÚattrsÚwrote_any_deltasr0   rF   s                r   ÚtoXMLzTupleVariation.toXMLE   s}  € Ø�Š˜Ñ Ô Ð Ø�ŠÑÔÐØð 	!ð 	!ˆDØ”I—M’M $Ñ'Ô'ˆEØÐ Ø,1Ñ)�˜% Ý"% e¨S¡/¤/�Ý"% e¨S¡/¤/�Ø˜Ò.Ð.°8¸Ò3NÐ3NØ×$Ò$ W°4½vÀeÈRÑ?PÔ?PÐ$ÑQÔQÐQÐQð   ˜Ø¥ x°Ñ 4Ô 4Ð5Ø ¥&¨°Ñ"3Ô"3Ð4Ø¥ x°Ñ 4Ô 4Ð5ð	�Eð ×$Ò$ W¨eÑ4Ô4Ð4Ø—’Ñ Ô Ð øØ ÐÝ! $Ô"2Ñ3Ô3ð 	(ð 	(‰HˆAˆuÝ�E‰{Œ{�eÒ#Ð#­¨E©
¬
°aª¨Ø× Ò  ¨Q°%¸´(¸eÀA¼hÐ ÑGÔGÐGØ—’Ñ Ô Ð Ø#'Ð Ð Ý�e‘”¥Ò#Ð#Ø× Ò  ¨a°uÐ Ñ=Ô=Ð=Ø—’Ñ Ô Ð Ø#'Ð Ð ØÐ"Ý—	’	Ð,Ñ-Ô-Ð-Ø—’˜°Ñ2Ñ3Ô3Ð3Ø—’Ñ Ô Ð Ø#'Ð øØð 	Ø�NŠN˜;Ñ'Ô'Ð'Ø�NŠNÑÔÐØ�Š�gÑÔÐØ�ŠÑÔÐÐÐr   c           	      ó   — |dk    r•|d         }t          |d         d¦  «        }t          |d¦  «        }t          |d¦  «        }t          |                     d|¦  «        d¦  «        }t          |                     d|¦  «        d¦  «        }	|||	f| j        |<   d S |dk    rÜd	|v rMt          |d	         ¦  «        }
t          |d
         ¦  «        }t          |d         ¦  «        }||f| j        |
<   d S d|v r6t          |d         ¦  «        }t          |d         ¦  «        }|| j        |<   d S t                               dd 	                    t          |                     ¦   «         ¦  «        ¦  «        z  ¦  «         d S d S )Nr@   rB   r#   rA   r?   rC   rD   rF   rH   rI   rJ   rK   zbad delta format: %sz, )Ústr2flrC   rD   rN   r   r   r   rT   Úwarningr'   r(   Úkeys)r   r"   r^   Ú_contentrB   r#   r\   r]   rZ   r[   ÚpointrI   rJ   rK   s                 r   ÚfromXMLzTupleVariation.fromXMLn   sl  € Ø�7Š?ˆ?Ø˜”=ˆDÝ˜5 œ>¨2Ñ.Ô.ˆEÝ! %¨™oœoˆOÝ! %¨™oœoˆOÝ˜eŸiši¨¨Ñ?Ô?ÀÑDÔDˆHÝ˜eŸiši¨¨Ñ?Ô?ÀÑDÔDˆHØ'¨°Ð9ˆDŒI�d‰OˆOˆOØ�WŠ_ˆ_Ø�uˆ}ˆ}Ý   t¤Ñ-Ô-�Ý˜U 3œZÑ(Ô(�Ý˜U 3œZÑ(Ô(�Ø+,¨a¨&�Ô  Ñ'Ð'Ð'Ø˜%��Ý˜u Uœ|Ñ,Ô,�Ý   w¤Ñ0Ô0�Ø(-�Ô  Ñ%Ð%Ð%å—’Ð2°T·Y²Y½vÀeÇjÂjÁlÄlÑ?SÔ?SÑ5TÔ5TÑTÑUÔUÐUÐUÐUð ˆ_r   NT©ÚoptimizeSizec          	      ót  — t          | j                             ¦   «         ¦  «        t          |¦  «        k    s$J d| j                             ¦   «         |f¦   «         ‚g }g }|€-|                      ¦   «         }|€dS |                      |¦  «        }|                      |¦  «        }|                     |¦  «        }	|	€t          }	|                     |¦  «         |  	                    |¦  «        }
|
�|	t          z  }	|                     |
¦  «         |r|	t          z  }	|                     |¦  «         |                     |                      |¬¦  «        ¦  «         d                     |¦  «        }|                     dt          j        dt#          |¦  «        |	¦  «        ¦  «         d                     |¦  «        |fS )NzUnknown axis tag found.)r   r   rh   r   r   ú>HH)Úsetr   rd   r5   ÚcompilePointsÚcompileCoordrN   ÚEMBEDDED_PEAK_TUPLEÚappendÚcompileIntermediateCoordÚINTERMEDIATE_REGIONÚPRIVATE_POINT_NUMBERSÚcompileDeltasr'   ÚinsertÚstructÚpackrR   )r   rY   ÚsharedCoordIndicesÚ	pointDatari   Ú	tupleDataÚauxDataÚ
usedPointsr@   ÚflagsÚintermediateCoords              r   ÚcompilezTupleVariation.compile„   sª  € õ �4”9—>’>Ñ#Ô#Ñ$Ô$­¨H©¬Ò5Ð5Ð5Ø%ØŒI�NŠNÑÔØð8
Ñ5Ô5Ð5ð ˆ	ØˆàÐØ×+Ò+Ñ-Ô-ˆJØÐ!Ø�xØ×*Ò*¨:Ñ6Ô6ˆIà×!Ò! (Ñ+Ô+ˆØ"×&Ò& uÑ-Ô-ˆØˆ=Ý'ˆEØ×Ò˜UÑ#Ô#Ð#à ×9Ò9¸(ÑCÔCÐØÐ(ØÕ(Ñ(ˆEØ×ÒÐ.Ñ/Ô/Ð/ð ð 	&ØÕ*Ñ*ˆEØ�NŠN˜9Ñ%Ô%Ð%à�Š�t×)Ò)°|Ð)ÑDÔDÑEÔEÐEØ—(’(˜7Ñ#Ô#ˆà×Ò˜�FœK¨­s°7©|¬|¸UÑCÔCÑDÔDÐDØ�xŠx˜	Ñ"Ô" GÐ+Ð+r   c           
      ó  — g }| j         }|D ]k}|                     |¦  «        }|€|                     d¦  «         Œ/|                     t          j        dt          |d         d¦  «        ¦  «        ¦  «         Œld                     |¦  «        S )Ns     ú>hrG   rA   r   )r   rN   rp   rv   rw   Úfl2fir'   )r   rY   Úresultr   rB   Útriples         r   rn   zTupleVariation.compileCoord¬   s‰   € ØˆØŒyˆØð 	Gð 	GˆDØ—X’X˜d‘^”^ˆFØˆ~Ø—’˜gÑ&Ô&Ð&Ð&à—’�fœk¨$µ°f¸Q´iÀÑ0DÔ0DÑEÔEÑFÔFÐFÐFØ�xŠx˜ÑÔÐr   c           
      ó  — d}|D ]Q}| j                              |d¦  «        \  }}}t          |d¦  «        }t          |d¦  «        }||k    s||k    rd} nŒR|sd S g }	g }
|D ]�}| j                              |d¦  «        \  }}}|	                     t          j        dt          |d¦  «        ¦  «        ¦  «         |
                     t          j        dt          |d¦  «        ¦  «        ¦  «         ŒŽd                     |	|
z   ¦  «        S )NF©r?   r?   r?   r?   Tr�   rA   r   )	r   rN   rC   rD   rp   rv   rw   r‚   r'   )r   rY   ÚneededrB   rZ   r#   r[   r\   r]   Ú	minCoordsÚ	maxCoordss              r   rq   z'TupleVariation.compileIntermediateCoord·   s%  € ØˆØð 	ð 	ˆDØ(,¬	¯ª°d¸OÑ(LÔ(LÑ%ˆH�e˜XÝ! %¨™oœoˆOÝ! %¨™oœoˆOØ˜OÒ+Ð+°¸_Ò1LÐ1LØ�Ø�ð 2Mð ð 	Ø�4Øˆ	Øˆ	Øð 	Eð 	EˆDØ(,¬	¯ª°d¸OÑ(LÔ(LÑ%ˆH�e˜XØ×Ò�Vœ[¨­u°X¸rÑ/BÔ/BÑCÔCÑDÔDÐDØ×Ò�Vœ[¨­u°X¸rÑ/BÔ/BÑCÔCÑDÔDÐDÐDØ�xŠx˜	 IÑ-Ñ.Ô.Ð.r   c           
      ó”   — i }|}| D ]>}t          t          j        d|||dz   …         ¦  «        d         d¦  «        ||<   |dz  }Œ?||fS )Nr�   rE   r   rA   )Úfi2flrv   Úunpack)rY   ÚdataÚoffsetr@   ÚposrB   s         r   ÚdecompileCoord_zTupleVariation.decompileCoord_Ê   sa   € àˆØˆØð 	ð 	ˆDÝ¥¤¨d°D¸¸sÀQ¹w¸Ô4GÑ HÔ HÈÔ KÈRÑPÔPˆE�$‰KØ�1‰HˆCˆCØ�cˆzÐr   c                 ó
  — | sdS t          | ¦  «        } |                      ¦   «          t          | ¦  «        }t          ¦   «         }|dk     r|                     |¦  «         n3|                     |dz	  dz  ¦  «         |                     |dz  ¦  «         d}d}d}||k     rãd}t          |¦  «        }|                     d¦  «         d }||k     r”||k    rŽ| |         }	|	|z
  }
|€d|
cxk    odk    nc }|r|
dk    s|
dk     rn`|r|                     |
¦  «         n0|                     |
dz	  ¦  «         |                     |
dz  ¦  «         |	}|dz  }|dz  }||k     r||k    °Ž|r	|dz
  ||<   n|dz
  t
          z  ||<   ||k     °ã|S )Nó    r   é   éÿ   r   r   rG   )r   ÚsortrR   Ú	bytearrayrp   ÚPOINTS_ARE_WORDS)ÚpointsÚ	numPointsrƒ   ÚMAX_RUN_LENGTHr�   Ú	lastValueÚ	runLengthÚ	headerPosÚuseByteEncodingÚcurValuerF   s              r   rm   zTupleVariation.compilePointsÓ   só  € ð ð 	Ø�5õ �f‘”ˆØ�Š‰ŒˆÝ˜‘K”Kˆ	å‘”ˆð �tÒÐØ�MŠM˜)Ñ$Ô$Ð$Ð$à�MŠM˜9¨™>¨TÑ1Ñ2Ô2Ð2Ø�MŠM˜) dÑ*Ñ+Ô+Ð+àˆØˆØˆ	Ø�IŠoˆoØˆIå˜F™œˆIØ�MŠM˜!ÑÔÐà"ˆOØ˜	’/�/ i°>Ò&AÐ&AØ! #œ;�Ø  9Ñ,�Ø"Ð*Ø&'¨5Ð&8Ð&8Ò&8Ð&8°DÒ&8Ð&8Ð&8Ð&8�OØ"ð ¨°ª¨¸Àº	¸	àð #ð 0Ø—M’M %Ñ(Ô(Ð(Ð(à—M’M %¨1¡*Ñ-Ô-Ð-Ø—M’M %¨$¡,Ñ/Ô/Ð/Ø$�	Ø�q‘�Ø˜Q‘�	ð# ˜	’/�/ i°>Ò&AÐ&Að$ ð GØ$-°¡M��yÑ!Ð!à%.°¡]Õ6FÑ$F��yÑ!ð9 �IŠoˆoð< ˆr   c                 óŽ  ‡ — |dv sJ ‚|}||         }|dz  }|t           z  dk    r|t          z  dz  ||         z  }|dz  }|dk    rt          ‰ ¦  «        |fS g }t          |¦  «        |k     rà||         }|dz  }|t          z  dz   }d}	|t           z  dk    rt	          j        d¦  «        }
|dz  }nt	          j        d¦  «        }
|}|
                     ||||z   …         ¦  «         t          j        dk    r|
                     ¦   «          t          |
¦  «        |k    sJ ‚||z  }| 	                    |
¦  «         t          |¦  «        |k     °àg }d}|D ]}||z  }| 
                    |¦  «         Œ|}~ˆ fd	„|D ¦   «         }|rAt                               d
d                     t          |¦  «        ¦  «        ›d|›d�¦  «         ||fS )zJ(numPoints, data, offset, tableTag) --> ([point1, point2, ...], newOffset)©ÚcvarÚgvarrG   r   r“   ÚHrE   ÚBÚbigc                 óF   •— h | ]}|d k     s|‰k    ¯t          |¦  «        ’ŒS ©r   )Ústr)r!   r1   r™   s     €r   ú	<setcomp>z2TupleVariation.decompilePoints_.<locals>.<setcomp>?  s,   ø€ ÐGÐGÐG ¨q°1ªu¨u¸¸Yº¸•S˜‘V”V¸¸¸r   zpoint r   z out of range in 'z' table)r—   ÚPOINT_RUN_COUNT_MASKÚrangerR   ÚarrayÚ	frombytesÚsysÚ	byteorderÚbyteswapÚextendrp   rT   rc   r'   r(   )r™   r�   rŽ   ÚtableTagr�   ÚnumPointsInDatarƒ   Ú	runHeaderÚnumPointsInRunrf   r˜   Ú
pointsSizeÚabsoluteÚcurrentrF   Ú	badPointss   `               r   ÚdecompilePoints_zTupleVariation.decompilePoints_  s2  ø€ ð Ð+Ð+Ð+Ð+Ð+ØˆØ˜sœ)ˆØˆq‰ˆØÕ.Ñ.°1Ò4Ð4Ø.Õ1EÑEÈ!ÑKÈdÐSVÌiÑWˆOØ�1‰HˆCØ˜aÒÐÝ˜)Ñ$Ô$ cÐ*Ð*àˆÝ�&‰kŒk˜OÒ+Ð+Ø˜Sœ	ˆIØ�1‰HˆCØ'Õ*>Ñ>À!ÑCˆNØˆEØÕ,Ñ,°Ò2Ð2Ýœ SÑ)Ô)�Ø+¨aÑ/�
�
åœ SÑ)Ô)�Ø+�
Ø×Ò˜T #¨¨jÑ(8Ð"8Ô9Ñ:Ô:Ð:ÝŒ} Ò%Ð%Ø—’Ñ!Ô!Ð!å�v‘;”; .Ò0Ð0Ð0Ð0Ø�:ÑˆCà�MŠM˜&Ñ!Ô!Ð!õ% �&‰kŒk˜OÒ+Ð+ð* ˆØˆØð 	%ð 	%ˆEØ�uÑˆGØ�OŠO˜GÑ$Ô$Ð$Ð$ØˆØàGÐGÐGÐG VÐGÑGÔGˆ	Øð 	Ý�KŠKˆKà—8’8�F 9Ñ-Ô-Ñ.Ô.Ð.Ð.°°°ð:ñô ð ð ˜ˆ}Ðr   c                 ó†  — g }g }|                       ¦   «         dk    rD| j        D ];}|€Œ|                     |d         ¦  «         |                     |d         ¦  «         Œ<n"| j        D ]}|€Œ|                     |¦  «         Œt          ¦   «         }|                      |||¬¦  «         |                      |||¬¦  «         |S )NrE   r   rG   rh   )ÚgetCoordWidthr   rp   r–   ÚcompileDeltaValues_)r   ri   ÚdeltaXÚdeltaYr9   Úbytearrs         r   rt   zTupleVariation.compileDeltasG  sæ   € ØˆØˆØ×ÒÑÔ 1Ò$Ð$ØÔ%ð $ð $�Ø�9ØØ—’˜a œdÑ#Ô#Ð#Ø—’˜a œdÑ#Ô#Ð#Ð#ð	$ð Ô%ð !ð !�Ø�9ØØ—’˜aÑ Ô Ð Ð Ý‘+”+ˆØ× Ò  ¨¸|Ð ÑLÔLÐLØ× Ò  ¨¸|Ð ÑLÔLÐLØˆr   c                óv  — |€t          ¦   «         }d}t          | ¦  «        }|r®||k     r§| |         }|dk    rt                               | ||¦  «        }nvd|cxk    rdk    r n nt                               | ||¦  «        }nId|cxk    rdk    r n nt                               | ||¦  «        }nt                               | ||¦  «        }||k     °§nÕt          | ¦  «        t          | ¦  «        }}|dcxk    r|k    r n nt                               | ||¦  «        }nŠd|cxk    r|cxk    rdk    r"n nt                               | ||d¬¦  «        }nTd|cxk    r|cxk    rdk    r"n nt                               | ||d¬¦  «        }nt                               | ||d¬¦  «        }||k    sJ ||f¦   «         ‚|S )	aê  [value1, value2, value3, ...] --> bytearray

        Emits a sequence of runs. Each run starts with a
        byte-sized header whose 6 least significant bits
        (header & 0x3F) indicate how many values are encoded
        in this run. The stored length is the actual length
        minus one; run lengths are thus in the range [1..64].
        If the header byte has its most significant bit (0x80)
        set, all values in this run are zero, and no data
        follows. Otherwise, the header byte is followed by
        ((header & 0x3F) + 1) signed values.  If (header &
        0x40) is clear, the delta values are stored as signed
        bytes; if (header & 0x40) is set, the delta values are
        signed 16-bit integers.
        Nr   é€ÿÿÿr   é €ÿÿéÿ  Frh   )	r–   rR   r   ÚencodeDeltaRunAsZeroes_ÚencodeDeltaRunAsBytes_ÚencodeDeltaRunAsWords_ÚencodeDeltaRunAsLongs_rC   rD   )ÚdeltasrÁ   ri   r�   Ú	numDeltasr#   ÚminValÚmaxVals           r   r¾   z"TupleVariation.compileDeltaValues_Z  s?  € ð" ˆ?Ý‘k”kˆGàˆÝ˜‘K”Kˆ	àð 	Ø˜	’/�/Ø˜sœ�Ø˜A’:�:Ý(×@Ò@ÀÈÈgÑVÔV�C�CØ˜UÐ)Ð)Ò)Ð) cÒ)Ð)Ð)Ð)Ð)Ý(×?Ò?ÀÈÈWÑUÔU�C�CØ˜uÐ-Ð-Ò-Ð-¨Ò-Ð-Ð-Ð-Ð-Ý(×?Ò?ÀÈÈWÑUÔU�C�Cå(×?Ò?ÀÈÈWÑUÔU�Cð ˜	’/�/øõ ! ™[œ[­#¨f©+¬+�FˆFØ˜Ð$Ð$Ò$Ð$˜fÒ$Ð$Ð$Ð$Ð$Ý$×<Ò<¸VÀSÈ'ÑRÔR��Ø˜Ð0Ð0Ò0Ð0 6Ð0Ð0Ò0Ð0¨SÒ0Ð0Ð0Ð0Ð0Ý$×;Ò;Ø˜C °uð <ñ ô ��ð ˜6Ð4Ð4Ò4Ð4 VÐ4Ð4Ò4Ð4¨uÒ4Ð4Ð4Ð4Ð4Ý$×;Ò;Ø˜C °uð <ñ ô ��õ %×;Ò;Ø˜C °uð <ñ ô �ð �iÒÐÐ # yÐ!1ÑÔÐàˆr   c                 ó$  — |}t          | ¦  «        }||k     r#| |         dk    r|dz  }||k     r| |         dk    °||z
  }|dk    r(|                     t          dz  ¦  «         |dz  }|dk    °(|r |                     t          |dz
  z  ¦  «         |S )Nr   rG   r   r   )rR   rp   ÚDELTAS_ARE_ZERO)rÊ   rŽ   rÁ   r�   rË   rœ   s         r   rÆ   z&TupleVariation.encodeDeltaRunAsZeroes_‘  s²   € àˆÝ˜‘K”Kˆ	Ø�IŠoˆo &¨¤+°Ò"2Ð"2Ø�1‰HˆCð �IŠoˆo &¨¤+°Ò"2Ð"2à˜&‘Lˆ	Ø˜2ŠoˆoØ�NŠN�?¨RÑ/Ñ0Ô0Ð0Ø˜‰OˆIð ˜2Šoˆoð ð 	>Ø�NŠN�?¨i¸!©mÑ<Ñ=Ô=Ð=Øˆ
r   c           	      ó  — |}t          | ¦  «        }||k     rD| |         }d|cxk    rdk    sn n,|r|dk    r|dz   |k     r| |dz            dk    rn|dz  }||k     °D||z
  }|dk    rX|                     d¦  «         |                     t          j        d| ||dz   …         ¦  «        ¦  «         |dz  }|dz  }|dk    °X|rH|                     |dz
  ¦  «         |                     t          j        d| ||…         ¦  «        ¦  «         |S )NrÃ   r   r   rG   r   r   Úb)rR   rp   r²   r­   )rÊ   rŽ   rÁ   ri   r�   rË   r#   rœ   s           r   rÇ   z%TupleVariation.encodeDeltaRunAsBytes_Ÿ  sN  € àˆÝ˜‘K”Kˆ	Ø�IŠoˆoØ˜3”KˆEØ˜EÐ(Ð(Ò(Ð( SÒ(Ð(Ð(Ð(Øð ðà˜Q’J�JØ˜!‘G˜iÒ'Ð'Ø˜3 ™7”O qÒ(Ð(àØ�1‰HˆCð' �IŠoˆoð( ˜&‘Lˆ	Ø˜2ŠoˆoØ�NŠN˜2ÑÔÐØ�NŠN�5œ; s¨F°6¸FÀR¹KÐ3GÔ,HÑIÔIÑJÔJÐJØ�b‰LˆFØ˜‰OˆIð	 ˜2Šoˆoð
 ð 	AØ�NŠN˜9 q™=Ñ)Ô)Ð)Ø�NŠN�5œ; s¨F°6¸#°:Ô,>Ñ?Ô?Ñ@Ô@Ð@Øˆ
r   c                 ó  — |}t          | ¦  «        }||k     ra| |         }|r|dk    rnP|r3d|cxk    rdk    r&n n#|dz   |k     rd| |dz            cxk    rdk    rn nnd|cxk    rdk    sn n|dz  }||k     °a||z
  }|dk    r†|                     t          dz  ¦  «         t          j        d	| ||dz   …         ¦  «        }t          j        d
k    r|                     ¦   «          |                     |¦  «         |dz  }|dz  }|dk    °†|rv|                     t          |dz
  z  ¦  «         t          j        d	| ||…         ¦  «        }t          j        d
k    r|                     ¦   «          |                     |¦  «         |S )Nr   rÃ   r   rG   rÄ   rÅ   r   r   Úhr¦   )rR   rp   ÚDELTAS_ARE_WORDSr­   r¯   r°   r±   r²   ©	rÊ   rŽ   rÁ   ri   r�   rË   r#   rœ   Úas	            r   rÈ   z%TupleVariation.encodeDeltaRunAsWords_Â  sÜ  € àˆÝ˜‘K”Kˆ	Ø�IŠoˆoØ˜3”KˆEð ð  ¨¢
 
Øð ðà˜UÐ)Ð)Ò)Ð) cÒ)Ð)Ð)Ð)Ð)Ø˜!‘G˜iÒ'Ð'Ø˜V C¨!¡Gœ_Ð3Ð3Ò3Ð3°Ò3Ð3Ð3Ð3Ð3àà˜eÐ,Ð,Ò,Ð, uÒ,Ð,Ð,Ð,Øà�1‰HˆCð= �IŠoˆoð> ˜&‘Lˆ	Ø˜2ŠoˆoØ�NŠNÕ+¨bÑ0Ñ1Ô1Ð1Ý”˜C ¨°¸"±Ð(<Ô!=Ñ>Ô>ˆAÝŒ} Ò%Ð%Ø—
’
‘”�Ø�NŠN˜1ÑÔÐØ�b‰LˆFØ˜‰OˆIð ˜2Šoˆoð ð 	Ø�NŠNÕ+¨y¸1©}Ñ=Ñ>Ô>Ð>Ý”˜C ¨¨s¨
Ô!3Ñ4Ô4ˆAÝŒ} Ò%Ð%Ø—
’
‘”�Ø�NŠN˜1ÑÔÐØˆ
r   c                 ó’  — |}t          | ¦  «        }||k     r&| |         }|rd|cxk    rdk    rn nn|dz  }||k     °&||z
  }|dk    r†|                     t          dz  ¦  «         t          j        d| ||dz   …         ¦  «        }t          j        dk    r|                     ¦   «          |                     |¦  «         |dz  }|dz  }|dk    °†|rv|                     t          |dz
  z  ¦  «         t          j        d| ||…         ¦  «        }t          j        dk    r|                     ¦   «          |                     |¦  «         |S )NrÄ   rÅ   rG   r   r   r0   r¦   )rR   rp   ÚDELTAS_ARE_LONGSr­   r¯   r°   r±   r²   rÕ   s	            r   rÉ   z%TupleVariation.encodeDeltaRunAsLongs_ö  si  € àˆÝ˜‘K”Kˆ	Ø�IŠoˆoØ˜3”KˆEØð  ¨%Ð 8Ð 8Ò 8Ð 8°5Ò 8Ð 8Ð 8Ð 8Ð 8ØØ�1‰HˆCð	 �IŠoˆoð
 ˜&‘Lˆ	Ø˜2ŠoˆoØ�NŠNÕ+¨bÑ0Ñ1Ô1Ð1Ý”˜C ¨°¸"±Ð(<Ô!=Ñ>Ô>ˆAÝŒ} Ò%Ð%Ø—
’
‘”�Ø�NŠN˜1ÑÔÐØ�b‰LˆFØ˜‰OˆIð ˜2Šoˆoð ð 	Ø�NŠNÕ+¨y¸1©}Ñ=Ñ>Ô>Ð>Ý”˜C ¨¨s¨
Ô!3Ñ4Ô4ˆAÝŒ} Ò%Ð%Ø—
’
‘”�Ø�NŠN˜1ÑÔÐØˆ
r   r   c                 ón  — g }|}| �t          |¦  «        | k     �r�n|t          |¦  «        k     �rl||         }|dz  }|t          z  dz   }|t          z  t          k    r|                     dg|z  ¦  «         nú|t          z  t
          k    rt          j        d¦  «        }|dz  }nC|t          z  t          k    rt          j        d¦  «        }|dz  }nt          j        d¦  «        }|}|                     ||||z   …         ¦  «         t          j
        d	k    r|                     ¦   «          t          |¦  «        |k    sJ t          |¦  «        |f¦   «         ‚||z  }|                     |¦  «         | �t          |¦  «        | k     �°Wn|t          |¦  «        k     �°l| �t          |¦  «        | k    sJ ‚||fS )
z>(numDeltas, data, offset) --> ([delta, delta, ...], newOffset)NrG   r   r0   é   rÓ   rE   rÑ   r¦   )rR   ÚDELTA_RUN_COUNT_MASKÚDELTAS_SIZE_MASKrÏ   r²   rØ   r­   rÔ   r®   r¯   r°   r±   )	rË   r�   rŽ   rƒ   r�   rµ   ÚnumDeltasInRunrÊ   Ú
deltasSizes	            r   ÚdecompileDeltas_zTupleVariation.decompileDeltas_  sÉ  € ð ˆØˆØ)2Ð)>�c�&‰kŒk˜IÒ%Ñ%Ð%ÀCÍ#ÈdÉ)Ì)ÂOÁOØ˜Sœ	ˆIØ�1‰HˆCØ'Õ*>Ñ>À!ÑCˆNØÕ,Ñ,µÒ@Ð@Ø—’˜q˜c NÑ2Ñ3Ô3Ð3Ð3àÕ 0Ñ0Õ5EÒEÐEÝ"œ[¨Ñ-Ô-�FØ!/°!Ñ!3�J�JØÕ"2Ñ2Õ7GÒGÐGÝ"œ[¨Ñ-Ô-�FØ!/°!Ñ!3�J�Jå"œ[¨Ñ-Ô-�FØ!/�JØ× Ò   c¨C°*Ñ,<Ð&<Ô!=Ñ>Ô>Ð>Ý”= EÒ)Ð)Ø—O’OÑ%Ô%Ð%Ý˜6‘{”{ nÒ4Ð4Ð4µs¸6±{´{ÀNÐ6SÑ4Ô4Ð4Ø�zÑ!�Ø—’˜fÑ%Ô%Ð%ð+ *3Ð)>�c�&‰kŒk˜IÒ%Ñ%Ð%ÀCÍ#ÈdÉ)Ì)ÂOÁOð, Ð ¥C¨¡K¤K°9Ò$<Ð$<Ð$<Ð$<Ø˜ˆ}Ðr   c                 ób   — d}| t           z  dk    r||dz  z  }| t          z  dk    r||dz  z  }|S )NrÚ   r   rE   )ro   rr   )r}   Ú	axisCountÚsizes      r   ÚgetTupleSize_zTupleVariation.getTupleSize_.  sJ   € àˆØÕ'Ñ'¨AÒ-Ð-Ø�I ‘MÑ!ˆDØÕ'Ñ'¨AÒ-Ð-Ø�I ‘MÑ!ˆDØˆr   c                 ó   — t          d„ | j        D ¦   «         d¦  «        }|€dS t          |¦  «        t          t          fv rdS t          |¦  «        t
          u rt          |¦  «        dk    rdS t          d|z  ¦  «        ‚)zmReturn 2 if coordinates are (x, y) as in gvar, 1 if single values
        as in cvar, or 0 if empty.
        c              3   ó   K  — | ]}|®|V — Œ	d S r   r    r8   s     r   r:   z/TupleVariation.getCoordWidth.<locals>.<genexpr>;  s"   è è € ÐHÐH ¸!¸-˜1¸-¸-¸-¸-ÐHÐHr   Nr   rG   rE   zSinvalid type of delta; expected (int or float) number, or Tuple[number, number]: %r)Únextr   rQ   rS   Úfloatr>   rR   Ú	TypeError)r   Ú
firstDeltas     r   r½   zTupleVariation.getCoordWidth7  s“   € õ ÐHÐH dÔ&6ÐHÑHÔHÈ$ÑOÔOˆ
ØÐØ�1Ý�
ÑÔ¥¥U˜|Ð+Ð+Ø�1Ý�
ÑÔ�uÐ$Ð$­¨Z©¬¸AÒ)=Ð)=Ø�1Ýð(Ø*4ñ5ñ
ô 
ð 	
r   c                 ót   ‡‡— ‰dk    rd S |                       ¦   «         Šˆˆfd„| j        D ¦   «         | _        d S )Ng      ð?c                 óZ   •— g | ]'}|€d n ‰dk    r|‰z  n|d         ‰z  |d         ‰z  f‘Œ(S ©NrG   r   r    )r!   ÚdÚ
coordWidthÚscalars     €€r   r$   z.TupleVariation.scaleDeltas.<locals>.<listcomp>K  s\   ø€ ð 
ð 
ð 
ð ð �9ð �à#-°¢? ?�Q˜‘Z�Z¸¸1¼À¹ÈÈ!ÌÈvÉÐ8Vð	
ð 
ð 
r   ©r½   r   )r   rï   rî   s    `@r   ÚscaleDeltaszTupleVariation.scaleDeltasG  s^   øø€ Ø�SŠ=ˆ=ØˆFØ×'Ò'Ñ)Ô)ˆ
ð
ð 
ð 
ð 
ð 
ð Ô%ð
ñ 
ô 
ˆÔÐÐr   c                 ó`   ‡— |                       ¦   «         Šˆfd„| j        D ¦   «         | _        d S )Nc                 ó–   •— g | ]E}|€d n>‰dk    rt          |¦  «        n)t          |d         ¦  «        t          |d         ¦  «        f‘ŒFS rì   )r   )r!   rí   rî   s     €r   r$   z.TupleVariation.roundDeltas.<locals>.<listcomp>V  se   ø€ ð 
ð 
ð 
ð ð �9ð �à#-°¢? ?•W˜Q‘Z”Z�Z½ÀÀ1Ä¹¼ÍÐPQÐRSÔPTÉÌÐ8Vð	
ð 
ð 
r   rð   )r   rî   s    @r   ÚroundDeltaszTupleVariation.roundDeltasT  sJ   ø€ Ø×'Ò'Ñ)Ô)ˆ
ð
ð 
ð 
ð 
ð Ô%ð
ñ 
ô 
ˆÔÐÐr   c                 óT  — ddl m} |                      ¦   «         dk    rt          d¦  «        ‚d | j        v rqt          | j        ¦  «        t          |¦  «        k    r3t          dt          | j        ¦  «        t          |¦  «        fz  ¦  «        ‚ || j        ||¦  «        | _        d S d S )Nr   )Ú	iup_deltarG   z3Only 'gvar' TupleVariation can have inferred deltasz(Expected len(origCoords) == %d; found %d)ÚfontTools.varLib.iuprö   r½   rè   r   rR   Ú
ValueError)r   Ú
origCoordsÚendPtsrö   s       r   ÚcalcInferredDeltasz!TupleVariation.calcInferredDeltas_  sÀ   € Ø2Ð2Ð2Ð2Ð2Ð2à×ÒÑÔ 1Ò$Ð$ÝÐQÑRÔRÐRØ�4Ô#Ð#Ð#Ý�4Ô#Ñ$Ô$­¨J©¬Ò7Ð7Ý Ø>Ý˜4Ô+Ñ,Ô,­c°*©o¬oÐ>ñ?ñô ð ð  )˜y¨Ô)9¸:ÀvÑNÔNˆDÔÐÐð $Ð#r   ç      à?Fc                 ó  — ddl m} |rt          j        dt          ¦  «         d | j        v rd S  || j        |||¬¦  «        }d |v r½t          | j        |¦  «        }t          | j         	                    ¦   «         ¦  «        }|  
                    |¦  «        \  }	}
t          |	¦  «        t          |
¦  «        z   }| 
                    |¦  «        \  }	}
t          |	¦  «        t          |
¦  «        z   }||k     r|j        | _        d S d S d S )Nr   )Úiup_delta_optimizezMThe isComposite argument is deprecated and may be removed in a future version)Ú	tolerance)r÷   rþ   ÚwarningsÚwarnÚDeprecationWarningr   r   r   r(   rd   r   rR   )r   rù   rú   rÿ   ÚisCompositerþ   ÚdeltaOptÚvarOptrY   rz   r{   ÚunoptimizedLengthÚoptimizedLengths                r   ÚoptimizezTupleVariation.optimizel  s-  € Ø;Ð;Ð;Ð;Ð;Ð;àð 	ÝŒMØ_Ý"ñô ð ð
 �4Ô#Ð#Ð#ØˆFà%Ð%ØÔ˜j¨&¸Ið
ñ 
ô 
ˆð �8ÐÐå# D¤I¨xÑ8Ô8ˆFõ ˜dœiŸnšnÑ.Ô.Ñ/Ô/ˆHØ!%§¢¨hÑ!7Ô!7ÑˆI�wÝ # I¡¤µ°W±´Ñ =ÐØ!'§¢°Ñ!9Ô!9ÑˆI�wÝ! )™nœn­s°7©|¬|Ñ;ˆOàÐ!2Ò2Ð2Ø#)Ô#5�Ô Ð Ð ð Ðð 3Ð2r   c                 ó0   — |                       |¦  «         | S r   )rñ   )r   rï   s     r   Ú__imul__zTupleVariation.__imul__‰  s   € Ø×Ò˜Ñ Ô Ð Øˆr   c                 óL  — t          |t          ¦  «        st          S | j        }t	          |¦  «        }|j        }t	          |¦  «        |k    rt          d¦  «        ‚|                      ¦   «         dk    rot          t          |¦  «        |¦  «        D ]P\  }}||         }	 |d         |d         z   |d         |d         z   f||<   Œ4# t          $ r t          d¦  «        ‚w xY wnAt          t          |¦  «        |¦  «        D ]#\  }}||         }|�|�	||z   ||<   Œ|€|�|||<   Œ$| S )Nz7cannot sum TupleVariation deltas with different lengthsrE   r   rG   z+cannot sum gvar deltas with inferred points)
Ú
isinstancer   ÚNotImplementedr   rR   rø   r½   Úzipr¬   rè   )r   r,   Údeltas1ÚlengthÚdeltas2r0   Úd2Úd1s           r   Ú__iadd__zTupleVariation.__iadd__�  s\  € Ý˜%¥Ñ0Ô0ð 	"Ý!Ð!ØÔ"ˆÝ�W‘”ˆØÔ#ˆÝˆw‰<Œ<˜6Ò!Ð!ÝÐVÑWÔWÐWð ×ÒÑÔ 1Ò$Ð$Ý�U 6™]œ]¨GÑ4Ô4ð Tð T‘��2Ø˜Q”Z�ðTØ"$ Q¤%¨"¨Q¬%¡-°°A´¸¸A¼±Ð!?�G˜A‘J�JøÝ ð Tð Tð TÝ$Ð%RÑSÔSÐSðTøøøð	Tõ �U 6™]œ]¨GÑ4Ô4ð $ð $‘��2Ø˜Q”Z�Ø�> b nØ!# b¡�G˜A‘J�JØ�Z B NØ!#�G˜A‘Jøàˆs   Â%CÃC©Tr   r¨   )rü   F) Ú__name__Ú
__module__Ú__qualname__r   r*   r-   r5   r<   r`   rg   r   rn   rq   Ústaticmethodr�   rm   r»   rt   r¾   rÆ   rÇ   rÈ   rÉ   rß   rã   r½   rñ   rô   rû   r  r
  r  r    r   r   r   r   '   s‹  € € € € € ð-ð -ð -ðCð Cð CðQð Qð Qð&ð &ð &ð<ð <ð <ð'ð 'ð 'ðRVð Vð Vð. ,.¸ð&,ØOSð&,ð &,ð &,ð &,ð &,ðP	 ð 	 ð 	 ð/ð /ð /ð& ðð ñ „\ðð ð>ð >ñ „\ð>ð@ ð0ð 0ñ „\ð0ðdð ð ð ð& ð4À$ð 4ð 4ð 4ð 4ñ „\ð4ðl ðð ñ „\ðð ð ð  ð  ñ „\ð ðD ð1ð 1ð 1ñ „\ð1ðf ðð ð ñ „\ðð2 ðð ð ñ „\ðð: ðð ñ „\ðð
ð 
ð 
ð 
ð 
ð 
ð	
ð 	
ð 	
ðOð Oð Oð6ð 6ð 6ð 6ð:ð ð ðð ð ð ð r   r   c                 ó–   — g }t          |¦  «        D ]6}t                               | ||¦  «        \  }}|                     |¦  «         Œ7|S r   )r¬   r   r�   rp   )rY   ÚsharedTupleCountr�   rŽ   rƒ   Ú_Úts          r   ÚdecompileSharedTuplesr  ¯  sT   € Ø€FÝÐ#Ñ$Ô$ð ð ˆÝ"×2Ò2°8¸TÀ6ÑJÔJ‰	ˆˆ6Ø�Š�aÑÔÐÐØ€Mr   rG   c                 óÔ   — t          ¦   «         }|D ]'}|                     | ¦  «        }||xx         dz  cc<   Œ(t          |                     |¦  «        d„ ¬¦  «        }d„ |D ¦   «         S )NrG   c                 ó$   — | d          | d         fS rì   r    )Úitems    r   ú<lambda>z%compileSharedTuples.<locals>.<lambda>Â  s   € ˜4 œ7˜( D¨¤GÐ,€ r   ©Úkeyc                 ó6   — g | ]}|d          d k    ¯|d         ‘ŒS )rG   r   r    r8   s     r   r$   z'compileSharedTuples.<locals>.<listcomp>Ä  s%   € Ð3Ð3Ð3�Q¨!¨A¬$°ª(¨(ˆAˆaŒD¨(¨(¨(r   )r	   rn   r(   Úmost_common)rY   Ú
variationsÚMAX_NUM_SHARED_COORDSÚ
coordCountÚvarr@   ÚsharedCoordss          r   ÚcompileSharedTuplesr,  ·  s’   € õ ‘”€JØð ð ˆØ× Ò  Ñ*Ô*ˆØ�5ÐÐÔ˜QÑÐÐÑÐõ Ø×ÒÐ4Ñ5Ô5Ø,Ð,ðñ ô €Lð 4Ð3˜,Ð3Ñ3Ô3Ð3r   Trh   c                ó’  ‡‡‡— ~g }g }d Št          t          ¦  «        }| D ]S}	|	                     ¦   «         }
|
€Œ||
xx         dz  cc<   |                     |	¦  «         |                     |
¦  «         ŒT|} ~| sdS t	          | d         j        ¦  «        Št          ˆfd„| D ¦   «         ¦  «        s
J d¦   «         ‚d„ |D ¦   «         Št	          | ¦  «        }g }g }|rSˆfd„}t          |                     ¦   «         |¬¦  «        d         Š|                     ‰‰         ¦  «         |t          z  }ˆˆfd	„|D ¦   «         }t          | |¦  «        D ]K\  }	}|	                     ||||¬
¦  «        \  }}|                     |¦  «         |                     |¦  «         ŒLd                     |¦  «        }d                     |¦  «        }|||fS )NrG   )r   r   r   r   c              3   óH   •K  — | ]}t          |j        ¦  «        ‰k    V — Œd S r   )rR   r   )r!   ÚvÚns     €r   r:   z-compileTupleVariationStore.<locals>.<genexpr>ç  sC   øè è € ð ð Ø$%�ˆAŒMÑÔ˜aÒðð ð ð ð ð r   z#Variation sets have different sizesc                 óD   — i | ]}|t                                |¦  «        “ŒS r    )r   rm   )r!   ÚpointSets     r   ú
<dictcomp>z.compileTupleVariationStore.<locals>.<dictcomp>ë  s5   € ð ð ð Ø=Eˆ•.×.Ò.¨xÑ8Ô8ðð ð r   c                 óZ   •— | d         }| d         }t          ‰|         ¦  «        |dz
  z  S )Nr   rG   )rR   )Úpnr2  ÚcountÚcompiledPointss      €r   r$  z'compileTupleVariationStore.<locals>.keyõ  s1   ø€ Ø˜!”uˆHØ�q”EˆEÝ�~ hÔ/Ñ0Ô0°E¸A±IÑ>Ð>r   r#  c                 ó0   •— g | ]}|‰k    r‰|         nd ‘ŒS )r   r    )r!   r˜   r7  ÚsharedPointss     €€r   r$   z.compileTupleVariationStore.<locals>.<listcomp>   s=   ø€ ð ð ð àð #)¨LÒ"8Ð"8ˆ�vÔÐ¸cðð ð r   )ry   ri   r   )r
   rS   r5   rp   rR   r   ÚallrD   r)   ÚTUPLES_SHARE_POINT_NUMBERSr  r   r'   )r'  Ú
pointCountrY   ÚsharedTupleIndicesÚuseSharedPointsri   ÚnewVariationsÚ
pointDatasÚpointSetCountr/  r˜   ÚtupleVariationCountÚtuplesr�   r$  r1   Ú	thisTupleÚthisDatar7  r0  r9  s                     @@@r   ÚcompileTupleVariationStorerF  Ç  su  øøø€ ð 	Ø€MØ€Jà€Lõ  ¥Ñ$Ô$€MØð "ð "ˆØ—’Ñ"Ô"ˆØˆ>ØØ�fÐÐÔ Ñ"ÐÐÑØ×Ò˜QÑÔÐØ×Ò˜&Ñ!Ô!Ð!Ð!Ø€JØàð Øˆ}åˆJ�qŒMÔ%Ñ&Ô&€AÝð ð ð ð Ø)3ðñ ô ñ ô ð -ð -à,ñ-ô -ð -ðð ØIVðñ ô €Nõ ˜j™/œ/ÐØ€FØ€Dàð 
:ð	?ð 	?ð 	?ð 	?ð 	?õ
 ˜=×.Ò.Ñ0Ô0°cÐ:Ñ:Ô:¸1Ô=ˆà�Š�N <Ô0Ñ1Ô1Ð1ØÕ9Ñ9Ððð ð ð ð à ðñ ô €Jõ
 �J 
Ñ+Ô+ð ð ‰ˆˆ1ØŸišiØÐ(°AÀLð (ñ 
ô 
Ñˆ	�8ð 	�Š�iÑ Ô Ð Ø�Š�HÑÔÐÐà�XŠX�fÑÔ€FØ�8Š8�D‰>Œ>€DØ ¨Ð,Ð,r   c                 óÒ  — t          |¦  «        }g }	|t          z  dk    r!t                               |||| ¦  «        \  }
}ng }
t	          |t
          z  ¦  «        D ]Œ}t          j        d|||dz   …         ¦  «        \  }}t                               ||¦  «        }||||z   …         }||||z   …         }|	 	                    t          |||
| |||¦  «        ¦  «         ||z  }||z  }Œ�|	S )Nr   rk   rÚ   )rR   r;  r   r»   r¬   ÚTUPLE_COUNT_MASKrv   rŒ   rã   rp   ÚdecompileTupleVariation_)r³   rY   rB  r<  ÚsharedTuplesr�   r�   ÚdataPosÚnumAxesrƒ   r9  r  ÚdataSizer}   Ú	tupleSizerz   ÚpointDeltaDatas                    r   ÚdecompileTupleVariationStorerP    s"  € õ �(‰mŒm€GØ€FØÕ8Ñ8¸QÒ>Ð>Ý .× ?Ò ?Ø˜˜g xñ!
ô !
Ñˆ�g�gð ˆÝÐ&Õ)9Ñ9Ñ:Ô:ð ð ˆÝ œ-¨¨t°C¸#À¹'°MÔ/BÑCÔC‰ˆ�%Ý"×0Ò0°¸Ñ@Ô@ˆ	Ø˜˜s Y™Ð.Ô/ˆ	Ø˜g¨°(Ñ(:Ð:Ô;ˆØ�ŠÝ$ØØØØØØØñô ñ
	
ô 
	
ð 
	
ð 	ˆyÑˆØ�8ÑˆˆØ€Mr   c                 ó\  — |dv s
J |¦   «         ‚t          j        d|dd…         ¦  «        d         }d}|t          z  dk    r||t          z           }	nt                               |||¦  «        \  }	}|t          z  dk    r?t                               |||¦  «        \  }
}t                               |||¦  «        \  }}nt          |	¦  «        \  }
}i }|D ]$}|
|         |	|         ||         f}|dk    r|||<   Œ%d}|t          z  dk    r!t           	                    | |||¦  «        \  }}n|}d g| z  }|dk    rXt           
                    t          |¦  «        ||¦  «        \  }}t          ||¦  «        D ]\  }}d|cxk    r| k     rn Œ|||<   Œn�|dk    r‡t           
                    t          |¦  «        ||¦  «        \  }}t           
                    t          |¦  «        ||¦  «        \  }}t          |||¦  «        D ]\  }}}d|cxk    r| k     r
n Œ||f||<   Œt	          ||¦  «        S )	Nr¡   z>HrE   rÚ   r   r†   r¢   r£   )rv   rŒ   ro   ÚTUPLE_INDEX_MASKr   r�   rr   ÚinferRegion_rs   r»   rß   rR   r  )r<  rJ  r9  r³   rY   r�   rz   r}   r�   ÚpeakÚstartÚendr   rB   Úregionr˜   rÊ   Ú
deltas_cvtr1   rF   Údeltas_xÚdeltas_yrI   rJ   s                           r   rI  rI  9  s”  € ð Ð'Ð'Ð'Ð'¨Ñ'Ô'Ð'ÝŒM˜$  Q q S¤	Ñ*Ô*¨1Ô-€EØ
€CØÕ#Ñ#¨Ò)Ð)Ø˜EÕ$4Ñ4Ô5ˆˆå"×2Ò2°8¸TÀ3ÑGÔG‰	ˆˆcØÕ#Ñ#¨Ò)Ð)Ý#×3Ò3°H¸dÀCÑHÔH‰
ˆˆsÝ!×1Ò1°(¸DÀ#ÑFÔF‰ˆˆSˆSå! $Ñ'Ô'‰
ˆˆsØ€DØð  ð  ˆØ�t”˜d 4œj¨#¨d¬)Ð3ˆØ�_Ò$Ð$ØˆD�‰JøØ
€CØÕ%Ñ%¨!Ò+Ð+Ý$×5Ò5Ø˜	 3¨ñ
ô 
‰ˆ��ð ˆàˆV�jÑ €Fà�6ÒÐÝ(×9Ò9½#¸f¹+¼+ÀyÐRUÑVÔV‰ˆ
�CÝ˜F JÑ/Ô/ð 	"ð 	"‰HˆAˆuØ�AÐ"Ð"Ò"Ð"˜
Ò"Ð"Ð"Ð"Ð"Ø!��q‘	øð	"ð 
�VÒ	Ð	Ý&×7Ò7½¸F¹¼ÀYÐPSÑTÔT‰ˆ�#Ý&×7Ò7½¸F¹¼ÀYÐPSÑTÔT‰ˆ�#Ý˜6 8¨XÑ6Ô6ð 	#ð 	#‰GˆAˆq�!Ø�AÐ"Ð"Ò"Ð"˜
Ò"Ð"Ð"Ð"Ð"Ø ˜F��q‘	øå˜$ Ñ'Ô'Ð'r   c                 ó’   — i i }}|                       ¦   «         D ]+\  }}t          |d¦  «        ||<   t          |d¦  «        ||<   Œ,||fS )aî  Infer start and end for a (non-intermediate) region

    This helper function computes the applicability region for
    variation tuples whose INTERMEDIATE_REGION flag is not set in the
    TupleVariationHeader structure.  Variation tuples apply only to
    certain regions of the variation space; outside that region, the
    tuple has no effect.  To make the binary encoding more compact,
    TupleVariationHeaders can omit the intermediateStartTuple and
    intermediateEndTuple fields.
    r?   )r)   rC   rD   )rT  rU  rV  rB   r#   s        r   rS  rS  g  sV   € ð �Rˆ3€EØ—z’z‘|”|ð $ð $‰ˆˆeÝ˜% ‘o”oˆˆd‰Ý˜˜s‘O”OˆˆD‰	ˆ	Ø�3ˆ<Ðr   r  ),ÚfontTools.misc.fixedToolsr   r‹   r   r‚   r   rP   r   rb   r   ÚfontTools.misc.textToolsr   r­   Úcollectionsr	   r
   Úloggingrv   r¯   r   ro   rr   rs   rÏ   rÔ   rØ   rÜ   rÛ   r—   r«   r;  rH  rR  Ú	getLoggerr  rT   Úobjectr   r  r,  rF  rP  rI  rS  r    r   r   ú<module>rb     sÎ  ððð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø €€€Ø €€€Ø 
€
€
€
Ø €€€ð
 Ð ØÐ ØÐ à€ØÐ ØÐ ØÐ ØÐ àÐ ØÐ à#Ð ØÐ ØÐ à€gÔ˜Ñ!Ô!€ðE
ð E
ð E
ð E
ð E
�Vñ E
ô E
ð E
ðPð ð ð 1AÀ1Ñ0Dð4ð 4ð 4ð 4ð* ðH-ð ðH-ð H-ð H-ð H-ð H-ðV$ð $ð $ðN+(ð +(ð +(ð\ð ð ð ð r   