§
    ¢”j\M  ã                   ó|  — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZmZmZ dd	lmZmZmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlZ ddl!Z"ddl#Z#ddl$m%Z%  e#j&        d¦  «        Z'i Z(g d¢Z) e* e+e)dd…         e)dd…         ¦  «        d¬¦  «        D ]\  Z,\  Z-Z.e-e.z   dz  Z/e,e(e/<   Œd„ Z0d„ Z1d„ Z2 ed¦  «        dd„¦   «         Z3d d„Z4e5dk    rXddl6Z6 e7e6j8        ¦  «        dk    r e6j9         e4¦   «         ¦  «         ddl:Z: e6j9         e:j;        ¦   «         j<        ¦  «         dS dS )!aÑ  
Instantiate a variation font.  Run, eg:

.. code-block:: sh

    $ fonttools varLib.mutator ./NotoSansArabic-VF.ttf wght=140 wdth=85

.. warning::
   ``fontTools.varLib.mutator`` is deprecated in favor of :mod:`fontTools.varLib.instancer`
   which provides equivalent full instancing and also supports partial instancing.
   Please migrate CLI usage to ``fonttools varLib.instancer`` and API usage to
   :func:`fontTools.varLib.instancer.instantiateVariableFont`.
é    )ÚfloatToFixedToFloatÚfloatToFixed)ÚdeprecateFunction)ÚotRound)Ú	BoundsPen)ÚTTFontÚnewTable)Ú	ttProgram)ÚGlyphCoordinatesÚflagOverlapSimpleÚOVERLAP_COMPOUND)ÚsupportScalarÚnormalizeLocationÚpiecewiseLinearMap)ÚMutatorMerger)ÚVarStoreInstancer)ÚMVAR_ENTRIES)Ú	iup_deltaN)ÚBytesIOzfontTools.varlib.mutator)	g      I@g     @O@g     ÀR@g     àU@g      Y@g      \@g     @_@g     Àb@g      i@éÿÿÿÿé   )Ústarté   c                 ó  — d}d}| j         D ]ø}|j        }t          |d¦  «        r|j        nd}|j                             ¦   «         D ]¼\  }}||v rJt          |t          ¦  «        r5 |||dd …         ¦  «        }	t          |d         |	z   ¦  «        |j        |<   ŒS||v ret          |d         t          ¦  «        rJ	 d}	t          |¦  «        D ]7\  }
}|	t           |||dd …         ¦  «        ¦  «        z  }	|d         |	z   ||
<   Œ8Œ½Œùd S )N)Ú
BlueValuesÚ
OtherBluesÚFamilyBluesÚFamilyOtherBluesÚ	StemSnapHÚ	StemSnapV)Ú	BlueScaleÚ	BlueShiftÚBlueFuzzÚStdHWÚStdVWÚvsindexr   r   )
ÚFDArrayÚPrivateÚhasattrr&   ÚrawDictÚitemsÚ
isinstanceÚlistr   Ú	enumerate)ÚtopDictÚinterpolateFromDeltasÚpd_blend_listsÚpd_blend_valuesÚfontDictÚpdr&   ÚkeyÚvalueÚdeltaÚiÚval_lists               úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/varLib/mutator.pyÚinterpolate_cff2_PrivateDictr;   3   sI  € ð€Nð O€OØ”Oð 3ð 3ˆØÔˆÝ!(¨¨YÑ!7Ô!7Ð?�"”*�*¸aˆØœ*×*Ò*Ñ,Ô,ð 	3ð 	3‰JˆC�Ø�Ð&Ð&­J°u½dÑ,CÔ,CÐ&Ø-Ð-¨g°u¸Q¸R¸R´yÑAÔA�Ý")¨%°¬(°UÑ*:Ñ";Ô";�”
˜3‘�Ø˜Ð'Ð'­Z¸¸a¼Å$Ñ-GÔ-GÐ'ðEð
 �Ý#,¨UÑ#3Ô#3ð 3ð 3‘K�A�xØ�WÐ%:Ð%:¸7ÀHÈQÈRÈRÄLÑ%QÔ%QÑRÔRÑR�EØ'¨œ{¨UÑ2�E˜!‘H�Høð	3ð3ð 3ó    c                 óÞ  — | j         }|D �]a}||         }g }d}d}t          |j        ¦  «        D �]\  }	}
|
dk    rA|j        |	dz
           }|dk    r%|                     |j        ||	dz
  …         ¦  «         |	dz   }ŒM|
dk    r¸|                     |¦  «        }d|z   }|j        |	dz
           }|	||z  dz   z
  }||z   x}}||k     rO||z   }|j        ||…         } |||¦  «        }|j        |xx         t          |¦  «        z  cc<   |}|dz  }||k     °O|                     |j        ||…         ¦  «         |	dz   }�Œ|dk    r)|                     |j        |d …         ¦  «         ||_        �Œcd S )Nr   r&   r   Úblend)ÚCharStringsr.   ÚprogramÚextendÚgetNumRegionsr   )r/   r0   Ú
glyphOrderÚcharstringsÚgnameÚ
charstringÚnew_programr&   Úlast_ir8   ÚtokenÚnum_regionsÚ
numMastersÚnum_argsÚargiÚend_argsÚtupleiÚnext_tiÚdeltasr7   s                       r:   Úinterpolate_cff2_charstringsrR   P   sß  € ØÔ%€KØð %-ñ %-ˆð ! Ô'ˆ
ØˆØˆØˆÝ! *Ô"4Ñ5Ô5ð 	ñ 	‰HˆAˆuØ˜	Ò!Ð!Ø$Ô,¨Q°©UÔ3�Ø˜Q’;�;Ø×&Ò& zÔ'9¸&À1ÀqÁ5¸.Ô'IÑJÔJÐJØ˜Q™��Ø˜'Ò!Ð!Ø(×6Ò6°wÑ?Ô?�Ø ™_�
Ø%Ô-¨a°!©eÔ4�ð ˜H zÑ1°AÑ5Ñ6�Ø$(¨8¡OÐ3�˜6Ø˜X’o�oØ$ {Ñ2�GØ'Ô/°°w°Ô?�FØ1Ð1°'¸6ÑBÔB�EØÔ& tÐ,Ð,Ô,µ¸±´Ñ>Ð,Ð,Ñ,Ø$�FØ˜A‘I�Dð ˜X’o�oð ×"Ò" :Ô#5°f¸X°oÔ#FÑGÔGÐGØ˜Q™�ùØ�QŠ;ˆ;Ø×Ò˜zÔ1°&°'°'Ô:Ñ;Ô;Ð;Ø!,ˆJÔùðK%-ð %-r<   c                 ó¤  — |j         }t          |¦  «        }| d         }d}d| v r0| d         j        }| d         }t          |j        |j        |¦  «        }	t          |¦  «        D ]ë\  }
}t          ||         ¦  «        }|r2|j        r|j        j	        |         }n|
}t          |	|         ¦  «        }nd}|                     ¦   «          ||         }|                     |¦  «         |j        €d}n%t          |j        d         ¦  «        }|d         |z
  }|s|r7|rt          d|d         |z   ¦  «        |d<   |r||d<   t          |¦  «        ||<   ŒìdS )aF  Unlike TrueType glyphs, neither advance width nor bounding box
    info is stored in a CFF2 charstring. The width data exists only in
    the hmtx and HVAR tables. Since LSB data cannot be interpolated
    reliably from the master LSB values in the hmtx table, we traverse
    the charstring to determine the actual bound box.ÚhmtxNÚHVARÚfvarr   r   )r?   r   Útabler   ÚVarStoreÚaxesr.   r-   ÚAdvWidthMapÚmappingr   ÚinitÚdrawÚboundsÚmaxÚtuple)Úvarfontr/   rC   ÚlocrD   Ú	boundsPenrT   Ú
hvar_tablerV   ÚvarStoreInstancerÚgidrE   ÚentryÚ	width_idxÚwidth_deltarF   Ú	lsb_deltaÚlsbs                     r:   Úinterpolate_cff2_metricsrl   z   sŒ  € ð Ô%€KÝ˜*Ñ%Ô%€IØ�6Œ?€DØ€JØ�ÐÐØ˜V”_Ô*ˆ
Ø�vŒˆÝ-¨jÔ.AÀ4Ä9ÈcÑRÔRÐå 
Ñ+Ô+ð 'ð '‰
ˆˆUÝ�T˜%”[Ñ!Ô!ˆàð 	ØÔ%ð  Ø&Ô2Ô:¸5ÔA�	�	à�	Ý!Ð"3°IÔ">Ñ?Ô?ˆKˆKàˆKð 	�ŠÑÔÐØ  Ô'ˆ
Ø�Š˜	Ñ"Ô"Ð"ØÔÐ#àˆIˆIå˜)Ô*¨1Ô-Ñ.Ô.ˆCØ˜aœ 3™ˆIàð 	'˜ð 	'Øð :Ý˜q %¨¤(¨[Ñ"8Ñ9Ô9��a‘Øð Ø��a‘Ý ™,œ,ˆD�‰Køð9'ð 'r<   zduse fontTools.varLib.instancer.instantiateVariableFont instead for either full or partial instancingFTc                 ó¸  ‡A‡B‡C— |sGt          ¦   «         }|                      |¦  «         |                     d¦  «         t          |¦  «        } | d         }d„ |j        D ¦   «         }t          ||¦  «        }d| v r-| d         j        ŠCˆCfd„|                     ¦   «         D ¦   «         }d„ |                     ¦   «         D ¦   «         }t           	                    d|¦  «         d| v �r?t           	                    d	¦  «         | d         }| d
         ŠB| d         j
        }	t          |                      d¦  «        dd¦  «        }
t          |j                             ¦   «         ˆBfd„¬¦  «        }|D ]µ}|j        |         }‰B                     ||	|
¦  «        \  }}d\  }}|D ]l}t#          ||j        ¦  «        }|sŒ|j        }d|v r2|€‰B                     ||	|
¦  «        \  }}t'          |||j        ¦  «        }|t+          |¦  «        |z  z  }Œm‰B                     |||	|
¦  «         Œ¶ndŠBd| v r| d= d| v rÀt           	                    d¦  «         | d         }| d         }i }|j        D ]U}t#          ||j        ¦  «        }|sŒt/          |j        ¦  «        D ]&\  }}|�|                     |d¦  «        ||z  z   ||<   Œ'ŒV|                     ¦   «         D ]"\  }}||xx         t1          |¦  «        z  cc<   Œ#d| v rÀt           	                    d¦  «         |                      ¦   «         }| d         }|j        j        d         }t9          |j        j        |j        |¦  «        }|j        }tA          ||¦  «         | !                    ¦   «          tE          |||¦  «         tG          | |||¦  «         |j$        d= |`d| v rºt           	                    d¦  «         | d         j%        } t9          | j        |j        |¦  «        }!| j&        }"|"D ]n}#|#j'        }$|$tP          vrŒtP          |$         \  }%}&t1          |!|#j)                 ¦  «        }|sŒ@tU          | |%         |&t          | |%         |&¦  «        |z   ¦  «         Œot           	                    d¦  «         dD ]â}%|%| vrŒ| |%         j%        }'t          |'dd¦  «        sŒ&|'j+        }|j,        D ]«}(d})|(j-        j.        D ]T}*|*j/        dk    rA|*j0        }+|j        |+         j1        },|*j2        }-|*j3        }.||,         }/|-|/cxk    r|.k    sn d })nd })|)s nŒU|)rD|(j4        j5        d!k    sJ ‚|(j4        j6        D ]#}#|#j7        |'j8        j9        |#j:                 _7        Œ$ nŒ¬|'`+Œãd"| v rÌ| d"         j%        j5        d#k    r¶t           	                    d$¦  «         | d"         j%        }0t9          |0j        |j        |¦  «        }1tw          | |1¦  «        }2|2 <                    | | gd"d%g¦  «         |0`d&|0_5        |0j=        €	|0`=d!|0_5        |0j>        s*|0j?        s#|0j@        s|0jA        s|0j5        d&k    r|0j=        s| d"= d }3‰BrÝ‰BjB         C                    ¦   «         D ]H}4t‰          |4d'¦  «        r6|4jE         F                    ¦   «         }5t�          d(„ |5D ¦   «         ¦  «        }3|3r nŒI|ry‰B                     ¦   «         D ]d}6‰B|6         }4|4 H                    ¦   «         r!|4jI        d         xjJ        t–          z  c_J        Œ?|4jL        dk    r|4jJ        dxx         tš          z  cc<   Œe|3�r¾t           	                    d)¦  «         g }7d*| v r"| d*         }8|8jE         F                    ¦   «         }7n,t�          d*¦  «        }8tŸ          jP        ¦   «         |8_E        |8| d*<   |7 Q                    d+¦  «         |7 Q                    d,¦  «         t¥          t§          |¦  «        ¦  «        g}9|j        D ]=}:|9 Q                    t¥          t©          ||:j1                 d-¦  «        ¦  «        ¦  «         Œ>|7 Q                    d.d/ U                    |9¦  «        z   ¦  «         |7 Q                    d0¦  «         |8jE         V                    |7¦  «         d1| v rf| d1         };tU          |;d2dt          |;d2d¦  «        z   ¦  «         tU          |;d3t¯          t§          |¦  «        t          |;d3d¦  «        ¦  «        ¦  «         d4| v r÷t           	                    d5¦  «         d6„ |j        D ¦   «         ŠA|jX        D ]6}‰A Y                    |jZ        ¦  «         ‰A Y                    |j[        ¦  «         Œ7d7| v raˆAfd8„| d4         j\        D ¦   «         }<t»          |<¦  «        t»          t½          t§          | d7         j_        ¦  «        ¦  «        ¦  «        k    r| d7= ˆAfd9„| d4         j\        D ¦   «         | d4         j\        dd…<   d:|v r@d;| v r<t1          t¯          dtÁ          |d:         d<¦  «        ¦  «        ¦  «        | d;         _a        d=|v rV|d=         }=t          tÄ                               ¦   «         ¦  «        D ]\  }>}?|=|>k     r|?| d;         _c         nŒd>| d;         _c        d?|v r3d@| v r/t¯          dAtÁ          |d?         dB¦  «        ¦  «        | d@         _d        t           	                    dC¦  «         dDD ]	}@|@| v r| |@= Œ
| S )EaN  Generate a static instance from a variable TTFont and a dictionary
    defining the desired location along the variable font's axes.
    The location values must be specified as user-space coordinates, e.g.:

    .. code-block::

        {'wght': 400, 'wdth': 100}

    By default, a new TTFont object is returned. If ``inplace`` is True, the
    input varfont is modified and reduced to a static font.

    When the overlap parameter is defined as True,
    OVERLAP_SIMPLE and OVERLAP_COMPOUND bits are set to 1.  See
    https://docs.microsoft.com/en-us/typography/opentype/spec/glyf
    r   rV   c                 óB   — i | ]}|j         |j        |j        |j        f“ŒS © )ÚaxisTagÚminValueÚdefaultValueÚmaxValue©Ú.0Úas     r:   ú
<dictcomp>z+instantiateVariableFont.<locals>.<dictcomp>Å   s)   € ÐSÐSÐSÀAˆAŒI˜œ
 A¤N°A´JÐ?ÐSÐSÐSr<   Úavarc                 óD   •— i | ]\  }}|t          |‰|         ¦  «        “ŒS ro   )r   )ru   ÚkÚvÚmapss      €r:   rw   z+instantiateVariableFont.<locals>.<dictcomp>É   s.   ø€ ÐIÐIÐI±T°Q¸ˆqÕ$ Q¨¨Q¬Ñ0Ô0ÐIÐIÐIr<   c                 ó6   — i | ]\  }}|t          |d ¦  «        “ŒS )é   )r   )ru   rz   r{   s      r:   rw   z+instantiateVariableFont.<locals>.<dictcomp>Ë   s)   € Ð
AÐ
AÐ
A©T¨Q°ˆ1Õ! ! RÑ(Ô(Ð
AÐ
AÐ
Ar<   zNormalized location: %sÚgvarzMutating glyf/gvar tablesÚglyfrT   ÚvmtxÚmetricsNc                 ó€   •— ‰|                                ¦   «         r ‰|                               ‰¦  «        j        nd| fS )Nr   )ÚisCompositeÚgetCompositeMaxpValuesÚmaxComponentDepth)Únamer€   s    €r:   ú<lambda>z)instantiateVariableFont.<locals>.<lambda>Ø   sD   ø€ ð ˜D”z×-Ò-Ñ/Ô/ð�D˜”J×5Ò5°dÑ;Ô;ÔMÐMààð€ r<   )r5   )NNÚDSIGÚcvarzMutating cvt/cvar tableszcvt ÚCFF2zMutating CFF2 tablerX   ÚMVARzMutating MVAR tablezMutating FeatureVariations)ÚGSUBÚGPOSÚFeatureVariationsTr   Fi   ÚGDEFi  zMutating GDEF/GPOS/GSUB tablesrŽ   i  r@   c              3   ó@   K  — | ]}|                      d ¦  «        V — ŒdS )ÚGETVARIATIONN)Ú
startswith)ru   Úops     r:   ú	<genexpr>z*instantiateVariableFont.<locals>.<genexpr>i  s.   è è € ÐSÐSÀ˜bŸmšm¨NÑ;Ô;ÐSÐSÐSÐSÐSÐSr<   z1Adding IDEF to fpgm table for GETVARIATION opcodeÚfpgmzPUSHB[000] 145zIDEF[ ]r~   z
NPUSHW[ ] ú zENDF[ ]ÚmaxpÚmaxInstructionDefsÚmaxStackElementsr‡   zPruning name tablec                 ó   — h | ]	}|j         ’Œ
S ro   )Ú
axisNameIDrt   s     r:   ú	<setcomp>z*instantiateVariableFont.<locals>.<setcomp>–  s   € Ð3Ð3Ð3 A�1”<Ð3Ð3Ð3r<   Últagc                 ó\   •— g | ](}|j         ‰v ¯|j        d k    ¯|j        dk    ¯!|j        ‘Œ)S )r   iÿÿ  )ÚnameIDÚ
platformIDÚlangID©ru   ÚnÚexcludes     €r:   ú
<listcomp>z+instantiateVariableFont.<locals>.<listcomp>ž  sJ   ø€ ð &ð &ð &àØ”8˜wÐ&Ð&¨1¬<¸1Ò+<Ð+<ÀÄÈVÒASÐASð ”àASÐASÐASr<   c                 ó<   •— g | ]}|j         d k     s	|j         ‰v¯|‘ŒS )é   )r    r£   s     €r:   r¦   z+instantiateVariableFont.<locals>.<listcomp>¥  s:   ø€ ð $
ð $
ð $
àØŒx˜#Š~ˆ~ ¤°Ð!8Ð!8ð à!8Ð!8Ð!8r<   ÚwghtzOS/2iè  Úwdthé	   ÚslntÚposti¦ÿÿÿéZ   zRemoving variable tables)rx   rŠ   rV   r   rU   rŒ   ÚVVARÚSTAT)er   ÚsaveÚseekr   rY   r   Úsegmentsr+   ÚlogÚinfor‚   ÚgetattrÚgetÚsortedÚ
variationsÚkeysÚ_getCoordinatesAndControlsr   Úcoordinatesr   ÚendPtsr   Ú_setCoordinatesr.   r   ÚgetGlyphOrderÚcffÚtopDictIndexr   rX   Ú
otVarStorer0   r;   ÚdesubroutinizerR   rl   r*   rW   ÚValueRecordÚValueTagr   ÚVarIdxÚsetattrr�   ÚFeatureVariationRecordÚConditionSetÚConditionTableÚFormatÚ	AxisIndexrp   ÚFilterRangeMinValueÚFilterRangeMaxValueÚFeatureTableSubstitutionÚVersionÚSubstitutionRecordÚFeatureÚFeatureListÚFeatureRecordÚFeatureIndexr   ÚmergeTablesÚMarkGlyphSetsDefÚLigCaretListÚMarkAttachClassDefÚGlyphClassDefÚ
AttachListÚglyphsÚvaluesr)   r@   ÚgetAssemblyÚanyr„   Ú
componentsÚflagsr   ÚnumberOfContoursr   r	   r
   ÚProgramÚappendÚstrÚlenr   ÚjoinÚfromAssemblyr_   Ú	instancesÚaddÚsubfamilyNameIDÚpostscriptNameIDÚnamesÚsetÚrangeÚtagsÚminÚusWeightClassÚOS2_WIDTH_CLASS_VALUESÚusWidthClassÚitalicAngle)Dra   ÚlocationÚinplaceÚoverlapÚstreamrV   rY   rb   r   ÚhMetricsÚvMetricsÚ
glyphnamesÚ	glyphnamer¹   r¼   Ú_Ú
origCoordsr½   ÚvarÚscalarr7   ÚgrŠ   ÚcvtrQ   r8   ÚcrC   r‹   r/   ÚvsInstancerr0   Úmvarre   ÚrecordsÚrecÚmvarTagÚtableTagÚitemNamerW   ÚrecordÚappliesÚ	conditionÚaxisIdxrp   ÚMinÚMaxr{   ÚgdefÚ	instancerÚmergerÚaddidefÚglyphÚinstructionsÚ
glyph_nameÚasmr–   Úargsrv   r˜   ÚexcludedUnicodeLangIDsrª   ÚpercentÚ
widthClassÚtagr¥   r€   r|   sD                                                                    @@@r:   ÚinstantiateVariableFontr  ©   sP  øøø€ ð( ð !å‘”ˆØ�Š�VÑÔÐØ�Š�A‰ŒˆÝ˜‘.”.ˆà�6Œ?€DØSÐSÈÌÐSÑSÔS€DÝ
˜H dÑ
+Ô
+€CØ�ÐÐØ�vŒÔ'ˆØIÐIÐIÐI¸S¿YºY¹[¼[ÐIÑIÔIˆà
AÐ
A°S·Y²Y±[´[Ð
AÑ
AÔ
A€Cå‡H‚HÐ&¨Ñ,Ô,Ð,à�ÐÑÝ�ŠÐ,Ñ-Ô-Ð-Ø�vŒˆØ�vŒˆØ˜6”?Ô*ˆÝ˜7Ÿ;š; vÑ.Ô.°	¸4Ñ@Ô@ˆåØŒO× Ò Ñ"Ô"ðð ð ð ð

ñ 

ô 

ˆ
ð $ð 	Mð 	MˆIØœ¨Ô3ˆJØ!×<Ò<Ø˜8 Xñô ‰NˆK˜ð ",ÑˆJ˜Ø!ð @ð @�Ý& s¨C¬HÑ5Ô5�Øð ØØœ�Ø˜5�=�=Ø!Ð)Ø(,×(GÒ(GØ% x°ñ)ô )™˜
 Aõ & e¨Z¸¼ÑBÔB�EØÕ/°Ñ6Ô6¸Ñ?Ñ?��Ø× Ò  ¨K¸À8ÑLÔLÐLÐLð%	Mð( ˆà�ÐÐØ�FˆOà�ÐÐÝ�ŠÐ+Ñ,Ô,Ð,Ø�vŒˆØ�fŒoˆØˆØ”?ð 	>ð 	>ˆCÝ" 3¨¬Ñ1Ô1ˆFØð ØÝ! #¤/Ñ2Ô2ð >ð >‘��1Ø�=Ø &§
¢
¨1¨aÑ 0Ô 0°6¸A±:Ñ =�F˜1‘Iøð>ð Ÿš™œð 	%ð 	%‰HˆAˆuØ�ˆFˆFŒF•g˜e‘n”nÑ$ˆFˆF‰FˆFà�ÐÐÝ�ŠÐ&Ñ'Ô'Ð'Ø×*Ò*Ñ,Ô,ˆ
Ø�vŒˆØ”(Ô'¨Ô*ˆÝ'¨Ô(8Ô(CÀTÄYÐPSÑTÔTˆØ +Ô AÐÝ$ WÐ.CÑDÔDÐDØ×ÒÑÔÐÝ$ WÐ.CÀZÑPÔPÐPÝ  ¨'°:¸sÑCÔCÐCØŒO˜JÐ'ØÐà�ÐÐÝ�ŠÐ&Ñ'Ô'Ð'Ø�vŒÔ$ˆÝ-¨d¬m¸T¼YÈÑLÔLÐØÔ"ˆØð 	ð 	ˆCØ”lˆGØ�lÐ*Ð*ØÝ!-¨gÔ!6ÑˆH�hÝÐ-¨c¬jÔ9Ñ:Ô:ˆEØð ØÝØ˜Ô!ØÝ˜ Ô)¨8Ñ4Ô4°uÑ<ñô ð ð õ ‡H‚HÐ)Ñ*Ô*Ð*Ø"ð $ð $ˆØ˜7Ð"Ð"ØØ˜Ô!Ô'ˆÝ�uÐ1°4Ñ8Ô8ð 	ØØÔ,ˆ
Ø Ô7ð 	ð 	ˆFØˆGØ#Ô0Ô?ð ð �	ØÔ# qÒ(Ð(Ø'Ô1�GØ"œi¨Ô0Ô8�GØ#Ô7�CØ#Ô7�CØ˜Gœ�AØ 1˜O˜OšO˜O¨šO˜O˜O˜OØ"'˜øà#�GØð Ø�Eðð ð ØÔ6Ô>À*ÒLÐLÐLÐLØ!Ô:ÔMð ð �Càœð Ô%Ô3°CÔ4DÔEÔMÐMð �ðð Ð#Ð#à�ÐÐ˜W Vœ_Ô2Ô:¸jÒHÐHÝ�ŠÐ1Ñ2Ô2Ð2Ø�vŒÔ$ˆÝ% d¤m°T´YÀÑDÔDˆ	å˜w¨	Ñ2Ô2ˆØ×Ò˜7 W I°¸Ð/?Ñ@Ô@Ð@ð ˆMØ!ˆŒØÔ Ð(ØÐ%Ø%ˆDŒLð Ôð	 àÔ&ð	 ð Ô!ð	 ð Œð		 ð
 ” 
Ò*Ð*¨tÔ/DÐ*à˜�à€GØð 8Ø”[×'Ò'Ñ)Ô)ð 	ð 	ˆEÝ�u˜iÑ(Ô(ð Ø$œ}×8Ò8Ñ:Ô:�åÐSÐSÀlÐSÑSÔSÑSÔS�Øð Ø�EøØð 	8Ø"Ÿiši™kœkð 8ð 8�
Ø˜ZÔ(�à×$Ò$Ñ&Ô&ð 8ØÔ$ QÔ'Ð-Ô-Õ1AÑAÐ-Ô-Ð-àÔ+¨aÒ/Ð/Ø”K �N�N”NÕ&7Ñ7�N�N‘NøØñ Ý�ŠÐDÑEÔEÐEØˆØ�WÐÐØ˜6”?ˆDØ”,×*Ò*Ñ,Ô,ˆCˆCå˜FÑ#Ô#ˆDÝ$Ô,Ñ.Ô.ˆDŒLØ"ˆG�F‰OØ�
Š
Ð#Ñ$Ô$Ð$Ø�
Š
�9ÑÔÐÝ•C˜‘H”H‘”ˆˆØ”ð 	?ð 	?ˆAØ�KŠK��L¨¨Q¬Y¬¸Ñ<Ô<Ñ=Ô=Ñ>Ô>Ð>Ð>Ø�
Š
�< #§(¢(¨4¡.¤.Ñ0Ñ1Ô1Ð1Ø�
Š
�9ÑÔÐØŒ×!Ò! #Ñ&Ô&Ð&ð �WÐÐØ˜6”?ˆDÝØÐ*¨Aµ¸Ð>RÐTUÑ0VÔ0VÑ,Vñô ð õ ØØ"Ý•C˜‘H”H�g dÐ,>ÀÑBÔBÑCÔCñô ð ð �ÐÐÝ�ŠÐ%Ñ&Ô&Ð&Ø3Ð3¨¬Ð3Ñ3Ô3ˆØ”ð 	,ð 	,ˆAØ�KŠK˜Ô)Ñ*Ô*Ð*Ø�KŠK˜Ô*Ñ+Ô+Ð+Ð+Ø�WÐÐð&ð &ð &ð &à  œÔ.ð&ñ &ô &Ð"õ
 Ð)Ñ*Ô*­cµ%½¸WÀV¼_Ô=QÑ8SÔ8SÑ2TÔ2TÑ.UÔ.UÒUÐUØ˜F�Oð$
ð $
ð $
ð $
à˜V”_Ô*ð$
ñ $
ô $
ˆ�ŒÔ˜a˜a˜aÑ ð �ÐÐ˜f¨Ð/Ð/Ý(/µ°Aµs¸8ÀFÔ;KÈTÑ7RÔ7RÑ0SÔ0SÑ(TÔ(Tˆ�ŒÔ%Ø�ÐÐØ˜ÔˆÝ#)Õ*@×*FÒ*FÑ*HÔ*HÑ#IÔ#Ið 	-ð 	-ÑˆG�ZØ�gŠ~ˆ~Ø/9�˜”Ô,Ø�ð ð ,-ˆG�FŒOÔ(Ø�ÐÐ˜f¨Ð/Ð/Ý&)¨#­s°8¸FÔ3CÀRÑ/HÔ/HÑ&IÔ&Iˆ�ŒÔ#å‡H‚HÐ'Ñ(Ô(Ð(ØOð ð ˆØ�'ˆ>ˆ>Ø˜�øà€Nr<   c                 óô  — ddl m} ddl}|                     dd¬¦  «        }|                     ddd	¬
¦  «         |                     dddd¬¦  «         |                     ddddd¬¦  «         |                     dddd¬¦  «         |                     d¬¦  «        }|                     dddd¬ ¦  «         |                     d!d"dd#¬ ¦  «         |                     d$d%dd&¬¦  «         |                     | ¦  «        }|j        }|j        s(t          j
                             |¦  «        d         d'z   n|j        } ||j        rd(n
|j        rd)nd*¬+¦  «         i }|j        D ]„}		 |	                     d,¦  «        \  }
}t!          |
¦  «        d-k    sJ ‚t#          |¦  «        ||
                     d-¦  «        <   ŒV# t&          t(          f$ r |                     d.|	z  ¦  «         Y Œ�w xY wt,                               d/|¦  «         t,                               d0¦  «         t1          ||j        ¬1¦  «        }t5          ||d2|j        ¬3¦  «         t,                               d4|¦  «         |                     |¦  «         dS )5zInstantiate a variation fontr   )ÚconfigLoggerNzfonttools varLib.mutatorzInstantiate a variable font)ÚdescriptionÚinputz	INPUT.ttfzInput variable TTF file.)ÚmetavarÚhelpÚlocargszAXIS=LOCÚ*z½List of space separated locations. A location consist in the name of a variation axis, followed by '=' and a number. E.g.:  wght=700 wdth=80. The default is the location of the base master.)r$  Únargsr%  z-oz--outputz
OUTPUT.ttfz7Output instance TTF file (default: INPUT-instance.ttf).)r$  Údefaultr%  z--no-recalc-timestampÚrecalc_timestampÚstore_falsez:Don't set the output font's timestamp to the current time.)ÚdestÚactionr%  F)Úrequiredz-vz	--verboseÚ
store_truezRun more verbosely.)r-  r%  z-qz--quietzTurn verbosity off.z--no-overlaprø   z5Don't set OVERLAP_SIMPLE/OVERLAP_COMPOUND glyf flags.z-instance.ttfÚDEBUGÚERRORÚINFO)Úlevelú=é   z$invalid location argument format: %rzLocation: %szLoading variable font)ÚrecalcTimestampT)r÷   rø   zSaving instance font %s)Ú	fontToolsr!  ÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_argsr#  ÚoutputÚosÚpathÚsplitextÚverboseÚquietr&  Úsplitræ   ÚfloatÚljustÚ
ValueErrorÚAssertionErrorÚerrorr´   rµ   r   r*  r  rø   r±   )r  r!  r8  ÚparserÚlogging_groupÚoptionsÚvarfilenameÚoutfilerb   Úargr  Úvalra   s                r:   ÚmainrP  À  s  € à&Ð&Ð&Ð&Ð&Ð&Ø€O€O€Oà×$Ò$Ø"Ð0Mð %ñ ô €Fð ×Ò˜¨Ð;UÐÑVÔVÐVØ
×ÒØØØðMð	 ñ ô ð ð ×ÒØØØØØFð ñ ô ð ð ×ÒØØØØIð	 ñ ô ð ð ×7Ò7ÀÐ7ÑGÔG€MØ×ÒØˆk ,Ð5Jð ñ ô ð ð ×ÒØˆi Ð3Hð ñ ô ð ð ×ÒØØØØDð	 ñ ô ð ð ×Ò Ñ%Ô%€Gà”-€Kð Œ~ð	�Œ×Ò˜Ñ%Ô% aÔ(¨?Ñ:Ð:àŒ^ð ð
 €LØ!œ/ÐSˆwˆw¸'¼-Ð/S¨w¨wÈVðñ ô ð ð €CØŒð Gð Gˆð	GØ—y’y ‘~”~‰HˆC�Ý�s‘8”8˜q’=�=�=�=Ý % c¡
¤
ˆC�—	’	˜!‘”ÑÐøÝ�NÐ+ð 	Gð 	Gð 	GØ�LŠLÐ?À#ÑEÑFÔFÐFÐFÐFð	Gøøøå‡H‚Hˆ^˜SÑ!Ô!Ð!å‡H‚HÐ$Ñ%Ô%Ð%Ý�[°'Ô2JÐKÑKÔK€Gå˜G S°$ÀÄÐPÑPÔPÐPå‡H‚HÐ&¨Ñ0Ô0Ð0Ø‡L‚L�ÑÔÐÐÐs   Å#AF6Æ6)G"Ç!G"Ú__main__)FT)N)=Ú__doc__ÚfontTools.misc.fixedToolsr   r   ÚfontTools.misc.loggingToolsr   ÚfontTools.misc.roundToolsr   ÚfontTools.pens.boundsPenr   ÚfontTools.ttLibr   r	   ÚfontTools.ttLib.tablesr
   ÚfontTools.ttLib.tables._g_l_y_fr   r   r   ÚfontTools.varLib.modelsr   r   r   ÚfontTools.varLib.mergerr   ÚfontTools.varLib.varStorer   ÚfontTools.varLib.mvarr   ÚfontTools.varLib.iupr   ÚfontTools.subset.cffr7  Úos.pathr>  ÚloggingÚior   Ú	getLoggerr´   ró   Úpercentsr.   Úzipr8   ÚprevÚcurrÚhalfr;   rR   rl   r  rP  Ú__name__Úsysræ   ÚargvÚexitÚdoctestÚtestmodÚfailedro   r<   r:   ú<module>rp     sé  ððð ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø -Ð -Ð -Ð -Ð -Ð -Ø .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
 2Ð 1Ð 1Ð 1Ð 1Ð 1Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø .Ð .Ð .Ð .Ð .Ð .Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ð €gÔÐ2Ñ3Ô3€ð Ð ØFÐFÐF€Ø �y   X¨c¨r¨c¤]°H¸Q¸R¸R´LÑ!AÔ!AÈÐKÑKÔKð %ð %�O€A�|ˆˆdØ�4‰K˜1Ñ€DØ#$Ð˜4Ñ Ð ð3ð 3ð 3ð:'-ð '-ð '-ðT,'ð ,'ð ,'ð^ Ðð,ñô ðPð Pð Pñ	ô ðPðfGð Gð Gð GðT ˆzÒÐØ€J€J€Jà
€sˆ3Œ8�}„}�qÒÐØˆŒ��‘”ÑÔÐØ€N€N€Nà€C„Hˆ_ˆWŒ_ÑÔÔ%Ñ&Ô&Ð&Ð&Ð&ð Ðr<   