+
    ij                        ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt ^ RIHt ^ RIt^ RIt^ R	IHt . R!Ot]P*                  ! R
4      t. R"Ot. R#Ot]! R ]! R$^4       4       4      t. R%Ot^tR tR tR t R t!R t"R&R lt#R&R lt$R&R lt%R t&R t'R t(R'R lt)R(R lt*R(R lt+R(R lt,R(R lt-R t.R t/R)R lt0R&R lt1]2R 8X  d   ^ RI3t3]3Ph                  ! ]1! 4       4       R# R# )*    )newTable)Axis)AreaPen)NullPen)StatisticsPen)piecewiseLinearMapnormalizeValue)makeOutputFileNameN)pformatzfontTools.varLib.avar.planc              #      "   T F6  p\         P                  ! \         P                  ! VR ,          4      4      x  K8  	  R# 5i)g      4@N)mathdegreesatan).0ds   & z/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/varLib/avar/plan.py	<genexpr>r   M   s)     HAdll499QX.//s   >A c                ,    W,
          W!,
          ,          # )zOLinearly normalize value in [rangeMin, rangeMax] to [0, 1], with extrapolation. )valuerangeMinrangeMaxs   &&&r   normalizeLinearr   l   s    !455    c                ,    WW!,
          ,          ,           # )zALinear interpolation between a and b, with t typically in [0, 1].r   )tabs   &&&r   interpolateLinearr   q   s    AE{?r   c                    \         P                  ! V4      p\         P                  ! V4      p\         P                  ! V 4      V,
          WC,
          ,          # )zVLogarithmically normalize value in [rangeMin, rangeMax] to [0, 1], with extrapolation.)r   log)r   r   r   logMinlogMaxs   &&&  r   normalizeLogr$   v   s8    XXhFXXhFHHUOf$99r   c                    \         P                  ! V4      p\         P                  ! V4      p\         P                  ! W0WC,
          ,          ,           4      # )zFLogarithmic interpolation between a and b, with t typically in [0, 1].)r   r!   exp)r   r   r   logAlogBs   &&&  r   interpolateLogr)   }   s5    88A;D88A;D88D,,--r   c                &   \         P                  ! \         P                  ! V4      4      p\         P                  ! \         P                  ! V4      4      p\         P                  ! \         P                  ! V 4      4      V,
          WC,
          ,          # )zPAngularly normalize value in [rangeMin, rangeMax] to [0, 1], with extrapolation.)r   tanradians)r   r   r   tanMintanMaxs   &&&  r   normalizeDegreesr/      sT    XXdll8,-FXXdll8,-FHHT\\%()F2vGGr   c                   \        V\        4      '       d   TpMV Uu/ uF  q3^bK  	  pp^ ;rEV F  pVe   VP                  V^ 4      pV^ 8X  d   K"  M^pW,          p\        V R7      p	VP	                  V	4       VP
                  V,          p
WJ\        V	P                  4      ,          ,          pWZ,          pK  	  WE,          # u upi )z:Measure the perceptual average weight of the given glyphs.glyphset)
isinstancedictgetr   drawwidthabsr   )r2   glyphsfrequenciesgwght_sumwdth_sum
glyph_name	frequencyglyphpenmults   &&         r   measureWeightrC      s    &$%+,V!tV,H
"#
A6IA~  I$x(

3{{Y&3syy>)) " ) -s   Cc                V   \        V\        4      '       d   TpMV Uu/ uF  q3^bK  	  pp^ p^ pV Fi  pVe   VP                  V^ 4      pV^ 8X  d   K"  M^pW,          p\        4       p	VP	                  V	4       WHP
                  V,          ,          pWW,          pKk  	  WE,          # u upi )z.Measure the average width of the given glyphs.)r3   r4   r5   r   r6   r7   )
r2   r9   r:   r;   r=   freq_sumr>   r?   r@   rA   s
   &&        r   measureWidthrF      s    &$%+,V!tV,HH
"#
A6IA~  I$i

3KK)++   ) -s   B&c                   \        V\        4      '       d   TpMV Uu/ uF  q3^bK  	  pp^ p^ pV F~  pVe   VP                  V^ 4      pV^ 8X  d   K"  M^pW,          p\        V R7      p	VP	                  V	4       VP
                  V,          p
WJV	P                  ,          ,          pWZ,          pK  	  \        P                  ! \        P                  ! WE,          4      4      ) # u upi )z?Measure the perceptual average slant angle of the given glyphs.r1   )
r3   r4   r5   r   r6   r7   slantr   r   r   )r2   r9   r:   r;   slnt_sumrE   r>   r?   r@   rA   rB   s   &&         r   measureSlantrJ      s    &$%+,V!tV,HH
"#
A6IA~  I$X.

3{{Y&399$$ " LL8#67888+ -s   C$c                l   W1^ ,          ,          W1^,          ,          W1^,          ,          repV ^,          WE,          ,          pV ^,          We,          ,          p\         P                  ! R.V O5!   \         P                  RVV ^,          V4       \        Wp^ ,          ,
          4      V ^,          ,          R8  g,   \        W^,          ,
          4      V ^,          ,          R8  dO   \         P                  R4       \         P                  ! R.V O5!   \         P                  RVV ^,          V4       R# R# )	zSanitize the width axis limits.z$Original width axis limits: %g:%g:%gz&Calculated width axis limits: %g:%g:%g皙?z6Calculated width axis min/max do not match user input.z%  Current width axis limits: %g:%g:%gz'  Suggested width axis limits: %g:%g:%gFTr!   infor8   warning)	
userTripledesignTriplepinsmeasurementsminVal
defaultValmaxValcalculatedMinValcalculatedMaxVals	   &&&&     r   sanitizeWidthrY      s    	!_%!_%!_% F "!}(;<!!}(;<HH3AjAHH01	 	!},-
1=DQ-/0:a=@4GLM3	
	
 	5qM		
 r   c                   \        \        V 4      4      ^8  d   R# W1^ ,          ,          W1^,          ,          W1^,          ,          rep\        P                  ! V4      p\        P                  ! V4      p\        P                  ! V4      p	V ^,          V ^ ,          ,
          V ^,          V ^ ,          ,
          ,          p
\        P                  ! WzW,
          ,          ,           4      pW,
          Wd,
          ,          p
V ^ ,          W^,          V ^ ,          ,
          ,          ,           p\        P
                  ! R.V O5!   \        P                  RV ^ ,          VV ^,          4       \        W^,          ,
          4      V ^,          ,          R8  Ed   \        P                  R4       \        P                  ! R.V O5!   \        P                  RV ^ ,          VV ^,          4       V ^,          V ^ ,          ,
          V ^,          V ^ ,          ,
          ,          p
\        P                  ! WzW,
          ,          ,           4      pW,
          WT,
          ,          p
V ^ ,          W^,          V ^ ,          ,
          ,          ,           p\        P                  RV ^ ,          V ^,          V4       V ^ ,          V ^,          ,
          V ^,          V ^,          ,
          ,          p
\        P                  ! WW,
          ,          ,           4      pW,
          WV,
          ,          p
V ^,          W^,          V ^,          ,
          ,          ,           p\        P                  R	VV ^,          V ^,          4       R
# R# )z Sanitize the weight axis limits.Tz%Original weight axis limits: %g:%g:%gz'Calculated weight axis limits: %g:%g:%grL   z9Calculated weight axis default does not match user input.z&  Current weight axis limits: %g:%g:%gz:  Suggested weight axis limits, changing default: %g:%g:%gz:  Suggested weight axis limits, changing maximum: %g:%g:%gz:  Suggested weight axis limits, changing minimum: %g:%g:%gF)lensetr   r!   r&   rN   r8   rO   )rP   rQ   rR   rS   rT   rU   rV   r"   
logDefaultr#   r   ycalculatedDefaultValrX   rW   s   &&&&           r   sanitizeWeightr`   	  s    3z?a 	!_%!_%!_% F XXfF*%JXXfF	AA	&:a=:a=+HIAv//0A	
(A%a=11
10M+NNHH4BzBHH111	 Q-/0:a=@4GOP4	
	

 	HqM qM		
 ]Z]*z!}z!}/LMHHV:#6778ZJ/0%a=11
10M+NNHqMqM		
 ]Z]*z!}z!}/LMHHV:#6778ZJ/0%a=11
10M+NNHqMqM		
 r   c                   \         P                  ! R.V O5!   \         P                  RW1^ ,          ,          W1^,          ,          W1^,          ,          4       \        W1^ ,          ,          V ^ ,          ,
          4      ^8  gW   \        W1^,          ,          V ^,          ,
          4      ^8  g,   \        W1^,          ,          V ^,          ,
          4      ^8  do   \         P                  R4       \         P                  ! R.V O5!   \         P                  RW1^ ,          ,          W1^,          ,          W1^,          ,          4       R# R# )zSanitize the slant axis limits.z$Original slant axis limits: %g:%g:%gz&Calculated slant axis limits: %g:%g:%gz>Calculated slant axis min/default/max do not match user input.z%  Current slant axis limits: %g:%g:%gz'  Suggested slant axis limits: %g:%g:%gFTrM   )rP   rQ   rR   rS   s   &&&&r   sanitizeSlantrb   P  s     HH3AjAHH0!_%!_%!_%	 	La)JqM9:Q>|O,z!}<=A|O,z!}<=ATU3	
	
 	5a)a)a)		
 r   c           	     	   \        V\        4      '       d$   VP                  VP                  VP                  3pVw  rpVf   \
        pVf   V! / 4      P                  4       pV
f   / p
MV
P                  4       p
\        P                  RWV4       WV3pV	e   \        P                  ! R.V	O5!   MTp	V
'       d.   \        P                  R\        V
P                  4       4      4       V
P                  W^ ,          W^,          W^,          /4       / p/ p/ p\        WV0\        V
P                  4       4      ,          4       F#  pV! VV/R7      pV
V,          pV ! VV4      VV&   K%  	  Ve!   \        P                  RV4       V! WV
V4       \        P                  R\        V4      4       \!        \#        \        V
P                  4       4      4      RR \#        \        V
P                  4       4      4      R,          4       EF=  w  w  ppw  ppV Uu0 uF  pVTu;8  d
   V8  g   K  M K  VkK  	  ppV'       g   K=  \%        VV4      p\%        VV4      p\%        VV	4      p\%        VV	4      p\        P                  R	\        V4      4       \        P                  R
VVV4       VP                  4       p \'        ^V^,           4       Fa  p!VVV,
          V!,          V^,           ,          ,           p\        P                  RV4       V! VV/R7      p\)        VV
4      pV ! VV4      V V&   Kc  	  \        P                  R\        V 4      4       / p"\        V 4       F  pVV"V V,          &   K  	  VVV&   VVV&   \        V4       F  pV! VVV4      p#V! V#V V,          V V,          4      p$\)        V$V"4      p%\        P                  RVV%3,          4       V%VV&   VVV,
          VV,
          ,          VV,
          ,          ,           p&VV%V,
          VV,
          ,          VV,
          ,          ,           VV&&   K  	  VVV&   VVV&   EK@  	  \        P                  RV\        V4      4       \        P                  RV\        V4      4       \*        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  RM! R VP                  4        4       4      '       d   \        P                  RV4       / p/ pVV3# u upi )a  Plan an axis.

measureFunc: callable that takes a glyphset and an optional
list of glyphnames, and returns the glyphset-wide measurement
to be used for the axis.

normalizeFunc: callable that takes a measurement and a minimum
and maximum, and normalizes the measurement into the range 0..1,
possibly extrapolating too.

interpolateFunc: callable that takes a normalized t value, and a
minimum and maximum, and returns the interpolated value,
possibly extrapolating too.

glyphSetFunc: callable that takes a variations "location" dictionary,
and returns a glyphset.

axisTag: the axis tag string.

axisLimits: a triple of minimum, default, and maximum values for
the axis. Or an `fvar` Axis object.

values: a list of output values to map for this axis.

samples: the number of samples to use when sampling. Default 8.

glyphs: a list of glyph names to use when sampling. Defaults to None,
which will process all glyphs.

designLimits: an optional triple of minimum, default, and maximum values
represenging the "design" limits for the axis. If not provided, the
axisLimits will be used.

pins: an optional dictionary of before/after mapping entries to pin in
the output.

sanitizeFunc: an optional callable to call to sanitize the axis limits.
Nz(Axis limits min %g / default %g / max %gz/Axis design-limits min %g / default %g / max %gzPins %s)locationz/Sanitizing axis limit values for the `%s` axis.zCalculated average value:
%s   NNzPlanning target values %s.z"Sampling %u points in range %g,%g.zSampling value %g.zSampled average value:
%szPlanned mapping value %g to %g.z%Planned mapping for the `%s` axis:
%sz0Planned normalized mapping for the `%s` axis:
%sc              3   N   "   T F  w  r\        W,
          4      R 8  x  K  	  R# 5i)g{Gz?N)r8   )r   kvs   &  r   r   planAxis.<locals>.<genexpr>  s     
?)>3qu:)>s   #%FTz6Detected identity mapping for the `%s` axis. Dropping.)r3   fvarAxisminValuedefaultValuemaxValueSAMPLESkeyscopyr!   rN   sorteditemsupdater\   debugr   ziplistr	   ranger   all)'measureFuncnormalizeFuncinterpolateFuncglyphSetFuncaxisTag
axisLimitsvaluessamplesr9   designLimitsrR   sanitizeFuncrm   rn   ro   tripleoutoutNormalizedaxisMeasurementsr   r2   designValuer   	targetMinr   	targetMaxwtargetValuesnormalizedMinnormalizedMaxnormalizedTargetMinnormalizedTargetMaxvalueMeasurementssamplemeasurementValuer   targetMeasurementtargetValuevalueNormalizeds'   &&&&&&&&&&&&                           r   planAxisr   q  s   j *h'' )):+B+BJDWDWX
'1$HH~b!&&(|yy{HH2HH h/FBR\RF4::<01KK1oq/1o	
 CM:S=MMN'5)9:5k(3Hf(E% O
 BGLV41ABII-w7G/HI8;VDJJL!"3B'VDJJL!"2&9494) $*E6aX-DH-D-D6E&x8&x8,YE,YE-vl/CD5w(S,113Aw{+F8 3v=1MMEII*E2#gu-=>H,UD9K-86-Jk* , 			.8I0JK-.E9>.u56 / "H':m$L)EeXx8A /$Y/1B91M! -->@PQKII75+:NNO$CJ+ux/?8#/./0 0O .Ai'Y&D(+>AT+TDV .VM/* * "H':m$[9^ HH5wMHH; s
?)<)<)>
?sss
?)<)<)>
???I7So Fs   S9*S9.S9c                    Vf   \         p\        \        \        \        T RTTTTTTV'       d   \
        R7      # RR7      # )zPlan a weight (`wght`) axis.

weights: A list of weight values to plan for. If None, the default
values are used.

This function simply calls planAxis with values=weights, and the appropriate
arguments. See documenation for planAxis for more information.
Nwghtr   r   r9   r   rR   r   )WEIGHTSr   rC   r   r)   r`   )r~   r   weightsr   r9   r   rR   sanitizes   &&&&&&&&r   planWeightAxisr     sP    & !'/^  6: r   c                    Vf   \         p\        \        \        \        T RTTTTTTV'       d   \
        R7      # RR7      # )a	  Plan a width (`wdth`) axis.

widths: A list of width values (percentages) to plan for. If None, the default
values are used.

This function simply calls planAxis with values=widths, and the appropriate
arguments. See documenation for planAxis for more information.
Nwdthr   )WIDTHSr   rF   r   r   rY   )r~   r   widthsr   r9   r   rR   r   s   &&&&&&&&r   planWidthAxisr   :  sP    & ~!&.]  59 r   c                    Vf   \         p\        \        \        \        T RTTTTTTV'       d   \
        R7      # RR7      # )zPlan a slant (`slnt`) axis.

slants: A list slant angles to plan for. If None, the default
values are used.

This function simply calls planAxis with values=slants, and the appropriate
arguments. See documenation for planAxis for more information.
Nslntr   )SLANTSr   rJ   r/   r   rb   )r~   r   slantsr   r9   r   rR   r   s   &&&&&&&&r   planSlantAxisr   `  sP    & ~!&.]  59 r   c                Z    Vf   \         p\        \        \        \        V RVVVVVVR7      # )a  Plan a optical-size (`opsz`) axis.

sizes: A list of optical size values to plan for. If None, the default
values are used.

This function simply calls planAxis with values=sizes, and the appropriate
arguments. See documenation for planAxis for more information.
opsz)r   r   r9   r   rR   )SIZESr   rC   r$   r)   )r~   r   sizesr   r9   r   rR   r   s   &&&&&&&&r   planOpticalSizeAxisr     s<    & }! r   c                    RW3V,           ,          pV'       d   VR,          pM	VR,          pVP                  4        F  w  rVVRWV3,          ,          pK  	  V'       d
   VR,          pV# )z-Make a designspace snippet for a single axis.zC    <axis tag="%s" name="%s" minimum="%g" default="%g" maximum="%g"z>
z/>z$      <map input="%g" output="%g"/>
z    </axis>)rt   )r   axisName	axisLimitmappingdesignspaceSnippetkeyr   s   &&&&   r   makeDesignspaceSnippetr     ss     	N*	,  e#d"mmo
ETT & m+r   c                    \        R4      ;V R&   pV R,          P                   F  p/ VP                  VP                  &   K  	  R# )z&Add an empty `avar` table to the font.avarfvarN)r   axessegmentsr   )fontr   axiss   &  r   addEmptyAvarr     s;    "6**DL4V!!&(dll# "r   c                   RpV R,          P                    F  pVP                  V8X  g   K  Tp M	  Vf   R# VP                  VP                  VP                  3p\
        P                  RV4       RV 9   d2   V R,          P                  V,          p/ V R,          P                  V&   MRpVe?   \        V\        4      '       d)   VP                  4        Uu. uF  p\        V4      NK  	  ppVe{   \        V\        4      '       de   VP                  R4       Uu. uF  p\        V4      NK  	  pp\        V4      ^8X  d)   V^ ,          V^,          u;8:  d   V^,          8:  g    Q h Q hMRpVe^   \        V\        4      '       dH   / pVP                  4        F.  pVP                  R4      w  pp\        V4      V\        V4      &   K0  	  Tp?V! V P                  VVVVVVV	R7      w  ppV
'       dR   ^ RIHp TP!                  \#        V4      \#        V4       Uu. uF  pVV,          NK  	  up4       VP%                  4        Ve!   \
        P                  R	V\'        V4      4       V'       d*   RV 9  d   \)        V 4       VV R,          P                  V&   MRV 9   d   / V R,          P                  V&   \+        VVVV4      pV# u upi u upi u upi )
zProcess a single axis.Nr    zPlanning %s axis.r   :)r   r9   r   rR   r   )pyplotzExisting %s mapping:
%s)r   r   rm   rn   ro   r!   rN   r   r3   strsplitfloatr[   getGlyphSet
matplotlibr   plotrs   showr   r   r   )r   planFuncr   r   r   r   r9   r   rR   r   r   r   r   existingMappingr   r   newPinspinbeforeafterr   mappingNormalizedr   rh   r   s   &&&&&&&&&&&              r   processAxisr     s    JV!!<<7"J " %%z'>'>
@S@STJHH (+~v,//8)+Vg&j55$*LLN3Nq%(N3J|S$A$A*6*<*<S*AB*AQa*AB"Q<?El1oE	
FE	
FE JtS11::<CIIcNMFE%*5\GE&M"   !)!	"G %$%+12C+DE+Daq!!+DE	
 	"+Xw7OP):Vg&T>-/DL!!'*/	 q 4 C@ Fs   KKK
c                
   V f   ^ RI pVP                  R,          p ^ RIHp ^ RIHp ^ RIpVP                  RRR7      pVP                  RR	R
R7       VP                  RR\        RR7       VP                  R\        RR7       VP                  R\        RR7       VP                  R\        RR7       VP                  R\        RR7       VP                  R\        RR7       VP                  RRRRR7       VP                  RR \        R!R7       VP                  R"\        R#R7       VP                  R$\        R%R7       VP                  R&\        R'R7       VP                  R(\        R)R7       VP                  R*\        R+R7       VP                  R,\        R-R7       VP                  R.\        R/R7       VP                  R0\        R1R7       VP                  R2R3RR4R7       VP                  R5R67      pVP                  R7R8RR9R7       VP                  R:R;RR<R7       VP                  V 4      pT! VP                  '       d   R=MVP                  '       d   R>MR?R@7       V! VP                  4      pRAV9   g   \         P#                  RB4       ^# VP$                  e}   VP$                  P'                  4       p	RCVP$                  9   dQ   / p	VP$                  P'                  4        F0  p
RCV
9   d#   V
P'                  RC4      w  r\)        V4      W&   K,  RDW&   K2  	  MRp	. pVP+                  \-        V\.        RERFVP0                  VP2                  V	VP4                  VP6                  VP8                  VP:                  RG7      4       VP+                  \-        V\<        RHRIVP>                  VP2                  V	VP@                  VPB                  VP8                  VP:                  RG7      4       VP+                  \-        V\D        RJRKVPF                  VP2                  V	VPH                  VPJ                  VP8                  VP:                  RG7      4       VP+                  \-        V\L        RLRMVPN                  VP2                  V	VPP                  VPR                  VP8                  VP:                  RG7      4       \         PU                  RN4       V F  pV'       g   K  \W        V4       K  	  VPX                  f   \[        VP                  RORPRQ7      pMVPX                  pV'       d*   \         PU                  RRV4       VP]                  V4       R# R# )Sz3Plan the standard axis mappings for a variable fontNre   )configLogger)TTFontzfonttools varLib.avar.planz#Plan `avar` table for variable font)descriptionr   zvarfont.ttfzVariable-font file.)metavarhelpz-oz--output-filezOutput font file name.)typer   z	--weightsz+Space-separate list of weights to generate.z--widthsz*Space-separate list of widths to generate.z--slantsz*Space-separate list of slants to generate.z--sizesz1Space-separate list of optical-sizes to generate.z	--sampleszNumber of samples.z-sz
--sanitize
store_truezSanitize axis limits)actionr   z-gz--glyphsz2Space-separate list of glyphs to use for sampling.z--weight-design-limitsz4min:default:max in design units for the `wght` axis.z--width-design-limitsz4min:default:max in design units for the `wdth` axis.z--slant-design-limitsz4min:default:max in design units for the `slnt` axis.z--optical-size-design-limitsz4min:default:max in design units for the `opsz` axis.z--weight-pinsz=Space-separate list of before:after pins for the `wght` axis.z--width-pinsz=Space-separate list of before:after pins for the `wdth` axis.z--slant-pinsz=Space-separate list of before:after pins for the `slnt` axis.z--optical-size-pinsz=Space-separate list of before:after pins for the `opsz` axis.z-pz--plotzPlot the resulting mapping.F)requiredz-vz	--verbosezRun more verbosely.z-qz--quietzTurn verbosity off.DEBUGWARNINGINFO)levelr   zNot a variable font.r   g      ?r   Weight)r   r   r9   r   rR   r   r   r   Widthr   Slantr   OpticalSizezDesignspace snippet:Tz.avar)	overWritesuffixz	Saving %s)/sysargv	fontToolsr   fontTools.ttLibr   argparseArgumentParseradd_argumentr   intadd_mutually_exclusive_group
parse_argsverbosequietr   r!   errorr9   r   r   appendr   r   r   r   weight_design_limitsweight_pinsr   r   r   r   width_design_limits
width_pinsr   r   slant_design_limits
slant_pinsr   r   optical_size_design_limitsoptical_size_pinsrN   printoutput_filer
   save)argsr   r   r   r   parserlogging_groupoptionsr   r9   r;   r@   r?   designspaceSnippetssnippetoutfiles   &               r   mainr  #  s>    |xx|&&$$$9 % F <QR
%	   #$Q   #O   #O   "U   #4HI
l<6L   A	    C  
 C  
 C  
 &C  
 L  
 L  
 L  
 L  
 h|2O   777GMk,5J   i3H   %G!///wGMMMyv ',,DT>		()~~!%%''.. F^^))+!8'(wws|$E$))$4FM #FI , ??OO 55$$%%	
 >>OO 44##%%	
 >>OO 44##%%	
 ==OO ;;**%%	
  HH#$&7'N ' "$W\\T'R%%g&		' r   __main__)r   r   r   r   r   r`   rY   rb   rC   rF   rJ   r   r$   r/   r   r)   r   r   r   r  )2   d            i,  i^  i  i  i  i&  iX  i  i  i  i   iR  i  i  )g      9@g     B@g      I@g     @O@g     R@g     U@g      Y@g      \@g     @_@g     0a@g     b@g     Pd@g     e@g     pg@g      i@i)            	   
                     $   0   <   H   `   x            i   )N)NNNNN)NNNNNF)NNNNFF)5r   r   fontTools.ttLib.tables._f_v_a_rr   rl   fontTools.pens.areaPenr   fontTools.pens.basePenr   fontTools.pens.statisticsPenr   fontTools.varLib.modelsr   r	   fontTools.misc.cliToolsr
   r   loggingpprintr   __all__	getLoggerr!   r   r   rx   ry   r   r   rp   r   r   r$   r)   r/   rC   rF   rJ   rY   r`   rb   r   r   r   r   r   r   r   r   r  __name__r   exitr   r   r   <module>r-     s   $ < * * 6 F 6   . 45,
$ 
HsBH	H	4 6

:.H889:&RDNB`F#L#L#L"J*)YxCL zHHTV r   