ó
    Eñi©  ã                   ór   • S SK rS SKJs  Jr  S SKrS SKJr  SSK	J
r
Jr  SrS\S\S\4S	 jr " S
 S\
5      rg)é    N)Úascii_uppercaseé   )ÚBaseProviderÚElementsTypeTÚsÚweight_factorÚreturnc                 ó”   • S[         S[        4S jnSn[        U 5       H%  u  pEX4[        U5      :  a  U" U5      X   -  OS-  nM'     U$ )zÂ
multiply s(str) by weight_factor char by char
e.g.
input: s="ABCDE", weight_factor=[1, 2, 3, 4, 5]
return: A*1 + B*2 + C*3 + D*4 + E*5

will multiply 0 when len(weight_factor) less than len(s)
Úcr	   c                 óÆ   • [        U 5      S::  a  [        U 5      $ [        U 5      S::  a  [        U 5      S-
  $ [        U 5      S::  a  [        U 5      S-
  $ [        U 5      S-
  $ )z<A=1, B=2, ...., I=9,
J=1, K=2, ..., R=9,
S=2, T=3, ..., Z=9
é@   éI   éR   éQ   )ÚordÚint)r   s    Ú`/home/mande/repo/quber/.venv/lib/python3.13/site-packages/faker/providers/automotive/__init__.pyÚ_get_char_weightÚ2calculate_vin_str_weight.<locals>._get_char_weight   sX   € ô
 ˆq‹6�R‹<Ü�q“6ˆMÜˆq‹6�R‹<Ü�q“6˜B‘;ÐÜˆq‹6�R‹<Ü�q“6˜B‘;Ðä�1‹v˜‰{Ðó    r   )Ústrr   Ú	enumerateÚlen)r   r   r   ÚresÚir   s         r   Úcalculate_vin_str_weightr   
   sV   € ðœCð ¤Cô ð €CÜ˜!–‰ˆØ¼SÀÓ=OÓ9OÑ Ó" ]Ñ%5Ò5ÐUVÑVŠñ à€Jr   c                   óD   • \ rS rSr% SrSr\\S'   S\4S jr	S\4S jr
Srg)	ÚProvideré(   z0Implement default automotive provider for Faker.© Úlicense_formatsr	   c                 ó�   ^ • [         R                  " SU 4S jT R                  T R                  5      5      nT R	                  U5      $ )zGenerate a license plate.z\?c                 ó.   >• TR                  [        5      $ )N)Úrandom_elementr   )ÚxÚselfs    €r   Ú<lambda>Ú(Provider.license_plate.<locals>.<lambda>1   s   ø€ �d×)Ñ)¬/Ô:r   )ÚreÚsubr$   r!   Únumerify)r&   Útemps   ` r   Úlicense_plateÚProvider.license_plate-   s<   ø€ ä�vŠvØÜ:Ø×Ñ × 4Ñ 4Ó5ó
ˆð
 �}‰}˜TÓ"Ð"r   c                 óÀ   • SnU R                  SUS9nU R                  SUS9n[        U/ SQ5      n[        U/ SQ5      nXE-   S-  nUS:X  a  S	O
[        U5      nX'-   U-   $ )
zGenerate vin number.Ú!1234567890ABCDEFGHJKLMNPRSTUVWXYZz????????)Úlettersz????####)é   é   é   é   é   é   r   é
   )é	   r2   r3   r4   r5   r6   r7   r   é   r8   ÚX)Úbothifyr   r   )r&   Ú	vin_charsÚ
front_partÚ	rear_partÚfront_part_weightÚrear_part_weightÚchecksumÚchecksum_chars           r   ÚvinÚProvider.vin6   ss   € à7ˆ	Ø—\‘\ *°i�\Ð@ˆ
Ø—L‘L °Y�LÐ?ˆ	Ü4°ZÒAZÓ[ÐÜ3°IÒ?WÓXÐØ%Ñ8¸BÑ>ˆØ'¨2›~™´3°x³=ˆØÑ)¨IÑ5Ð5r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   r   Ú__annotations__r   r-   rD   Ú__static_attributes__r    r   r   r   r   (   s'   ‡ Ù:à$&€O�\Ó&ð#˜sô #ð	6�S÷ 	6r   r   )ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arr)   Ústringr   Ú r   r   Ú	localizedr   Úlistr   r   r   r    r   r   Ú<module>rW      s=   ðß  „ ƒ	å "ç )à€	ð ð °Dð ¸Sô ô<6ˆ|õ 6r   