
    Mi                        S SK r S SKrS SKJrJrJr  S SKJr  S SKJ	r	J
r
  SSKJr  SSKJr  SSKJr  SS	KJrJrJrJrJr   " S
 S\R.                  5      rg)    N)AnyDictOptionalwarn)Color
ColorTypes   )	xmlwriter)
ChartTitle)Shape)_datetime_to_excel_datetime_supported_datetimequote_sheetnamexl_range_formulaxl_rowcol_to_cellc                   l
  ^  \ rS rSrSrSU 4S jjrSS\\\\	4      SS4S jjr
S\\\	4   SS4S jrS\\\	4   SS4S	 jrS\\\	4   SS4S
 jrS\\\	4   SS4S jrSS\\\\	4      SS4S jjrS\\\	4   SS4S jrS\\\	4   SS4S jrS\\\	4   SS4S jrSS\SS4S jjrS\SS4S jrSS jrSS jrSS\\\\	4      SS4S jjrSS\\\\	4      SS4S jjrSS\\\\	4      SS4S jjrSS\\\\	4      SS4S jjrSS\\\\	4      SS4S jjrSS\S    SS4S jjrSS jrS rS r S  r!S! r"S\4S" jr#S# r$S$ r%S% r&S& r'S' r(S( r)S) r*S* r+SS\\\\	4      4S+ jjr,S, r-S- r.S.\/S\04S/ jr1S0 r2S1 r3S2 r4S3 r5SS4 jr6SS5 jr7SS6 jr8SS7 jr9SS8 jr:SS9 jr;SS: jr<SS; jr=SS< jr>SS= jr?SS> jr@SS? jrASS@ jrBSSA jrCSB\DSS4SC jrESSD jrFSSE jrGSSF jrHSSG jrISSH jrJSSI jrKSSJ jrLSSK jrMSSL jrNSSM jrOSSN jrPSSO jrQSSP jrRSSQ jrSSSR jrTSSS jrUSST jrVSSU jrWSSV jrXSSW jrYSSX jrZSSY jr[SSZ jr\SS[ jr]SS\ jr^SS] jr_SS^ jr`SS_ jraSSS` jjrbSSa jrcSSSb jjrdSSc jreSSd jrfSSSe jjrgSSf jrhSSg jriSSh jrjSSi jrkSSj jrlSSk jrmSSl jrnSSm jroSSSn jjrpSSSo jjrqSSp jrrSSq jrsSSr jrtSSs jruSSt jrvSSu jrwSSv jrxSSw jrySSx jrzSSy jr{SSz\|S{\0SS4S| jjr}SSz\|S{\0SS4S} jjr~ SSz\|S{\0SS4S~ jjrSz\|SS4S jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSSS jjrSS jrSS jrSS jrS\/SS4S jrSS jrSS jrSS jrSSB\DSS4S jjrSS jrSSB\DSS4S jjrSSB\DSS4S jjrS\SS4S jrS\SS4S jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSB\DSS4S jrSB\DSS4S jrSrU =r$ )Chart   z2
A class for writing the Excel XLSX Chart file.


returnNc                   > [         TU ]  5         SU l        SU l        SU l        / U l        SU l        SU l        SU l        SU l	        / U l
        / U l        SU l        SU l        0 U l        SU l        SU l        0 U l        / U l        SU l        S	U l        SU l        0 U l        0 U l        0 U l        0 U l        0 U l        0 U l        S
U l        SU l        SU l        SU l        SU l         SU l!        SU l"        S	U l#        S	U l$        SU l%        SU l&        SU l'        SU l(        SU l)        SU l*        SU l+        SU l,        SU l-        SU l.        SU l/        SU l0        SU l1        [e        5       U l3        SU l4        SU l5        SU l6        0 U l7        S
U l8        SU l9        SU l:        SU l;        SU l<        U R{                  5         0 U l>        g)z
Constructor.

Ni   r      Fblr
    gapTi  i   between)?super__init__subtype
sheet_typeorientationseriesembeddedidseries_indexstyle_idaxis_ids	axis2_idscat_has_num_fmtrequires_categorylegendcat_axis_positionval_axis_positionformula_idsformula_datahoriz_cat_axishoriz_val_axis
protection	chartareaplotareax_axisy_axisy2_axisx2_axis
chart_nameshow_blanksshow_na_as_emptyshow_hiddenshow_crosseswidthheightx_scaley_scalex_offsety_offsettablecross_betweendefault_markerseries_gap_1series_gap_2series_overlap_1series_overlap_2
drop_lineshi_low_linesup_down_barssmooth_allowedr   titledate_category	date_1904remove_timezonelabel_positionslabel_position_defaultalready_insertedcombinedis_secondarywarn_sheetname_set_default_propertiesfill)self	__class__s    j/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/xlsxwriter/chart.pyr    Chart.__init__*   s    	 $!&!$!$  %  

&"   $ $  #\
"$!&(# %!"$$&	    optionsc                    Uc  0 nSU;  a  [        S5        gU R                  (       a  SU;  a  [        S5        g[        U R                  5      S:X  a  [        S5        gU R	                  UR                  S5      5      nU R	                  UR                  S5      5      nU R                  UR                  S5      UR                  S	5      5      u  pEU R                  X1R                  S
5      5      nU R                  X!R                  S5      5      nU R                  XQR                  S5      5      n[        R                  " U5      n	[        R                  " UR                  S5      5      n
[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      nU(       a  SU l        U(       a  SnSn
U R                  UR                  S5      5      nU R                  UR                  S5      5      nUR                  S5      nU R!                  UR                  S5      5      nU R!                  UR                  S5      5      nUUS.nU R#                  UR                  S5      5      nU R%                  UR                  S5      5      nUR                  SS5      nUR                  S5      nU(       a  [&        R(                  " U5      nUR                  S5      nUR                  S5      nU(       d  U(       a  SU l        UR                  S5      b  U(       a  US   U l        O
US   U l        UR                  S5      (       a  U(       a  US   U l        O
US   U l        0 SU_SU_SU_S	U_S U_S!U_S"U_S#U	_SU
_SU_SU_SU_SU_S$U_S%U_S&U_SU_UUUUS'.EnU R                  R5                  U5        g)(zr
Add a data series to a chart.

Args:
    options:  A dictionary of chart series options.

Returns:
    Nothing.

Nvaluesz%Must specify 'values' in add_series()
categoriesz=Must specify 'categories' in add_series() for this chart type   zGThe maximum number of series that can be added to an Excel Chart is 255namename_formulacategories_datavalues_data	name_datar\   patterngradientmarker	trendlinesmoothy_error_barsx_error_bars)rr   rq   pointsdata_labelsinvert_if_negativeFinvert_if_negative_colorr:   r9   Tr   overlapname_idval_data_idcat_data_idlinelabelsinvert_if_neginverted_color)r9   rs   
error_barsrp   )r   r,   lenr$   _list_to_formulaget_process_names_get_data_idr   _get_line_properties_get_fill_properties_get_pattern_properties_get_gradient_propertiesr\   _get_marker_properties_get_trendline_properties_get_error_bars_props_get_points_properties_get_labels_propertiesr   _from_valuerY   rJ   rI   rL   rK   append)r]   rb   rd   re   rg   rh   cat_idval_idrx   r{   r\   rl   rm   rn   ro   rp   rq   rr   r   rs   r|   r}   r~   r:   r9   r$   s                             r_   
add_seriesChart.add_seriesp   s    ?G 7"89!!l'&APQt{{s"%  &&w{{8'<=**7;;|+DE
 "00KK^!<

 "":{{;L/MN""6;;}+EF##L++k2JK ))'2 ))'++f*=> //I0FG 11'++j2IJ DI GD ,,W[[-BC 227;;{3KL	 X& 11'++n2MN11'++n2MN&2LQ
 ,,W[[-BC ,,W[[-GH  $8%@ %?@"..~>N ++i(++i( g $D ;;u)$+EN!$+EN! ;;y!!(/	(:%(/	(:%
f
*
 D
 L	

 w
 6
 6
 D
 D
 w
 
 f
 
 f
 ]
  n!
" w#
$ $+
0 	6"ra   c                 H    U R                  U R                  U5      nX l        g)zj
Set the chart X axis options.

Args:
    options:  A dictionary of axis options.

Returns:
    Nothing.

N)_convert_axis_argsr7   r]   rb   axiss      r_   
set_x_axisChart.set_x_axis        &&t{{G<ra   c                 H    U R                  U R                  U5      nX l        g)zi
Set the chart Y axis options.

Args:
    options: A dictionary of axis options.

Returns:
    Nothing.

N)r   r8   r   s      r_   
set_y_axisChart.set_y_axis  r   ra   c                 H    U R                  U R                  U5      nX l        g)zs
Set the chart secondary X axis options.

Args:
    options: A dictionary of axis options.

Returns:
    Nothing.

N)r   r:   r   s      r_   set_x2_axisChart.set_x2_axis       &&t||W=ra   c                 H    U R                  U R                  U5      nX l        g)zs
Set the chart secondary Y axis options.

Args:
    options: A dictionary of axis options.

Returns:
    Nothing.

N)r   r9   r   s      r_   set_y2_axisChart.set_y2_axis,  r   ra   c                    Uc  0 nU R                  UR                  S5      UR                  S5      5      u  p#U R                  X1R                  S5      5      nX R                  l        X0R                  l        X@R                  l        UR                  S5      (       a0  U R                  UR                  S5      5      U R                  l        O/U R                  UR                  S5      5      U R                  l        [        R                  " U5      U R                  l        [        R                  " UR                  S5      5      U R                  l        [        R                  " UR                  S5      5      U R                  l        U R!                  UR                  S	5      S
5      U R                  l        UR                  S5      U R                  l        UR                  SS5      U R                  l        g)zo
Set the chart title options.

Args:
    options: A dictionary of chart title options.

Returns:
    Nothing.

Nrg   rh   datafont	name_fontr\   rm   layoutToverlaynoneF)r   r   r   rQ   rg   formuladata_id_convert_font_argsr   r   r   r{   r   r\   r   rm   _get_layout_propertiesr   r   hidden)r]   rb   rg   rh   r   s        r_   	set_titleChart.set_title;  sr    ?G!00KK^!<
 ##L++f2EF 

)

$

 ;;v"55gkk&6IJDJJO #55gkk+6NODJJO  44W=

  44W[[5HI

 $<<W[[=TU

 !77H8MtT

 %[[3

 $KK6

ra   c                 0    U R                  U5      U l        g)zp
Set the chart legend options.

Args:
    options: A dictionary of chart legend options.

Returns:
    Nothing.
N)_get_legend_propertiesr-   r]   rb   s     r_   
set_legendChart.set_legendm  s     11':ra   c                 0    U R                  U5      U l        g)zv
Set the chart plot area options.

Args:
    options: A dictionary of chart plot area options.

Returns:
    Nothing.
N)_get_area_propertiesr6   r   s     r_   set_plotareaChart.set_plotareaz  s     11':ra   c                 0    U R                  U5      U l        g)zl
Set the chart area options.

Args:
    options: A dictionary of chart area options.

Returns:
    Nothing.
N)r   r5   r   s     r_   set_chartareaChart.set_chartarea  s     227;ra   r(   c                 6    Uc  SnUS:  d  US:  a  SnXl         g)zl
Set the chart style type.

Args:
    style_id: An int representing the chart style.

Returns:
    Nothing.
Nr   r
   0   )r(   )r]   r(   s     r_   	set_styleChart.set_style  s&     Ha<8b=H ra   optionc                 V    U(       d  gSSSS.nX;  a  [        SU S35        gXl        g)z
Set the option for displaying blank data in a chart.

Args:
    option: A string representing the display option.

Returns:
    Nothing.
Nr
   )r   zerospanz!Unknown show_blanks_as() option '')r   r<   )r]   r   valid_optionss      r_   show_blanks_asChart.show_blanks_as  s?      
 &4VHA>?!ra   c                     SU l         g)zZ
Display ``#N/A`` on charts as blank/empty cells.

Args:
    None.

Returns:
    Nothing.
TN)r=   r]   s    r_   show_na_as_empty_cellChart.show_na_as_empty_cell  s     !%ra   c                     SU l         g)z]
Display data on charts from hidden rows or columns.

Args:
    None.

Returns:
    Nothing.
TN)r>   r   s    r_   show_hidden_dataChart.show_hidden_data  s      ra   c                 J   Uc  0 nUR                  SU R                  5      U l        UR                  SU R                  5      U l        UR                  SS5      U l        UR                  SS5      U l        UR                  SS5      U l        UR                  S	S5      U l        g)
zp
Set size or scale of the chart.

Args:
    options: A dictionary of chart size options.

Returns:
    Nothing.
Nr@   rA   rB   r
   rC   rD   r   rE   )r   r@   rA   rB   rC   rD   rE   r   s     r_   set_sizeChart.set_size  s     ?G [[$**5
kk(DKK8{{9a0{{9a0J2J2ra   c                    Uc  0 n0 nUR                  SS5      US'   UR                  SS5      US'   UR                  SS5      US'   UR                  SS5      US'   U R                  UR                  S5      5      US'   X l        g)	zx
Set properties for an axis data table.

Args:
    options: A dictionary of axis table options.

Returns:
    Nothing.

N
horizontalr
   verticaloutline	show_keysr   r   )r   r   rF   )r]   rb   rF   s      r_   	set_tableChart.set_table  s     ?G%kk,:l#KK
A6j";;y!4i$[[a8k//F0CDf
ra   c                 j   Uc  0 nSnSnSnSnUR                  S5      (       a5  [        R                  " US   5      n[        R                  " US   S   5      nUR                  S5      (       a5  [        R                  " US   5      n[        R                  " US   S   5      nUUS.UUS.S.U l        g)zq
Set properties for the chart up-down bars.

Args:
    options: A dictionary of options.

Returns:
    Nothing.

Nupr\   down)r{   r\   )r   r   )r   r   r   r   rO   )r]   rb   up_lineup_fill	down_line	down_fills         r_   set_up_down_barsChart.set_up_down_bars  s     ?G 		 ;;t00?G00v1FGG ;;v2276?CI2276?63JKI  
 "!	
ra   c                 b   Uc  0 n[         R                  " U5      n[         R                  " UR                  S5      5      n[         R                  " UR                  S5      5      n[         R
                  " UR                  S5      5      nU(       a  SU l        U(       a  SnSnUUUUS.U l        g)zo
Set properties for the chart drop lines.

Args:
    options: A dictionary of options.

Returns:
    Nothing.

Nr\   rl   rm   r{   r\   rl   rm   )r   r   r   r   r   r   r\   rM   r]   rb   r{   r\   rl   rm   s         r_   set_drop_linesChart.set_drop_lines.  s     ?G))'2))'++f*=> //I0FG 11'++j2IJ DI GD  	
ra   c                 b   Uc  0 n[         R                  " U5      n[         R                  " UR                  S5      5      n[         R                  " UR                  S5      5      n[         R
                  " UR                  S5      5      nU(       a  SU l        U(       a  SnSnUUUUS.U l        g)zs
Set properties for the chart high-low lines.

Args:
    options: A dictionary of options.

Returns:
    Nothing.

Nr\   rl   rm   r   )r   r   r   r   r   r   r\   rN   r   s         r_   set_high_low_linesChart.set_high_low_linesU  s     ?G))'2))'++f*=> //I0FG 11'++j2IJ DI GD  	
ra   chartc                     Uc  gXl         g)z
Create a combination chart with a secondary chart.

Args:
    chart: The secondary chart to combine with the primary chart.

Returns:
    Nothing.

N)rX   )r]   r   s     r_   combineChart.combine|  s     =ra   c                 ~   U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         U R                  5         U R                  U R                  5        U R                  (       a  U R                  5         U R                  S5        U R                  5         g )Nc:chartSpace)_xml_declaration_write_chart_space_write_lang_write_style_write_protection_write_chart_write_sp_prr5   r%   _write_print_settings_xml_end_tag
_xml_closer   s    r_   _assemble_xml_fileChart._assemble_xml_file  s     	 	! 	 	 	  	 	$..) ==&&( 	.)ra   c                    US   R                  5       nUR                  U5        0 SUS   _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _S	UR                  S	5      _S
UR                  S
5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _UR                  S5      UR                  S5      S[        5       S.EnUR                  SS5      US'   U R	                  US	   5      US	'   UR                  SS5      US'   UR                  S5      (       a$  US   S   (       a  U R                  US   5      US'   UR                  S5      (       a$  US   S   (       a  U R                  US   5      US'   UR                  S5      (       a  US   R                  5       S   US'   UR                  S5      (       a  US   S:X  a  SUS'   OUS   S:X  a  OS US'   UR                  S5      (       a  SU l        UR                  S 5      (       a  SU l        SUS '   UR                  S5      (       a:  [        US   5      (       a'  [        US   U R                  U R                  5      US'   UR                  S5      (       a:  [        US   5      (       a'  [        US   U R                  U R                  5      US'   UR                  S5      (       a:  [        US   5      (       a'  [        US   U R                  U R                  5      US'   U R                  UR                  S!5      5      US!'   [        R                  " U5      US"'   [        R                  " UR                  S#5      5      US#'   [        R                   " UR                  S$5      5      US$'   [        R"                  " UR                  S%5      5      US%'   UR                  S$5      (       a  S US#'   UR                  S%5      (       a
  S US$'   S US#'   U R%                  UR                  S&5      5      US&'   U R%                  UR                  S'5      5      US''   U R'                  UR                  S(5      UR                  S)5      5      u  pEU R)                  XSR                  S*5      5      nXAS+   l        XQS+   l        XaS+   l        U R                  UR                  S,5      5      US+   l        U R3                  UR                  S-5      S5      US+   l        UR                  S.5      US"'   UR                  S/5      US0'   [        R                  " U5      US+   l        [        R                  " UR                  S15      5      US+   l        [        R                   " UR                  S25      5      US+   l        [        R"                  " UR                  S35      5      US+   l        U$ )4Ndefaultsreverseminmax
minor_unit
major_unitminor_unit_typemajor_unit_typedisplay_unitslog_basecrossingposition_axispositionlabel_positionlabel_align
num_formatnum_format_linkedinterval_unitinterval_tickF)r  r  	text_axisrQ   visibleTdisplay_units_visiblemajor_gridlinesminor_gridlinesr   on_tickmidCatr   	date_axisr  num_fontr{   r\   rl   rm   minor_tick_markmajor_tick_markrg   rh   r   rQ   r   name_layout	name_linename_borderborder	name_fillname_patternname_gradient)copyupdater   r   _get_display_units_get_gridline_propertieslowerrR   r   r   rS   rT   r   r   r   r   r   r   _get_tick_typer   r   rg   r   r   r   r   r   r{   r\   rl   rm   )r]   r   user_optionsrb   rg   rh   r   s          r_   r   Chart._convert_axis_args  sW   z"'')|$
Z(
w{{9-
 7;;u%
 7;;u%	

 '++l3
 '++l3
 w{{+<=
 w{{+<=
 W[[9
 J/
 J/
 W[[9
 J/
 gkk*:;
 7;;}5
  '++l3!
"  -@!A#
$ %[[9$[[9\+
0 "++i6Y !% 7 7_8M N_(/4KT(R$% ;;())g6G.H.S&*&C&C)*'D"#
 ;;())g6G.H.S&*&C&C)*'D"#
 88J#J/557:D 88O$$O$	1(0_%o&)3 )-_% ;;{##!%D ;;{##!&D $D 88E??24;??5UT^^T-A-ADK 88E??24;??5UT^^T-A-ADK 88J$7Z8H$I$I:Z $..$2F2F D
  227;;z3JKZ 11':V 11'++f2EFV  77I8NOY !99'++j:QRZ 88IDL 88J"DODL #'"5"5gkkBS6T"U"&"5"5gkkBS6T"U "00KK^!<

 ##L++f2EF "W ,W 'W!44W[[5MNW#::KK& 
W
 "++k2#KK6"77@W"77K8PQW % = =KK'!
W "'!?!?KK("
W ra   c                 <   U(       d  0 $ UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S5      UR                  S	S
5      UR                  S5      S.
nUS   (       a  [        US   S-  5      US'   US   (       a  S[        US   5      -  US'   UR                  S5      (       a  [        R                  " US   5      US'   U$ )Nrg   colorsizebolditalic	underlinepitch_familycharsetbaseliner   rotation)
rg   r.  r/  r0  r1  r2  r3  r4  r5  r6  d   `  )r   intr   r   )r]   rb   r   s      r_   r   Chart._convert_font_argsD  s    I KK'[[)KK'KK'kk(+ [1#KK7{{9-J2J/
 <tF|c12DL 
$s4
+;'<<D88G!--d7m<DMra   c                     [        U[        5      (       d5  U(       a,  SU;   a&  SU;  a   U R                  (       a  [        SU S35        U$ [	        U6 nU$ )N r   zSheetname in 'zE' contains spaces but isn't quoted. This may cause an error in Excel.)
isinstancelistrZ   r   r   )r]   r   r   s      r_   r   Chart._list_to_formulac  sW     $%%t4D<O<O$TF +8 9 K"D)ra   c                     Ubb  [        U[        5      (       a-  [        US   US   SS5      n[        US   5      S-   U-   nSnX4$ [        R
                  " SU5      (       a  UnSnX4$ )Nr
   r   Tr   !r   ^=?[^!]+!\$?[A-Z]+\$?\d+)r=  r>  r   r   rematch)r]   rg   rh   cells       r_   r   Chart._process_namest  s~     $%%(a$q'4F.tAw7#=D !! 5t<<#!!ra   c                    Ub  [        U5      S:X  a  g[        US   [        5      (       a  gU HG  nUc  M  [        U[        5      (       a  [        R
                  " SU5      (       a    g [        U5        MI     g! [         a       gf = f)Nr   r   	multi_strz[_ ]strnum)r   r=  r>  rI  rC  searchfloat
ValueError)r]   r   tokens      r_   _get_data_typeChart._get_data_type  s     <3t9>d1gt$$ E} %%%"))FE*B*Be "   s   +A;;
B	B	c                 \   U(       d  g UR                  S5      (       a  UR                  S5      nXR                  ;  a@  [        U R                  5      nU R                  R                  U5        X0R                  U'   U$ U R                  U   nU R                  U   c  X R                  U'   U$ )N=)
startswithlstripr0   r   r1   r   )r]   r   r   
formula_ids       r_   r   Chart._get_data_id  s      c""nnS)G ***T../J$$T*(2W%  ))'2J   ,404!!*-ra   c                     U(       d  g [         R                  " U5      nSSSSSSSSSS	S	S
SSS.nUR                  S5      nUb  X2;   a  X#   US'   O[        SU 35        g [        R
                  " U5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      nU(       a  S U l	        U(       a  S nS nXAS'   XQS'   XaS'   XqS'   U$ )N	automaticr   squarediamondtrianglexstardotdashcirclepluspicture)rX  r   rY  rZ  r[  r\  r]  r^  
short_dashr_  	long_dashr`  ra  rb  typezUnknown marker type 'r\   rl   rm   r{   )
r%  deepcopyr   r   r   r   r   r   r   r\   )r]   rn   typesmarker_typer{   r\   rl   rm   s           r_   r   Chart._get_marker_properties  s)     v& % " 
$ jj("#!&!3v,[M:; ))&1 ))&**V*<= //

90EF 11&**Z2HI DI GDvv#y%zra   c                 T   U(       d  g [         R                  " U5      nSSSSSSS.nUR                  S5      nX2;   a  X#   US'   O[        S	U S
35        g [        R
                  " U5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      nU R                  UR                  S5      5      nU(       a  S U l
        U(       a  S nS nXAS'   XQS'   XaS'   XqS'   XS'   U$ )Nexplinearlog	movingAvgpolypower)exponentialrl  rm  moving_average
polynomialrp  re  zUnknown trendline type 'r   r\   rl   rm   labelr{   )r%  rf  r   r   r   r   r   r   r   _get_trendline_label_propertiesr\   )	r]   ro   rg  
trend_typer{   r\   rl   rm   rt  s	            r_   r   Chart._get_trendline_properties  s4     MM),	 !) 
 ]]6*
 % 1If+J<q9: )))4 )))--*?@ //	i0HI 11)--
2KL 44Y]]75KL DI GD & &&) (*"'ra   c                    U(       d  0 $ [         R                  " U5      nU R                  UR                  S5      5      n[        R
                  " U5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      nU(       a  S U l	        U(       a  S nS nX!S'   X1S'   XAS'   XQS'   XaS'   U$ )Nr   r\   rl   rm   r{   )
r%  rf  r   r   r   r   r   r   r   r\   )r]   rt  r   r{   r\   rl   rm   s          r_   ru  %Chart._get_trendline_label_properties?  s     I e$ &&uyy'89 ))%0 ))%))F*;< //		)0DE 11%))J2GH DI GDfff"i$jra   c                    U(       d  0 $ SSSSS.nSSSSSS	.nUS
   nXC;   a  X4   US
'   O[        SU 35        0 $ SU;   a  US   US'   SU;   a  US   US'   SU;   a  US   S:X  a  SUS'   OUS   S:X  a  SUS'   O UR                  S5      US'   UR                  S5      US'   UR                  S5      US'   UR                  S5      US'   [        R                  " U5      US'   U$ )NfixedValr
   both)re  valueendcap	direction
percentagestdDevstdErrcust)fixedr  standard_deviationstandard_errorcustomre  zUnknown error bars type 'r}  	end_styler~  r  minusra  plus_valuesminus_values	plus_data
minus_datar{   )r   r   r   r   )r]   rb   r   rg  
error_types        r_   r   Chart._get_error_bars_propsh  s@   I )1PVW
  &"*&
 V_
!&!2Jv,ZL9:I g")'"2Jw '!#*;#7Jx  '!{#w.*1
;'%/*0
;'  %,KK$>
=!%,[[%@
>"")++k":
;#*;;|#<
<  #77@
6ra   c                 ^    SUR                  S5      0n[        R                  " U5      US'   U$ )Nr  r{   )r   r   r   )r]   rb   gridlines      r_   r(  Chart._get_gridline_properties  s3     w{{956 !55g>ra   c                    U(       d  g [         R                  " U5      nUR                  S5      nU(       aG  X R                  ;   a(  X R                  :X  a  S US'   O#U R                  U   US'   O[        SU S35        g UR                  S5      nSSSSS	S
.nU(       a  X4;   a  XC   US'   O[        S5        g U R                  UR                  S5      5      US'   [        R                  " U5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      n[        R                  " UR                  S5      5      nU(       a  S U l        U(       a  S nS nXQS'   XaS'   XqS'   XS'   UR                  S5      (       Ga  US    GH  n	U	c  M	  U	R                  S5      n
U
(       a)  [        R                  " S[        U
5      5      (       a  XS'   U	R                  S5      nU(       a*  UR!                  S5      (       a  UR#                  S5      U	S'   U R%                  XR                  S5      5      nXS'   U R                  U	R                  S5      5      U	S'   [        R                  " U	5      n[        R                  " U	R                  S5      5      n[        R                  " U	R                  S5      5      n[        R                  " U	R                  S5      5      nU(       a  S U l        U(       a  S nS nU	R                  S5      nU(       aH  X R                  ;   a(  X R                  :X  a  S U	S'   O$U R                  U   U	S'   O[        SU S35          g XYS'   XiS'   XyS'   XS'   GM     U$ )Nr  zUnsupported label position 'z' for this chart type	separatorz, z; z. 
r<  ),;.r  r<  zUnsupported label separatorr   r\   rl   rm   r{   r  r}  rB  r   rR  r   r   z' for chart type)r%  rf  r   rU   rV   r   r   r   r   r   r   r   r\   rC  rD  rI  rS  rT  r   )r]   r|   r  r  
separatorsr{   r\   rl   rm   rt  r}  r   r   s                r_   r   Chart._get_labels_properties  sJ     v& ::j)///:::)-F:&)-)=)=h)GF:&3H:=RST JJ{+	

 &&0&;{#23 00F1CDv ))&1 ))&**V*<= //

90EF 11&**Z2HI DI GDvv#y%z::h)=		'*RXX&A3u:NN',)$))I.w11#66'.~~c':E)$++GYYv5FG#*i  $ 7 7		&8I Jf 11%8 11%))F2CD  77		)8LM !99%))J:OP  $DI "GD !99Z0#7#77#'B'BB04E*-040D0DX0NE*-;H:EUVW# $f $f#*i $,j!m *p ra   c                    0 n[         R                  " U5      n[         R                  " UR                  S5      5      n[         R                  " UR                  S5      5      n[         R
                  " UR                  S5      5      nU(       a  S U l        U(       a  S nS nU R                  UR                  S5      S5      nX2S'   XBS'   XRS'   XrS'   XbS'   U$ )Nr\   rl   rm   r   Fr{   )r   r   r   r   r   r   r\   r   )r]   rb   arear{   r\   rl   rm   r   s           r_   r   Chart._get_area_properties(  s     ))'2 ))'++f*=> //I0FG 11'++j2IJ DI GD ,,W[[-BEJVV!YX#Zra   c                    0 nUc  0 nUR                  SS5      US'   UR                  S5      US'   U R                  UR                  S5      5      US'   U R                  UR                  S5      S5      US'   UR                  S5      (       a  SUS'   [        R                  " U5      n[        R
                  " UR                  S5      5      n[        R                  " UR                  S	5      5      n[        R                  " UR                  S
5      5      nU(       a  S U l        U(       a  S nS nU R                  UR                  S5      S5      nX2S'   XBS'   XRS	'   XrS'   XbS
'   U$ )Nr  rightdelete_seriesr   r   Fr   r\   rl   rm   r{   )	r   r   r   r   r   r   r   r   r\   )r]   rb   r-   r{   r\   rl   rm   r   s           r_   r   Chart._get_legend_propertiesL  sW   ?G$[[W=z")++o">00V1DEv66w{{87LeTx ;;v!'F: ))'2 ))'++f*=> //I0FG 11'++j2IJ DI GD ,,W[[-BEJvv#y!x%zra   c           	         0 nU(       d  0 $ U(       a  SnOSnUR                  5        H  nXT;  d  M
  [        SU S35        0 s  $    U Ha  nXaR                  5       ;  a  [        SU S35        0 s  $ X   n [        U5        US:  d  US	:  a  [        SU SU S
35        0 s  $ US X6'   Mc     U$ ! [         a    [        SU SU S35        0 s s  $ f = f)N)r\  y)r\  r  r@   rA   z
Property 'z!' not supported in layout optionsz%' must be specified in layout optionsz	' value 'z' must be numeric in layoutr   r
   z/' must be in range 0 < x <= 1 in layout optionsz.17g)keysr   rL  rM  )r]   argsis_textr   
propertieskeypropr}  s           r_   r   Chart._get_layout_properties|  s   I#J6J 99;C$z#&GHI	  D99;&z$'LMN	JEe
 qyEAI iw 73 4 	 $D\FL+ .   z$y7RST	s   7B00CCc                    / nU(       d  / $ U H  n0 nUb  [         R                  " U5      n[         R                  " UR                  S5      5      n[         R                  " UR                  S5      5      n[         R
                  " UR                  S5      5      nU(       a  S U l        U(       a  S nS nXTS'   XdS'   XtS'   XS'   UR                  U5        M     U$ )Nr\   rl   rm   r{   )r   r   r   r   r   r   r\   r   )	r]   user_pointsrs   
user_pointpointr{   r\   rl   rm   s	            r_   r   Chart._get_points_properties  s    I%JE%11*= 11*..2HI  77
y8QR !99*..:TU  $DI "GD $f $f#*i $,j!MM% = &@ ra   elementc                     UR                  S5      =(       a    US   S   nUR                  S5      =(       a    US   S   nUR                  S5      nUR                  S5      nU=(       d    U=(       d    U=(       d    U$ )Nr\   definedr{   rl   rm   )r   )r]   r  has_fillhas_linehas_patternhas_gradients         r_   _has_formattingChart._has_formatting  sk    ;;v&E76?9+E;;v&E76?9+Ekk),{{:.B8B{BlBra   c           
      `    U(       d  g SSSSSSSSS	S
.	nX;   a  X!   nU$ [        SU S35        g )Nhundreds	thousandstenThousandshundredThousandsmillionstenMillionshundredMillionsbillions	trillions)	r  r  ten_thousandshundred_thousandsr  ten_millionshundred_millionsr  r  zUnknown display_units type 'r   r   )r]   r  rg  s      r_   r'  Chart._get_display_units  s[     #$+!3") 1"$

 !!0M
  /a@Ara   c                 V    U(       d  g SSSSS.nX;   a  X!   nU$ [        SU S35        g )Noutinr   cross)outsideinsider   r  zUnknown tick_type 'r   r   )r]   	tick_typerg  s      r_   r*  Chart._get_tick_type  sL     	
 (I
  &yk34ra   c                 j    / nU R                    H   nUS   (       a  M  UR                  U5        M"     U$ Nr9   r$   r   )r]   primary_axes_seriesr$   s      r_   _get_primary_axes_seriesChart._get_primary_axes_series  s7     kkF)$$#**62 " #"ra   c                 j    / nU R                    H   nUS   (       d  M  UR                  U5        M"     U$ r  r  )r]   secondary_axes_seriesr$   s      r_   _get_secondary_axes_series Chart._get_secondary_axes_series  s7     "kkFi  %,,V4 " %$ra   c                    S[        U R                  5      -   nS[        U R                  5      -   [        U R                  5      -   nUS US 3nUS US-   S 3nUS   (       a6  U R                  R                  U5        U R                  R                  U5        US   (       d7  U R                  R                  U5        U R                  R                  U5        g g )Ni  r
   04dprimary_axes)r9  r&   r   r*   r)   r   )r]   r  chart_id
axis_countid1id2s         r_   _add_axis_idsChart._add_axis_ids  s    #dgg,&T^^,,s4==/AA
#z#./#zA~c23MM  %MM  %N#NN!!#&NN!!#& $ra   c                 0   SSS0S.U R                   S'   SSS0S.U R                  S'   SSSSS	.U R                  S'   SSS0S
SS.U R                  S'   U R	                  0 5        U R                  0 5        U R                  0 5        U R                  0 5        g )NGeneralr  r   )r  r  r   r
   r   r  )r  r  r
  r  r  )r  r  r  r  )r7   r8   r:   r9   r   r   r   r   r   s    r_   r[   Chart._set_default_properties+  s     $ )1~#
J $ )1~#
J $$	$
Z  $ )1~	$
Z  	ra   c                 `    SnUS-   nUS-   nUS-   nSU4SU4SU4/nU R                  SU5        g )	Nz"http://schemas.openxmlformats.org/zdrawingml/2006/chartzdrawingml/2006/mainz!officeDocument/2006/relationshipszxmlns:czxmlns:azxmlns:rr   )_xml_start_tag)r]   schemaxmlns_cxmlns_axmlns_r
attributess         r_   r   Chart._write_chart_spaceR  s[    51100>>    

 	NJ7ra   c                 6    SnSU4/nU R                  SU5        g )Nen-USvalzc:lang_xml_empty_tagr]   r  r  s      r_   r   Chart._write_langa  s"    cl^
Hj1ra   c                 X    U R                   nUS:X  a  g SU4/nU R                  SU5        g )Nr   r  zc:style)r(   r  )r]   r(   r  s      r_   r   Chart._write_stylei  s4    == q=h'(
Iz2ra   c                    U R                  S5        U R                  R                  5       (       a  U R                  5         OU R	                  U R                  5        U R                  5         U R                  5         U R                  5         U R                  5         U R                  (       a  U R                  5         U R                  S5        g )Nzc:chart)r  rQ   	is_hidden_write_c_auto_title_deleted_write_title_write_plot_area_write_legend_write_plot_vis_only_write_disp_blanks_asr=   _write_c_ext_lst_display_nar   r   s    r_   r   Chart._write_chartu  s    I&::!!,,. djj) 	 	 	!!# 	""$   ,,.)$ra   c                 X    U R                   nUS:X  a  g SU4/nU R                  SU5        g )Nr   r  zc:dispBlanksAs)r<   r  r  s      r_   r  Chart._write_disp_blanks_as  s5     %<cl^
,j9ra   c                    U R                  S5        U R                  U R                  R                  S5      S5        U R	                  SS05        U R	                  SS05        U R
                  nU(       a  UR                  (       a  SU R                  -   Ul        OU R                  Ul        U R                  Ul        U R                  Ul	        UR	                  SS05        UR	                  SS05        U R                  U R                  U R                  S.nU R                  (       a  U R                  U5        OU R                  U5        U R!                  U5        U R"                  U R$                  U R&                  S.nU R!                  U5        U(       aF  UR                  (       a5  UR"                  UR$                  UR&                  S.nUR!                  U5        U R                  (       a  U R                  U5        OU R                  U5        U R)                  5         U R+                  U R                  5        U R-                  S5        g )	Nz
c:plotArear   plotr  TF  )r7   r8   r)   )r  _write_layoutr6   r   _write_chart_typerX   rY   r&   fhr'   r7   r8   r)   rR   _write_date_axis_write_cat_axis_write_val_axisr:   r9   r*   _write_d_tabler   r   )r]   second_chartr  s      r_   r  Chart._write_plot_area  s   L) 	4==,,X6? 	5667 }}(("&."&'' #ggLO )-(9(9L% **ND+AB**NE+BC ++$--X!!$'  &T" llll
 	T" L55&..&..(22D ((.!!$'  & 	 	$--(,'ra   c                     U(       d  U R                  S5        g U R                  S5        U R                  X5        U R                  S5        g )Nc:layout)r  r  _write_manual_layoutr   r]   r   layout_types      r_   r  Chart._write_layout  sA     
+ 
+%%f:j)ra   c                    U R                  S5        US:X  a  U R                  SS/5        U R                  SS/5        U R                  SS/5        U R                  SS	US
   4/5        U R                  SS	US   4/5        US:w  a0  U R                  SS	US   4/5        U R                  SS	US   4/5        U R                  S5        g )Nzc:manualLayoutr  zc:layoutTarget)r  innerzc:xMode)r  edgezc:yModezc:xr  r\  zc:yr  textzc:wr@   zc:hrA   r  r  r   r  s      r_   r  Chart._write_manual_layout  s    ,- &  03C2DE 	I'89I'89EUF3K$8#9:EUF3K$8#9: & w(@'ABx0@(A'BC*+ra   c                     g N r]   r  s     r_   r  Chart._write_chart_type  s     	ra   c                 2    SU4/nU R                  SU5        g )Nr  z
c:groupingr  r  s      r_   _write_groupingChart._write_grouping  s    cl^
L*5ra   c                 &    U R                  U5        g r  )
_write_serr]   r$   s     r_   _write_seriesChart._write_series  s    ra   c                    U R                   nU =R                   S-  sl         U R                  S5        U R                  U5        U R                  U5        U R	                  U5        U R                  U5        U R                  US   5        U R                  US   5        U R                  US   5        U R                  US   5        U R                  US   5        U R                  US   5        U R                  U5        U R                  U5        U R                  (       a  U R                  US	   5        UR!                  S
5      (       a  U R#                  US
   5        U R%                  S5        g )Nr
   zc:serrn   r}   rs   r|   ro   r   rp   r~   )r'   r  
_write_idx_write_order_write_series_namer   _write_marker_write_c_invert_if_negative_write_d_pt_write_d_lbls_write_trendline_write_error_bars
_write_cat
_write_valrP   _write_c_smoothr   _write_c_ext_lst_inverted_colorr   )r]   r$   indexs      r_   r$  Chart._write_ser  sV   !!QG$ 	 	%  	' 	&! 	6(+, 	(()@A 	)* 	6(+, 	f[12 	vl34 	 	   !12 ::&''008H1IJ'"ra   r.  c                 `   SnSnSU4SU4/nSU4/nU R                  S5        U R                  SU5        U R                  S5        U R                  SU5        U R                  S	U05        U R                  S5        U R                  S5        U R                  S5        U R                  S5        g )
Nz&{6F2FDCE9-48DA-4B69-8628-5D25D57E5C99}z:http://schemas.microsoft.com/office/drawing/2007/8/2/charturiz	xmlns:c14c:extLstc:extzc14:invertSolidFillFmtzc14:spPrr.  )r  _write_a_solid_fillr   )r]   r.  r9  
xmlns_c_14attributes1attributes2s         r_   r5  %Chart._write_c_ext_lst_inverted_colorL  s     7Q
 CL*%

 $Z01J'G[145J4  '5!12*%23'"*%ra   c                    SnSnSU4SU4/nS/nU R                  S5        U R                  SU5        U R                  S5        U R                  S	U5        U R                  S5        U R                  S5        U R                  S5        g )
Nz&{56B9EC1D-385E-4148-901F-78D8002777C0}z9http://schemas.microsoft.com/office/drawing/2017/03/chartr9  zxmlns:c16r3r  r
   r:  r;  zc16r3:dataDisplayOptions16zc16r3:dispNaAsBlankr  )r]   r9  
xmlns_c_16r>  r?  s        r_   r  !Chart._write_c_ext_lst_display_nae  s     7P
 CLJ'

 "lJ'G[1891;?67'"*%ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:idxr  r  s      r_   r)  Chart._write_idxz       cl^
GZ0ra   c                 2    SU4/nU R                  SU5        g )Nr  c:orderr  r  s      r_   r*  Chart._write_order  s     cl^
Iz2ra   c                 x    US   b  U R                  US   US   5        g US   b  U R                  US   5        g g )Nrh   rx   rg   )_write_tx_formula_write_tx_valuer%  s     r_   r+  Chart._write_series_name  sJ     .!-""6.#96);LMF^'  0 (ra   c                 :    U(       a  U R                  SS/5        g g )Nzc:smooth)r  1r  )r]   rp   s     r_   r4  Chart._write_c_smooth  s     
\N; ra   c                 f   US   nUS   nS nUb  U R                   U   nU(       d  g U R                  S5        U R                  U5      nUS:X  a  SU l        U R	                  X$U5        O8US:X  a  SU l        U R                  X$5        OSU l        U R                  X$U5        U R                  S5        g )Nre   rz   zc:catrI  FrH  T)r1   r  rO  r+   _write_str_ref_write_multi_lvl_str_ref_write_num_refr   )r]   r$   r   r   r   cat_types         r_   r2  Chart._write_cat  s    &'$$W-D G$ &&t,u#(D x8$#(D ))'8 $(D x8'"ra   c                     US   nUS   nU R                   U   nU R                  S5        U R                  X$S5        U R                  S5        g )Nrd   ry   c:valrJ  )r1   r  rU  r   )r]   r$   r   r   r   s        r_   r3  Chart._write_val  sT    "'  )G$ 	G51'"ra   c                     U R                  S5        U R                  U5        US:X  a  U R                  U5        OUS:X  a  U R                  U5        U R	                  S5        g )Nzc:numRefrJ  rI  r  _write_series_formula_write_num_cache_write_str_cacher   r]   r   r   ref_types       r_   rU  Chart._write_num_ref  sZ    J' 	""7+u!!$'!!$'*%ra   c                     U R                  S5        U R                  U5        US:X  a  U R                  U5        OUS:X  a  U R                  U5        U R	                  S5        g )Nzc:strRefrJ  rI  r\  r`  s       r_   rS  Chart._write_str_ref  s\     	J' 	""7+u!!$'!!$'*%ra   c                    U(       d  g U R                  S5        U R                  U5        U R                  S5        [        US   5      nU R                  U5        [	        U5       HJ  nU R                  S5        [        U5       H  u  pVU R                  XV5        M     U R                  S5        ML     U R                  S5        U R                  S5        g )Nzc:multiLvlStrRefzc:multiLvlStrCacher   zc:lvl)r  r]  r   _write_pt_countreversed	enumerate	_write_ptr   )r]   r   r   countcat_datair  s          r_   rT  Chart._write_multi_lvl_str_ref  s     ./ 	""7+01 DHU# H(%h/q( 0 g& ' 	./,-ra   c                 v    UR                  S5      (       a  UR                  S5      nU R                  SU5        g )NrR  zc:f)rS  rT  _xml_data_element)r]   r   s     r_   r]  Chart._write_series_formula  s3     c""nnS)Gug.ra   c                 ,   U R                  U5        US   (       a=  U R                  U R                  S   5        U R                  U R                  S   5        g U R                  U R                  S   5        U R                  U R                  S   5        g )Nr  r   r
   )r  _write_axis_idr)   r*   r  s     r_   _write_axis_idsChart._write_axis_ids  sx     	4 a 01a 01 q 12q 12ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:axIdr  r  s      r_   rr  Chart._write_axis_id       cl^
Hj1ra   c                 T   US   nUS   nUS   nUb  U(       d  g U R                   nU R                  nUR                  S5      (       a  US   nU R                  S5        U R	                  US   5        U R                  UR                  S5      S S S 5        UR                  S5      (       d  U R                  S	5        U R                  XSR                  S5      5        U R                  UR                  S
5      5        U R                  UR                  S5      5        U R                  US   U5        U R                  U5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  U5        U R!                  UR                  S5      5        U R#                  US	   5        U R$                  (       d  UR                  S5      (       aq  UR                  S5      b  UR                  S5      S:X  d	  US   S:X  a!  U R'                  UR                  S5      5        O U R)                  UR                  S5      5        UR                  S5      (       d  U R+                  S	5        U R-                  UR                  S5      5        U R/                  S5        U R1                  UR                  S5      5        U R3                  UR                  S5      5        U R5                  S5        g )Nr7   r8   r)   r  zc:catAxr   r  r  r
   r  r  rQ   r  r  r  r  r
  r  r  r  r  r7  r  r  )r.   r2   r   r  rr  _write_scaling_write_delete_write_axis_pos_write_major_gridlines_write_minor_gridlinesr  _write_cat_number_format_write_major_tick_mark_write_minor_tick_mark_write_tick_label_posr   _write_axis_font_write_cross_axisr?   _write_crosses_write_c_crosses_at_write_auto_write_label_align_write_label_offset_write_c_tick_lbl_skip_write_c_tick_mark_skipr   r]   r  r7   r8   r)   r  is_horizontals          r_   r
  Chart._write_cat_axis$  s   hh
# 8))++ ::j!!j)HI&HQK( 	FJJy14tDzz)$$q! 	Xzz)'<= 	##FJJ/@$AB 	##FJJ/@$AB 	&/=9 	%%f- 	##FJJ/@$AB 	##FJJ/@$AB 	""6::.>#?@ 	&! 	fjj45 	x{+

9 5 5 

:&.::j)U2*%. ##FJJz$:; ((J)?@ zz+&&Q 	

= 9: 	  % 	##FJJ$?@ 	$$VZZ%@A)$ra   c                 V   US   nUS   nUS   nUR                  SU R                  5      nU R                  nUb  U(       d  g UR                  S5      =(       d    UnU R                  S5        U R	                  US   5        U R                  UR                  S5      UR                  S5      UR                  S	5      UR                  S
5      5        UR                  S5      (       d  U R                  S5        U R                  XRR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  US   U5        U R                  U5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  U5        U R!                  UR                  S5      5        U R#                  US   5        UR                  S5      b  US   S	:X  d	  US   S:X  a!  U R%                  UR                  S5      5        O U R'                  UR                  S5      5        U R)                  UR                  S5      5        U R+                  UR                  S5      5        U R-                  UR                  S5      5        U R/                  UR                  S5      UR                  S5      5        U R1                  S5        g )Nr7   r8   r)   r  c:valAxr
   r  r  r  r	  r  r  r  rQ   r  r  r  r  r   r
  r  r  r  r  r  )r   r/   r3   r  rr  ry  rz  r{  r|  r}  r  _write_number_formatr  r  r  r   r  r  r  r  _write_cross_between_write_c_major_unit_write_c_minor_unit_write_disp_unitsr   r  s          r_   r  Chart._write_val_axis  s   hh
#88J(>(>?++ 8 ::j)5XI&HQK( 	JJy!JJuJJuJJz"		
 zz)$$q! 	Xzz)'<= 	##FJJ/@$AB 	##FJJ/@$AB 	&/=9 	!!&) 	##FJJ/@$AB 	##FJJ/@$AB 	""6::.>#?@ 	&! 	fjj45 	x{+ JJz"*j!U*j!U* 

: 67 $$VZZ
%;< 	!!&**_"=> 	  L!9: 	  L!9: 	JJ'4K)L	
 	)$ra   c                 N   US   nUS   nUS   nUS   =(       d    U R                   nU R                  nUb  U(       d  g UR                  S5      =(       d    UnU R                  S5        U R	                  US   5        U R                  UR                  S5      UR                  S5      UR                  S	5      UR                  S
5      5        UR                  S5      (       d  U R                  S5        U R                  XSR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  US   U5        U R                  U5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  U5        U R!                  UR                  S5      5        U R#                  US   5        UR                  S5      b  US   S	:X  d	  US   S:X  a!  U R%                  UR                  S5      5        O U R'                  UR                  S5      5        U R)                  UR                  S5      5        U R+                  UR                  S5      5        U R-                  UR                  S5      5        U R/                  UR                  S5      UR                  S5      5        U R1                  S5        g )Nr7   r8   r)   r  r  r   r  r  r  r	  r  r
   r  r  rQ   r  r  r  r  r
  r  r  r  r  r  )r/   r3   r   r  rr  ry  rz  r{  r|  r}  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r   r  s          r_   _write_cat_val_axisChart._write_cat_val_axis  s    hh
#
#=t'='=++ 8 ::j)5XI&HQK( 	JJy!JJuJJuJJz"		
 zz)$$q! 	Xzz)'<= 	##FJJ/@$AB 	##FJJ/@$AB 	&/=9 	!!&) 	##FJJ/@$AB 	##FJJ/@$AB 	""6::.>#?@ 	&! 	fjj45 	x{+ JJz"*j!U*j!U* 

: 67 $$VZZ
%;< 	!!&**_"=> 	  L!9: 	  L!9: 	JJ'4K)L	
 	)$ra   c                 N   US   nUS   nUS   nUb  U(       d  g U R                   nUR                  S5      =(       d    UnU R                  S5        U R                  US   5        U R	                  UR                  S5      UR                  S5      UR                  S	5      UR                  S
5      5        UR                  S5      (       d  U R                  S5        U R                  XSR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  US   5        U R                  U5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  U5        U R                  UR                  S5      5        U R!                  US   5        U R"                  (       d  UR                  S5      (       aq  UR                  S5      b  UR                  S5      S	:X  d	  US   S:X  a!  U R%                  UR                  S5      5        O U R'                  UR                  S5      5        U R)                  S5        U R+                  S5        U R-                  UR                  S5      5        U R/                  UR                  S5      5        U R1                  UR                  S5      5        UR                  S5      (       a  U R3                  US   5        U R5                  UR                  S5      5        UR                  S5      (       a  U R7                  US   5        U R9                  S5        g )Nr7   r8   r)   r  zc:dateAxr   r  r  r  r	  r  r
   r  r  rQ   r  r  r  r  r
  r7  r  r  r  r  r  r  )r.   r   r  rr  ry  rz  r{  r|  r}  r  r  r  r  r  r   r  r  r?   r  r  r  r  r  r  r  _write_c_major_time_unitr  _write_c_minor_time_unitr   )r]   r  r7   r8   r)   r  s         r_   r	  Chart._write_date_axis6	  s   hh
# 8)) ::j)5XJ'HQK( 	JJy!JJuJJuJJz"		
 zz)$$q! 	Xzz)'<= 	##FJJ/@$AB 	##FJJ/@$AB 	&/* 	!!&) 	##FJJ/@$AB 	##FJJ/@$AB 	""6::.>#?@ 	&! 	fjj45 	x{+

9 5 5 

:&.::j)U2*%. ##FJJz$:; ((J)?@ 	 	  % 	##FJJ$?@ 	$$VZZ%@A 	  L!9: ::l##))&1B*CD 	  L!9: ::l##))&1B*CD*%ra   c                     U R                  S5        U R                  U5        U R                  U5        U R                  U5        U R	                  U5        U R                  S5        g )Nz	c:scaling)r  _write_c_log_base_write_orientation_write_c_max_write_c_minr   )r]   r  min_valmax_valr	  s        r_   ry  Chart._write_scaling	  s`     	K( 	x( 	( 	'" 	'"+&ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  z	c:logBaser  r  s      r_   r  Chart._write_c_log_base	  %     cl^
K4ra   c                 H    SnU(       a  SnSU4/nU R                  SU5        g )NminMaxmaxMinr  zc:orientationr  )r]   r  r  r  s       r_   r  Chart._write_orientation	  s*    Ccl^
OZ8ra   c                 :    Uc  g SU4/nU R                  SU5        g )Nr  zc:maxr  )r]   r  r  s      r_   r  Chart._write_c_max	  )     ?g&'
GZ0ra   c                 :    Uc  g SU4/nU R                  SU5        g )Nr  zc:minr  )r]   r  r  s      r_   r  Chart._write_c_min	  r  ra   c                 `    U(       a  US:X  a  SnUS:X  a  SnSU4/nU R                  SU5        g )Nr   rr   tr  zc:axPosr  )r]   r  r  r  s       r_   r{  Chart._write_axis_pos	  s:     czczcl^
Iz2ra   c                     UR                  S5      nSnUb  X!S   S   :w  a  SnUR                  S5      (       a  SnSU4SU4/nU R                  SU5        g 	Nr  r
   r   r   r  
formatCodesourceLinkedc:numFmt)r   r  )r]   r   format_codesource_linkedr  s        r_   r  Chart._write_number_format	  su    
 hh|, "{:6F|6T'TM 88'((M ;']+


 	J
3ra   c                     UR                  S5      nSnSnUb  X!S   S   :w  a  SnSnUR                  S5      (       a  SnU R                  (       d  U(       a  g SU4SU4/nU R                  SU5        g r  )r   r+   r  )r]   r   r  r  default_formatr  s         r_   r~  Chart._write_cat_number_format	  s     hh|, "{:6F|6T'TMN 88'((M ## ;']+


 	J
3ra   c                 <    SnSU4SU4/nU R                  SU5        g )Nr   r  r  r  r  )r]   r  r  r  s       r_   _write_data_label_number_format%Chart._write_data_label_number_format
  s2     ;']+


 	J
3ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  zc:majorTickMarkr  r  s      r_   r  Chart._write_major_tick_mark$
  &     cl^
-z:ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  zc:minorTickMarkr  r  s      r_   r  Chart._write_minor_tick_mark.
  r  ra   c                 H    Ub  US:X  a  SnSU4/nU R                  SU5        g )Nnext_tonextTor  zc:tickLblPosr  r  s      r_   r  Chart._write_tick_label_pos8
  s.    ;#*Ccl^
NJ7ra   c                 2    SU4/nU R                  SU5        g )Nr  z	c:crossAxr  r  s      r_   r  Chart._write_cross_axisA
       cl^
K4ra   c                 <    Uc  SnSU4/nU R                  SU5        g )NautoZeror  z	c:crossesr  r  s      r_   r  Chart._write_crossesH
  s'    ;Ccl^
K4ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:crossesAtr  r  s      r_   r  Chart._write_c_crosses_atQ
       cl^
M:6ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:autor  r  s      r_   r  Chart._write_autoX
  rw  ra   c                 \    Uc  SnUS:X  a  SnUS:X  a  SnSU4/nU R                  SU5        g )Nctrr  r  leftr   r  z	c:lblAlgnr  r  s      r_   r  Chart._write_label_align_
  sA     ;C'>C&=Ccl^
K4ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:lblOffsetr  r  s      r_   r  Chart._write_label_offseto
  r  ra   c                 :    Uc  g SU4/nU R                  SU5        g )Nr  zc:tickLblSkipr  r  s      r_   r  Chart._write_c_tick_lbl_skipv
  s%    ;cl^
OZ8ra   c                 :    Uc  g SU4/nU R                  SU5        g )Nr  zc:tickMarkSkipr  r  s      r_   r  Chart._write_c_tick_mark_skip
  s&    ;cl^
,j9ra   c                     U(       d  g US   (       d  g US   S   (       a4  U R                  S5        U R                  U5        U R                  S5        g U R                  S5        g )Nr  r{   r  zc:majorGridlinesr  r   r   r  r]   	gridliness     r_   r|  Chart._write_major_gridlines
  _     #VY' 23 i(01 23ra   c                     U(       d  g US   (       d  g US   S   (       a4  U R                  S5        U R                  U5        U R                  S5        g U R                  S5        g )Nr  r{   r  zc:minorGridlinesr  r  s     r_   r}  Chart._write_minor_gridlines
  r  ra   c                 P    Uc  U R                   nSU4/nU R                  SU5        g )Nr  zc:crossBetween)rG   r  r  s      r_   r  Chart._write_cross_between
  s.    ;$$Ccl^
,j9ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  zc:majorUnitr  r  s      r_   r  Chart._write_c_major_unit
  %     cl^
M:6ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  zc:minorUnitr  r  s      r_   r  Chart._write_c_minor_unit
  r  ra   c                 <    Uc  SnSU4/nU R                  SU5        g )Ndaysr  zc:majorTimeUnitr  r  s      r_   r  Chart._write_c_major_time_unit
  (    ;Ccl^
-z:ra   c                 <    Uc  SnSU4/nU R                  SU5        g )Nr  r  zc:minorTimeUnitr  r  s      r_   r  Chart._write_c_minor_time_unit
  r  ra   c                    U R                   nUR                  SS5      nUR                  S5      n/ nSnUR                  S5      (       a  [        US   [        5      (       a  US   nUR	                  S5      (       a  UR                  SS5      nSnS	S
SSSS.nUS:X  a  g X&;  a  g Xb   nU R                  S5        U R                  U5        U H  nU R                  U5        M     U R                  UR                  S5      S5        U(       a  U R                  5         U(       a  U R                  U5        U R                  U5        U R                  S5        g )Nr  r  r   r   r  overlay_r   r
   r  r   r  r   tr)r  r  topbottom	top_rightr   zc:legendr   r-   )r-   r   r=  r>  rS  replacer  _write_legend_pos_write_legend_entryr  _write_overlay_write_tx_prr   r   )r]   r-   r  r   r  r   allowedr6  s           r_   r  Chart._write_legend
  sN   ::j'2zz&!::o&&:f_6Mt+T+T"?3Mz**''
B7HG 
 v"$J' 	x( #E$$U+ #
 	6::h/: !d# 	&!*%ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:legendPosr  r  s      r_   r  Chart._write_legend_pos  r  ra   c                     U R                  S5        U R                  U5        U R                  S5        U R                  S5        g )Nzc:legendEntryr
   )r  r)  rz  r   )r]   r6  s     r_   r  Chart._write_legend_entry  s>     	O, 	 	1/*ra   c                 6    SnSU4/nU R                  SU5        g )Nr
   r  z	c:overlayr  r  s      r_   r  Chart._write_overlay)  "    cl^
K4ra   c                 Z    SnU R                   (       a  g SU4/nU R                  SU5        g )Nr
   r  zc:plotVisOnly)r>   r  r  s      r_   r  Chart._write_plot_vis_only1  s0     cl^
OZ8ra   c                     U R                  S5        U R                  5         U R                  5         U R                  5         U R	                  S5        g )Nzc:printSettings)r  _write_header_footer_write_page_margins_write_page_setupr   r   s    r_   r   Chart._write_print_settings=  sJ    -. 	!!# 	  " 	 +,ra   c                 &    U R                  S5        g )Nzc:headerFooterr  r   s    r_   r  Chart._write_header_footerL  s    ,-ra   c                 h    SnSnSnSnSnSnSU4SU4SU4SU4SU4S	U4/nU R                  S
U5        g )Ng      ?gffffff?g333333?r   r   r  r  headerfooterzc:pageMarginsr  )r]   r  r  r  r  r  r  r  s           r_   r  Chart._write_page_marginsP  sg     &M$K%L#Jvv

 	OZ8ra   c                 &    U R                  S5        g )Nzc:pageSetupr  r   s    r_   r  Chart._write_page_setupd  s    M*ra   c                 *    U R                  SS/5        g )Nzc:autoTitleDeletedrB  r  r   s    r_   r  !Chart._write_c_auto_title_deletedh  s    0:,?ra   rQ   r  c                     UR                  5       (       a  U R                  X5        g UR                  5       (       a  U R                  X5        g UR	                  5       (       a  U R                  U5        g g r  )has_name_write_title_richhas_formula_write_title_formulahas_formatting_write_title_format_onlyr]   rQ   r  s      r_   r  Chart._write_titlel  s\    >>""58  %%e;!!##))%0 $ra   c                 L   U R                  S5        U R                  UR                  X!R                  5        U R	                  UR
                  S5        UR                  (       a  U R                  5         U R                  UR                  5       5        U R                  S5        g Nzc:titler  )r  _write_tx_richrg   r   r  r   r   r  r   get_formattingr   r"  s      r_   r  Chart._write_title_richu  s|    I& 	EJJzzB 	5<<0 ==! 	%..01)$ra   c                    U R                  S5        U R                  UR                  UR                  5        U R	                  UR
                  S5        UR                  (       a  U R                  5         U R                  UR                  5       5        U R                  UR                  U5        U R                  S5        g r%  )r  rL  r   r   r  r   r   r  r   r'  r   r   r   r"  s      r_   r  Chart._write_title_formula  s     	I& 	u}}emm< 	5<<0 ==! 	%..01 	%**m4)$ra   c                     U R                  S5        U R                  UR                  S5        UR                  (       a  U R	                  5         U R                  UR                  5       5        U R                  S5        g r%  )r  r  r   r   r  r   r'  r   r]   rQ   s     r_   r!  Chart._write_title_format_only  sb    I& 	5<<0 ==! 	%..01)$ra   c                 j    U R                  S5        U R                  XUSS9  U R                  S5        g )Nc:txF)ignore_rich_pr)r  _write_richr   )r]   rQ   r  r   s       r_   r&  Chart._write_tx_rich  s7     	F# 	mEJ&!ra   c                 j    U R                  S5        U R                  U5        U R                  S5        g )Nr/  r  _write_vr   r,  s     r_   rM  Chart._write_tx_value  s.     	F# 	e&!ra   c                     S nUb  U R                   U   nU R                  S5        U R                  XS5        U R                  S5        g )Nr/  rI  )r1   r  rS  r   )r]   rQ   r   r   s       r_   rL  Chart._write_tx_formula  sK    $$W-DF# 	E/&!ra   c                     U(       a  UR                  S5      b  US   nOS nU R                  S5        U R                  XS5        U R                  5         U R	                  XU5        U R                  S5        g )Nr6  zc:rich)r   r  _write_a_body_pr_write_a_lst_style_write_a_p_richr   )r]   rQ   r   r  r0  r6  s         r_   r1  Chart._write_rich  sp     DHHZ(4J'HHH% 	h6 	! 	U.9(#ra   c                 6   / nUc	  U(       a  SnUbv  US:X  a#  UR                  S5        UR                  S5        OMUS:X  a#  UR                  S5        UR                  S5        O$UR                  SU45        UR                  S5        U R                  S	U5        g )
Ni@i@1 )rotr   )vertwordArtVerti )r@  eaVertr?  )r@  horzza:bodyPr)r   r  )r]   r6  r  r  s       r_   r:  Chart._write_a_body_pr  s    
H8#!!*-!!"9:X%!!*-!!"45!!5("34!!"23J
3ra   c                 &    U R                  S5        g )Nz
a:lstStyler  r   s    r_   r;  Chart._write_a_lst_style  s    L)ra   c                     U R                  S5        U(       d  U R                  U5        U R                  X5        U R                  S5        g Na:p)r  _write_a_p_pr_rich
_write_a_rr   )r]   rQ   r   r0  s       r_   r<  Chart._write_a_p_rich  sA     	E" ##D) 	$% ra   c                     U R                  S5        U R                  U5        U R                  5         U R                  S5        g rH  )r  rJ  _write_a_end_para_rprr   r]   r   s     r_   _write_a_p_formulaChart._write_a_p_formula  s>     	E" 	% 	""$% ra   c                 j    U R                  S5        U R                  U5        U R                  S5        g )Nza:pPr)r  _write_a_def_rprr   rO  s     r_   rJ  Chart._write_a_p_pr_rich  s0     	G$ 	d#'"ra   c                    Sn[         R                  " U5      n[         R                  " U5      nU(       a  UR                  S5      (       a  SnU(       d  U(       aY  U R	                  SU5        U(       a  U R                  SUS   05        U(       a  U R                  U5        U R                  S5        g U R                  SU5        g )NFr.  Tza:defRPr)	r   _get_font_style_attributes_get_font_latin_attributesr   r  r<  _write_a_latinr   r  )r]   r   	has_colorstyle_attributeslatin_attributess        r_   rS  Chart._write_a_def_rpr&  s    	 ;;DA ;;DADHHW%%Iy
,<=(('4=)AB##$45j)
,<=ra   c                 6    SnSU4/nU R                  SU5        g )Nr  langza:endParaRPrr  )r]   r^  r  s      r_   rN  Chart._write_a_end_para_rpr=  s#    tn%
NJ7ra   c                     U R                  S5        U R                  U5        U R                  U5        U R                  S5        g )Nza:r)r  _write_a_r_pr
_write_a_tr   )r]   rQ   r   s      r_   rK  Chart._write_a_rE  s>     	E" 	4  	% ra   c                    SnSn[         R                  " U5      n[         R                  " U5      nU(       a  US   (       a  SnUR                  SSU45        U(       d  U(       aY  U R	                  SU5        U(       a  U R                  SUS   05        U(       a  U R                  U5        U R                  S5        g U R                  SU5        g )NFr  r.  Tr   r^  za:rPr)	r   rV  rW  insertr  r<  rX  r   r  )r]   r   rY  r^  rZ  r[  s         r_   ra  Chart._write_a_r_prR  s    	 ;;DA ;;DADMI 	FD>2y)9:(('4=)AB##$45g&)9:ra   c                 (    U R                  SU5        g )Nza:tro  r,  s     r_   rb  Chart._write_a_tm  s     	ue,ra   c                     U(       a  UR                  S5      b  US   nOS nU R                  S5        U R                  X25        U R                  5         U R	                  U5        U R                  S5        g )Nr6  c:txPr)r   r  r:  r;  rP  r   )r]   r   r  r6  s       r_   r   Chart._write_tx_prr  sn     DHHZ(4J'HHH% 	h6 	! 	%(#ra   c                 (   Uc  U R                   nU(       d  g US   S:X  a  g U R                  S5        U R                  US   5        UR                  S5      (       a  U R	                  US   5        U R                  U5        U R                  S5        g )Nre  rX  zc:markerr/  )rH   r  _write_symbolr   _write_marker_sizer   r   )r]   rn   s     r_   r,  Chart._write_marker  s    >((F&>[(J' 	6&>* ::f##F6N3 	&!*%ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:sizer  r  s      r_   ro  Chart._write_marker_size  rw  ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:symbolr  r  s      r_   rn  Chart._write_symbol       cl^
J
3ra   chart_formatc                 .   U R                  U5      (       d  g U R                  S5        UR                  S5      (       a;  US   S   (       a.  SUS   ;   a  U R                  5         OU R	                  US   5        UR                  S5      (       a  U R                  US   5        UR                  S5      (       a  U R                  US   5        UR                  S5      (       a!  US   S   (       a  U R                  US   5        U R                  S5        g )Nc:spPrr\   r  r   rl   rm   r{   )	r  r  r   _write_a_no_fillr<  _write_a_patt_fill_write_a_grad_fill_write_a_lnr   )r]   rv  s     r_   r   Chart._write_sp_pr  s    ##L11H% F##V(<Y(Gf--%%' ((f)=>I&&##L$;<J''##L$<= F##V(<Y(G\&12(#ra   c                 "   / nUR                  S5      nUb*  [        US-   S-  5      S-  n[        SSU-  -   5      nSU4/nUR                  S5      (       d,  UR                  S	5      (       d  UR                  S
5      (       a{  U R                  SU5        SU;   a  U R                  5         OS	U;   a  U R	                  U5        UR                  S
5      nU(       a  U R                  U5        U R                  S5        g U R                  SU5        g )Nr@   g      ?   g      @g      ?i1  wr   r.  	dash_typeza:ln)r   r9  r  ry  r<  _write_a_prst_dashr   r  )r]   r{   r  r@   	line_types        r_   r|  Chart._write_a_ln  s    
 !!+,s2E uu}-.E,J88Ftxx00DHH[4I4I
3 ~%%'D((. -I''	2f%
3ra   c                 &    U R                  S5        g )Nza:noFillr  r   s    r_   ry  Chart._write_a_no_fill  s    J'ra   c                     U R                  S5        UR                  S5      (       a$  U R                  US   UR                  S5      5        U R                  S5        g )Nza:solidFillr.  transparency)r  r   _write_colorr   )r]   r\   s     r_   r<  Chart._write_a_solid_fill  sL     	M*88Gd7mTXXn-EF-(ra   c                    U(       d  g UR                   (       a  U R                  5         g UR                  [        R                  :X  a  U R                  X5        g UR                  [        R                  :X  a  U R                  X5        g g r  )_is_automatic_write_a_sys_clr_typer	   RGB_write_a_srgb_clrTHEME_write_a_scheme_clr)r]   r.  r  s      r_   r  Chart._write_color  sb     !!#[[JNN*""57[[J,,,$$U9 -ra   c                 @    SnSnSU4SU4/nU R                  SU5        g )NwindowFFFFFFr  lastClrza:sysClrr  )r]   r  last_clrr  s       r_   r  Chart._write_a_sys_clr  s8      CL!


 	J
3ra   c                     U(       d  g SUR                  5       4/nU(       a5  U R                  SU5        U R                  U5        U R                  S5        g U R	                  SU5        g )Nr  z	a:srgbClr)_rgb_hex_valuer  _write_a_alphar   r  )r]   r.  r  r  s       r_   r  Chart._write_a_srgb_clr  sa     e22456
Z8 -k*Z8ra   c                 R   UR                  5       u  p4nSU4/nUS:  d  US:  d  U(       aj  U R                  SU5        US:  a  U R                  U5        US:  a  U R                  U5        U(       a  U R	                  U5        U R                  S5        g U R                  SU5        g )Nr  r   za:schemeClr)_chart_schemer  _write_a_lum_mod_write_a_lum_offr  r   r  )r]   r.  r  schemelum_modlum_offr  s          r_   r  Chart._write_a_scheme_clr-  s    #(#6#6#8 fo&
Q;'A+z:{%%g.{%%g.##L1m,z:ra   r}  c                 2    SU4/nU R                  SU5        g )Nr  za:lumModr  r]   r}  r  s      r_   r  Chart._write_a_lum_modE      en%
J
3ra   c                 2    SU4/nU R                  SU5        g )Nr  za:lumOffr  r  s      r_   r  Chart._write_a_lum_offK  r  ra   c                 f    [        S[        U5      -
  S-  5      nSU4/nU R                  SU5        g )Nr7  r  r  za:alphar9  r  r  s      r_   r  Chart._write_a_alphaQ  s6     3S>T)*cl^
Iz2ra   c                 2    SU4/nU R                  SU5        g )Nr  z
a:prstDashr  r  s      r_   r  Chart._write_a_prst_dashZ  s     cl^
L*5ra   c                    U(       d  g U R                  S5        U R                  UR                  S5      5        U R                  U5        U R	                  US   5        US   S:X  a   U R                  UR                  S5      5        US   S:X  a   U R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S	5      5        S
U;   a  U R                  US
   5        UR                  S5      (       a  U R                  5         UR                  S5      (       a!  U R                  5         U R                  U5        U R                  S5        g )Nzc:trendlinerg   re  ro  orderrn  periodforwardbackward	interceptdisplay_r_squareddisplay_equation)r  _write_namer   r   _write_trendline_type_write_trendline_order_write_period_write_forward_write_backward_write_c_intercept_write_c_disp_rsqr_write_c_disp_eq_write_c_trendline_lblr   )r]   ro   s     r_   r0  Chart._write_trendlinea  sE    M* 	v./ 	)$ 	""9V#45 V&''	g(>? V+y}}X67 	IMM)45 	Y]]:67)###Ik$:;==,--##%==+,,!!# ''	2-(ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:trendlineTyper  r  s      r_   r  Chart._write_trendline_type  s      cl^
-z:ra   c                 0    Uc  g U R                  SU5        g )Nzc:namerh  r]   r   s     r_   r  Chart._write_name  s     <x.ra   c                 J    [        US5      nSU4/nU R                  SU5        g )Nr   r  rI  r  r  r  s      r_   r  Chart._write_trendline_order  s(    #qkcl^
Iz2ra   c                 J    [        US5      nSU4/nU R                  SU5        g )Nr   r  zc:periodr  r  s      r_   r  Chart._write_period  s(    #qkcl^
J
3ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  z	c:forwardr  r  s      r_   r  Chart._write_forward  r  ra   c                 B    U(       d  g SU4/nU R                  SU5        g )Nr  z
c:backwardr  r  s      r_   r  Chart._write_backward  s%     cl^
L*5ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:interceptr  r  s      r_   r  Chart._write_c_intercept  s    cl^
M:6ra   c                 .    S/nU R                  SU5        g )NrB  zc:dispEqr  r]   r  s     r_   r  Chart._write_c_disp_eq  s     \
J
3ra   c                 .    S/nU R                  SU5        g )NrB  z
c:dispRSqrr  r  s     r_   r  Chart._write_c_disp_rsqr       \
L*5ra   c                     U R                  S5        U R                  S S 5        U R                  5         U R                  US   5        US   (       a,  US   R	                  S5      nU(       a  U R                  U5        U R                  S5        g )Nzc:trendlineLblrt  r   )r  r  _write_trendline_num_fmtr   r   r  r   )r]   ro   r   s      r_   r  Chart._write_c_trendline_lbl  s    ,- 	4& 	%%' 	)G,- WW%))&1D%%d+*+ra   c                 0    SS/nU R                  SU5        g )N)r  r  )r  r   r  r  r  s     r_   r  Chart._write_trendline_num_fmt  s#     &


 	J
3ra   c                     U R                   nUc  g SU;   aA  US   S   (       a4  U R                  S5        U R                  U5        U R                  S5        g U R	                  S5        g )Nr{   r  zc:hiLowLines)rN   r  r   r   r  )r]   rN   s     r_   _write_hi_low_linesChart._write_hi_low_lines  sd    ((\!l6&:9&E/ l+n-/ra   c                     U R                   nUc  g US   S   (       a4  U R                  S5        U R                  U5        U R                  S5        g U R	                  S5        g )Nr{   r  zc:dropLines)rM   r  r   r   r  )r]   rM   s     r_   _write_drop_linesChart._write_drop_lines  s[    __
fi(. j)m,.ra   c                 :    Uc  g SU4/nU R                  SU5        g )Nr  z	c:overlapr  r  s      r_   _write_overlapChart._write_overlap  s'     ;cl^
K4ra   c                 J   U(       a  [        U5      nOSnU R                  S5        U R                  S5        U R                  U5        [	        U5       H)  nX   nUc  M   [        U5        U R                  X45        M+     U R                  S5        g ! [         a    Sn N5f = f)Nr   z
c:numCacher  	r   r  _write_format_coderf  rangerL  rM  ri  r   r]   r   rj  rl  rN  s        r_   r^  Chart._write_num_cache   s    IEEL) 		* 	U#uAGE}e NN1$  	,'  s   !BB"!B"c                     [        U5      nU R                  S5        U R                  U5        [        U5       H  nU R	                  X1U   5        M     U R                  S5        g )Nz
c:strCache)r   r  rf  r  ri  r   )r]   r   rj  rl  s       r_   r_  Chart._write_str_cache@  sW    D	L) 	U#uANN11g&  	,'ra   c                 (    U R                  SU5        g )Nzc:formatCoderh  r  s     r_   r  Chart._write_format_codeO  s     	~t4ra   c                 2    SU4/nU R                  SU5        g )Nr  z	c:ptCountr  r  s      r_   rf  Chart._write_pt_countT  r  ra   c                 ~    Uc  g SU4/nU R                  SU5        U R                  U5        U R                  S5        g )Nidxzc:ptr4  )r]   r  r}  r  s       r_   ri  Chart._write_pt[  sC     =cl^
FJ/ 	e&!ra   c                 (    U R                  SU5        g )Nzc:vrh  r  s     r_   r5  Chart._write_vj  s     	ud+ra   c                 J    U R                   (       d  g U R                  S5        g )Nzc:protection)r4   r  r   s    r_   r   Chart._write_protectiono  s    N+ra   c                 h    SnU(       d  g U H"  nUS-  nU(       d  M  U R                  X#5        M$     g )Nr   r
   )_write_d_pt_point)r]   rs   r6  r  s       r_   r.  Chart._write_d_ptv  s4    EQJE""50 ra   c                     U R                  S5        U R                  U5        U R                  U5        U R                  S5        g )Nzc:dPt)r  r)  r   r   )r]   r6  r  s      r_   r  Chart._write_d_pt_point  s>     	G$ 	 	% '"ra   c                    U(       d  g U R                  S5        UR                  S5      (       a  U R                  XS   5        UR                  S5      (       a  U R                  US   5        U R	                  U5        UR                  S5      (       a  U R                  US   5        UR                  S5      (       a  U R                  US   5        UR                  S5      (       a  U R                  5         UR                  S5      (       a  U R                  5         UR                  S5      (       a  U R                  5         UR                  S	5      (       a  U R                  5         UR                  S
5      (       a  U R                  5         UR                  S5      (       a  U R                  US   5        UR                  S5      (       a  U R                  5         U R                  S5        g )Nzc:dLblsr  r  r   r  
legend_keyr}  categoryseries_namer  r  leader_lines)r  r   _write_custom_labelsr  r   r  _write_d_lbl_pos_write_show_legend_key_write_show_val_write_show_cat_name_write_show_ser_name_write_show_percent_write_separator_write_show_leader_linesr   )r]   r|   s     r_   r/  Chart._write_d_lbls  s    I& ::h%%fX.>? ::l##001EF 	&! ::f!!&.1 ::j!!!!&"45 ::l##'') ::g  " ::j!!%%' ::m$$%%' ::l##$$& ::k""!!&"56 ::n%%))+)$ra   c                 &   SnU GH  nUS-  nUc  M  SnU R                  S5        U R                  US-
  5        UR                  S5      nU(       a  U R                  S5        GOUR                  S5      (       d-  UR                  S5      (       d  UR                  S5      (       GaC  U R	                  S S 5        UR                  S5      (       a  U R                  U5        O)UR                  S5      (       a  U R                  U5        S	nU(       a  U R                  U5        UR                  S5      (       a  U R                  US   5        O*UR                  S5      (       a  U R                  US   5        UR                  S5      (       a  U R                  5         UR                  S
5      (       a  U R                  5         UR                  S5      (       a  U R                  5         OU R                  U5        U R                  S5        GM     g )Nr   r
   Tzc:dLbldeleter   r}  r  Fr  r  )r  r)  r   rz  r  _write_custom_label_formula_write_custom_label_str_write_custom_label_formatr  r  r	  r
  r   )r]   parentr|   r6  rt  use_custom_formattingdelete_labels          r_   r  Chart._write_custom_labels  s   EQJE}$(!) OOEAI& 99X.L""1%9%%7););uyy?T?T ""4.99Y''44U;YYw''007,1)(33E:99Z(())%
*;<ZZ
++))&*<=::g&&((*::j))--/::m,,--/ //6h'e ra   c                     UR                  S5      nUR                  S5      nU R                  U5      nU R                  S5        U R                  X#SU(       + 5        U R	                  S5        U R                  U5        g )Nr}  r   r/  F)r   r  r  r1  r   r   )r]   rt  rQ   r   r   s        r_   r  Chart._write_custom_label_str  sq    		'"yy --e4F# 	e-?@&! 	% ra   c                     UR                  S5      nUR                  S5      nS nUb  U R                  U   nU R                  S5        U R                  X$S5        U R	                  S5        g )Nr   r   r/  rI  )r   r1   r  rS  r   )r]   rt  r   r   r   s        r_   r  !Chart._write_custom_label_formula  sg    ))I&))I&$$W-DF# 	G51&!ra   c                     UR                  S5      nU R                  U5      nU(       a#  U R                  U5        U R                  U5        g U(       a#  U R	                  S5        U R                  U5        g g )Nr   rx  )r   r  r   r   r  )r]   rt  r   r   s       r_   r   Chart._write_custom_label_format"  sc    yy --e4e$d#)d# ra   c                 6    SnSU4/nU R                  SU5        g )NrP  r  zc:showLegendKeyr  r  s      r_   r  Chart._write_show_legend_key.  s#    cl^
-z:ra   c                 6    SnSU4/nU R                  SU5        g )Nr
   r  z	c:showValr  r  s      r_   r  Chart._write_show_val6  r	  ra   c                 6    SnSU4/nU R                  SU5        g )Nr
   r  zc:showCatNamer  r  s      r_   r	  Chart._write_show_cat_name>  "    cl^
OZ8ra   c                 6    SnSU4/nU R                  SU5        g )Nr
   r  zc:showSerNamer  r  s      r_   r
  Chart._write_show_ser_nameF  r$  ra   c                 6    SnSU4/nU R                  SU5        g )Nr
   r  zc:showPercentr  r  s      r_   r  Chart._write_show_percentN  r$  ra   c                 (    U R                  SU5        g )Nzc:separatorrh  r  s     r_   r  Chart._write_separatorV  s    }d3ra   c                     SnSnSU4SU4/nU R                  S5        U R                  SU5        U R                  SS/5        U R                  S5        U R                  S5        g )	Nz&{CE6537A1-D6FC-4f65-9D91-7224C49458BB}z6http://schemas.microsoft.com/office/drawing/2012/chartr9  z	xmlns:c15r:  r;  zc15:showLeaderLinesrB  r  )r]   r9  
xmlns_c_15r  s       r_   r  Chart._write_show_leader_linesZ  su     7M
 CL*%


 	J'GZ01J<@'"*%ra   c                 2    SU4/nU R                  SU5        g )Nr  z	c:dLblPosr  r  s      r_   r  Chart._write_d_lbl_posn  r  ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:deleter  r  s      r_   rz  Chart._write_deleteu  ru  ra   c                 F    SnU(       d  g SU4/nU R                  SU5        g )Nr
   r  zc:invertIfNegativer  )r]   invertr  r  s       r_   r-  !Chart._write_c_invert_if_negative|  s)    cl^
0*=ra   c                 @   U(       d  g U R                  S5        U R                  UR                  S5      S 5        U R                  5         U R                  S5        U R	                  U5        U R                  5         U R                  S5        U R                  S5        g )Nrk  r6  rI  )r  r:  r   r;  rJ  rN  r   rO  s     r_   r  Chart._write_axis_font  s     H%dhhz2D9!E"%""$% (#ra   c                 (    U R                  SU5        g )Nza:latinr  r  s     r_   rX  Chart._write_a_latin  s    Iz2ra   c                 |   U R                   nU(       d  g U R                  S5        US   (       a  U R                  5         US   (       a  U R                  5         US   (       a  U R	                  5         US   (       a  U R                  5         US   (       a  U R                  US   5        U R                  S5        g )Nzc:dTabler   r   r   r   r   )rF   r  _write_show_horz_border_write_show_vert_border_write_show_outline_write_show_keysr   r   )r]   rF   s     r_   r  Chart._write_d_table  s    

J'((*((*$$&!!#=eFm,*%ra   c                 .    S/nU R                  SU5        g )NrB  zc:showHorzBorderr  r  s     r_   r:  Chart._write_show_horz_border       \
.
;ra   c                 .    S/nU R                  SU5        g )NrB  zc:showVertBorderr  r  s     r_   r;  Chart._write_show_vert_border  rA  ra   c                 .    S/nU R                  SU5        g )NrB  zc:showOutliner  r  s     r_   r<  Chart._write_show_outline  s     \
OZ8ra   c                 .    S/nU R                  SU5        g )NrB  z
c:showKeysr  r  s     r_   r=  Chart._write_show_keys  r  ra   c                     U(       d  g US   (       a  U R                  SUS   5        US   (       a  U R                  SUS   5        g g )Nrr   r\  rq   r  )_write_err_barsr]   r   s     r_   r1  Chart._write_error_bars  sI     n%  j&@An%  j&@A &ra   c                    U(       d  g U R                  S5        U R                  U5        U R                  US   5        U R                  US   5        US   (       d  U R	                  5         US   S:X  a  O/US   S:X  a  U R                  U5        OU R                  US   5        U R                  U5        U R                  S5        g )Nz	c:errBarsr  re  r~  r  r  r}  )	r  _write_err_dir_write_err_bar_type_write_err_val_type_write_no_end_cap_write_custom_error_write_error_valr   r   )r]   r  r   s      r_   rI  Chart._write_err_bars  s     K( 	I& 	  K!89 	  F!34(#""$f)6)$$Z0 !!*W"56 	*%+&ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:errDirr  r  s      r_   rM  Chart._write_err_dir  ru  ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:errBarTyper  r  s      r_   rN  Chart._write_err_bar_type
       cl^
NJ7ra   c                 2    SU4/nU R                  SU5        g )Nr  zc:errValTyper  r  s      r_   rO  Chart._write_err_val_type  rX  ra   c                 .    S/nU R                  SU5        g )NrB  z
c:noEndCapr  r  s     r_   rP  Chart._write_no_end_cap  r  ra   c                 2    SU4/nU R                  SU5        g )Nr  rY  r  r  s      r_   rR  Chart._write_error_val  rG  ra   c                    US   (       ah  U R                  S5        [        US   [        5      (       a  U R                  US   5        OU R	                  US   US   S5        U R                  S5        US   (       ai  U R                  S5        [        US   [        5      (       a  U R                  US   5        OU R	                  US   US   S5        U R                  S5        g g )Nr  zc:plusr  rJ  r  zc:minusr  )r  r=  r>  _write_num_litrU  r   rJ  s     r_   rQ  Chart._write_custom_error%  s     m$)*]3T::##J}$=>##}-z+/F h'n%	**^4d;;##J~$>?##~.
<0H% i( &ra   c                 6   [        U5      nU R                  S5        U R                  S5        U R                  U5        [	        U5       H)  nX   nUc  M   [        U5        U R                  X45        M+     U R                  S5        g ! [         a    Sn N5f = f)Nzc:numLitr  r   r  r  s        r_   r`  Chart._write_num_lit@  s    D	 	J' 		* 	U#uAGE}e NN1$  	*%  s   B		BBc                 
   U R                   nUc  g U R                  S5        U R                  S5        U R                  UR	                  S5      5        U R                  UR	                  S5      5        U R                  S5        g )Nzc:upDownBars   r   r   )rO   r  _write_gap_width_write_up_barsr   _write_down_barsr   )r]   rO   s     r_   _write_up_down_barsChart._write_up_down_bars^  sx    ((N+ 	c" 	L,,T23 	l..v67.)ra   c                 :    Uc  g SU4/nU R                  SU5        g )Nr  z
c:gapWidthr  r  s      r_   rf  Chart._write_gap_widthr  s'     ;cl^
L*5ra   c                     US   (       aA  US   S   (       a4  U R                  S5        U R                  U5        U R                  S5        g U R                  S5        g )Nr{   r  zc:upBarsr  r]   
bar_formats     r_   rg  Chart._write_up_bars|  sR     f*V"4Y"?
+ j)j)
+ra   c                     US   (       aA  US   S   (       a4  U R                  S5        U R                  U5        U R                  S5        g U R                  S5        g )Nr{   r  z
c:downBarsr  rn  s     r_   rh  Chart._write_down_bars  sR     f*V"4Y"?- j)l+-ra   c                     U(       d  g SU4/nU R                  S5        U R                  SU5        U(       a3  U R                  S5        U R                  S5        U R                  S5        U R                  S5        g )Nr  zc:dispUnitszc:builtInUnitzc:dispUnitsLblr  r  )r]   unitsdisplayr  s       r_   r  Chart._write_disp_units  sq     en%
M*OZ8 01
+./-(ra   c                    SS/nUS   S:X  a  / nU R                  SU5        U R                  U5        US   S:X  a  U R                  US   5        O(U R                  US   5        U R	                  US   5        U R                  S5        g )N)flipr   )rotWithShaperP  re  rl  z
a:gradFillangle)r  _write_a_gs_lst_write_a_lin_write_a_path_write_a_tile_rectr   )r]   rm   r  s      r_   r{  Chart._write_a_grad_fill  s     '(=>
Fx'JL*5 	X&Fx'hw/0 x/0 ##HV$45,'ra   c                    US   nUS   nU R                  S5        [        U5       HN  u  pE[        X$   S-  5      nSU4/nU R                  SU5        U R                  U5        U R	                  S5        MP     U R	                  S5        g )N	positionscolorsza:gsLstr  posza:gs)r  rh  r9  r  r   )r]   rm   r  r  rl  r.  r  r  s           r_   r{  Chart._write_a_gs_lst  s    [)	(#I&!&)HAilT)*C #,J
3e$f% * 	)$ra   c                 P    [        SU-  5      nSU4S/nU R                  SU5        g )Nr8  ang)scaled0za:linr  )r]   rz  r  s      r_   r|  Chart._write_a_lin  s7     EEM" EN


 	GZ0ra   c                 v    SU4/nU R                  SU5        U R                  U5        U R                  S5        g )Npathza:path)r  _write_a_fill_to_rectr   r]   gradient_typer  s      r_   r}  Chart._write_a_path  s?     }-.
Hj1 	""=1(#ra   c                 F    US:X  a  / SQnOSS/nU R                  SU5        g )Nshape))r   50000)r  r  )r  r  )r   r  )r   100000)r  r  za:fillToRectr  r  s      r_   r  Chart._write_a_fill_to_rect  s4     G#J  J
 	NJ7ra   c                 B    US:X  a  / nOSS/nU R                  SU5        g )Nr  )r  -100000)r   r  z
a:tileRectr  r  s      r_   r~  Chart._write_a_tile_rect  s2     G#J ! J
 	L*5ra   c                     SUS   4/nU R                  SU5        U R                  US   5        U R                  US   5        U R                  S5        g )Nprstrl   z
a:pattFillfg_colorbg_color)r  _write_a_fg_clr_write_a_bg_clrr   )r]   rl   r  s      r_   rz  Chart._write_a_patt_fill
  s^     wy123
L*5 	WZ01 	WZ01,'ra   c                 j    U R                  S5        U R                  U5        U R                  S5        g )Nza:fgClrr  r  r   r]   r.  s     r_   r  Chart._write_a_fg_clr  ,    I&% )$ra   c                 j    U R                  S5        U R                  U5        U R                  S5        g )Nza:bgClrr  r  s     r_   r  Chart._write_a_bg_clr  r  ra   );rW   r*   r)   r.   r+   r;   r5   rX   rG   rS   rR   rH   rM   r%   r\   r1   r0   rA   rN   r2   r3   r&   rY   rV   rU   r-   r#   r6   r4   rT   r,   r$   rI   rJ   r'   rK   rL   r"   r<   r?   r>   r=   rP   r(   r!   rF   rQ   rO   r/   rZ   r@   r:   r7   rD   rB   r9   r8   rE   rC   )r   Nr  )r   )F)__name__
__module____qualname____firstlineno____doc__r    r   r   rI  r   r   r   r   r   r   r   r   r   r   r9  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rO  r   r   r   ru  r   r(  r   r   r   r   r   dictboolr  r'  r*  r  r  r  r[   r   r   r   r   r  r  r  r  r  r!  r&  r$  r   r5  r  r)  r*  r+  r4  r2  r3  rU  rS  rT  r]  rs  rr  r
  r  r  r	  ry  r  r  r  r  r{  r  r~  r  r  r  r  r  r  r  r  r  r  r  r  r|  r}  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r   r  r  r  r!  r&  rM  rL  r1  r:  r;  r<  rP  rJ  rS  rN  rK  ra  rb  r   r,  ro  rn  r   r|  ry  r<  r  r  r  r  r  r  r  r  r0  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r^  r_  r  rf  ri  r5  r   r.  r  r/  r  r  r  r  r  r  r	  r
  r  r  r  r  rz  r-  r  rX  r  r:  r;  r<  r=  r1  rI  rM  rN  rO  rP  rR  rQ  r`  ri  rf  rg  rh  r  r{  r{  r|  r}  r  r~  rz  r  r  __static_attributes____classcell__)r^   s   @r_   r   r      s   DLM#(4S>": M#d M#^$sCx. T $sCx. T 4S> d 4S> d 07$sCx.!9 07T 07d;$sCx. ;T ;;DcN ;t ;<T#s(^ < <!# !d !&"S "T "2
%
 3c3h 8 3D 3*$sCx.!9 T 0'
c3h(@ '
D '
R%
htCH~&> %
$ %
N%
(4S>*B %
d %
NXg. $ ,BOb>"" c < D>@9v'R4l	}~"H.htCH~.F .`*X'RCt C C2(#%' N82
3%:
:F(P
*,*6 3#j&U &t &2&*131<!#F#& &".:/32Y%vY%vZ%xf&P'&5	91134.46	4;;855725 79:4&4&:77;;6&p7+5
9-.9(+@1* 1T 1d 1%z %$ %SW %( 8=%%04%	%0%j %T % """$*4,*!!#>.8!;6-
$*&224$ $$ $<#4J():% :t :49u 9D 9$; ;d ;04c 4d 44c 4d 436.)`;/3456746,*40"/"5(@(5
5",
,1#7%r6(p! " 
$;59994&(54	>$"3&><<96
B"'H48861)6&<*(6,.)$(2%$
1
$8$6(%U %t %%U %t % %ra   r   )r%  rC  typingr   r   r   warningsr   xlsxwriter.colorr   r	   r   r   chart_titler   r  r   utilityr   r   r   r   r   	XMLwriterr   r  ra   r_   <module>r     sB     	 & &  .  #  FD%I FD%ra   