Ë
    Ã?ÆiÄ  ã                  óV   — d Z ddlmZ ddl­ ddlmZmZ dd„Zdd„Zdd„Z	dd„Z
dd	„Zy
)ug  Ð•Ð”Ð‘ (Ð•Ð´Ð½Ð¸Ñ�Ñ‚Ð²ÐµÐ½ Ð”Ð°Ð½Ð¾Ñ‡ÐµÐ½ Ð‘Ñ€Ð¾Ñ˜, North Macedonia tax number).

This number consists of 13 digits, sometimes with an additional "MK" prefix.

More information:

* http://www.ujp.gov.mk/en

>>> validate('4030000375897')
'4030000375897'
>>> validate('ÐœÐš 4020990116747')  # Cyrillic letters
'4020990116747'
>>> validate('MK4057009501106')  # ASCII letters
'4057009501106'
>>> validate('4030000375890')
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> format('ÐœÐš 4020990116747')  # Cyrillic letters
'4020990116747'
>>> format('MK4057009501106')  # ASCII letters
'4057009501106'
é    )Úannotations)Ú*)ÚcleanÚisdigitsc                ó¤   — t        | d«      j                  «       j                  «       } dD ]"  }| j                  |«      sŒ| t	        |«      d } Œ$ | S )z’Convert the number to the minimal representation.

    This strips the number of any valid separators and removes surrounding
    whitespace.
    z -)ÚMKu   ÐœÐšN)r   ÚupperÚstripÚ
startswithÚlen)ÚnumberÚprefixs     úT/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/mk/edb.pyÚcompactr   4   sV   € ô �6˜4Ó ×&Ñ&Ó(×.Ñ.Ó0€Fà ò *ˆØ×Ñ˜VÕ$ØœC ›K˜LÐ)‰Fð*ð €Mó    c                ób   — d}t        d„ t        | |«      D «       «      }t        | dz  dz  «      S )zCalculate the check digit.)é   é   é   é   é   é   r   r   r   r   r   r   c              3  ó>   K  — | ]  \  }}t        |«      |z  –— Œ y ­w)N)Úint)Ú.0ÚnÚws      r   ú	<genexpr>z#calc_check_digit.<locals>.<genexpr>E   s   è ø€ Ò<™t˜q !”�A“˜•
Ñ<ùs   ‚é   é
   )ÚsumÚzipÚstr)r   ÚweightsÚtotals      r   Úcalc_check_digitr&   B   s4   € à2€GÜÑ<¤s¨6°7Ó';Ô<Ó<€EÜ��˜‘˜rÑ!Ó"Ð"r   c                ó¬   — t        | «      } t        | «      dk7  r
t        «       ‚t        | «      s
t	        «       ‚| d   t        | «      k7  r
t        «       ‚| S )u{   Check if the number is a valid North Macedonia Ð•Ð”Ð‘ number.

    This checks the length, formatting and check digit.
    é   éÿÿÿÿ)r   r   ÚInvalidLengthr   ÚInvalidFormatr&   ÚInvalidChecksum©r   s    r   Úvalidater.   I   sQ   € ô
 �V‹_€FÜ
ˆ6ƒ{�bÒÜ‹oÐÜ�FÔÜ‹oÐØˆb�zÔ% fÓ-Ò-ÜÓÐØ€Mr   c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)u=   Check if the number is a valid North Macedonia Ð•Ð”Ð‘ number.F)Úboolr.   ÚValidationErrorr-   s    r   Úis_validr2   X   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"c                ó   — t        | «      S )z8Reformat the number to the standard presentation format.)r   r-   s    r   Úformatr4   `   s   € ä�6‹?Ðr   N)r   r#   Úreturnr#   )r   r#   r5   r0   )Ú__doc__Ú
__future__r   Ústdnum.exceptionsÚstdnum.utilr   r   r   r&   r.   r2   r4   © r   r   ú<module>r;      s.   ðñ,õ0 #ä ß 'óó#óóôr   