Ë
    ^ãj¡Y  ã                   ó‚  — d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ ddl­ ddlmZmZ ddlmZmZmZmZmZmZ ddlmZm Z  dd	lm!Z! dd
l"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+  e,e)e*e+¬«      Z-ddl.m/Z0 ddddddddddœ	ddddddddddœ	dœZ1	 ddl2m3Z3 ddddddddddœ	Z5 G d „ d!e«      Z6 G d"„ d#«      Z7 ed$d%d&d'«      Z8 G d(„ d)e «      Z9 e ee9«      «      Z: G d*„ d+e6«      Z; G d,„ d-e;«      Z< G d.„ d/e<«      Z= e ee=«      «      Z>dd0l?m@Z@  G d1„ d2e@«      ZA G d3„ d4e6«      ZBy# e4$ r dZ3Y Œšw xY w)5z3.3.0é    )Úcolors)ÚsimpleSplit)ÚisNumberÚisNumberOrNoneÚOneOfÚisColorOrNoneÚisStringÚisTextAnchorÚisBoxAnchorÚ	isBooleanÚNoneOrÚisInstanceOfÚisNoneOrStringÚisNoneOrCallableÚisSubclassOf)Ú*)ÚstringWidthÚgetAscentDescent)ÚDrawingÚGroupÚCircleÚRectÚStringÚSTATE_DEFAULTS)ÚWidgetÚ
PropHolder)Ú
DirectDraw)ÚXPreformattedÚFlowable)ÚParagraphStyleÚPropertySet)ÚTA_LEFTÚTA_RIGHTÚ	TA_CENTER)ÚstartÚendÚmiddleé   )Ú	text2PathÚnÚneÚeÚseÚsÚswÚwÚnw)	r   é-   éZ   é‡   é´   éá   i  i;  éÓÿÿÿ©ÚxÚy)ÚDirectDrawFlowableNr%   r&   r'   )	r0   r1   r/   r,   r+   r-   r*   r.   Úcc                   ó~  — e Zd ZdZ edRi d eed¬«      “d eed¬«      “d eed¬«      “d eed	¬«      “d
 eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d e e	dddd«      d¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d  ee
d!¬«      “d" ee
d#¬«      “d$ eed%¬«      “d& eed¬«      “d' eed(¬«      “d) eed*¬«      “d+ eed,¬«      “d- eed.¬«      “d/ eed0¬«      “d1 eed2¬«      “d3 eed4¬«      “d5 eed6¬«      “d7 eed8¬«      “d9 eed:¬«      “d; eed<d=¬>«      “d? e e ee«      d@«      dAd=¬>«      “dB e e ee«      d@«      dCd=¬>«      “dD e e ee«       ee«      f«      dEd=¬>«      “ŽZdF„ ZdG„ ZdH„ ZdI„ ZdJ„ ZdK„ ZdL„ ZdM„ ZdN„ ZdO„ ZdP„ Z yQ)SÚLabelzïA text label to attach to something else, such as a chart axis.

    This allows you to specify an offset, angle and many anchor
    properties relative to the label's origin.  It allows, for example,
    angled multiline axis labels.
    r9   Ú ©Údescr:   Údxzdelta x - offsetÚdyzdelta y - offsetÚanglezDangle of label: default (0), 90 is vertical, 180 is upside down, etcÚ	boxAnchorzanchoring point of the labelÚboxStrokeColorzborder color of the boxÚboxStrokeWidthzborder widthÚboxFillColorzthe filling color of the boxÚ	boxTargetÚnormalÚantiÚloÚhiz"one of ('normal','anti','lo','hi')Ú	fillColorzlabel text colorÚstrokeColorzlabel text border colorÚstrokeWidthzlabel text border widthÚtextzthe actual text to displayÚfontNamezthe name of the font usedÚfontSizezthe size of the fontÚleadingÚwidthzthe width of the labelÚmaxWidthz#maximum width the label can grow toÚheightzthe height of the textÚ
textAnchorz0the anchoring point of the text inside the labelÚvisibleú True if the label is to be drawnÚ
topPaddingzpadding at top of boxÚleftPaddingzpadding at left of boxÚrightPaddingzpadding at right of boxÚbottomPaddingzpadding at bottom of boxÚuseAscentDescentz^If True then the font's Ascent & Descent will be used to compute default heights and baseline.ÚcustomDrawChangerzDAn instance of CustomDrawChanger to modify the behavior at draw timeé   )rA   Ú_advancedUsageÚddfÚNoneOrDirectDrawzA DirectDrawFlowable instanceÚddfKlassz=A Flowable class for direct drawing (default is XPreformattedÚddfStylez-A style or style class for a ddfKlass or Nonec           
      ó‚  —  | j                   d(i |¤Ž  | j                   d(i 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d “dd “dd “dd “dd “dt        d   “dt        d   “dt        d   “dd“dd “d!d"“d#d$“d%t        “d&t        | j                  d&d «      “d't        | j                  d'd «      “Ž y ))NÚ_textzMulti-Line
StringrE   r<   rD   r   r9   r:   rB   rC   r[   r\   r]   r^   rG   ç      à?rF   rI   rJ   rO   rH   rT   rU   rV   rW   rN   rR   rS   rP   gš™™™™™¹?rX   r%   rY   ra   r_   Frc   re   rf   © )Ú_setKeywordsr   r;   ÚgetattrÚ	__class__)ÚselfÚkws     úf/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/reportlab/graphics/charts/textlabels.pyÚ__init__zLabel.__init__M   sv  € Øˆ×ÑÑ˜BÒØˆ×Ñò 	Ù,ð	áð	ñ ð	ñ ð		ñ
 ð	ñ ð	ñ ð	ñ ð	ñ  ð	ñ  !ð	ñ !"ð	ñ "%ð	ñ "&ð	ñ %ð	ñ #ð	ñ   $ð!	ñ" ð#	ñ$ ð%	ñ&  ð'	ñ( ð)	ô* +¨;Ò7ð+	ô, *¨*Ò5ð-	ô. *¨*Ò5ð/	ñ0 "ð1	ñ2 %ð3	ñ4 ð5	ñ6 $)ð7	õ8 )ð9	ô: # 4§>¡>°*¸TÔBð;	ô< # 4§>¡>°*¸TÔBò=	ó    c                 ó   — || _         y)zpSet the text property.  May contain embedded newline characters.
        Called by the containing chart or axis.N)rh   )rn   rQ   s     rp   ÚsetTextzLabel.setTextp   s   € ð ˆ�
rr   c                 ó    — || _         || _        y)z‰Set the origin.  This would be the tick mark or bar top relative to
        which it is defined.  Called by the containing chart or axis.Nr8   )rn   r9   r:   s      rp   Ú	setOriginzLabel.setOriginv   s   € ð ˆŒØˆ�rr   c                 óT  — t        dd«      }|j                  t        dddt        j                  ¬«      «       t        «       }|j                  dd«       d|_        d|_        d|_	        d	|_
        t        j                  |_        |j                  d
«       |j                  |«       |S )zyThis shows a label positioned with its top right corner
        at the top centre of the drawing, and rotated 45 degrees.éÈ   éd   r3   é   )rN   r+   r2   r   iìÿÿÿzAnother
Multi-Line
String)r   Úaddr   r   Úgreenr>   rv   rE   rD   rB   rC   rF   rt   )rn   ÚdÚlabs      rp   Údemoz
Label.demo}   s‡   € ô �C˜Óˆð 	
�‰Œf�S˜˜Q¬&¯,©,Ô7Ô8ä‹gˆØ�‰�c˜"ÔØˆŒØˆŒ	ØˆŒØˆŒÜ#Ÿ\™\ˆÔØ�‰Ð1Ô2Ø	�‰ˆcŒ
àˆrr   c                 óà   — | j                   }|dv r]| j                  }t        |dz  dz  «      dz  dz  }|dz  s&||z
  dz  }t        |«      dkD  r||dkD  xr dxs dz   }t        |d	      |   }|S )
z,hook for allowing special box anchor effects)ÚautoxÚautoyih  g     €F@r2   r3   rz   r   r7   éÿÿÿÿ)rE   rD   ÚintÚabsÚ_A2BA)rn   ÚbarD   ÚnaÚdas        rp   Ú_getBoxAnchorzLabel._getBoxAnchor’   s‡   € à�^‰^ˆØÐ#Ñ#Ø—J‘JˆEÜ�u˜S‘y #‘oÓ& rÑ)¨3Ñ.ˆBØ˜’GØ˜b‘j CÑ'�Ü�r“7˜1’9Ø˜r !™tš{¨Ò1¨cÑ2�BÜ�r˜"‘v‘˜rÑ"ˆBØˆ	rr   c                 óÜ   — | j                   rYt        | j                  | j                  «      \  | _        | _        | j                  | j                  | j
                  z
  z  | _        y d| _        y )Ng«ªªªªªê?)r_   r   rR   rS   Ú_ascentÚ_descentÚ_baselineRatio©rn   s    rp   Ú_getBaseLineRatiozLabel._getBaseLineRatioŸ   sN   € Ø× Ò Ü*:¸4¿=¹=ÈÏÉÓ*WÑ'ˆDŒL˜$œ-Ø"&§,¡,°·±¸T¿]¹]Ñ0JÑ"KˆDÕà"'ˆDÕrr   c                 óÞ  — | j                   xs || j                  z   | j                  z   | _        | j                  | j
                  z
  | j                  z
  | _        | j                  | j                  z
  | j                  z
  | _        | j                  «       }|dv r| j                   | _
        n7|dv r| j                  | j                  z
  | _
        nd| j                  z  | _
        | j                  | j                  z
  | _        |dv r| j
                  | j                  z
  | _        n+|dv r| j
                  | _        n| j                   dz  | _        | j                  | j                  z   | _        y )N)r*   r+   r1   )r.   r/   r-   ri   )r+   r,   r-   )r1   r0   r/   )rW   r[   r^   Ú_heightÚ_widthr\   r]   Ú_ewidthÚ_eheightrŠ   Ú_topÚ_bottomÚ_leftÚ_right)rn   ÚobjHrE   s      rp   Ú_computeSizeEndzLabel._computeSizeEnd¦   s#  € Ø—{‘{ÒS t¨d¯o©oÑ'=À×@RÑ@RÑ'RˆŒØŸ™ D×$4Ñ$4Ñ4°T×5FÑ5FÑFˆŒØŸ™ d§o¡oÑ5°d×6HÑ6HÑHˆŒØ×&Ñ&Ó(ˆ	Ø˜Ñ'ØŸ™Ð(ˆD�IØ˜/Ñ)ØŸ™ T§_¡_Ñ4ˆD�Ià˜DŸM™MÑ)ˆDŒIØ—y‘y 4§=¡=Ñ0ˆŒà˜Ñ'Ø×)Ñ)¨D¯K©KÑ7ˆD�JØ˜/Ñ)Ø×)Ñ)ˆD�JàŸ,™,˜ sÑ*ˆDŒJØ—j‘j §¡Ñ-ˆ�rr   c                 ó‚  — t        | dd «      }|�s�g | _        t        | j                  | j                  | j
                  | j                  «      | _        | j                  s‘| j                  | j                  z   | _        | j                  rx| j                  D �cg c]#  }t        || j                  | j
                  «      ‘Œ% c}| _        | xj                  t        | j                  «      z  c_        n| j                  | _        | j                  «        | j                  r| j                  | _        n?| j"                  r| j$                  | j&                  z
  | _        n| j
                  dz  | _        | j                   t)        | j                  «      z  }�n˜| j*                  €t-        d«      ‚t/        d| j                  | j
                  | j0                  | j2                  ¬«      }| j4                  st7        di |¤Ž}nŸt9        | j4                  t:        «      r | j4                  j<                  di |¤Ž}nht9        | j4                  t>        «      r-tA        | j4                  t:        «      r | j4                  di |¤Ž}n!tC        dt?        | j4                  «      › �«      ‚|| _"        | j                  «        | j"                  r&d|_#        | j$                  | j&                  z
  |_        n,| j                  r| j                  n| j
                  dz  |_        |j                  | _        | jI                  «       }| j                  xs d}|d	k7  rNtJ        |_&         || j                  |¬
«      }|jO                  |d«      \  }}| j                  xs |jP                  }tR        |   |_&         || j                  |¬
«      x| _*        }|jO                  |d«      \  }}| j                  s>| j                  | j                  z   | _        | xj                  |jP                  z  c_        n| j                  | _        | jW                  |«       y c c}w )Nre   g333333ó?z[DirectDrawFlowable class is not available you need the rlextra package as well as reportlabzxlabel-generated)ÚnamerR   rS   rN   rO   zddfStyle has invalid type Tiÿÿÿr%   )Ústylerj   ),rl   Ú_lineWidthsr   rh   rR   rS   rV   Ú_linesrU   r\   r]   r“   r   Úmaxr�   rT   Ú_leadingr_   rŒ   r�   Úlenrc   ÚRuntimeErrorÚdictrN   rO   rf   r    Ú
isinstancer!   ÚcloneÚtypeÚ
issubclassÚ
ValueErrorÚ_styleÚautoLeadingÚ_getTextAnchorr"   Ú	alignmentÚwrapÚ
_width_maxÚ_ta2alÚ_ddfObjr›   )	rn   re   Úlinerš   ÚstyÚtaÚaWÚobjÚ_s	            rp   ÚcomputeSizezLabel.computeSize»   s+  € ä˜4 
¨4Ó0ˆÚØ!ˆDÔÜ% d§j¡j°·±¸t¿}¹}ÈTÏ]É]Ó[ˆDŒKØ—:’:Ø"×.Ñ.¨t×/@Ñ/@Ñ@�”Ø—;’;Øbf×bmÑbmÖ'nÐZ^¬°D¸¿¹ÀtÇ}Á}Õ(UÒ'n�DÔ$Ø—K’K¤3 t×'7Ñ'7Ó#8Ñ8–Kà"Ÿj™j�”Ø×"Ñ"Ô$Ø�|Š|Ø $§¡�•Ø×&Ò&Ø $§¡¨t¯}©}Ñ <�•à $§¡¨cÑ 1�”Ø—=‘=¤ T§[¡[Ó!1Ñ1ŠDà�x‰xÐÜ"ð  $Aó  Bð  BÜØ+Ø!Ÿ]™]Ø!Ÿ]™]Ø"Ÿn™nØ $× 0Ñ 0ôˆCð —=’=Ü$Ñ+ sÑ+‘Ü˜DŸM™M¬+Ô6Ø)�d—m‘m×)Ñ)Ñ0¨CÑ0‘Ü˜DŸM™M¬$Ô/´J¸t¿}¹}Ì[Ô4YØ#�d—m‘mÑ* cÑ*‘ä Ð#=¼dÀ4Ç=Á=Ó>QÐ=RÐ!SÓTÐTàˆDŒKØ×"Ñ"Ô$Ø×$Ò$Ø"&�”Ø"Ÿl™l¨T¯]©]Ñ:�•à.2¯lªl˜dŸlšlÀÇÁÈcÑ@Q�”ØŸK™KˆDŒMØ×$Ñ$Ó&ˆBà—‘Ò, *ˆBØ�7Š{Ü '�”Ù˜tŸz™z°Ô4�ØŸ(™( 2 jÓ1‘��4Ø—]‘]Ò4 c§n¡n�Ü" 2™JˆCŒMÙ!)¨$¯*©*¸3Ô!?Ð?ˆDŒL˜3Ø—h‘h˜r *Ó-‰GˆAˆtà—:’:Ø"×.Ñ.¨t×/@Ñ/@Ñ@�”Ø—’˜sŸ~™~Ñ-–à"Ÿj™j�”Ø×Ñ˜TÕ"ùòs (os   Â(P<c                 óV   — | j                   }|dk(  rt        | j                  «          }|S )z/This can be overridden to allow special effectsÚboxauto)rX   Ú_BA2TArŠ   )rn   rµ   s     rp   r­   zLabel._getTextAnchorÿ   s)   € à�_‰_ˆØˆyŠ=œv d×&8Ñ&8Ó&:Ñ;˜"Øˆ	rr   c                 ól  — | j                   }|xs d| _         | j                  «        || _         t        «       }|j                  | j                  | j
                  z   | j                  | j                  z   «       |j                  | j                  «       t        | dd «      }|r| j                  }nv| j                  | j                  | j                  z  z
  }| j                  «       }|dk(  r| j                  }n.|dk(  r| j                  | j                   dz  z   }n| j"                  }| j$                  s| j&                  r�| j(                  r�|j+                  t-        | j                  | j.                  z
  | j0                  | j2                  z
  | j4                  | j6                  | j&                  | j(                  | j$                  ¬«      «       |rpt        «       }|j                  || j                  | j8                  z
  «       |j+                  | j;                  | j<                  «      «       |j+                  |«       |S | j>                  | j@                  | jB                  }
}	}| jD                  | jF                  | j                  }}}t        | di «      }|rN| jH                  D ]=  }tK        |||	|
«      }||_        ||_"        ||_#        |j+                  |«       ||z  }Œ? |S | jH                  D ]C  }tM        |||¬«      }|_'        |	|_         |
|_!        ||_        |j+                  |«       ||z  }ŒE |S )	Nr?   re   r%   r'   ri   )rO   rP   rN   Ú	_svgAttrs)r¾   )(rh   r¹   r   Ú	translater9   rB   r:   rC   ÚrotaterD   rl   r˜   r–   r¢   rŽ   r­   r”   r™   rH   rF   rG   r{   r   r\   r—   r^   r“   r’   r•   rc   r²   rN   rR   rS   rO   rP   r    Ú
_text2Pathr   rX   )rn   rh   Úgre   r9   r:   rX   Úg1rN   rR   rS   rO   rP   rT   ÚsvgAttrsr³   r.   s                    rp   Ú_rawDrawzLabel._rawDraw  s±  € Ø—
‘
ˆØ’[˜bˆŒ
Ø×ÑÔØˆŒ
Ü‹GˆØ	�‰�D—F‘F˜TŸW™WÑ$ d§f¡f¨t¯w©wÑ&6Ô7Ø	�‰�—‘Ôä˜4 
¨4Ó0ˆÙØ—
‘
‰Aà—	‘	˜DŸM™M¨$×*=Ñ*=Ñ=Ñ=ˆAØ×,Ñ,Ó.ˆJØ˜WÒ$Ø—J‘J‘Ø˜xÒ'Ø—J‘J §¡¨cÑ!1Ñ1‘à—K‘K�ð ×Ò ×!4Ò!4¸×9LÒ9LØ�E‰E”$˜Ÿ
™
 4×#3Ñ#3Ñ3ØŸ™ T×%7Ñ%7Ñ7ØŸ™ØŸ™Ø$(×$7Ñ$7Ø$(×$7Ñ$7Ø"&×"3Ñ"3ô5ô ñ Ü“ˆBØ�L‰L˜˜4Ÿ9™9 T§]¡]Ñ2Ô3Ø�F‰F�4—8‘8˜DŸL™LÓ)Ô*Ø�E‰E�"ŒIð. ˆð+ -1¯N©N¸D¿M¹MÈ4Ï=É= �xˆIØ04×0@Ñ0@À$×BRÑBRÐTX×TaÑTa g˜ˆKÜ˜T +¨bÓ1ˆHÙØ ŸK™Kò !�DÜ" 4¨¨A¨x¸À:ÓN�AØ"+�A”KØ$/�A”MØ$/�A”MØ—E‘E˜!”HØ˜‘L‘Að!ð" ˆð !ŸK™Kò !�DÜ˜q ! T°XÔ>�AØ#-�A”LØ!)�A”JØ!)�A”JØ"+�A”KØ—E‘E˜!”HØ˜‘L‘Að!ð ˆrr   c                 ó¢   — t        | dd «      }|r# |d| «       	 | j                  «        |d| «       S | j                  «       S #  |d| «       w xY w)Nr`   TF)rl   rÅ   )rn   r`   s     rp   Údrawz
Label.drawD  sQ   € Ü# DÐ)<¸TÓBÐÙÙ˜d 4Ô(ð.Ø—}‘}“á! %¨Õ-à—=‘=“?Ð"øñ " %¨Õ-ús   šA ÁANrj   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAttrMapÚAttrMapValuer   r   r   r   r	   r   r
   r   r   r   r   r   r   r!   r   Ú_attrMaprq   rt   rv   r   rŠ   r�   r›   r¹   r­   rÅ   rÇ   rj   rr   rp   r>   r>   !   sé  „ ññ ò  
Ù˜ rÕ*ð 
á˜ rÕ*ð 
ñ ˜(Ð(:Õ;ð 
ñ ˜(Ð(:Õ;ð	 
ñ
 ˜XÐ+qÕrð 
ñ ! Ð2PÕQð 
ñ & mÐ9RÕSð 
ñ & h°NÕCð 
ñ $ MÐ7UÕVð 
ñ !¡ x°°t¸DÓ!AÐGkÕlð 
ñ ! Ð4FÕGð 
ñ # =Ð6OÕPð 
ñ # 8Ð1JÕKð 
ñ ˜HÐ*FÕGð 
ñ   Ð.IÕJð 
ñ    Ð.DÕEð! 
ñ" ˜~°2Õ6ð# 
ñ$ ˜^Ð1IÕJð% 
ñ&   Ð4YÕZð' 
ñ( ˜nÐ2JÕKð) 
ñ* " ,Ð4fÕgð+ 
ñ, ˜yÐ.PÕQð- 
ñ. " (Ð0GÕHð/ 
ñ0 # 8Ð1IÕJð1 
ñ2 $ HÐ2KÕLð3 
ñ4 % XÐ3MÕNð5 
ñ6 (¨	ð  8Xõ  Yð7 
ñ8 )Ð)9ð  @Fð  WXõ  Yð9 
ñ: ™6¡,¨zÓ":Ð;MÓNÐTsð  EFõ  Gð; 
ñ<  ¡¡|°HÓ'=Ð>PÓ Qð  XWð  hiõ  jð= 
ñ>  ¡©°[Ó(AÁ,È{ÓB[Ð'\Ó ]ð  dSð  deõ  fð? 
€HòD!òFòòò*ò(ò.ò*B#òHò=ó~	#rr   r>   c            	       óä  — e Zd Z edi d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d	 eed¬«      “d
 eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d ee«      “dd“d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d eed¬«      “d ee	d¬«      “d ee
d¬«      “ŽZd„ Zd„ Zd„ Zy)ÚLabelDecoratorr9   r?   r@   r:   rB   rC   rD   rE   rF   rG   rH   rN   rO   rP   rA   rR   rS   rT   rU   rV   rW   rX   rY   rZ   c                 ó’   — d| _         d| _        | j                  j                  «       D ]  }t	        | |«      rŒt        | |d «       Œ y )Nr%   r0   )rX   rE   rÎ   ÚkeysÚhasattrÚsetattr©rn   Úas     rp   rq   zLabelDecorator.__init__g  s@   € Ø!ˆŒØˆŒØ—‘×#Ñ#Ó%ò 	9ˆAÜ˜4 •?¤G¨D°°4Õ$8ñ	9rr   c                 ó¨   — |j                   \  }}}}}}}	}
}}}}|j                  |j                  j                  |   «       |j	                  |«       y ©N)Ú_callOutInfort   ÚcategoryAxisÚcategoryNamesr{   )rn   ÚlÚLÚchartrÂ   ÚrowNoÚcolNor9   r:   rU   rW   Úx00Úy00Úx0Úy0s                  rp   ÚdecoratezLabelDecorator.decoratem  sL   € Ø=>¿^¹^Ñ:ˆˆa��e˜A˜a  f¨S°°R¸Ø	�	‰	�%×$Ñ$×2Ñ2°5Ñ9Ô:Ø	�‰ˆa�rr   c                 ó¸   — t        «       }| j                  j                  «       D ]!  \  }}|€t        ||d «      }t	        |||«       Œ# | j                  ||«       y rØ   )r>   Ú__dict__Úitemsrl   rÔ   rå   )rn   rÜ   rÝ   rÖ   Úvs        rp   Ú__call__zLabelDecorator.__call__r  sV   € Ü‹GˆØ—=‘=×&Ñ&Ó(ò 	‰CˆAˆaØˆyœg a¨¨$Ó/˜!Ü�A�a˜�Nð	ð 	�‰�a˜Õrr   Nrj   )rÈ   rÉ   rÊ   rÌ   rÍ   r   r   r   r   r
   r   rÎ   rq   rå   rê   rj   rr   rp   rÐ   rÐ   O  st  „ Ùò 
Ù˜¨RÕ0ð
á˜¨RÕ0ð
ñ ˜.¨bÕ1ð
ñ ˜.¨bÕ1ð	
ñ
 ˜^°Õ4ð
ñ ! °"Õ5ð
ñ & m¸Õ<ð
ñ & n¸"Õ=ð
ñ $ M°rÕ:ð
ñ ! °BÕ7ð
ñ # =°bÕ9ð
ñ # >Ô2ð
ñ 9;ð
ñ   °BÕ7ð
ñ   °BÕ7ð
ñ ˜~°2Õ6ð
ñ  ˜^°Õ4ð!
ñ"   °BÕ7ð#
ñ$ ˜n°"Õ5ð%
ñ& " ,°BÕ7ð'
ñ( ˜yÐ.PÕQð)
€Hò.9òó
rr   rÐ   ÚhighÚlowÚbarÚaxisc            	       óp   — e Zd Z e eed¬«       eed¬«       eed¬«       eed¬«      ¬«      Zd„ Zd„ Z	y	)
ÚLabelOffsetzWhere to base +ve offsetr@   zValue for positive elementszWhere to base -ve offsetzValue for negative elements)ÚposModeÚposÚnegModeÚnegc                 ó<   — dx| _         | _        dx| _        | _        y )Nrî   r   )rñ   ró   rò   rô   r�   s    rp   rq   zLabelOffset.__init__�  s   € Ø"(Ð(ˆŒ�T”\ØÐˆŒ�4•8rr   c                 óŽ  — |j                   }|j                  }|j                  }|dk\  r| j                  }| j                  }n| j
                  }| j                  }|r|j                  }n|j                  }|rJ|r|j                  }	n|j                  }	|dk(  r|	|j                  z   }||z   S |dk(  r|	}||z   S |dk(  r|	|z   }||z   S )Nr   rë   rì   rí   )
Ú_flipXYrÚ   ÚjoinAxisrñ   rò   ró   rô   Ú_xÚ_yÚ_length)
rn   rÞ   ÚvalÚflipXYÚAÚjAÚmodeÚdeltaré   Ú_vs
             rp   Ú	_getValuezLabelOffset._getValue…  sÊ   € Ø—‘ˆØ×ÑˆØ�Z‰ZˆØ�Š6Ø—<‘<ˆDØ—H‘H‰Eà—<‘<ˆDØ—H‘HˆEÙØ—‘‰Aà—‘ˆAÙÙØ—U‘U‘à—U‘U�Ø�VŠ|Ø˜Ÿ™‘O�ð
 �‰wˆð	 �u’Ø�ð �‰wˆð �u’Ø�s‘F�Ø�‰wˆrr   N)
rÈ   rÉ   rÊ   rÌ   rÍ   ÚisOffsetModer   rÎ   rq   r  rj   rr   rp   rð   rð   z  sB   „ ÙÙ& |Ð9SÔTÙ" 8Ð1NÔOÙ& |Ð9SÔTÙ" 8Ð1NÔOô	€Hò órr   rð   c                   ó0   — e Zd Z ee¬«      Zd„ Zd„ Zd„ Zy)ÚPMVLabel©ÚBASEc                 ó>   — t        j                  | fi |¤Ž d| _        y ©Nr   )r>   rq   Ú_pmv©rn   Úkwdss     rp   rq   zPMVLabel.__init__§  s   € Ü�‰�tÑ$˜tÒ$Øˆ�	rr   c           
      ól   — t         j                  | «      }| j                  dk  rdddddddd	d
dœ	|   }|S )Nr   r-   r.   r/   r,   r<   r0   r+   r*   r1   )	r1   r*   r+   r0   r<   r,   r/   r.   r-   )r>   rŠ   r  rÕ   s     rp   rŠ   zPMVLabel._getBoxAnchor«  sB   € Ü×Ñ Ó%ˆØ�9‰9�QŠ; $¨3°D¸SÀSÈSÐVZÐ_bÐhlÑmÐnoÑp˜Øˆrr   c                 ó`   — t         j                  | «      }| j                  dk  r	ddddœ|   }|S )Nr   r&   r'   r%   )r%   r'   r&   )r>   r­   r  rÕ   s     rp   r­   zPMVLabel._getTextAnchor°  s2   € Ü× Ñ  Ó&ˆØ�9‰9�QŠ; U°XÀWÑMÈaÑP˜Øˆrr   N)	rÈ   rÉ   rÊ   rÌ   r>   rÎ   rq   rŠ   r­   rj   rr   rp   r  r  ¢  s   „ ÙØô
€Hòòó
rr   r  c                   ó¨   — e Zd ZdZ ee eed¬«       eed¬«       ee	d¬«       ee	d¬«       ee
d¬«       e edd	d
dd«      d¬«      ¬«      Zd„ Zy)ÚBarChartLabelúF
    An extended Label allowing for nudging, lines visibility etc
    zNon-zero for a drawn liner@   zColor for a drawn linezNone or fixed draw ends +/-zNone or fixed draw starts +/-zNon-zero sign dependent nudgerJ   rK   rL   rM   Úmidz(one of ('normal','anti','lo','hi','mid'))r  ÚlineStrokeWidthÚlineStrokeColorÚfixedEndÚ
fixedStartÚnudgerI   c                 óv   — t        j                  | fi |¤Ž d| _        d | _        d x| _        | _        d| _        y r
  )r  rq   r  r  r  r  r  r  s     rp   rq   zBarChartLabel.__init__Ã  s:   € Ü×Ñ˜$Ñ' $Ò'Ø ˆÔØ#ˆÔØ*.Ð.ˆŒ˜$œ-Øˆ�
rr   N)rÈ   rÉ   rÊ   rË   rÌ   r  rÍ   r   r   ÚNoneOrInstanceOfLabelOffsetr   r   rÎ   rq   rj   rr   rp   r  r  µ  sl   „ ññ ØÙ& ~Ð<WÔXÙ& }Ð;SÔTÙÐ ;ÐB_Ô`Ù!Ð"=ÐDcÔdÙ˜XÐ,KÔLÙ ¡ x°°t¸DÀÓ!GÐMwÔxô
€Hórr   r  c                   ó:   — e Zd ZdZ ee eed¬«      ¬«      Zd„ Z	y)ÚNA_Labelr  zText to be used for N/A valuesr@   )r  rQ   c                 ó<   — t         j                  | «       d| _        y )Nzn/a)r  rq   rQ   r�   s    rp   rq   zNA_Label.__init__Ò  s   € Ü×Ñ˜tÔ$Øˆ�	rr   N)
rÈ   rÉ   rÊ   rË   rÌ   r  rÍ   r   rÎ   rq   rj   rr   rp   r  r  Ê  s&   „ ññ ØÙ˜NÐ1QÔRô
€Hórr   r  )ÚCustomDrawChangerc                   ó0   — e Zd Zej                  fd„Zd„ Zy)ÚRedNegativeChangerc                 ó<   — t        j                  | «       || _        y rØ   )r  rq   rN   )rn   rN   s     rp   rq   zRedNegativeChanger.__init__Ù  s   € Ü×"Ñ" 4Ô(Ø"ˆ�rr   c                 ó€   — i }|j                   j                  d«      r |j                  |d<   | j                  |_        |S )Nú-rN   )rh   Ú
startswithrN   )rn   r·   ÚRs      rp   Ú_changerzRedNegativeChanger._changerÜ  s6   € ØˆØ�9‰9×Ñ Ô$Ø Ÿ]™]ˆAˆk‰NØ ŸN™NˆCŒMØˆrr   N)rÈ   rÉ   rÊ   r   Úredrq   r&  rj   rr   rp   r   r   Ø  s   „ Ø &§
¡
ó #órr   r   c                   ó(   — e Zd ZdZ ee¬«      Zd„ Zy)ÚXLabelz=like label but uses XPreFormatted/Paragraph to draw the _textr  c                 ó®   — t        j                  | g|¢­i |¤Ž |j                  dt        «      | _        |j                  d| j
                  «      | _        y )Nre   ÚdirectDrawClass)r>   rq   Úpopr   re   rc   )rn   Úargsr  s      rp   rq   zXLabel.__init__ç  sA   € Ü�‰�tÐ)˜TÒ) DÒ)ØŸ™ ¬MÓ:ˆŒØ—8‘8Ð-¨d¯h©hÓ7ˆ�rr   N)
rÈ   rÉ   rÊ   rË   rÌ   r>   rÎ   rq   r¹   rÅ   rj   rr   rp   r)  r)  ã  s   „ ÙGÙ˜Eô €Hò8ð
 rr   r)  )CÚ__version__Úreportlab.libr   Úreportlab.lib.utilsr   Úreportlab.lib.validatorsr   r   r   r   r	   r
   r   r   r   r   r   r   r   Úreportlab.lib.attrmapÚreportlab.pdfbase.pdfmetricsr   r   Úreportlab.graphics.shapesr   r   r   r   r   r   Úreportlab.graphics.widgetbaser   r   r   Úreportlab.platypusr   r   Úreportlab.lib.stylesr    r!   Úreportlab.lib.enumsr"   r#   r$   r¥   r±   Úutilsr)   rÁ   r†   Úrlextra.graphics.canvasadapterr;   ÚImportErrorr¼   r>   rÐ   r  rð   r  r  r  r  ÚNoneOrInstanceOfNA_LabelÚreportlab.graphics.charts.utilsr  r   r)  rj   rr   rp   ú<module>r>     sl  ðð €å  Ý +÷÷ ÷ õ ô $ß Fß Z× Zß <Ý 0ß 6ß <ß <Ñ <Ù	�G °	Ô	:€Ý +ð ˜ ¨$°C¸TÀsÐQUÐ\`ÑaØ˜ ¨$°C¸TÀsÐQUÐ\`Ñañ	
€ð
ÝAð ˜ g°%¸uÈ5ÐV^ÐckÐpxÑy€ôl#ˆFô l#÷\	(ñ (ñT �6˜%  fÓ-€ô$�*ô $ñL #¡<°Ó#<Ó=Ð ôˆuô ô&�Hô ô*
ˆ}ô 
ñ  ¡¨XÓ 6Ó7Ð å =ô	Ð*ô 	ôMˆUõ MøðM ò ØÒðús   ÂD4 Ä4D>Ä=D>