Ë
    ¡ëiÜ  ã                   óž  — d Z dZdZddlZ G d„ d«      Z ej
                  d«      Z ej
                  d«      Z G d	„ d
e«      Ze	dk(  r…d!d„Z
 e
dddd¬«        e
dddd¬«        e
dddd¬«        e
dddd¬«        e
ddd«        e
ddd«        e
ddd«        e
ddd«        e
ddd«        e
ddd«        e
ddd«        e
dd d«       yy)")Ú	FormatterÚDecimalFormatterz3.3.0z]
These help format numbers and dates in a user friendly way.
Used by the graphics framework.
é    Nc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)r   z5Base formatter - simply applies python format stringsc                 ó   — || _         y ©N©Úpattern)Úselfr	   s     úX/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/lib/formatters.pyÚ__init__zFormatter.__init__   s	   € Øˆ�ó    c                 ó    — | j                   |z  S r   r   )r
   Úobjs     r   ÚformatzFormatter.format   s   € Ø�|‰|˜cÑ!Ð!r   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nz('z'))Ú	__class__Ú__name__r	   ©r
   s    r   Ú__repr__zFormatter.__repr__   s   € Ø!Ÿ^™^×4Ó4°d·l³lÐCÐCr   c                 ó$   — | j                  |«      S r   )r   )r
   Úxs     r   Ú__call__zFormatter.__call__   s   € Ø�{‰{˜1‹~Ðr   N)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r   r      s   „ Ù;òò"òDór   r   z^\d*\.z0+$c                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)r   z¢lets you specify how to build a decimal.

    A future NumberFormatter class will take Microsoft-style patterns
    instead - "$#,##0.00" is WAY easier than this.Nc                 óx   — |dk(  r| j                   | _        n|| _        || _        || _        || _        || _        y )NÚauto)Ú_calcPlacesÚ
calcPlacesÚplacesÚdotÚcommaÚprefixÚsuffix)r
   r"   Ú
decimalSepÚthousandSepr%   r&   s         r   r   zDecimalFormatter.__init__    s9   € Ø�6Š>Ø"×.Ñ.ˆD�Oà ˆDŒKØˆŒØ ˆŒ
ØˆŒØˆ�r   c                 ó¾   — t        |D �cg c]>  }t        t        j                  dt        j                  dt        |«      «      «      «      ‘Œ@ c}«      | _        yc c}w )zMcalled with the full set of values to be formatted so we can calculate placesÚ N)ÚmaxÚlenÚ_tz_reÚsubÚ_ld_reÚstrr"   )r
   ÚVÚvs      r   r    zDecimalFormatter._calcPlaces*   s;   € äÈaÖPÈœ3œvŸz™z¨"¬V¯Z©Z¸¼3¸q»6Ó-BÓCÕDÒPÓQˆ�ùÒPs   ŠAAc                 ó  — |dk  }|r| }| j                   | j                  }}|dk  }|r|r| }dt        |«      z   dz   |z  }|r8|j                  d«      \  }}||z   }|r|r|d   d|fv r|d d }|r|d   d|fv rŒnd}| j                  �2d}|r,|dd |dd  }
}	|	dk(  r|
|z   }n| j                  |
z   |z   }|	}|rŒ,|}||z   }|rd	|z   }| j
                  r| j
                  |z   }| j                  r|| j                  z   }|S )
Nr   z%.Úfú.éÿÿÿÿÚ0r*   éýÿÿÿú-)r"   r#   r0   Úsplitr$   r%   r&   )r
   ÚnumÚsignr"   ÚsepÚstripÚstrIntÚstrFracÚstrNewÚleftÚrightÚstrBodys               r   r   zDecimalFormatter.format.   sD  € à�‰UˆÙØ�$ˆCØ—k‘k 4§8¡8�ˆØ˜‘	ˆÙ‘e v g˜VØœ˜V›Ñ$ sÑ*¨cÑ1ˆÙØ$Ÿl™l¨3Ó/‰OˆF�GØ˜G‘mˆGÙÙ '¨"¡+°#°c°Ñ":ÀgÈcÈrÀl¸G‘g '¨"¡+°#°c°Ó":àˆGà�:‰:Ð!ØˆFÙØ$ Q r˜l¨F°2°3¨K�e�Ø˜2’:à" V™^‘Fà!ŸZ™Z¨%Ñ/°&Ñ8�FØ�ò ð ˆFà˜7Ñ"ˆÙ˜3 ™=�Ø�;Š;Ø—k‘k GÑ+ˆGØ�;Š;Ø §¡Ñ+ˆGØˆr   c           	      óì   — d| j                   j                  | j                  t        | j                  «      t        | j
                  «      t        | j                  «      t        | j                  «      fz  S )NzB%s(places=%d, decimalSep=%s, thousandSep=%s, prefix=%s, suffix=%s))r   r   r"   Úreprr#   r$   r%   r&   r   s    r   r   zDecimalFormatter.__repr__S   sX   € ØSØ—N‘N×+Ñ+Ø—K‘KÜ˜Ÿ™“NÜ˜Ÿ™Ó$Ü˜Ÿ™Ó%Ü˜Ÿ™Ó%ðWñ ð 	r   ©é   r5   NNN)r   r   r   r   r   r    r   r   r   r   r   r   r      s   „ ñ6óòRò#óJr   r   Ú__main__c                 óÖ   — t        |||||«      } || «      }t        d|j                  |j                  |j                  |j
                  |j                  |||k(  xr dxs dfz  «       y )NzEplaces=%2d dot=%-4s comma=%-4s prefix=%-4s suffix=%-4s result=%10s %sÚOKÚBAD)r   Úprintr"   r#   r$   r%   r&   )	ÚnÚsr"   r'   r(   r%   r&   r4   Úrs	            r   ÚtrQ   ^   s£   € Ü
˜6 *¨[¸ÀÓ
GˆÙˆa‹DˆÜÐUÐXY×X`ÑX`Ðbc×bgÑbgÐij×ipÑipÐrs×rzÑrzÐ|}÷  }Eñ  }Eð  FGð  IJð  LMñ  IMò  IVð  RVò  I_ð  Z_ð  X`ñ  `õ  	ar   g33333G�@z1,000.9é   ú,)r(   gš™™™™G�@z1,001.0z1,001r6   z1000.9z1001.0Ú1001gÍÌÌÌÌ@�@z1000.1gfffffD�@z1000.6g;ßO�—C�@z1000.4gš™™™™C�@Ú1000rG   )Ú__all__Ú__version__r   Úrer   Úcompiler/   r-   r   r   rQ   r   r   r   ú<module>rZ      s  ðð
 	)€Ø€ð	€ó 
÷	ñ 	ð €r‡z�z�)Ó€Ø€r‡z�z�%Ó€ô@�yô @ðD ˆZÒóañ €fˆY�q SÕ)Ù€gˆi˜ cÕ*Ù€gˆg�b SÕ)Ù€fˆW�Q 3Õ'Ù€fˆX�aÔÙ€gˆh�qÔÙ€gˆf�RÔÙ€fˆV�AÔÙ€fˆX�aÔÙ€gˆh�qÔÙ€hˆx˜ÔÙ€gˆf�QÕð! r   