ó
    ©ºjo  ã            	       ó  • S r SrS rSS jr\S:X  aÜ  SSKr\R                  R                  \R                  R                  \R                  R                  \
5      SS	5      5      r\R                  " \S
S9  \" SSS9\" SSS9\" SS9/r\" \S5       HW  u  rr\R                  R                  \S\ S35      r\" \SSS9 r\R+                  \" S0 \D65        SSS5        \" S\5        MY     gg! , (       d  f       N= f)aÔ  Ruler SVG generator for AGS Math instruments.

generate(length_cm, marked_cm, size) -> str  (self-contained SVG)

  - Steel-blue ruler body (rounded rectangle).
  - Ink cm graduation ticks with numbers 0..length_cm; half-cm minor ticks.
  - Optional crimson highlight line + dot at `marked_cm`.
  - D0ACAC rounded border frame; CSS-var style block.

  length_cm : integer length of the ruler in cm.
  marked_cm : optional value (0..length_cm) to highlight in crimson.
zƒ<style>svg{--crimson:#960000;--gold:#BF9237;--lime:#88C808;--steel:#4A6488;--cream:#FAF5EE;--ink:#2A2A2A;--border:#D0ACAC;}</style>c                 ó|   • [        U [        U 5      -
  5      S:  a  [        [        [        U 5      5      5      $ SU -  $ )Ng•Ö&è.>z%g)ÚabsÚroundÚstrÚint)Úvs    Ú6C:\allgifted\mathapi11v2\tools/svg_generators\ruler.pyÚ_fmtr	      s4   € Ü
ˆ1Œu�Q‹x‰<Ó˜4ÓÜ”3”u˜Q“x“=Ó!Ð!Ø�1‰HÐó    é
   Nc                 óî  ^^• [        U 5      n SnSmUmU T-  nUSU-  -   nSnSnSnUn	Xx-   n
UU4S jn/ nUR                  S[        U5       S	U S
[        U5       SU S3	5        UR                  [        5        UR                  S[        U5      S-
   S	US-
   S35        UR                  STS SU	 SUS S	U S3	5        [        U S-   5       H‹  nU" U5      nUR                  SUS SU	 SUS SU	S-    S3	5        UR                  SUS SU	S-    S[	        U5       S35        XÐ:  d  M]  U" US -   5      nUR                  SUS SU	 SUS SU	S!-    S"3	5        M�     Ubs  [        S#[        [        U 5      [        U5      5      5      nU" U5      nUR                  SUS SU	S-
   SUS SU
S-    S$3	5        UR                  S%US S&U
S-   S S'35        UR                  S(5        S)R                  U5      $ )*Né$   é*   é   én   é   é2   c                 ó   >• TU T-  -   $ )N© )ÚcmÚSTEP_PXÚbody_xs    €€r   ÚxposÚgenerate.<locals>.xpos(   s   ø€ Ø˜˜W™Ñ$Ð$r
   z/<svg xmlns="http://www.w3.org/2000/svg" width="z
" height="z" viewBox="0 0 Ú z">z<rect x="3" y="3" width="é   zG" rx="14" ry="14" fill="none" stroke="var(--border)" stroke-width="3"/>z	<rect x="z.2fz" y="z	" width="zJ" rx="8" ry="8" fill="var(--steel)" stroke="var(--ink)" stroke-width="2"/>é   z
<line x1="z" y1="z" x2="z" y2="é   z(" stroke="var(--ink)" stroke-width="2"/>z	<text x="é"   zQ" font-family="sans-serif" font-size="13" fill="var(--ink)" text-anchor="middle">z</text>g      à?r   z(" stroke="var(--ink)" stroke-width="1"/>g        zE" stroke="var(--crimson)" stroke-width="2.5" stroke-linecap="round"/>z<circle cx="z" cy="zH" r="6" fill="var(--crimson)" stroke="var(--cream)" stroke-width="1.5"/>z</svg>Ú
)	r   ÚappendÚSTYLEÚranger	   ÚmaxÚminÚfloatÚjoin)Ú	length_cmÚ	marked_cmÚsizeÚPADÚruler_wÚwidthÚheightÚbody_yÚbody_hÚtopÚbottomr   ÚpartsÚiÚxÚxhÚmÚxmr   r   s                     @@r   Úgenerater8      s   ù€ Ü�I“€Ià
€CØ€GØ€FØ˜'Ñ!€GØ�a˜#‘gÑ€EØ€FØ€FØ€FØ
€CØ‰_€Fö%ð €EØ	‡L�LØ
9¼#¸e»*¸ð FØ�(˜/¬#¨e«*¨°Q°v°h¸bð	Bôð 
‡L�L”Ôð 
‡L�LØ
#¤C¨£J¨q¡L >°¸FÀ1¹H¸:ð FHð 	Iôð 
‡L�LØ
�F˜3�<˜u S E¨°7¸3°-¸zÈ&Èð RSð 	Tôô �9˜q‘=Ö!ˆÙ�‹Gˆà�‰Ø˜˜3˜˜v c U¨&°°3°°v¸cÀ"¹f¸Xð F5ð 6ô	
ð 	�‰Ø˜˜#�w˜e C¨¡F 8ð ,EÜEIÈ!ÃWÀIÈWðVô	
ð
 �=Ù�a˜#‘g“ˆBØ�L‰LØ˜R ˜H F¨3¨%¨v°b¸°X¸VÀCÈÁFÀ8ð L9ð :öñ "ð( ÑÜ�”Sœ˜yÓ)¬5°Ó+;Ó<Ó=ˆÙ�!‹WˆØ�‰Ø˜˜C˜  s¨1¡u g¨V°B°s°8¸6À&ÈÁ(Àð LRð Sô	
ð 	�‰Ø˜2˜c˜( &¨°©°#¨ð 7Oð Pô	
ð
 
‡L�L�ÔØ�9‰9�UÓÐr
   Ú__main__é    z..ÚsamplesT)Úexist_okr   )r'   r(   é   é   )r'   r   Úruler_z.svgÚwzutf-8)ÚencodingÚwrote)r   NNr   )Ú__doc__r!   r	   r8   Ú__name__ÚosÚpathÚabspathr&   ÚdirnameÚ__file__ÚoutÚmakedirsÚdictr;   Ú	enumerater3   ÚkwÚpÚopenÚfÚwriteÚprintr   r
   r   Ú<module>rT      s   ðñðOð òôFðR ˆzÓÛØ
�'‰'�/‰/˜"Ÿ'™'Ÿ,™, r§w¡w§¡°xÓ'@À$È	ÓRÓ
S€CØ‡K‚K�˜dÒ#á�r QÑ'Ù�r RÑ(Ù�qÑð€Gñ
 ˜7 AÖ&‰ˆˆ2Ø�G‰G�L‰L˜  q c¨Ð.Ó/ˆÙ�!�S 7Ò+¨qØ�G‰G‘H‘N˜r‘NÔ#÷ ,áˆg�qÖò	 'ð ÷ ,Õ+ús   ÃC0Ã0
C>	