Ë
    Ã?Æi™  ã                  ó>   — d Z ddlmZ ddl­ d	d„Zd
d„Zd
d„Zdd„Zy)a†  The ISO 7064 Mod 11, 10 algorithm.

The Mod 11, 10 algorithm uses a number of calculations modulo 11 and 10 to
determine a checksum.

For a module that can do generic Mod x+1, x calculations see the
:mod:`stdnum.iso7064.mod_37_36` module.

>>> calc_check_digit('79462')
'3'
>>> validate('794623')
'794623'
>>> calc_check_digit('00200667308')
'5'
>>> validate('002006673085')
'002006673085'
é    )Úannotations)Ú*c                óN   — d}| D ]  }|xs ddz  dz  t        |«      z   dz  }Œ |S )zCCalculate the checksum. A valid number should have a checksum of 1.é   é
   é   é   )Úint)ÚnumberÚcheckÚns      ú_/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/iso7064/mod_11_10.pyÚchecksumr   +   s<   € à€EØò 9ˆØ’;˜B !Ñ# rÑ)¬C°«FÑ2°bÑ8‰ð9à€Ló    c                óJ   — t        dt        | «      xs ddz  dz  z
  dz  «      S )z^Calculate the extra digit that should be appended to the number to
    make it a valid number.é   r   r   r	   )Ústrr   ©r   s    r   Úcalc_check_digitr   3   s-   € ô �”h˜vÓ&Ò,¨"°Ñ1°RÑ7Ñ7¸2Ñ=Ó>Ð>r   c                ój   — 	 t        | «      dk(  }|s
t        «       ‚| S # t        $ r t        «       ‚w xY w)ú'Check whether the check digit is valid.r   )r   Ú	ExceptionÚInvalidFormatÚInvalidChecksum)r   Úvalids     r   Úvalidater   9   sB   € ðÜ˜Ó  AÑ%ˆñ ÜÓÐØ€Møô	 ò Ü‹oÐðús   ‚ ž2c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)r   F)Úboolr   ÚValidationErrorr   s    r   Úis_validr    D   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"N)r   r   Úreturnr
   )r   r   r!   r   )r   r   r!   r   )Ú__doc__Ú
__future__r   Ústdnum.exceptionsr   r   r   r    © r   r   ú<module>r&      s&   ðñ(õ$ #ä óó?óôr   