§
    £”j  ã                   ó²  — d dl mZmZmZ d7d„Zd7d„Z	 	 d8d„Z G d„ d	¦  «        Zd
„ Z	 	 	 d9d„Z	d dl
mZ edz  Zdez  Zdez  Zd„ Zd„ Zd„ Zd„ ZdZdez
  Z G d„ d¦  «        Zd„ Zd:d„Zedk    råd dl mZ d dlmZmZ  edd¦  «        Z eedddd d!d!ee¬"¦	  «	          eed#d$dd%d!d!ee¬"¦	  «	         e                     d&gd'd(¬)¦  «          e eg d*¢g d+¢g d,¢g¦  «        ¦  «          e ed-d.gd/d0gg¦  «        ¦  «          e ed1d.gd2d0gg¦  «        ¦  «          e ed3d4gd0d5gg¦  «        ¦  «          e eg d*¢d3d4gg d6¢g¦  «        ¦  «         dS dS );é    )ÚDrawingÚPolygonÚLineNçš™™™™™¹?c                 ó8   — |€ddl m} | r || d|z
  ¦  «        }|S )Nr   )ÚBlackeré   )Úreportlab.lib.colorsr   )ÚcolÚshdÚshadingr   s       úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/charts/utils3d.pyÚ
_getShadedr      s8   € Ø
€{Ø0Ð0Ð0Ð0Ð0Ð0ØÐ,�g�g˜c ! G¡)Ñ,Ô,�Ø€Jó    c                 ó8   — |€ddl m} | r || d|z
  ¦  «        }|S )Nr   )ÚWhiterr	   )r
   r   )r   r   Úlightingr   s       r   Ú_getLitr   	   s8   € Ø
€{Ø/Ð/Ð/Ð/Ð/Ð/ØÐ,�f�f˜S  8¡Ñ,Ô,�Ø€Jr   r	   c                 óš  — t          |d |¦  «        }t          |d |dz  ¦  «        }| |	|
|fd„}t          ||¦  «        }|s|r*||k    r ||||||||¬¦  «          ||||||||¬¦  «         |                      t          ||||||||f|	|
|d¬¦  «        ¦  «         |s|r,|                      t	          |||||
|	p|¬¦  «        ¦  «         d S d S )Ng       @c
                 ó|   — |                      t          | || |z   ||z   ||z   ||z   ||f|||	d¬¦  «        ¦  «         d S )Nr	   )ÚstrokeWidthÚstrokeColorÚ	fillColorÚstrokeLineJoin)Úaddr   )
Úx1Úx2Úy1Úy2ÚxoffÚyoffÚGr   r   r   s
             r   Ú_add_3d_barz!_draw_3d_bar.<locals>._add_3d_bar   sh   € à	�Š�g�r˜"˜b ™g b¨¡g¨r°$©w°r¸$±wÀÀ2ÐFØ#°È	Ðabðdñ dô dñ 	eô 	eð 	eð 	eð 	er   )r   r	   )r   r   r   r   )r   r   )r   Úmaxr   r   r   )r"   r   r   Úy0ÚyhighÚxdepthÚydepthr   ÚfillColorShadedr   r   r   ÚfillColorShadedTopr#   Úusds                  r   Ú_draw_3d_barr,      sS  € õ ! ¨4°Ñ8Ô8€OÝ# I¨d°7¸3±;Ñ?Ô?Ðð  K¸[ÐT]ðeð eð eð eõ
 ˆb�%‰.Œ.€CØð T�ð TØˆuŠ9ˆ9ØˆK˜˜R  U¨F°FÀoÐVÑVÔVÐVàˆ�B˜˜C  f¨fÐ@RÐSÑSÔSÐSà‡E‚E�'�2�b˜˜B˜r %¨¨5Ð1Ø¨[ÀIÐ]^ð`ñ `ô `ñ aô að að ð l�ð lØ	�Š�d�B˜˜R °+È;ÐKiÐZiÐjÑjÔjÑkÔkÐkÐkÐkðlð lr   c                   ó   — e Zd Zdd„ZdS )Ú_YStripr   c                 ój   — || _         || _        || _        || _        t	          |||¦  «        | _        d S ©N)r%   r   Úsloper   r   r)   )Úselfr%   r   r1   r   r)   r   s          r   Ú__init__z_YStrip.__init__)   s8   € ØˆŒØˆŒØˆŒ
Ø"ˆŒÝ)¨)°OÀGÑLÔLˆÔÐÐr   N)r   )Ú__name__Ú
__module__Ú__qualname__r3   © r   r   r.   r.   (   s.   € € € € € ðMð Mð Mð Mð Mð Mr   r.   c                 ó.   — | || |z   ||z   ||z   ||z   ||gS r0   r7   )Úx0r   r%   r   r    r!   s         r   Ú_ystrip_polyr:   0   s)   € Øˆr�"�T‘'˜"˜T™' " T¡'¨"¨T©'°"°RÐ8Ð8r   c                 ó  — t          ||z
  ¦  «        }||z  }||z  }|dk    rdp| t          |¦  «        z  }t          ||z
  ¦  «        }|dk    rdp||z
  |z  }||k    rt          |	|
|¦  «        p|	}||z  }||z  }d}|€||fg}n¦||z
  dz  ||z
  dz  z   dz  }||z  }||k     r||fg}n�t          |t          |¦  «        z  ¦  «        dz   }t          ||z
  ¦  «        |z  }t          ||z
  ¦  «        |z  }g }|j        }t          d|¦  «        D ]}  |||| z  z   ||| z  z   f¦  «         Œ| j        }||z   }!||z   }"|D ]I\  }}#||z   }$|#|z   }%t          t          |!|$|"|%||¦  «        |||¬¦  «        }& |d|||!|"|&f¦  «         |$}!|%}"ŒJd S )Nr   g¯–P.5�_g333333ã?é   ç      à?r	   )r   r   r   )	ÚabsÚfloatr   ÚintÚappendÚranger   r   r:   )'r"   r9   r   r%   r   Úz0Úz1Útheta_xÚtheta_yr   r)   Ú	tileWidthr   r   ÚstrokeDashArrayr   Úzwidthr'   r(   Údepth_slopeÚxr1   ÚcÚzy0Úzx0ÚtileStrokeWidthÚDÚTÚnÚdxÚdyÚaÚiÚx_0Úy_0ÚyÚx_1Úy_1ÚPs'                                          r   Ú_make_3d_line_infor]   4   s*  € õ
 ��B‘‰ZŒZ€FØ�G‰^€FØ�G‰^€FØ˜1’9Ð& Ð?¨6¨'µ%¸±-´-Ñ*?€Kåˆb�‰e‰Œ€AØˆqŠDˆN�UÐ'˜r "™u a™i€EàˆkÒÐK�j¨°?À7ÑKÔKÐXÈy€AØ
ˆW‰*€CØ
ˆW‰*€Cà€OØÐØ�ˆWˆIˆˆà�‰e�a‰Z˜˜B™ ™
Ñ" SÑ(ˆØ˜9Ñ$ˆØˆYŠ;ˆ;Ø�R��	ˆAˆAå�A•e˜IÑ&Ô&Ñ&Ñ'Ô'¨Ñ)ˆAÝ�r˜"‘u‘”˜a‘ˆBÝ�r˜"‘u‘”˜a‘ˆBØˆAØ”ˆAÝ˜1˜Q‘Z”Zð %ð %�Ø��2�b˜‘d‘7˜2˜b ™d™7Ð#Ñ$Ô$Ð$Ð$à	Œ€AØ
ˆS‰&€CØ
ˆS‰&€CØð ð ‰ˆˆ!Ø�‰eˆØ�‰eˆÝ•L  c¨3°°V¸VÑDÔDØ !¨q¸oðOñ Oô Oˆà	ˆˆ1ˆR��3�s˜1Ð
ÑÔÐØˆØˆˆðð r   )Úpir=   r<   g     €f@c                 ó   — | t           z  S r0   ©Ú_180_pi)Úangles    r   Ú_2radrc   g   s   € Ø•‰=Ðr   c                 ó:   — | t           z  } | dk     r
| t           z  } | S )Nç�íµ ÷Æ°¾)Ú_2pi)Úradianss    r   Úmod_2pirh   j   s!   € Ø�‰n€GØˆu‚}€}�g¥‘o�gØ€Nr   c                 ó   — | t           z  S r0   r`   )Úos    r   Ú_2degrk   o   s   € Ø�W‰9Ðr   c                 ó&   — | dz  } | dk     r| dz  } | S )Nih  re   r7   ©rU   s    r   Ú_360rn   r   s!   € Øˆ�H€AØˆ‚w€w��S‘�Ø€Hr   ç:Œ0âŽyE>c                   ó$   — e Zd Zd„ Zd„ ZeZd„ ZdS )Ú_Segmentc                 ór  — ||         }||dz
           d         }||dz
           d         }||         d         }||         d         }||k     r||||f\  }}}}t          ||z
  ¦  «        | _        t          ||z
  ¦  «        | _        || _        || _        || _        || _        || _        || _        || _	        d S )Nr	   r   )
r?   rU   Úbr9   r   r%   r   ÚseriesrV   Ús)	r2   ru   rV   ÚdataÚSr9   r%   r   r   s	            r   r3   z_Segment.__init__z   s¾   € Ø�ŒGˆØˆq�‰sŒV�AŒYˆØˆq�‰sŒV�AŒYˆØˆqŒT�!ŒWˆØˆqŒT�!ŒWˆØˆbŠ5ˆ5Ø˜R  2˜+‰KˆBˆr�"�Rõ �r˜"‘u‘”ˆŒÝ�r˜"‘u‘”ˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒˆˆr   c           	      óH   — d| j         ›d| j        ›d| j        ›d| j        ›d�	S )Nz[(ú,z),(z)])r9   r%   r   r   )r2   s    r   Ú__str__z_Segment.__str__�   s+   € € Ø&*¤g g g¨d¬g¨g¨g°d´g°g°g¸d¼g¸g¸gÐFÐFr   c                 óì  — | j         }|j         }||k    sJ ‚|| j        k    rdS |j        | j        k    r|j        | j        dz
  | j        dz   fv rdS | j        }| j        }|j        }|j        }||z  ||z  z
  }	d|	cxk     rdk     rn ndS ||z
  }
| j        |j        z
  }||z  ||
z  z
  |	z  }||z  ||
z  z
  |	z  }|dk     s|dk    s|dk     s|dk    rdS |||z  z   }| j        ||z  z   }t          |cxk     rt          k     r,n n)| j        | j        ||f}||vr| 	                    |¦  «         t          |cxk     rt          k     r/n dS |j        |j        ||f}||vr| 	                    |¦  «         dS dS dS )z4try to find an intersection with _Segment o
        r	   Ng:Œ0âŽyE¾ro   r   )
r9   r   ru   rV   rU   rs   r%   Ú_ZEROÚ_ONErA   )r2   rj   ÚIr9   Úox0rU   rs   ÚoaÚobÚdetrS   rT   ÚuÚourK   rY   Úts                    r   Ú	intersectz_Segment.intersect”   s¾  € ð ŒWˆØŒdˆØ�3ŠwˆwˆwˆwØˆtŒwŠ;ˆ;˜q˜qØŒ3�”Š;ˆ;˜1œ3 4¤6¨!¡8¨D¬F°1©HÐ"5Ð5Ð5°v°vØŒFˆØŒFˆØŒSˆØŒSˆØ�‰d�R˜‘T‰kˆØ�ˆ>ˆ>Š>ˆ>�TŠ>ˆ>ˆ>ˆ>ˆ>˜6˜6Ø�#‰XˆØŒW�q”t‰^ˆØ�‰U�R˜‘U‰]˜CÑˆØ�‰d�Q�r‘T‰k˜3ÑˆØˆQŠ3ˆ3�!�A’#�#˜˜Aš˜  A¢  v vØ��1‘‰HˆØŒG�a˜‘c‰MˆÝ�ˆ<ˆ<Š<ˆ<•4Š<ˆ<ˆ<ˆ<ˆ<Ø”�t”v˜a Ð!ˆAØ˜ˆzˆz˜1Ÿ8š8 A™;œ;˜;Ý�ˆ=ˆ=Š=ˆ=•DŠ=ˆ=ˆ=ˆ=ˆ=ˆ=Ø”�A”C˜˜!�ˆAØ˜ˆzˆz˜AŸHšH Q™KœK˜K˜K˜Kð ˆ=àˆzr   N)r4   r5   r6   r3   rz   Ú__repr__r†   r7   r   r   rq   rq   y   sK   € € € € € ðð ð ð*Gð Gð Gð €Hð(ð (ð (ð (ð (r   rq   c                 óN   — | j         | j        | j        | j        | j        | j        fS r0   )r9   r   r%   r   ru   rV   rm   s    r   Ú_segKeyr‰   °   s!   € ØŒD�”�a”d˜1œ4 ¤ A¤CÐ(Ð(r   c                 ób  — g }|j         }t          t          | ¦  «        ¦  «        D ]r}| |         }|sŒt          |¦  «        }|dk    rŒ#t          d|¦  «        D ]>}t          ||| ¦  «        }|j        t          |j        ¦  «        z   |k    r ||¦  «         Œ?Œs|                     t          ¬¦  «         g }	t          |¦  «        }t          d|dz
  ¦  «        D ]B}||         }t          |dz   |¦  «        D ]$}
| 	                    ||
         |	¦  «        dk    r nŒ%ŒC|	                     ¦   «          |	S )aV  
    data is a sequence of series
    each series is a list of (x,y) coordinates
    where x & y are ints or floats

    find_intersections returns a sequence of 4-tuples
        i, j, x, y

    where i is a data index j is an insertion position for data[i]
    and x, y are coordinates of an intersection of series data[i]
    with some other series. If correctly implemented we get all such
    intersections. We don't count endpoint intersections and consider
    parallel lines as non intersecting (even when coincident).
    We ignore segments that have an estimated size less than small.
    r	   )Úkeyr   )
rA   rB   Úlenrq   rU   r>   rs   Úsortr‰   r†   )rv   Úsmallrw   rU   ru   ÚdsrR   rV   Úsegr~   Újs              r   Úfind_intersectionsr’   ³   sD  € ð$ 	€AØ	Œ€AÝ•3�t‘9”9ÑÔð /ð /ˆØ�!ŒWˆØÐ�8Ý�‰GŒGˆØˆaŠ4ˆ4�Ý�q˜‘”ð 	/ð 	/ˆAÝ˜1˜Q˜tÑ$Ô$ˆCØŒu•S˜œ‘Z”ZÑ Ò&Ð&¨¨¨#©¬¨øð	/ð ‡F‚F�w€FÑÔÐØ
€AÝˆA‰Œ€AÝ�1�Q�q‘S‰\Œ\ð -ð -ˆØˆaŒDˆÝ�q˜‘s˜1‘”ð 	-ð 	-ˆAØ�{Š{˜1˜Qœ4 Ñ"Ô" AÒ%Ð% u uÐ%øØ‡F‚F�H„H€HØ€Hr   Ú__main__)r   )Ú	lightgreyÚpinki,  éÈ   é
   é   é2   é   )r   r   é   é(   é-   Úpdfú.r,   )ÚformatsÚoutDirÚfnRoot))r   r=   )r	   r=   )r=   r   )r=   r	   ))g±:Ñ?çš™™™™™Ù?©r   r£   ©r   çš™™™™™É?©r   r   ©r	   r	   )©r   r	   ©r£   r   ©r	   r   r¥   r¤   r©   rª   )r¦   r£   ©r   gš™™™™™é?r§   r¨   r«   )r¬   rª   r«   )Nr   )NNNr	   r   )Nr	   NNNr   )r   )Úreportlab.graphics.shapesr   r   r   r   r   r,   r.   r:   r]   Úmathr^   Ú_pi_2rf   ra   rc   rh   rk   rn   r|   r}   rq   r‰   r’   r4   r
   r”   r•   rP   ÚsaveÚprintr7   r   r   ú<module>r²      sU  ðØ <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ðð ð ð ðð ð ð ð 15Ø9<ðlð lð lð lð0Mð Mð Mð Mð Mñ Mô Mð Mð9ð 9ð 9ð @AØHLØð	,ð ,ð ,ð ,ð\ Ð Ð Ð Ð Ð Ø
ˆ3‰€Øˆ�t€ØˆR‰€ðð ð ðð ð ð
ð ð ðð ð ð
 	€Øˆ�w€ð5(ð 5(ð 5(ð 5(ð 5(ñ 5(ô 5(ð 5(ðn)ð )ð )ð$ð $ð $ð $ðL ˆZÒÐØ1Ð1Ð1Ð1Ð1Ð1Ø4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Øˆ��CÑÔ€AØ€L��B˜˜B  A q°IÈ4ÐPÑPÔPÐPØ€L��B˜˜B  A q°IÈ4ÐPÑPÔPÐPà‡F‚F�E�7 #¨^€FÑ<Ô<Ð<à	€EÐ
Ð
Ð?Ð?Ð?Ð@sÐ@sÐ@sð  uNð  uNð  uNð  Oñ  Pô  Pñ  Qô  Qð  QØ	€EÐ
Ð
˜z¨:Ð6¸ÀÐ8LÐMÑ
NÔ
NÑOÔOÐOØ	€EÐ
Ð
˜z¨:Ð6¸ÀZÐ8PÐQÑ
RÔ
RÑSÔSÐSØ	€EÐ
Ð
˜u U˜m¨Y°wÐ,?Ð@Ñ
AÔ
AÑBÔBÐBØ	€EÐ
Ð
Ð?Ð?Ð?ÀÀuÀÐNkÐNkÐNkÐlÑ
mÔ
mÑnÔnÐnÐnÐnð Ðr   