§
    £”j§{  ã                   ód  — d Z dZddlmZ ddlT ddlT ddlmZmZ ddl	m
Z
 ddlmZ ddl	mZ  G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d e¦  «        Z G d!„ d"e¦  «        Z G d#„ d$e¦  «        Z G d%„ d&e¦  «        Z G d'„ d(e¦  «        Z G d)„ d*e¦  «        Zd+„ Ze d,k    r e¦   «          d-S d-S ).z3.3.0aô  This file is a collection of widgets to produce some common signs and symbols.

Widgets include:

- ETriangle (an equilateral triangle),
- RTriangle (a right angled triangle),
- Octagon,
- Crossbox,
- Tickbox,
- SmileyFace,
- StopSign,
- NoEntry,
- NotAllowed (the red roundel from 'no smoking' signs),
- NoSmoking,
- DangerSign (a black exclamation point in a yellow triangle),
- YesNo (returns a tickbox or a crossbox depending on a testvalue),
- FloppyDisk,
- ArrowOne, and
- ArrowTwo
- CrossHair
é    )Úcolors)Ú*)ÚisStrÚ	asUnicode)Úshapes)ÚWidget)Ú	renderPDFc                   óè   — e Zd ZdZdZ e eed¬¦  «         eed¬¦  «         eed¬¦  «         eed¬¦  «         ee¦  «         ee¦  «         ee¦  «         ee¦  «        ¬¦  «        Z	d„ Z
d	„ Zd
S )Ú_SymbolzcAbstract base widget
    possible attributes:
    'x', 'y', 'size', 'fillColor', 'strokeColor'
    é   zsymbol x coordinate©Údesczsymbol y coordinatezsymbol x coordinate adjustment)ÚxÚyÚdxÚdyÚsizeÚ	fillColorÚstrokeColorÚstrokeWidthc                 ó¾   — | j         j        dk    s
J d¦   «         ‚dx| _        x| _        x| _        | _        d| _        t          j        | _	        d | _
        d| _        d S )Nr   z#Abstract class _Symbol instantiatedr   éd   çš™™™™™¹?)Ú	__class__Ú__name__r   r   r   r   r   r   Úredr   r   r   ©Úselfs    úy/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/widgets/signsandsymbols.pyÚ__init__z_Symbol.__init__8   sc   € ØŒ~Ô&¨	Ò1Ð1Ð1Ð3XÑ1Ô1Ð1Ø./Ð/ˆŒÐ/�”Ð/˜$œ' D¤GØˆŒ	ÝœˆŒØˆÔØˆÔÐÐó    c           
      ó–  — t          j        dd¦  «        }t          | j        ¦  «        }|                      ¦   «         }d|_        d|_        |                     ¦   «          |                     |¦  «         |                     t          j	        |j        |dz  z   |j        dz
  |j        j
        t          j        dd¬	¦  «        ¦  «         |S )
NéÈ   r   é2   r   é   é   Úmiddleé
   ©r   Ú
textAnchorÚfontSize)r   ÚDrawingÚfloatr   r   r   r   ÚdrawÚaddÚStringr   r   Úblack)r   ÚDÚsÚobs       r   Údemoz_Symbol.demo@   s±   € ÝŒN˜3 Ñ$Ô$ˆÝ�$”)ÑÔˆØ�^Š^ÑÔˆØˆŒØˆŒØ
�Š‰	Œ	ˆ	Ø	�Šˆb‰	Œ	ˆ	Ø	�Š�fŒm˜BœD ! A¡#™J¨¬¨R©ØœLÔ1½V¼\ÐV^Ø%'ð)ñ )ô )ñ 	*ô 	*ð 	*ð ˆr!   N)r   Ú
__module__Ú__qualname__Ú__doc__Ú_nodocÚAttrMapÚAttrMapValueÚisNumberÚisColorOrNoneÚ_attrMapr    r5   © r!   r   r   r   (   sÙ   € € € € € ðð ð €FØˆwØˆL˜Ð'<Ð=Ñ=Ô=ØˆL˜Ð'<Ð=Ñ=Ô=Øˆ\˜(Ð(HÐIÑIÔIØˆ\˜(Ð(HÐIÑIÔIØˆ|˜HÑ%Ô%Ø �L Ñ/Ô/Ø"�l =Ñ1Ô1Ø"�l 8Ñ,Ô,ð	
ñ 	
ô 	
€Hðð ð ðð ð ð ð r!   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú	ETriangleú#This draws an equilateral triangle.c                 ó:   — t                                | ¦  «         d S ©N)r   r    r   s    r   r    zETriangle.__init__P   s   € Ý×Ò˜ÑÔÐÐÐr!   c           	      ó2  — t          | j        ¦  «        }t          j        ¦   «         }|dz  }t          j        | j        | j        | j        |z   | j        | j        |dz  z   | j        |z   g| j        | j        |dz  ¬¦  «        }| 	                    |¦  «         |S )Nç      À?r%   ç      I@©Úpointsr   r   r   ©
r-   r   r   ÚGroupÚPolygonr   r   r   r   r/   ©r   r3   ÚgÚaeÚtriangles        r   r.   zETriangle.drawS   s—   € å�$”)ÑÔˆÝŒL‰NŒNˆð ˆu‰WˆÝ”>ØŒF�D”FØŒF�1‰H�d”fØŒF�A�a‘C‰L˜œ ™ð,#ð  œ>Ø!Ô-Ø˜S™5ð"ñ "ô "ˆð 	
�Šˆh‰ŒˆØˆr!   N©r   r6   r7   r8   r    r.   r?   r!   r   rA   rA   M   s8   € € € € € Ø-Ð-ðð ð ðð ð ð ð r!   rA   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú	RTrianglez€This draws a right-angled triangle.

        possible attributes:
        'x', 'y', 'size', 'fillColor', 'strokeColor'

        c                 ó`   — d| _         d| _        d| _        t          j        | _        d | _        d S ©Nr   r   )r   r   r   r   Úgreenr   r   r   s    r   r    zRTriangle.__init__l   s.   € ØˆŒØˆŒØˆŒ	ÝœˆŒØˆÔÐÐr!   c           	      ó&  — t          | j        ¦  «        }t          j        ¦   «         }|dz  }t          j        | j        | j        | j        |z   | j        | j        | j        |z   g| j        | j        |dz  ¬¦  «        }| 	                    |¦  «         |S )NrF   rG   rH   rJ   rM   s        r   r.   zRTriangle.draws   s�   € å�$”)ÑÔˆÝŒL‰NŒNˆð ˆu‰WˆÝ”>ØŒF�D”FØŒF�1‰H�d”fØŒF�4”6˜!‘8ð,ð  œ>Ø!Ô-Ø˜S™5ð"ñ "ô "ˆð 	
�Šˆh‰ŒˆØˆr!   NrQ   r?   r!   r   rS   rS   d   s<   € € € € € ðð ð ð  ð  ðð ð ð ð r!   rS   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚOctagonzvThis widget draws an Octagon.

        possible attributes:
        'x', 'y', 'size', 'fillColor', 'strokeColor'

    c                 ó`   — d| _         d| _        d| _        t          j        | _        d | _        d S rU   )r   r   r   r   Úyellowr   r   r   s    r   r    zOctagon.__init__Œ   s.   € ØˆŒØˆŒØˆŒ	ÝœˆŒØˆÔÐÐr!   c                 óì  — t          | j        ¦  «        }t          j        ¦   «         }|dz  }t          j        | j        |z   | j        | j        | j        |z   | j        | j        |dz  z   | j        |z   | j        |z   | j        |dz  z   | j        |z   | j        |z   | j        |dz  z   | j        |z   | j        |z   | j        |dz  z   | j        g| j        | j        d¬¦  «        }| 	                    |¦  «         |S )Né   r%   r(   ©rI   r   r   r   )
r-   r   r   rK   rL   r   r   r   r   r/   )r   r3   rN   ÚathirdÚoctagons        r   r.   zOctagon.draw“   sô   € å�$”)ÑÔˆÝŒL‰NŒNˆð �‰sˆå”.¨¬°©¸¼Ø.2¬f°d´f¸V±mØ.2¬f°d´f¸fÀQ¹hÑ6GØ.2¬f°V©m¸T¼VÀA¹XØ.2¬f°f¸Q±hÑ.?ÀÄÈÁØ.2¬f°Q©h¸¼ÀÀqÁÑ8IØ.2¬f°Q©h¸¼¸v¹Ø.2¬f°f¸Q±hÑ.?ÀÄð)Ið 59Ô4DØ26´.Ø24ð
6ñ 
6ô 
6ˆð 	
�Šˆg‰ŒˆØˆr!   NrQ   r?   r!   r   rY   rY   „   s<   € € € € € ðð ð ð  ð  ðð ð ð ð r!   rY   c                   ó^   — e Zd ZdZ ee ee¦  «         ee¦  «        ¬¦  «        Z	d„ Z
d„ ZdS )ÚCrossboxz¥This draws a black box with a red cross in it - a 'checkbox'.

        possible attributes:
        'x', 'y', 'size', 'crossColor', 'strokeColor', 'crosswidth'

    )ÚBASEÚ
crossColorÚ
crosswidthc                 ó¤   — d| _         d| _        d| _        t          j        | _        t          j        | _        t          j        | _	        d| _
        d S ©Nr   r   r(   )r   r   r   r   Úwhiter   r   rd   r1   r   re   r   s    r   r    zCrossbox.__init__¶   s>   € ØˆŒØˆŒØˆŒ	ÝœˆŒÝ œ*ˆŒÝ!œ<ˆÔØˆŒˆˆr!   c           	      ó   — t          | j        ¦  «        }t          j        ¦   «         }t          j        | j        dz   | j        dz   |dz
  |dz
  | j        | j        d¬¦  «        }| 	                    |¦  «         t          j
        | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        | j        | j        ¬¦  «        }| 	                    |¦  «         t          j
        | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        | j        | j        ¬¦  «        }| 	                    |¦  «         |S )Nr   r%   ©r   r   r   ç333333Ã?ç333333ë?)r-   r   r   rK   ÚRectr   r   r   r   r/   ÚLinerd   re   )r   r3   rN   ÚboxÚ
crossLine1Ú
crossLine2s         r   r.   zCrossbox.draw¿   sR  € å�$”)ÑÔˆÝŒL‰NŒNˆõ Œk˜$œ& ™( D¤F¨1¡H¨a°©c°1°Q±3Øœ>Ø!Ô-Øðñ ô ˆð 	
�Šˆc‰
Œ
ˆ
å”[ ¤¨¨4©¡°$´&¸!¸D¹&±/À4Ä6È1ÈTÉ6Á?ÐTXÔTZÐ\]Ð^bÑ\bÑTcØœ?Ø!œ_Ø!œ_ð.ñ .ô .ˆ
ð 	
�ŠˆjÑÔÐå”[ ¤¨¨4©¡°$´&¸!¸D¹&±/À4Ä6È1ÈTÉ6Á?ÐTXÔTZÐ\]Ð^bÑ\bÑTcØœ?Ø!œ_Ø!œ_ð.ñ .ô .ˆ
ð 	
�ŠˆjÑÔÐàˆr!   N©r   r6   r7   r8   r:   r   r;   r=   r<   r>   r    r.   r?   r!   r   rb   rb   ©   sp   € € € € € ðð ð ˆw˜GØ!�\ -Ñ0Ô0Ø!�\ (Ñ+Ô+ð
ñ 
ô 
€Hð
ð ð ðð ð ð ð r!   rb   c                   ó^   — e Zd ZdZ ee ee¦  «         ee¦  «        ¬¦  «        Z	d„ Z
d„ ZdS )ÚTickboxz¤This draws a black box with a red tick in it - another 'checkbox'.

        possible attributes:
        'x', 'y', 'size', 'tickColor', 'strokeColor', 'tickwidth'

)rc   Ú	tickColorÚ	tickwidthc                 ó¤   — d| _         d| _        d| _        t          j        | _        t          j        | _        t          j        | _	        d| _
        d S rg   )r   r   r   r   r   ru   r1   r   rh   r   rv   r   s    r   r    zTickbox.__init__ç   s>   € ØˆŒØˆŒØˆŒ	ÝœˆŒÝ!œ<ˆÔÝœˆŒØˆŒˆˆr!   c                 ó,  — t          | j        ¦  «        }t          j        ¦   «         }t          j        | j        dz   | j        dz   |dz
  |dz
  | j        | j        d¬¦  «        }| 	                    |¦  «         t          j
        | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   | j        |dz  z   g| j        | j        | j        ¬¦  «        }| 	                    |¦  «         |S )Nr   r%   rj   rk   çffffffÖ?rl   rH   )r-   r   r   rK   rm   r   r   r   r   r/   ÚPolyLineru   rv   )r   r3   rN   ro   ÚtickLines        r   r.   zTickbox.drawð   s#  € å�$”)ÑÔˆÝŒL‰NŒNˆõ Œk˜$œ& ™( D¤F¨1¡H¨a°©c°1°Q±3Øœ>Ø!Ô-Øðñ ô ˆð 	
�Šˆc‰
Œ
ˆ
å”?¨T¬V°Q°t±V©_¸d¼fÀaÈÁf¹oÈtÌvÐWXÐY]ÑW]ÉÐ`dÔ`fÐhiÐjnÑhnÑ`oØ-1¬V°Q°t±V©_¸d¼fÀaÈÁf¹oÈtÌvÐWXÐY]ÑW]ÉÐ`dÔ`fÐhiÐjnÑhnÑ`oð-qàœ>Ø!œ^Ø!œ^ð	-ñ -ô -ˆð
 	
�Šˆh‰Œˆàˆr!   Nrr   r?   r!   r   rt   rt   Ú   sp   € € € € € ðð ð ˆw˜GØ �L Ñ/Ô/Ø �L Ñ*Ô*ð
ñ 
ô 
€Hð
ð ð ðð ð ð ð r!   rt   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
SmileyFacezkThis draws a classic smiley face.

        possible attributes:
        'x', 'y', 'size', 'fillColor'

    c                 ó¨   — t                                | ¦  «         d| _        d| _        d| _        t
          j        | _        t
          j        | _	        d S rU   )
r   r    r   r   r   r   r[   r   r1   r   r   s    r   r    zSmileyFace.__init__  sD   € Ý×Ò˜ÑÔÐØˆŒØˆŒØˆŒ	ÝœˆŒÝ!œ<ˆÔÐÐr!   c                 ó  — t          | j        ¦  «        }t          j        ¦   «         }|                     t          j        | j        |dz  z   | j        |dz  z   |dz  | j        | j	        t          |dz  | j        ¦  «        ¬¦  «        ¦  «         dD ]r}|                     t          j        | j        |dz  |z  z   | j        |dz  dz  z   |dz  |dz  | j	        | j	        t          |dz  | j        ¦  «        ¬¦  «        ¦  «         Œs| j        |dz  z   }| j        |dz  z   }|dz  }|}|}d	}	d
}
d}g }|j        }ddlm}m}m} |dz  }||z  }|	|z  }|
|z  }||k     r|d|z  z   }||k     °|}||k     rC| ||¦  «        |z  z   }| ||¦  «        |z  z   } ||¦  «          ||¦  «         ||z   }||k     °Ct          j        || j	        | j	        t          |dz  | j        ¦  «        ¬¦  «        }|                     |¦  «         |S )Nr%   g      C@©ÚcxÚcyÚrr   r   r   )r   r%   r]   é   r(   rj   r#   iT  r   r   ©ÚsinÚcosÚpiç     €f@)r-   r   r   rK   r/   ÚCircler   r   r   r   Úmaxr   ÚEllipseÚappendÚmathr†   r‡   rˆ   rz   )r   r3   rN   ÚiÚcenterxÚcenteryÚradiusÚyradiusÚxradiusÚstartangledegreesÚendangledegreesÚdegreedeltaÚ
pointslistÚar†   r‡   rˆ   ÚdegreestoradiansÚradiansdeltaÚ
startangleÚendangleÚangler   r   Úsmiles                            r   r.   zSmileyFace.draw  s…  € å�$”)ÑÔˆÝŒL‰NŒNˆð 	
�Š�fŒm˜tœv q¨¡s™|°´¸¸!¹±ÀÀ!ÁØœ.°dÔ6FÝ  #¡ dÔ&6Ñ7Ô7ð9ñ 9ô 9ñ 	:ô 	:ð 	:ð ð 	>ð 	>ˆAØ�EŠE•&”. ¤¨¨1©¨a©¡°´¸¸!¹¸Q±w±ÀÀ"ÁÀaÈÁdØ"Ô.¸dÔ>NÝ # A c¡E¨$Ô*:Ñ ;Ô ;ð=ñ =ô =ñ >ô >ð >ð >ð ”˜˜!™‘ˆØ”˜˜!™‘ˆØ�‰sˆØˆØˆØÐØˆØˆØˆ
ØÔˆØ%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø˜e™8ÐØ"Ð#3Ñ3ˆØ&Ð'7Ñ7ˆ
Ø"Ð#3Ñ3ˆØ�zÒ!Ð!Ø! ! B¡$™ˆhð �zÒ!Ð!àˆØ�HŠnˆnØ˜#˜#˜e™*œ* VÑ+Ñ+ˆAØ˜#˜#˜e™*œ* WÑ,Ñ,ˆAØˆAˆa‰DŒDˆD�!�!�A‘$”$�$Ø˜,Ñ&ˆEð	 �HŠnˆnõ ” 
ØÔ+Ø!Ô-Ý   3¡ tÔ'7Ñ8Ô8ð:ñ :ô :ˆð 	
�Šˆe‰Œˆàˆr!   NrQ   r?   r!   r   r}   r}     s<   € € € € € ðð ð(ð (ð (ð0ð 0ð 0ð 0ð 0r!   r}   c                   óN   — e Zd ZdZ ee eed¬¦  «        ¬¦  «        Zd„ Z	d„ Z
dS )ÚStopSignzbThis draws a (British) stop sign.

        possible attributes:
        'x', 'y', 'size'

        zcolor of the word stopr   )rc   Ú	stopColorc                 ó–   — d| _         d| _        d| _        t          j        | _        t          j        | _        t          j        | _	        d S rU   )
r   r   r   r   r1   r   Ú	orangeredr   Ú
ghostwhiter¢   r   s    r   r    zStopSign.__init__R  s9   € ØˆŒØˆŒØˆŒ	Ý!œ<ˆÔÝÔ)ˆŒÝÔ*ˆŒˆˆr!   c                 óÌ  — t          | j        ¦  «        }t          j        ¦   «         }|dz  }t          j        | j        |z   | j        | j        | j        |z   | j        | j        |dz  z   | j        |z   | j        |z   | j        |dz  z   | j        |z   | j        |z   | j        |dz  z   | j        |z   | j        |z   | j        |dz  z   | j        g| j        d d¬¦  «        }|                     |¦  «         t          j        | j        |z   |dz  z   | j        |dz  z   | j        |dz  z   | j        |z   |dz  z   | j        |dz  z   | j        |dz  z   |dz  z
  | j        |z   |dz  z   | j        |z   |dz  z
  | j        |dz  z   |dz  z
  | j        |z   |dz  z
  | j        |z   |dz  z
  | j        |dz  z   |dz  z
  | j        |z   |dz  z
  | j        |z   |dz  z   | j        |dz  z   |dz  z
  | j        |dz  z   gd | j	        d¬¦  «        }|                     |¦  «         | j
        rL|                     t          j        | j        |dz  z   | j        |dz  z   d	| j
        d
|dz  d¬¦  «        ¦  «         |S )Nr]   r%   r   r^   éK   r   ç      à?çš™™™™™Ù?ÚSTOPr'   zHelvetica-Bold)r   r*   r+   ÚfontName)r-   r   r   rK   rL   r   r   r   r/   r   r¢   r0   )r   r3   rN   r_   ÚouterOctagonÚinnerOctagons         r   r.   zStopSign.drawZ  sÁ  € å�$”)ÑÔˆÝŒL‰NŒNˆð �‰sˆå”~¨d¬f°V©m¸T¼VØ.2¬f°d´f¸V±mØ.2¬f°d´f¸fÀQ¹hÑ6GØ.2¬f°V©m¸T¼VÀA¹XØ.2¬f°f¸Q±hÑ.?ÀÄÈÁØ.2¬f°Q©h¸¼ÀÀqÁÑ8IØ.2¬f°Q©h¸¼¸v¹Ø.2¬f°f¸Q±hÑ.?ÀÄð.Ið 59Ô4DØ26Ø23ð
5ñ 
5ô 
5ˆð 	
�ŠˆlÑÔÐå”~¨d¬f°V©m¸Q¸r¹TÑ.BÀDÄFÈAÈbÉDÁMØ.2¬f°a¸±d©m¸T¼VÀF¹]ÈAÈbÉDÑ=QØ.2¬f°a¸±d©m¸T¼VÀVÈAÁXÑ=NÐPQÐRTÑPTÑ=UØ.2¬f°V©m¸Q¸r¹TÑ.BÀDÄFÈ1ÁHÈaÐPRÉdÁOØ.2¬f°f¸Q±hÑ.?ÀÀ2ÁÑ.FÈÌÐPQÉÐTUÐVXÑTXÑHYØ/3¬v°a©x¸!¸B¹$Ñ.?ÀÄÈÐPQÉÑARÐTUÐVXÑTXÑAYØ/3¬v°a©x¸!¸B¹$Ñ.?ÀÄÈÁÐPQÐRTÑPTÑAUØ.2¬f°f¸Q±hÑ.?ÀÀ2ÁÑ.FÈÌÐPQÐRTÑPTÉð.Wð 59Ø26´.Ø23ð
5ñ 
5ô 
5ˆð 	
�ŠˆlÑÔÐàŒ>ð 	FØ�EŠE•&”- ¤¨¨#©¡¨t¬v°q¸±u©~Ø"¨d¬nÈØ%& q¡SÐ3CðEñ Eô Eñ Fô Fð Fð ˆr!   N©r   r6   r7   r8   r:   r   r;   r=   r>   r    r.   r?   r!   r   r¡   r¡   G  si   € € € € € ðð ð ˆw˜GØ �L Ð4LÐMÑMÔMð
ñ 
ô 
€Hð+ð +ð +ð'ð 'ð 'ð 'ð 'r!   r¡   c                   óN   — e Zd ZdZ ee eed¬¦  «        ¬¦  «        Zd„ Z	d„ Z
dS )ÚNoEntryz�This draws a (British) No Entry sign - a red circle with a white line on it.

        possible attributes:
        'x', 'y', 'size'

        zcolor of the inner barr   )rc   ÚinnerBarColorc                 ó–   — d| _         d| _        d| _        t          j        | _        t          j        | _        t          j        | _	        d S rU   )
r   r   r   r   r1   r   r¤   r   r¥   r±   r   s    r   r    zNoEntry.__init__�  s<   € ØˆŒØˆŒØˆŒ	Ý!œ<ˆÔÝÔ)ˆŒÝ#Ô.ˆÔÐÐr!   c                 óP  — t          | j        ¦  «        }t          j        ¦   «         }| j        rK|                     t          j        | j        |dz  z   | j        |dz  z   |dz  d | j        d¬¦  «        ¦  «         | j	        rQ|                     t          j        | j        |dz  z   | j        |dz  z   |dz  |dz  z
  | j	        d d¬¦  «        ¦  «         | j
        }|rK|                     t          j        | j        |dz  z   | j        |dz  z   |dz  |d	z  ||dd¬
¦  «        ¦  «         |S )Nr%   r   r€   r$   r   r   r©   çš™™™™™é?çš™™™™™É?)ÚwidthÚheightr   r   ÚstrokeLineCapr   )r-   r   r   rK   r   r/   rŠ   r   r   r   r±   rm   )r   r3   rN   r±   s       r   r.   zNoEntry.draw˜  sˆ  € å�$”)ÑÔˆÝŒL‰NŒNˆð Ôð 	UØ�EŠE•&”- d¤f¨a°©c¡l¸4¼6À1ÀQÁ3¹<ÈaÐPQÉcÐ_cÐswô  tDð  RSð  Tñ  Tô  Tñ  Uô  Uð  UàŒ>ð 	]Ø�EŠE•&”- d¤f¨a°©c¡l¸$¼&À!ÀAÁ#¹,ÈqÐQRÉsÐUVÐWYÑUYÉlÐimÔiwð  HLð  Z[ð  \ñ  \ô  \ñ  ]ô  ]ð  ]àÔ*ˆØð 	vØ�EŠE•&”+˜dœf a¨¡e™n¨d¬f°a¸±e©nÀAÀcÁEÐRSÐTWÑRWÐerð  CPð  bcð  stð  uñ  uô  uñ  vô  vð  vØˆr!   Nr®   r?   r!   r   r°   r°   „  si   € € € € € ðð ð ˆw˜GØ$˜ ]Ð8PÐQÑQÔQð
ñ 
ô 
€Hð/ð /ð /ðð ð ð ð r!   r°   c                   ó6   — e Zd ZdZ ee¬¦  «        Zd„ Zd„ ZdS )Ú
NotAllowedzƒThis draws a 'forbidden' roundel (as used in the no-smoking sign).

        possible attributes:
        'x', 'y', 'size'

        )rc   c                 ót   — d| _         d| _        d| _        t          j        | _        t          j        | _        d S rU   )r   r   r   r   r   r   rh   r   r   s    r   r    zNotAllowed.__init__´  s.   € ØˆŒØˆŒØˆŒ	Ý!œ:ˆÔÝœˆŒˆˆr!   c           	      óä  — t          | j        ¦  «        }t          j        ¦   «         }| j        }t          j        | j        |dz  z   | j        |dz  z   |dz  |dz  z
  | j        ||dz  ¬¦  «        }| 	                    |¦  «         | j        |z   }| j        |dz  z   |dz  z
  }||dz  z
  }|dz  }|dz  }	d}
d}d}g }|j
        }d	d
lm}m}m} |dz  }||z  }|
|z  }||z  }||k     r|d|z  z   }||k     °|}||k     rC| ||¦  «        |z  z   }| ||¦  «        |z  z   } ||¦  «          ||¦  «         ||z   }||k     °Ct          j        ||||dz  ¬¦  «        }| 	                    |¦  «         |S )Nr%   r(   g      $@r€   é   r   i°ÿÿÿéZ   r   r…   r‰   rj   )r-   r   r   rK   r   rŠ   r   r   r   r/   r�   rŽ   r†   r‡   rˆ   rz   )r   r3   rN   r   ÚouterCircler�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   r†   r‡   rˆ   rš   r›   rœ   r�   rž   r   r   Úcrossbars                             r   r.   zNotAllowed.draw»  s  € å�$”)ÑÔˆÝŒL‰NŒNˆØÔ&ˆõ ”m¨$¬&°!°A±#©,¸t¼vÀqÈÁs¹|ÐSTÐUVÑSVÐYZÐ[]ÑY]ÑR^ÐlpÔlzð  KVð  deð  fiñ  dið  jñ  jô  jˆØ	�ŠˆkÑÔÐà”�q‘ˆØ”˜˜!™‘˜a ™cÑ"ˆØ�!�A‘#‰wˆØ˜‘(ˆØ˜‘(ˆØÐØˆØˆØˆ
ØÔˆØ%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø˜e™8ÐØ"Ð#3Ñ3ˆØ&Ð'7Ñ7ˆ
Ø"Ð#3Ñ3ˆØ�zÒ!Ð!Ø  "¡‘}ˆHð �zÒ!Ð!àˆØ�HŠnˆnØ˜#˜#˜e™*œ* VÑ+Ñ+ˆAØ˜#˜#˜e™*œ* WÑ,Ñ,ˆAØˆAˆa‰DŒDˆD�!�!�A‘$”$�$Ø˜,Ñ&ˆEð	 �HŠnˆnõ
 ”? :¸;ÐVaÐqrÐsvÑqvÐwÑwÔwˆØ	�Šˆh‰ŒˆØˆr!   N)	r   r6   r7   r8   r:   r   r>   r    r.   r?   r!   r   rº   rº   ©  sV   € € € € € ðð ð ˆw˜Gð 
ñ 
ô 
€Hð&ð &ð &ð#ð #ð #ð #ð #r!   rº   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú	NoSmokingz^This draws a no-smoking sign.

        possible attributes:
        'x', 'y', 'size'

        c                 ó:   — t                                | ¦  «         d S rD   )rº   r    r   s    r   r    zNoSmoking.__init__é  s   € Ý×Ò˜DÑ!Ô!Ð!Ð!Ð!r!   c           	      ó  — t          | j        ¦  «        }t                               | ¦  «        }| j        |dz  z   |dz  z
  }| j        |dz  z   |dz  z
  }t          j        |||dz  |dz  t          j	        t          j
        d¬¦  «        }||dz  z   |dz  z   }|                     d|¦  «         t          j        |||d	z  |dz  t          j        d d¬¦  «        }||d
z  z   }|                     d|¦  «         t          j        |||d	z  |dz  t          j        d d¬¦  «        }||d
z  z   }|                     d|¦  «         t          j        |||d	z  |dz  t          j        d d¬¦  «        }||d
z  z   }|                     d|¦  «         |S )Nr%   g      @é    é   r   ©r   r   r¶   r·   r   r   r   é@   éÿÿÿÿéP   é#   )r-   r   rº   r.   r   r   r   rm   r   r¥   ÚgrayÚinsertr¤   )	r   r3   rN   ÚnewxÚnewyÚcigarrette1Úcigarrette2Úcigarrette3Úcigarrette4s	            r   r.   zNoSmoking.drawì  s¹  € å�$”)ÑÔˆÝ�OŠO˜DÑ!Ô!ˆð Œv�q˜‘s‰|˜Q˜s™UÑ#ˆØŒv�q˜‘s‰|˜Q˜r™TÑ"ˆÝ”k d°¸qÀ¹sÈaÐPRÉdÝ"Ô-½V¼[ÐVWðYñ Yô Yˆà�1�Q‘3‰Z˜˜2™ÑˆØ	�Š��KÑ Ô Ð å”k d°¸qÀ¹tÈqÐQSÉtÝ"Ô,¸DÈaðQñ Qô Qˆà�A�b‘D‰kˆØ	�Š��KÑ Ô Ð å”k d°¸qÀ¹tÈqÐQSÉtÝ"Ô,¸DÈaðQñ Qô Qˆà�A�b‘D‰kˆØ	�Š��KÑ Ô Ð å”k d°¸qÀ¹tÈqÐQSÉtÝ"Ô,¸DÈaðQñ Qô Qˆà�A�b‘D‰kˆØ	�Š��KÑ Ô Ð àˆr!   NrQ   r?   r!   r   rÂ   rÂ   á  s<   € € € € € ðð ð"ð "ð "ðð ð ð ð r!   rÂ   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
DangerSignz´This draws a 'danger' sign: a yellow box with a black exclamation point.

        possible attributes:
        'x', 'y', 'size', 'strokeColor', 'fillColor', 'strokeWidth'

        c                 ó’   — d| _         d| _        d| _        t          j        | _        t          j        | _        | j        dz  | _        d S )Nr   r   rF   )	r   r   r   r   r1   r   Úgoldr   r   r   s    r   r    zDangerSign.__init__  s>   € ØˆŒØˆŒØˆŒ	Ý!œ<ˆÔÝœˆŒØœ9 U™?ˆÔÐÐr!   c                 óø  — t          | j        ¦  «        }t          j        ¦   «         }| j        }|dz  }| j        }|dz  }t          j        | j        | j        | j        |z   | j        | j        |dz  z   | j        |z   gd | j        d¬¦  «        }| 	                    |¦  «         t          j        | j        |dz  z   | j        |dz  z   | j        |z   |dz  z
  | j        |dz  z   | j        |dz  z   | j        |z   |dz  z
  g| j
        d d¬¦  «        }| 	                    |¦  «         t          j        | j        |dz  z   |dz  z
  | j        |dz  z   | j        |dz  z   |dz  z   | j        |dz  z   | j        |dz  z   |dz  z   |dz  z   | j        |d	z  z   | j        |dz  z   |dz  z
  |dz  z
  | j        |d	z  z   g| j        d ¬
¦  «        }| 	                    |¦  «         t          j        | j        |dz  z   |dz  z
  | j        |z   | j        |dz  z   |dz  z   | j        |z   | j        |dz  z   |dz  z   | j        |dz  z   | j        |dz  z   |dz  z
  | j        |dz  z   g| j        d ¬
¦  «        }| 	                    |¦  «         |S )NrF   r%   r   rH   r$   r§   g      @r½   g      @)rI   r   r   )r-   r   r   rK   r   rL   r   r   r   r/   r   )	r   r3   rN   ÚewrO   ÚouterTriangleÚinnerTriangleÚexmarkÚexdots	            r   r.   zDangerSign.draw  sÆ  € å�$”)ÑÔˆÝŒL‰NŒNˆØÔˆØˆu‰Wˆð
 ÔˆØˆu‰WˆåœØŒF�D”FØŒF�1‰H�d”fØŒF�A�a‘C‰L˜œ ™ð1#ð  Ø!Ô-Øðñ ô ˆð 	
�ŠˆmÑÔÐåœØŒF�A�b‘D‰M˜4œ6 1 R¡4™=ØŒV�A‰X˜˜"™Ñ˜tœv q¨¡t™}ØŒF�A�a‘C‰L˜$œ& ™( Q r¡TÑ*ð1,ð  œ>Ø!Øðñ ô ˆð 	
�ŠˆmÑÔÐå”ØŒf�Q�q‘S‰j˜"˜Q™$Ñ ¤¨¨3©¡ØŒf�Q�q‘S‰j˜"˜Q™$Ñ ¤¨¨3©¡ØŒf�Q�q‘S‰j˜B˜q™DÑ" B q¡DÑ)¨D¬F°2°c±6©MØŒf�Q�q‘S‰j˜B˜q™DÑ" B q¡DÑ)¨D¬F°2°c±6©Mð	(;ð
  Ô+Ø!ð#ñ #ô #ˆð 	
�Šˆf‰Œˆå”ØŒf�Q�q‘S‰j˜"˜Q™$Ñ ¤¨¡ØŒf�Q�q‘S‰j˜"˜Q™$Ñ ¤¨¡ØŒf�Q�q‘S‰j˜"˜Q™$Ñ ¤¨¨1©¡ØŒf�Q�q‘S‰j˜"˜Q™$Ñ ¤¨¨1©¡ð	'.ð
  Ô+Ø!ð#ñ #ô #ˆð 	
�Šˆe‰Œˆàˆr!   NrQ   r?   r!   r   rÕ   rÕ     s<   € € € € € ðð ð+ð +ð +ð1ð 1ð 1ð 1ð 1r!   rÕ   c                   óx   — e Zd ZdZ ee ee¦  «         ee¦  «         ee¦  «        ¬¦  «        Z	d„ Z
d„ Zd„ ZdS )ÚYesNoaI  This widget draw a tickbox or crossbox depending on 'testValue'.

        If this widget is supplied with a 'True' or 1 as a value for
        testValue, it will use the tickbox widget. Otherwise, it will
        produce a crossbox.

        possible attributes:
        'x', 'y', 'size', 'tickcolor', 'crosscolor', 'testValue'

)rc   Ú	tickcolorÚ
crosscolorÚ	testValuec                 ó‚   — d| _         d| _        d| _        t          j        | _        t          j        | _        d| _        d S )Nr   r   r   )	r   r   r   r   rV   rà   r   rá   râ   r   s    r   r    zYesNo.__init__a  s4   € ØˆŒØˆŒØˆŒ	ÝœˆŒÝ œ*ˆŒØˆŒˆˆr!   c                 óî   — | j         rt          ¦   «         }| j        |_        nt	          ¦   «         }| j        |_        | j        |_        | j        |_        | j	        |_	        | 
                    ¦   «          |S rD   )râ   rt   rà   ru   rb   rá   rd   r   r   r   r.   )r   Úyns     r   r.   z
YesNo.drawi  s_   € ØŒ>ð 	*Ý‰yŒyˆBØœˆBŒLˆLå‰zŒzˆBØœ/ˆBŒMØŒVˆŒØŒVˆŒØ”	ˆŒØ
�Š‰	Œ	ˆ	Øˆ	r!   c           
      ón  — t          j        dd¦  «        }t          ¦   «         }d|_        d|_        d|_        d|_        |                     ¦   «          |                     |¦  «         t          ¦   «         }d|_        d|_        d|_        d|_        |                     ¦   «          |                     |¦  «         d	}|                     t          j	        |j        |j        d
z  z   |j        d|z  z
  dt          j        d|¬¦  «        ¦  «         |                     t          j	        |j        |j        d
z  z   |j        d|z  z
  dt          j        d|¬¦  «        ¦  «         d}|                     t          j	        |j        dz   |j        dz
  | j        j        t          j        d|¬¦  «        ¦  «         |S )Nr#   r   é   é   éF   r   éx   r   é   r%   ç333333ó?ztestValue=0r'   r)   ztestValue=1r(   éU   é   )r   r,   rß   r   r   r   râ   r.   r/   r0   r   r1   r   r   )r   r2   rå   Úyn2ÚlabelFontSizes        r   r5   z
YesNo.demow  s™  € ÝŒN˜3 Ñ$Ô$ˆÝ‰WŒWˆØˆŒØˆŒØˆŒØˆŒØ
�Š‰	Œ	ˆ	Ø	�Šˆb‰	Œ	ˆ	Ý‰gŒgˆØˆŒØˆŒØˆŒØˆŒØ�Š‰
Œ
ˆ
Ø	�Šˆc‰
Œ
ˆ
ØˆØ	�Š�fŒm˜BœD "¤'¨!¡)Ñ,¨b¬d°C¸Ñ4EÑ.FØ)µV´\ÈhØ%2ð4ñ 4ô 4ñ 	5ô 	5ð 	5ð 	
�Š�fŒm˜CœE 3¤8¨A¡:Ñ.°´°s¸=Ñ7HÑ0IØ)µV´\ÈhØ%2ð4ñ 4ô 4ñ 	5ô 	5ð 	5ð ˆØ	�Š�fŒm˜BœD ™G R¤T¨"¡WØ œNÔ3½v¼|ÐX`Ø%2ð4ñ 4ô 4ñ 	5ô 	5ð 	5ð ˆr!   N)r   r6   r7   r8   r:   r   r;   ÚisColorÚ	isBooleanr>   r    r.   r5   r?   r!   r   rß   rß   O  sŒ   € € € € € ð	ð 	ð ˆw˜GØ �L Ñ)Ô)Ø!�\ 'Ñ*Ô*Ø �L Ñ+Ô+ð
ñ 
ô 
€Hðð ð ðð ð ðð ð ð ð r!   rß   c                   óJ   — e Zd ZdZ ee ee¦  «        ¬¦  «        Zd„ Z	d„ Z
dS )Ú
FloppyDiskzyThis widget draws an icon of a floppy disk.

        possible attributes:
        'x', 'y', 'size', 'diskcolor'

        )rc   Ú	diskColorc                 óR   — d| _         d| _        d| _        t          j        | _        d S rU   )r   r   r   r   r1   rõ   r   s    r   r    zFloppyDisk.__init__   s$   € ØˆŒØˆŒØˆŒ	ÝœˆŒˆˆr!   c           	      ó0  — t          | j        ¦  «        }t          j        ¦   «         }t          j        | j        | j        |dz  z   |||dz  z
  | j        d d¬¦  «        }|                     |¦  «         t          j        | j        |dz  z   | j        |z   |dz  z
  |dz  |dz  t          j
        d d¬¦  «        }|                     |¦  «         t          j        | j        |dz  z   | j        |z   |dz  z
  |dz  |dz  t          j        d d¬¦  «        }|                     |¦  «         t          j        | j        |d	z  z   | j        d
|z  z   | j        |dz  z   | j        d
|z  z   t          j        t          j        d¬¦  «        }|                     |¦  «         t          j        | j        |d	z  z   | j        d|z  z   | j        |dz  z   | j        d|z  z   t          j        t          j        d¬¦  «        }|                     |¦  «         t          j        | j        |d	z  z   | j        d|z  z   | j        |dz  z   | j        d|z  z   t          j        t          j        d¬¦  «        }|                     |¦  «         t          j        | j        |dz  z   | j        |dz  |dz  t          j        d d¬¦  «        }	|                     |	¦  «         t          j        | j        |dz  z   | j        |dz  z   |dz  |dz  | j        d d¬¦  «        }
|                     |
¦  «         |S )Nr   r   rÇ   r   r¨   r´   g¸…ëQ¸Þ?g{®Gáz´?rk   g333333ã?rl   )Úx1Úy1Úx2Úy2r   r   r   gffffffæ?rµ   ry   gìQ¸…ëÑ?gìQ¸…ë¡?g¸…ëQ¸¾?)r-   r   r   rK   rm   r   r   rõ   r/   r   Ú
whitesmokeÚ	royalbluern   r1   Úsilver)r   r3   rN   ÚdiskBodyÚlabelÚlabelsplashÚline1Úline2Úline3Ú
metalcoverÚ	coverslots              r   r.   zFloppyDisk.draw¦  s+  € å�$”)ÑÔˆÝŒL‰NŒNˆõ ”; ¤¨4¬6°1°S±5©>ÀÈ1ÈaÐPSÉeÉ9Øœ>Ø!Øðñ ô ˆð 	
�Šˆh‰Œˆå”˜dœf a¨¡e™n°´¸±¸A¸c¹EÑ0BÈ!ÈCÉ%ÐXYÐZ^ÑX^Ý!Ô,Ø!Øðñ ô ˆð 	
�Šˆe‰Œˆå”k D¤F¨A¨c©E¡N°t´v¸a±xÀ!ÀCÁ%Ñ6HÐPQÐRUÑPUÐ^_Ð`dÑ^dÝ!Ô+Ø!Øðñ ô ˆð 	
�ŠˆkÑÔÐõ ”˜tœv q¨¡v™°4´6¸3¸q¹5±>ÀdÄfÈaÐPTÉfÁoÐZ^ÔZ`ÐbeÐfgÑbgÑZhÝ!œ<Ý#œ\Øðñ ô ˆð 	
�Šˆe‰Œˆå”˜tœv q¨¡v™°4´6¸3¸q¹5±>ÀdÄfÈaÐPTÉfÁoÐZ^ÔZ`ÐbeÐfgÑbgÑZhÝ!œ<Ý#œ\Øðñ ô ˆð 	
�Šˆe‰Œˆå”˜tœv q¨¡v™°4´6¸3¸q¹5±>ÀdÄfÈaÐPTÉfÁoÐZ^ÔZ`ÐbeÐfgÑbgÑZhÝ!œ<Ý#œ\Øðñ ô ˆð 	
�Šˆe‰Œˆå”[ 4¤6¨1¨S©5¡>°d´fÀQÀsÁUÐSTÐUYÑSYÝ!œ=Ø!Øðñ ô ˆ
ð 	
�ŠˆjÑÔÐå”K $¤&¨!¨D©&¡/°d´f¸qÀ¹wÑ5GÈqÐQUÉvÐ^_Ð`dÑ^dØœ>Ø!Øðñ ô ˆ	ð 	
�ŠˆiÑÔÐàˆr!   N)r   r6   r7   r8   r:   r   r;   rñ   r>   r    r.   r?   r!   r   rô   rô   ”  sc   € € € € € ðð ð ˆw˜GØ �L Ñ)Ô)ð
ñ 
ô 
€Hð&ð &ð &ð8ð 8ð 8ð 8ð 8r!   rô   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚArrowOnezuThis widget draws an arrow (style one).

        possible attributes:
        'x', 'y', 'size', 'fillColor'

        c                 ón   — d| _         d| _        d| _        t          j        | _        d| _        d | _        d S rU   )r   r   r   r   r   r   r   r   r   s    r   r    zArrowOne.__init__ç  s6   € ØˆŒØˆŒØˆŒ	ÝœˆŒØˆÔØˆÔÐÐr!   c                 óx  — t          | j        ¦  «        }t          j        ¦   «         }| j        }| j        }|dz  }|dz  }|dz  }|                     t          j        |||z   ||d|z  z   ||z   |d|z  z   ||z   |d|z  z   ||z   ||z   ||z   ||z   ||z   ||z   g| j        | j	        | j
        ¬¦  «        ¦  «         |S )Nr%   r]   é   é   rH   ©r-   r   r   rK   r   r   r/   rL   r   r   r   )r   r3   rN   r   r   Ús2Ús3Ús5s           r   r.   zArrowOne.drawï  sì   € å�$”)ÑÔˆÝŒL‰NŒNˆàŒFˆØŒFˆØˆq‰SˆØˆq‰SˆØˆq‰SˆØ	�Š�fŒnØ()¨!¨B©$Ø()¨!¨A¨b©D©&Ø()¨"©¨Q¨q°©t©VØ()¨"©¨Q¨q°©t©VØ()¨!©¨A¨b©DØ()¨"©¨Q¨r©TØ()¨"©¨Q¨r©Tð')ð !œNØ"Ô.Ø"Ô.ðñ ô ñ 	ô 	ð 	ð ˆr!   NrQ   r?   r!   r   r  r  à  s<   € € € € € ðð ð ð  ð  ðð ð ð ð r!   r  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚArrowTwozuThis widget draws an arrow (style two).

        possible attributes:
        'x', 'y', 'size', 'fillColor'

        c                 ón   — d| _         d| _        d| _        t          j        | _        d| _        d | _        d S rU   )r   r   r   r   Úbluer   r   r   r   s    r   r    zArrowTwo.__init__  s6   € ØˆŒØˆŒØˆŒ	ÝœˆŒØˆÔØˆÔÐÐr!   c                 ó¦  — t          | j        ¦  «        }t          j        ¦   «         }| j        }| j        }|dz  }|dz  }|dz  }|dz  }|                     t          j        ||d|z  z   ||d|z  z   |d|z  z   |d|z  z   |d|z  z   |d|z  z   ||z   ||z   |d|z  z   ||z   |d|z  z   |d|z  z   g| j        | j	        | j
        ¬¦  «        ¦  «         |S )	Nr%   r]   r  é   é   é   g     À2@rH   r  )	r   r3   rN   r   r   r  r  r  Ús24s	            r   r.   zArrowTwo.draw  s  € å�$”)ÑÔˆÝŒL‰NŒNˆð ŒFˆØŒFˆØˆq‰SˆØˆq‰SˆØˆq‰SˆØ�‰dˆà	�Š�fŒnà�a˜˜3™‘hØ�a˜˜3™‘hØ�e˜C‘i‘K  2 c¡6¡Ø�a˜‘d‘F˜A˜a ™d™FØ�a‘C˜˜2™Ø�a˜‘d‘F˜A˜b™DØ�e˜C‘i‘K  2 c¡6¡ðð œØÔ*ØÔ*ð,ñ ,ô ,ñ 	ô 	ð 	ð ˆr!   NrQ   r?   r!   r   r  r  	  s<   € € € € € ðð ð ð  ð  ðð ð ð ð r!   r  c            	       ód   — e Zd ZdZ ee e eee	f¦  «        d¬¦  «        ¬¦  «        Z
d„ Zd„ ZdS )Ú	CrossHairrB   z( gap at centre as "x%" or points or Noner   )rc   ÚinnerGapc                 ó˜   — dx| _         x| _        x| _        | _        d| _        d | _        t          j        | _        d| _	        d| _
        d S )Nr   r(   r¨   z20%)r   r   r   r   r   r   r   r1   r   r   r  r   s    r   r    zCrossHair.__init__=  sI   € Ø./Ð/ˆŒÐ/�”Ð/˜$œ' D¤GØˆŒ	ØˆŒÝ!œ<ˆÔØˆÔØˆŒˆˆr!   c                 óì  — t          | j        ¦  «        }t          j        ¦   «         }| j        }| j        | j        z   }| j        | j        z   }d| j        z  }|s||z
  |||z   |f|||z
  |||z   fg}n—t          |¦  «        rUt          |¦  «        }|                     d¦  «        r|t          |d d…         ¦  «        z  dz  }nt          |¦  «        dz  }n|dz  }||z
  |||z
  |f||z   |||z   |f|||z
  |||z
  f|||z   |||z   fg}t          j        | j        | j        ¬¦  «        }	|D ]3\  }
}}}|	                     |
|¦  «         |	                     ||¦  «         Œ4|                     |	¦  «         |S )Nr¨   ú%rÉ   g      Y@)r   r   )r-   r   r   rK   r  r   r   r   r   r   r   ÚendswithÚPathr   r   ÚmoveToÚlineTor/   )r   r3   rN   Úigr   r   ÚhsizeÚLÚgsÚPÚx0Úy0rø   rù   s                 r   r.   zCrossHair.drawE  s§  € å�$”)ÑÔˆÝŒL‰NŒNˆØŒ]ˆàŒF�4”7‰NˆØŒF�4”7‰NˆØ�D”I‘ˆØð 	aØ�E‘'˜!˜A˜e™G AÐ&¨¨1¨U©7°1°Q°u±WÐ(=Ð>ˆAˆAå�R‰yŒyð Ý˜r‘]”]�Ø—;’;˜tÑ$Ô$ð 'Ø�u R¨¨¨¤W™~œ~Ñ-¨eÑ3�B�Bå˜r™œ 3™�B�Bà˜‘V�Ø�E‘'˜!˜A˜b™D Ð# a¨¡d¨1¨Q¨u©W°QÐ%7¸!¸A¸e¹GÀAÀaÈÁdÐ9KÈaÐPQÐRTÑPTÐUVÐWXÐY^ÑW^ÐM_Ð`ˆAÝŒK DÔ$4ÀÔAQÐRÑRÔRˆØð 	ð 	‰KˆBˆr�"�RØ�HŠH�R˜‰OŒOˆOØ�HŠH�R˜‰OŒOˆOˆOØ	�Šˆa‰ŒˆØˆr!   N)r   r6   r7   r8   r:   r   r;   ÚEitherOrÚisStringÚisNumberOrNoner>   r    r.   r?   r!   r   r  r  7  sr   € € € € € Ø-Ð-Øˆw˜GØ#�| H H¨h°~Ð-FÑ$GÔ$GÐMwÐxÑxÔxð
ñ 
ô 
€Hðð ð ðð ð ð ð r!   r  c                  ó4  — d} t          j        dd¦  «        }t          ¦   «         }d|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t          ¦   «         }d
|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t          ¦   «         }d|_        d|_        |                     |¦  «         |j        j	        dz   }|                     t          j        |j        |j        dz  z   |j        d| z  z
  |t          j        d| ¬	¦  «        ¦  «         |                     t          j        dddt          j        d| dz  ¬	¦  «        ¦  «         t          ¦   «         }d|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t          ¦   «         }d
|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t!          ¦   «         }d|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t#          ¦   «         }	d|	_        d|	_        |                     |	¦  «         |                     t          j        |	j        |	j        dz  z   |	j        d| z  z
  |	j        j	        t          j        d| ¬	¦  «        ¦  «         t%          ¦   «         }
d
|
_        d|
_        |                     |
¦  «         |                     t          j        |
j        |
j        dz  z   |
j        d| z  z
  |
j        j	        t          j        d| ¬	¦  «        ¦  «         t'          ¦   «         }d|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t)          ¦   «         }d|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t+          ¦   «         }d
|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t-          ¦   «         }d|_        d|_        |                     |¦  «         |                     t          j        |j        |j        dz  z   |j        d| z  z
  |j        j	        t          j        d| ¬	¦  «        ¦  «         t/          j        |dd¦  «         t3          d¦  «         dS )z\This function produces a pdf with examples of all the signs and symbols from this file.
    r(   iÂ  iŠ  rî   i  r%   rì   r'   r)   éª   i@  r   é‚   r½   zT(The 'YesNo' widget returns a tickbox if testvalue=1, and a crossbox if testvalue=0)g      è?i�  i  éŒ   zsignsandsymbols.pdfzsignsandsymbols.pyzwrote file: signsandsymbols.pdfN)r   r,   rb   r   r   r/   r0   r   r   r   r   r1   rt   rß   r¡   r°   r}   rÕ   rº   rÂ   r  r  rô   r	   Ú
drawToFileÚprint)rð   r2   ÚcbÚtbrå   Ú
tempstringÚssÚneÚsfÚdsÚnaÚnsÚa1Úa2Úfds                  r   Útestr@  b  sž  € ð €MÝŒ�s˜3ÑÔ€AÝ	‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœ<Ô0½F¼LÐU]Ø$1ð3ñ 3ô 3ñ 4ô 4ð 4õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ
 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ”Ô&¨Ñ,€JØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØ&µ&´,È8Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5ð ‡E‚E�&Œ-˜˜AØrõ  Eô  Kð  X`Ø%2°4Ñ%7ð9ñ 9ô 9ñ :ô :ð :õ
 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ 
‰Œ€BØ€B„DØ€B„DØ‡E‚Eˆ"�I„I€IØ‡E‚E�&Œ-˜œ˜bœg a™iÑ(¨"¬$°°MÑ0AÑ*BØœLÔ1½V¼\ÐV^Ø%2ð4ñ 4ô 4ñ 5ô 5ð 5õ Ô˜Ð1Ð3GÑHÔHÐHÝ	Ð
+Ñ,Ô,Ð,Ð,Ð,r!   Ú__main__N)!Ú__version__r8   Úreportlab.libr   Úreportlab.lib.validatorsÚreportlab.lib.attrmapÚreportlab.lib.utilsr   r   Úreportlab.graphicsr   Úreportlab.graphics.widgetbaser   r	   r   rA   rS   rY   rb   rt   r}   r¡   r°   rº   rÂ   rÕ   rß   rô   r  r  r  r@  r   r?   r!   r   ú<module>rI     s¾  ðð €ð	€ð, !Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ø #Ð #Ð #Ð #Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø %Ð %Ð %Ð %Ð %Ð %Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (ð#ð #ð #ð #ð #ˆfñ #ô #ð #ðJð ð ð ð �ñ ô ð ð.ð ð ð ð �ñ ô ð ð@#ð #ð #ð #ð #ˆgñ #ô #ð #ðJ.ð .ð .ð .ð .ˆwñ .ô .ð .ðb)ð )ð )ð )ð )ˆgñ )ô )ð )ðV@ð @ð @ð @ð @�ñ @ô @ð @ðD:ð :ð :ð :ð :ˆwñ :ô :ð :ðz#ð #ð #ð #ð #ˆgñ #ô #ð #ðJ5ð 5ð 5ð 5ð 5�ñ 5ô 5ð 5ðp'ð 'ð 'ð 'ð '�
ñ 'ô 'ð 'ðTAð Að Að Að A�ñ Aô Að AðHCð Cð Cð Cð CˆGñ Cô Cð CðJJð Jð Jð Jð J�ñ Jô Jð JðX'ð 'ð 'ð 'ð 'ˆwñ 'ô 'ð 'ðR,ð ,ð ,ð ,ð ,ˆxñ ,ô ,ð ,ð\(ð (ð (ð (ð (�ñ (ô (ð (ðVl-ð l-ð l-ð\ ˆZÒÐØ€D�F„F€F€F€Fð Ðr!   