Ë
    Ã?Æi¦
  ã                  óN   — 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
y	)u†  CI (CÃ©dula de identidad, Ecuadorian personal identity code).

The CI is a 10 digit number used to identify Ecuadorian citizens.

>>> validate('171430710-3')
'1714307103'
>>> validate('1714307104')  # invalid check digit
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> validate('171430710')  # digit missing
Traceback (most recent call last):
    ...
InvalidLength: ...
é    )Úannotations)Ú*)ÚcleanÚisdigitsc                óR   — t        | d«      j                  «       j                  «       S )zˆConvert the number to the minimal representation. This strips the
    number of any valid separators and removes surrounding whitespace.z -)r   ÚupperÚstrip©Únumbers    úS/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/ec/ci.pyÚcompactr   ,   s#   € ô �˜Ó×$Ñ$Ó&×,Ñ,Ó.Ð.ó    c                óL   ‡— dd„Št        ˆfd„t        | «      D «       «      dz  S )z%Calculate a checksum over the number.c                ó   — | dkD  r| dz
  S | S )Né	   © )Úxs    r   Úfoldz_checksum.<locals>.fold4   s   € Ø˜Ašˆq�1‰uÐ$ 1Ð$r   c              3  óX   •K  — | ]!  \  }} ‰d |dz     t        |«      z  «      –— Œ# y­w))é   é   r   N)Úint)Ú.0ÚiÚnr   s      €r   ú	<genexpr>z_checksum.<locals>.<genexpr>6   s3   øè ø€ ò .Ù�1�añ �F˜1˜q™5‘M¤C¨£FÑ*×+ñ .ùs   ƒ'*é
   )r   r   Úreturnr   )ÚsumÚ	enumerate)r   r   s    @r   Ú	_checksumr!   2   s/   ø€ ó%äó .Ü$ VÓ,ô.ó .Ø02ñ3ð 3r   c                ó  — t        | «      } t        | «      dk7  r
t        «       ‚t        | «      s
t	        «       ‚| dd dk  s| dd dkD  r| dd dvr
t        «       ‚| d   dkD  r
t        «       ‚t        | «      dk7  r
t        «       ‚| S )	újCheck if the number provided is a valid CI number. This checks the
    length, formatting and check digit.r   Nr   Ú01Ú24)Ú30Ú50Ú6r   )r   ÚlenÚInvalidLengthr   ÚInvalidFormatÚInvalidComponentr!   ÚInvalidChecksumr
   s    r   Úvalidater.   :   s‘   € ô �V‹_€FÜ
ˆ6ƒ{�bÒÜ‹oÐÜ�FÔÜ‹oÐØˆr�ˆ
�TÒ˜V B Q˜Z¨$Ò.°V¸B¸Q°ZÀ|Ñ5SÜÓ Ð Øˆa�y�3‚ÜÓ Ð Ü�Ó˜AÒÜÓÐØ€Mr   c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)r#   F)Úboolr.   ÚValidationErrorr
   s    r   Úis_validr2   K   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"N)r   Ústrr   r3   )r   r3   r   r   )r   r3   r   r0   )Ú__doc__Ú
__future__r   Ústdnum.exceptionsÚstdnum.utilr   r   r   r!   r.   r2   r   r   r   ú<module>r8      s)   ðñ,õ  #ä ß 'ó/ó3óô"r   