+
    Œvj  ã                   ór  € ^ RI HtHtHt RR ltRR ltR R lt ! R R4      tR tR!R	 lt	^ R
I
Ht ]R,          t^],          tR],          tR tR tR tR tRt^],
          t ! R R4      tR tR"R lt]R8X  d»   ^ RI Ht ^ RIHtHt ]! R^È4      t]! ]^
^^
^2^^]]R7	       ]! ]^^(^
^-^^]]R7	       ]P;                  R.RRR7       ]! ]! . R#O. R(O. R,O.4      4       ]! ]! R%R$.R)R*..4      4       ]! ]! R-R$.R.R*..4      4       ]! ]! R&R'.R*R+..4      4       ]! ]! . R#OR&R'.. R/O.4      4       R# R# )0é    )ÚDrawingÚPolygonÚLineNc                 óJ   € Vf   ^ RI Hp V '       d   V! V ^V,
          4      pV# )N)ÚBlacker)Úreportlab.lib.colorsr   )ÚcolÚshdÚshadingr   s   &&& Úe/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/graphics/charts/utils3d.pyÚ
_getShadedr      s!   € Ø
‚{Ý0ß‘g˜c ! G¥)Ó,�Ø€Jó    c                 óJ   € Vf   ^ RI Hp V '       d   V! V ^V,
          4      pV# )N)ÚWhiter)r   r   )r	   r
   Úlightingr   s   &&& r   Ú_getLitr   	   s!   € Ø
‚{Ý/ß‘f˜S  8¥Ó,�Ø€Jr   c                 ó~  € \        VR V4      p\        VR VR,          4      pW	W§3R lp\        W44      pV'       g	   V'       d   W48w  d   V! W"W4WVVR7       V! WWîWVVR7       V P                  \        WW#W$W3WšV^R7      4       V'       g	   V'       d*   T P                  \	        YY.Y©;'       g    TR7      4       R # R # )Ng       @c
                 ó~   € VP                  \        WW,           W%,           W,           W5,           W3W‡V	^R7      4       R# )é   )ÚstrokeWidthÚstrokeColorÚ	fillColorÚstrokeLineJoinN)Úaddr   )
Úx1Úx2Úy1Úy2ÚxoffÚyoffÚGr   r   r   s
   &&&&&&&&&&r   Ú_add_3d_barÚ!_draw_3d_bar.<locals>._add_3d_bar   s6   € à	�‰Œg�r˜b�g b¥g¨r­w°rµwÀÐFØ#È	Ðabôdö 	e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,      s¶   € ô ! ¨4°Ó8€OÜ# I¨d°7¸3µ;Ó?Ðð ¸[ôeô
 ˆb‹.€Cß—ØŒ9Ù˜ ¨FÀoÕVá�B˜C fÐ@RÕSà‡E�EŒ'�2˜˜r¨Ð1ØÀIÐ]^ô`ô a÷ —Ø	�‰Œd�B˜R°+×KiÐKiÐZiÔjÖkñ r   c                   ó*   a € ] tR t^(t o RR ltRtV tR# )Ú_YStripc                óX   € Wn         W n        W0n        W@n        \	        WEV4      V n        R # ©N)r%   r   Úsloper   r   r)   )Úselfr%   r   r1   r   r)   r   s   &&&&&&&r   Ú__init__Ú_YStrip.__init__)   s%   € ØŒØŒØŒ
Ø"ŒÜ)¨)ÀGÓLˆÖr   )r   r)   r1   r%   r   N)çš™™™™™¹?)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r3   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r.   r.   (   s   ø‡ € ÷Mò Mr   r.   c                 óB   € WW,           W%,           W,           W5,           W.# r0   © )Úx0r   r%   r   r   r    s   &&&&&&r   Ú_ystrip_polyrA   0   s   € Ø�"•'˜"�' "¥'¨"­'°"Ð8Ð8r   c                 ó  € \        We,
          4      pVV,          pVV,          pV^ 8H  ;'       d    R;'       g    V) \        V4      ,          p\        W!,
          4      pV^ 8H  ;'       d    R;'       g    WC,
          V,          pVV8„  ;'       d    \        WšV4      ;'       g    T	pWX,          pWW,          pRpVf   W$3.pMØWC,
          ^,          W!,
          ^,          ,           R,          pVV,          pVV8  d   W$3.pM™\        V\        V4      ,          4      ^,           p\        W!,
          4      V,          p\        WC,
          4      V,          p. pVP                  p\        ^V4       F)  p V! VVV ,          ,           VVV ,          ,           34       K+  	  V P                  pVV,           p!VV,           p"V FF  w  pp#VV,           p$V#V,           p%\        \        V!V$V"V%VV4      VVVR7      p&V! ^ WVV!V"V&34       T$p!T%p"KH  	  R# )r   g¯–P.5�_g333333ã?Nç      à?)r   r   r   )	ÚabsÚfloatr   ÚintÚappendÚranger   r   rA   )'r!   r@   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_inforc   4   sÔ  € ô
 �•‹Z€FØ�G�^€FØ�G�^€FØ˜1‘9×&Ð& ×?Ð?¨6¨'´%¸³-Õ*?€Käˆb�e‹€AØˆq‰D�NˆN�U×'Ð'˜r�u a�i€EàˆkÑ×KÐKœj¨À7ÓK×XÐXÈy€AØ
�*€CØ
�*€Cà€OØÒØˆWˆI‰à�e�a�Z˜� �
Õ" SÕ(ˆØ˜9Õ$ˆØˆYŒ;Ø��	‰Aä�A”e˜IÓ&Õ&Ó'¨Õ)ˆAÜ�r•u“˜a•ˆBÜ�r•u“˜a•ˆBØˆAØ—‘ˆAÜ˜1˜Q–Z�Ù�2�b˜•d•7˜2˜b �d�7Ð#Ö$ñ  ð 	
�‰€AØ
ˆS�&€CØ
ˆS�&€CÛ‰ˆˆ!Ø��eˆØ��eˆÜ”L  c¨3°°V¸VÓDØ !¨q¸oôOˆá	ˆ1ˆR�3�s˜1Ð
ÔØˆØŠó r   )ÚpirC   g     €f@c                 ó   € V \         ,          # r0   ©Ú_180_pi)Úangles   &r   Ú_2radri   g   s   € Ø”�=Ðr   c                 óH   € V \         ,          p V R8  d   V \         ,          p V # )g�íµ ÷Æ°>ç�íµ ÷Æ°¾)Ú_2pi)Úradianss   &r   Úmod_2pirn   j   s   € Øœ�n€GØˆu„}�g¤•o�gØ€Nr   c                 ó   € V \         ,          # r0   rf   )Úos   &r   Ú_2degrq   o   s   € ØŒW�9Ðr   c                 ó8   € V R ,          p V R8  d
   V R ,          p V # )ih  rk   r?   ©r[   s   &r   Ú_360rt   r   s   € Øˆ…H€AØˆ„w��S•�Ø€Hr   ç:Œ0âŽyE>c                   ó6   a € ] tR t^yt o R tR t]tR tRtV t	R# )Ú_Segmentc                óp  € W1,          pWB^,
          ,          ^ ,          pWB^,
          ,          ^,          pWB,          ^ ,          pWB,          ^,          pWu8  d   WxWV3w  rVrx\        Wu,
          4      V n        \        W†,
          4      V n        WPn        Wpn        W`n        W€n        Wn        W n        Wn	        R# )r   N)
rE   r[   Úbr@   r   r%   r   Úseriesr\   Ús)	r2   r{   r\   ÚdataÚSr@   r%   r   r   s	   &&&&     r   r3   Ú_Segment.__init__z   sŽ   € Ø�GˆØ��s�V�A�YˆØ��s�V�A�YˆØ�T�!�WˆØ�T�!�WˆØŒ5Ø ˜+‰KˆB�"ô �r•u“ˆŒÜ�r•u“ˆŒØŒØŒØŒØŒØŒØŒØŽr   c           	     óx   € R V P                   : RV P                  : RV P                  : RV P                  : R2	# )z[(Ú,z),(z)])r@   r%   r   r   )r2   s   &r   Ú__str__Ú_Segment.__str__�   s!   � Ø&*§g¤g¨d¯g¬g°d·g´g¸d¿g¼gÐFÐFr   c                ó8  € V P                   pVP                   pW48:  g   Q hW@P                  8”  d   ^# VP                  V P                  8X  d8   VP                  V P                  ^,
          V P                  ^,           39   d   R# V P                  pV P
                  pVP                  pVP
                  pW…,          Wv,          ,
          p	RT	u;8  d	   R8  d   R#  W4,
          p
V P                  VP                  ,
          pW{,          WŠ,          ,
          V	,          pW[,          Wj,          ,
          V	,          pV^ 8  g   V^8”  g   V^ 8  g   V^8”  d   R# W<V,          ,           pV P                  WÆ,          ,           p\        Tu;8  d   \        8  d5   M M1V P                  V P                  Wï3pVV9  d   VP                  V4       \        Tu;8  d   \        8  d:   M R# VP                  VP                  Wï3pVV9  d   VP                  V4       R# R# R# )z4try to find an intersection with _Segment o
        Nru   g:Œ0âŽyE¾)
r@   r   r{   r\   r[   ry   r%   Ú_ZEROÚ_ONErG   )r2   rp   ÚIr@   Úox0r[   ry   ÚoaÚobÚdetrY   rZ   ÚuÚourQ   r_   Úts   &&&              r   Ú	intersectÚ_Segment.intersect”   st  € ð �W‰WˆØ�d‰dˆØŒwˆˆwØ�w‰wŒ;™qØ�3‰3�—‘Œ;˜1Ÿ3™3 4§6¡6¨!¥8¨D¯F©F°1­HÐ"5Ô5±vØ�F‰FˆØ�F‰FˆØ�S‰SˆØ�S‰SˆØ�d�R•T�kˆØ�Ž>�TŒ>™6ˆ>Ø�XˆØ�W‰W�q—t‘t�^ˆØ�U�R•U�]˜CÕˆØ�d�Q•T�k˜3ÕˆØˆQŒ3�!�A”#˜˜Aœ  A¤¡vØ�1•�HˆØ�G‰G�a•c�MˆÜ�Ž<”4�<Ø—‘�t—v‘v˜aÐ!ˆAØ˜Œz˜1Ÿ8™8 Aœ;Ü�Ž=”D�=ˆ=Ø—‘�A—C‘C˜�ˆAØ˜Œz˜AŸH™H QžK‰zñ r   )	r[   ry   r\   r{   rz   r@   r   r%   r   N)
r6   r7   r8   r9   r3   r�   Ú__repr__rŽ   r:   r;   r<   s   @r   rw   rw   y   s!   ø‡ € òò*Gð €H÷(ð (r   rw   c                 óŠ   € V P                   V P                  V P                  V P                  V P                  V P
                  3# r0   )r@   r   r%   r   r{   r\   rs   s   &r   Ú_segKeyr’   °   s-   € Ø�D‰D�—‘�a—d‘d˜1Ÿ4™4 §¡ A§C¡CÐ(Ð(r   c                ój  € . pVP                   p\        \        V 4      4       F}  pW,          pV'       g   K  \        V4      pV^8X  d   K)  \        ^V4       FD  p\        WGV 4      pVP                  \        VP                  4      ,           V8¼  g   K<  V! V4       KF  	  K  	  VP                  \        R7       . p	\        V4      p\        ^ V^,
          4       FE  pW',          p\        V^,           V4       F#  p
VP                  W*,          V	4      ^8X  g   K"   KC  	  KG  	  V	P                  4        V	# )a&  
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.
)Úkey)
rG   rH   Úlenrw   r[   rD   ry   Úsortr’   rŽ   )r|   Úsmallr}   r[   r{   ÚdsrX   r\   Úsegr†   Újs   &&         r   Úfind_intersectionsr›   ³   sò   € ð$ 	€AØ	�‰€AÜ”3�t“9ÖˆØ�Wˆß‘8Ü�‹GˆØˆaŒ4‘Ü�q˜–ˆAÜ˜1˜tÓ$ˆCØ�u‰u”S˜Ÿ™“ZÕ Ö&©¨#®ó ñ ð ‡F�FŒw€FÔØ
€AÜˆA‹€AÜ�1�Q�q•SŽ\ˆØ�DˆÜ�q˜•s˜1–ˆAØ�{‰{˜1�4 Ó" AÖ%¢uó ñ ð ‡F�F„HØ€Hr   Ú__main__)r   )Ú	lightgreyÚpinki,  )r   r   ÚpdfÚ.r,   )ÚformatsÚoutDirÚfnRoot)Nr5   )NNNr   r5   )Nr   NNNr5   )r   ))r   rC   )r   rC   )rC   r   )rC   r   ©r5   çš™™™™™Ù?©r5   çš™™™™™É?©r   r   ©r   r   ))g±:Ñ?r¥   r¤   r¦   r¨   r©   ©r   r   ©r¥   r5   ©r   r5   )rª   r«   r¬   )r§   r¥   ©r5   gš™™™™™é?)r­   r«   r¬   )Úreportlab.graphics.shapesr   r   r   r   r   r,   r.   rA   rc   Úmathrd   Ú_pi_2rl   rg   ri   rn   rq   rt   r„   r…   rw   r’   r›   r6   r   r�   rž   rV   ÚsaveÚprintr?   r   r   Ú<module>r³      s‡  ðß <Ñ <ôôôl÷0Mñ Mò9ô,õ\ Ø
ˆ3�€Øˆ…t€ØˆR�€òòò
òð
 	€Øˆ…w€÷5(ñ 5(òn)ô$ðL ˆZÔÝ1ß4Ù��CÓ€AÙ��B˜˜B  A q°IÈ4ÕPÙ��B˜˜B  A q°IÈ4ÕPà‡F�F�E�7 #¨^€FÔ<á	Ñ
Ò?Ò@sò  uNð  Oó  Pô  QÙ	Ñ
˜z¨:Ð6¸ÀÐ8LÐMÓ
NÔOÙ	Ñ
˜z¨:Ð6¸ÀZÐ8PÐQÓ
RÔSÙ	Ñ
˜u U˜m¨Y°wÐ,?Ð@Ó
AÔBÙ	Ñ
Ò?ÀÀuÀÒNkÐlÓ
mÖnñ r   