§
    £”jE…  ã                   ó|  — d dl Z d dlZ	 d dlmZ n#  d dlmZ Y nxY w	 e n# e$ r eZY nw xY w G d„ d¦  «        Z G d„ de¦  «        Z G d„ d	e¦  «        Z	 G d
„ de¦  «        Z
 G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d „ d!¦  «        Zd"„  ed#¦  «        D ¦   «         Zd$„  ed#¦  «        D ¦   «         Z ed%¦  «        D ]
Zd&ez  ee<   Œ ed%d#¦  «        D ]4Zeed'z
           eed(z
           z  eed)z
           z  eed%z
           z  ee<   Œ5 ed*¦  «        D ]Zeeee         <   Œ G d+„ d,¦  «        Z G d-„ d.¦  «        Z G d/„ d0¦  «        ZdS )1é    N)Úzip_longest)Úizip_longestc                   óZ   — e Zd ZdZdZdZd„ Zd„ Zed„ ¦   «         Z	d„ Z
d„ Zd„ Zd	„ Zd
„ ZdS )ÚQRNr   c                 óZ   — | j         r|                       |¦  «        st          ‚|| _        d S ©N)ÚvalidÚ
ValueErrorÚdata©Úselfr   s     ús/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/barcode/qrencoder.pyÚ__init__zQR.__init__*   s0   € ØŒ:ð 	˜dŸjšj¨Ñ.Ô.ð 	ÝÐØˆŒ	ˆ	ˆ	ó    c                 ó*   — t          | j        ¦  «        S r   ©Úlenr   ©r   s    r   Ú__len__z
QR.__len__/   ó   € Ý�4”9‰~Œ~Ðr   c                 óà   — | j         €dS t          t          | ¦  «        t          | j         ¦  «        ¦  «        \  }}|t          | j         ¦  «        z  t          | j         d |…         ¦  «        z   S ©Nr   )ÚbitsÚdivmodr   Úsum)r   ÚqÚrs      r   Ú	bitlengthzQR.bitlength2   sZ   € àŒ9ÐØ�1Ý•c˜$‘i”i¥ T¤Y¡¤Ñ0Ô0‰ˆˆ1Ø•3�t”y‘>”>Ñ!¥C¨¬	°"°1°"¬Ñ$6Ô$6Ñ6Ð6r   c                 ó¬   — d|cxk     rdk     rn n| j         d         S |dk     r| j         d         S |dk     r| j         d         S t          d|z   ¦  «        ‚)Nr   é
   é   é   é)   é   zUnknown version: )Ú
lengthbitsr
   )r   Úvers     r   ÚgetLengthBitszQR.getLengthBits9   sh   € Øˆsˆ<ˆ<Š<ˆ<�RŠ<ˆ<ˆ<ˆ<ˆ<Ø”? 1Ô%Ð%Ø�2ŠXˆXØ”? 1Ô%Ð%Ø�2ŠXˆXØ”? 1Ô%Ð%ÝÐ,¨sÑ2Ñ3Ô3Ð3r   c                 ó*   — t          | j        ¦  «        S r   r   r   s    r   Ú	getLengthzQR.getLengthB   r   r   c                 ó*   — t          | j        ¦  «        S r   )Úreprr   r   s    r   Ú__repr__zQR.__repr__E   s   € Ý�D”I‰ŒÐr   c                 ó¾   — |                      | j        d¦  «         |                      |¦  «        }|r*|                      t          | j        ¦  «        |¦  «         d S d S )Né   ©ÚputÚmoder'   r   r   ©r   ÚbufferÚversionÚlenbitss       r   Úwrite_headerzQR.write_headerH   s_   € Ø�
Š
�4”9˜aÑ Ô Ð Ø×$Ò$ WÑ-Ô-ˆØð 	1Ø�JŠJ•s˜4œ9‘~”~ wÑ0Ô0Ð0Ð0Ð0ð	1ð 	1r   c                 ó†  — |                       ||¦  «         t          t          | j        ¦  «        g| j        z  Ž D ]…}d}d}t          | j        ¦  «        D ]T}||         �J|t          | j        ¦  «        z  }|| j                             ||         ¦  «        z  }|| j	        |         z  }ŒU| 
                    ||¦  «         Œ†d S r   )r6   r   Úiterr   ÚgroupÚranger   ÚcharsÚindexr   r0   )r   r3   r4   Úgr   ÚnÚis          r   ÚwritezQR.writeN   sÍ   € Ø×Ò˜& 'Ñ*Ô*Ð*Ý�t D¤I™œÐ/°$´*Ñ<Ð=ð 	 ð 	 ˆAØˆDØˆAÝ˜4œ:Ñ&Ô&ð )ð )�Ø�Q”4Ð#Ø�˜TœZ™œÑ(�AØ˜œ×)Ò)¨!¨A¬$Ñ/Ô/Ñ/�AØ˜DœI aœLÑ(�DøØ�JŠJ�q˜$ÑÔÐÐð	 ð 	 r   )Ú__name__Ú
__module__Ú__qualname__r	   r   r9   r   r   Úpropertyr   r'   r)   r,   r6   r@   © r   r   r   r   %   s§   € € € € € Ø€EØ€DØ€Eðð ð ð
ð ð ð ð7ð 7ñ „Xð7ð4ð 4ð 4ðð ð ðð ð ð1ð 1ð 1ð
 ð 
 ð 
 ð 
 ð 
 r   r   c                   óL   — e Zd Z ej        d¦  «        j        ZdZdZdZ	dZ
dZdS )ÚQRNumberz[0-9]*$Ú
0123456789)r.   é   rI   rI   r"   )r    é   é   N©rA   rB   rC   ÚreÚcompileÚmatchr	   r;   r   r9   r1   r%   rE   r   r   rG   rG   Z   s;   € € € € € ØˆBŒJ�zÑ"Ô"Ô(€EØ€EØ€DØ€EØ€DØ€J€J€Jr   rG   c                   óL   — e Zd Z ej        d¦  «        j        ZdZdZdZ	dZ
dZdS )Ú
QRAlphaNumz[-0-9A-Z $%*+./:]*$z-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:)é   é   r$   )é	   é   é   NrL   rE   r   r   rQ   rQ   b   s<   € € € € € ØˆBŒJÐ-Ñ.Ô.Ô4€EØ<€EØ€DØ€EØ€DØ€J€J€Jr   rQ   c                   ó*   — e Zd ZdZdZdZdZd„ Zd„ ZdS )Ú
QR8bitByte)é   r"   r.   )rY   é   rZ   c                 óv   — t          |t          ¦  «        r|                     d¦  «        | _        d S || _        d S )Nzutf-8)Ú
isinstanceÚunicodeÚencoder   r   s     r   r   zQR8bitByte.__init__p   s6   € Ý�d�GÑ$Ô$ð 	ØŸš GÑ,Ô,ˆDŒIˆIˆIàˆDŒIˆIˆIr   c                 óº   — |                       ||¦  «         | j        D ]<}t          |t          ¦  «        rt	          |¦  «        }|                     |d¦  «         Œ=d S )NrY   )r6   r   r\   ÚstrÚordr0   )r   r3   r4   Úcs       r   r@   zQR8bitByte.writev   sg   € Ø×Ò˜& 'Ñ*Ô*Ð*Ø”ð 	ð 	ˆAÝ˜!�SÑ!Ô!ð Ý˜‘F”F�Ø�JŠJ�q˜!ÑÔÐÐð	ð 	r   N)	rA   rB   rC   r   r9   r1   r%   r   r@   rE   r   r   rX   rX   j   sF   € € € € € Ø€DØ€EØ€DØ€Jðð ð ðð ð ð ð r   rX   c                   ó0   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	dS )	ÚQRKanji©rV   r"   rY   ©rY   r    rJ   c                 óv   — 	 |                       |¦  «        | _        d S # t          $ r t          d¦  «        ‚w xY w)NzNot valid kanji)Úunicode_to_qrkanjir   ÚUnicodeEncodeErrorr
   r   s     r   r   zQRKanji.__init__ƒ   óJ   € ð	0Ø×/Ò/°Ñ5Ô5ˆDŒIˆIˆIøÝ!ð 	0ð 	0ð 	0ÝÐ.Ñ/Ô/Ð/ð	0øøøó   ‚ ž8c           
      ój  — g }t          |¦  «        D �]\  }}	 |                     d¦  «        }	 t          t          |¦  «        \  }}n# t          $ r |\  }}Y nw xY wnR# t
          $ r&}t          d|||dz   |j        d         ¦  «        ‚d }~wt          $ r t          d|||dz   d¦  «        ‚w xY w|dz  |z  }d|cxk    rdk    rn n|dz  }|d	z  dz	  d
z  |dz  z   }n=d|cxk    rdk    rn n|dz  }|d	z  dz	  d
z  |dz  z   }nt          d|||dz   d¦  «        ‚|                     |¦  «         �Œ!|S )Nz	shift-jisÚqrkanjir"   r.   úillegal multibyte sequencerY   i@�  iüŸ  é ÿ  éÀ   éÿ   i@à  i¿ë  i@Á  ©	Ú	enumerater^   Úmapra   Ú	TypeErrorri   Úargsr
   Úappend©r   r   Úcodesr?   rb   ÚdÚes          r   rh   zQRKanji.unicode_to_qrkanji‰   sÑ  € ØˆÝ˜T‘?”?ð 	ñ 	‰CˆAˆaðGØ—H’H˜[Ñ)Ô)�ðÝ�c 1™+œ+‘C�A�a�aøÝ ð ð ð à‘C�A�a�a�aðøøøøøõ &ð Mð Mð MÝ(¨°D¸!¸Q¸q¹SÀ!Ä&ÈÄ)ÑLÔLÐLøøøøÝð Gð Gð GÝ(¨°D¸!¸Q¸q¹SØ)EñGô Gð GðGøøøð �Q‘˜‘
ˆAØ˜Ð#Ð#Ò#Ð#˜VÒ#Ð#Ð#Ð#Ð#Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=��Ø˜1Ð&Ð&Ò&Ð& Ò&Ð&Ð&Ð&Ð&Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=��å(¨°D¸!¸Q¸q¹SØ)EñGô Gð Gà�LŠL˜‰OŒOˆO‰OØˆó:   ™A¯AÁAÁAÁAÁAÁAÁ
B-Á(!B	Â	$B-c                 ór   — |                       ||¦  «         | j        D ]}|                     |d¦  «         Œd S ©NrV   ©r6   r   r0   ©r   r3   r4   rz   s       r   r@   zQRKanji.write¥   óJ   € Ø×Ò˜& 'Ñ*Ô*Ð*Ø”ð 	ð 	ˆAØ�JŠJ�q˜"ÑÔÐÐð	ð 	r   N)
rA   rB   rC   r   r9   r1   r%   r   rh   r@   rE   r   r   rd   rd   }   sU   € € € € € Ø€DØ€EØ€DØ€Jð0ð 0ð 0ðð ð ð8ð ð ð ð r   rd   c                   ó6   — e Zd ZdZdZdZdZd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚQRHanzire   r"   rV   rf   c                 óv   — 	 |                       |¦  «        | _        d S # t          $ r t          d¦  «        ‚w xY w)NzNot valid hanzi)Úunicode_to_qrhanzir   ri   r
   r   s     r   r   zQRHanzi.__init__°   rj   rk   c           
      ój  — g }t          |¦  «        D �]\  }}	 |                     d¦  «        }	 t          t          |¦  «        \  }}n# t          $ r |\  }}Y nw xY wnR# t
          $ r&}t          d|||dz   |j        d         ¦  «        ‚d }~wt          $ r t          d|||dz   d¦  «        ‚w xY w|dz  |z  }d|cxk    rdk    rn n|dz  }|d	z  dz	  d
z  |dz  z   }n=d|cxk    rdk    rn n|dz  }|d	z  dz	  d
z  |dz  z   }nt          d|||dz   d¦  «        ‚|                     |¦  «         �Œ!|S )NÚgb2312Úqrhanzir"   r.   rn   rY   i¡¡  iþª  ro   é`   rq   i¡°  iþú  i¡¦  rr   rx   s          r   r…   zQRHanzi.unicode_to_qrhanzi¶   sÑ  € ØˆÝ˜T‘?”?ð 	ñ 	‰CˆAˆaðGØ—H’H˜XÑ&Ô&�ðÝ�c 1™+œ+‘C�A�a�aøÝ ð ð ð à‘C�A�a�a�aðøøøøøõ &ð Mð Mð MÝ(¨°D¸!¸Q¸q¹SÀ!Ä&ÈÄ)ÑLÔLÐLøøøøÝð Gð Gð GÝ(¨°D¸!¸Q¸q¹SØ)EñGô Gð GðGøøøð �Q‘˜‘
ˆAØ˜Ð#Ð#Ò#Ð#˜VÒ#Ð#Ð#Ð#Ð#Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=��Ø˜1Ð&Ð&Ò&Ð& Ò&Ð&Ð&Ð&Ð&Ø�V‘�Ø˜6‘z aÑ'¨4Ñ/°A¸±HÑ=��å(¨°D¸!¸Q¸q¹SØ)EñGô Gð Gà�LŠL˜‰OŒOˆO‰OØˆr|   c                 óê   — |                      | j        d¦  «         |                      dd¦  «         |                      |¦  «        }|r*|                      t          | j        ¦  «        |¦  «         d S d S )Nr.   r"   r/   r2   s       r   r6   zQRHanzi.write_headerÒ   ss   € Ø�
Š
�4”9˜aÑ Ô Ð Ø�
Š
�1�aÑÔÐØ×$Ò$ WÑ-Ô-ˆØð 	1Ø�JŠJ•s˜4œ9‘~”~ wÑ0Ô0Ð0Ð0Ð0ð	1ð 	1r   c                 ór   — |                       ||¦  «         | j        D ]}|                     |d¦  «         Œd S r~   r   r€   s       r   r@   zQRHanzi.writeÙ   r�   r   N)rA   rB   rC   r   r9   r1   r%   r   r…   r6   r@   rE   r   r   rƒ   rƒ   ª   sd   € € € € € Ø€DØ€EØ€DØ€Jð0ð 0ð 0ðð ð ð81ð 1ð 1ðð ð ð ð r   rƒ   c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚQRECIé   ©r   r   r   c                 óP   — d|cxk     rdk     sn t          d¦  «        ‚|| _        d S )Nr   i?B zECI out of range)r
   r   r   s     r   r   zQRECI.__init__ä   s;   € Ø�4Ð Ð Ò Ð ˜&Ò Ð Ð Ð åÐ/Ñ0Ô0Ð0ØˆŒ	ˆ	ˆ	r   c                 ó.  — |                       ||¦  «         | j        dk    r|                     | j        d¦  «         d S | j        dk    r |                     | j        dz  d¦  «         d S | j        dk    r |                     | j        dz  d¦  «         d S d S )	Né   rY   iÿ?  i €  rZ   iÿÿ i  À é   r   ©r   r3   r4   s      r   r@   zQRECI.writeê   s¥   € Ø×Ò˜& 'Ñ*Ô*Ð*ØŒ9˜ÒÐØ�JŠJ�t”y !Ñ$Ô$Ð$Ð$Ð$ØŒY˜&Ò Ð Ø�JŠJ�t”y 6Ñ)¨2Ñ.Ô.Ð.Ð.Ð.ØŒY˜(Ò"Ð"Ø�JŠJ�t”y 8Ñ+¨RÑ0Ô0Ð0Ð0Ð0ð #Ð"r   N©rA   rB   rC   r1   r%   r   r@   rE   r   r   r�   r�   à   s<   € € € € € Ø€DØ€Jðð ð ð1ð 1ð 1ð 1ð 1r   r�   c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚQRStructAppendrI   r�   c                 ó¨   — d|cxk     rdk    sn t          d¦  «        ‚d|cxk     rdk    sn t          d¦  «        ‚|| _        || _        || _        d S )Nr   rZ   zpart out of range [1,16]ztotal out of range [1,16])r
   ÚpartÚtotalÚparity)r   r™   rš   r›   s       r   r   zQRStructAppend.__init__÷   sg   € Ø�4ˆ~ˆ~Š~ˆ~˜2Š~ˆ~ˆ~ˆ~ÝÐ7Ñ8Ô8Ð8Ø�5ˆˆŠˆ˜BŠˆˆˆÝÐ8Ñ9Ô9Ð9ØˆŒ	ØˆŒ
ØˆŒˆˆr   c                 óÔ   — |                       ||¦  «         |                     | j        d¦  «         |                     | j        d¦  «         |                     | j        d¦  «         d S )Nr.   rY   )r6   r0   r™   rš   r›   r”   s      r   r@   zQRStructAppend.write   s`   € Ø×Ò˜& 'Ñ*Ô*Ð*Ø�
Š
�4”9˜aÑ Ô Ð Ø�
Š
�4”:˜qÑ!Ô!Ð!Ø�
Š
�4”; Ñ"Ô"Ð"Ð"Ð"r   Nr•   rE   r   r   r—   r—   ó   s<   € € € € € Ø€DØ€Jðð ð ð#ð #ð #ð #ð #r   r—   c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚQRFNC1FirstrS   r�   c                 ó   — d S r   rE   r   s    r   r   zQRFNC1First.__init__
  s   € Øˆr   c                 ó2   — |                       ||¦  «         d S r   )r6   r”   s      r   r@   zQRFNC1First.write  s   € Ø×Ò˜& 'Ñ*Ô*Ð*Ð*Ð*r   Nr•   rE   r   r   rž   rž     s<   € € € € € Ø€DØ€Jðð ð ð+ð +ð +ð +ð +r   rž   c                   óF   — e Zd Z ej        d¦  «        j        ZdZdZd„ Z	dS )ÚQRFNC1Secondz^([A-Za-z]|[0-9][0-9])$rT   r�   c                 óÖ   — |                       ||¦  «         | j        }t          |¦  «        dk    rt          |¦  «        dz   }nt	          |¦  «        }|                     |d¦  «         d S )Nr"   éd   rY   )r6   r   r   ra   Úintr0   r€   s       r   r@   zQRFNC1Second.write  sd   € Ø×Ò˜& 'Ñ*Ô*Ð*ØŒIˆÝˆq‰6Œ6�QŠ;ˆ;Ý�A‘”˜‘ˆAˆAå�A‘”ˆAØ�
Š
�1�aÑÔÐÐÐr   N)
rA   rB   rC   rM   rN   rO   r	   r1   r%   r@   rE   r   r   r¢   r¢     sB   € € € € € ØˆBŒJÐ0Ñ1Ô1Ô7€EØ€DØ€Jðð ð ð ð r   r¢   c                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	g d¢g d	¢g d
¢g d
¢g d
¢g d	¢g d¢gZ
d„ Zd„ Zd„ Zg d¢g d¢g d¢g d¢g d¢gZd„ Zd„ Zd„ Zd„ ZdZd„ Zd„ ZdZd„ Zd„ ZdZdZed„ ¦   «         Zed„ ¦   «         ZdS )ÚQRCodec                 óZ   — || _         || _        d | _        d| _        d | _        g | _        d S r   )r4   ÚerrorCorrectLevelÚmodulesÚmoduleCountÚ	dataCacheÚdataList)r   r4   r©   s      r   r   zQRCode.__init__   s2   € ØˆŒØ!2ˆÔØˆŒØˆÔØˆŒØˆŒˆˆr   c                 óú   — t          |t          ¦  «        r|}nAt          t          t          t
          fD ]}	  ||¦  «        } n# t          $ r Y Œw xY wt          ‚| j                             |¦  «         d | _	        d S r   )
r\   r   rG   rQ   rd   rX   r
   r­   rw   r¬   )r   r   ÚnewDataÚconvs       r   ÚaddDatazQRCode.addData(  s“   € Ý�d�BÑÔð 
	!ØˆGˆGå!¥:­w½
ÐCð !ð !�ðØ"˜d 4™jœj�GØ�EøÝ!ð ð ð Ø�Dðøøøõ !Ð àŒ×Ò˜WÑ%Ô%Ð%ØˆŒˆˆs   ¶AÁ
AÁAc                 ó(   — | j         |         |         S r   )rª   )r   ÚrowÚcols      r   ÚisDarkzQRCode.isDark8  s   € ØŒ|˜CÔ  Ô%Ð%r   c                 ó   — | j         S r   ©r«   r   s    r   ÚgetModuleCountzQRCode.getModuleCount;  s   € ØÔÐr   c                 ó  — t          dd¦  «        D ]y}t                               || j        ¦  «        }t	          d„ |D ¦   «         ¦  «        }d}| j        D ])}|dz  }||                     |¦  «        z  }||j        z  }Œ*||dz  k    r nŒz|S )Nr"   é(   c              3   ó$   K  — | ]}|j         V — Œd S r   )Ú	dataCount)Ú.0Úblocks     r   ú	<genexpr>z+QRCode.calculate_version.<locals>.<genexpr>B  s$   è è € Ð GÐ G°U ¤Ð GÐ GÐ GÐ GÐ GÐ Gr   r   r.   rY   )r:   Ú	QRRSBlockÚgetRSBlocksr©   r   r­   r'   r   )r   r4   ÚrsBlocksÚtotalDataCountÚlengthr   s         r   Úcalculate_versionzQRCode.calculate_version>  s±   € å˜Q ‘|”|ð 		ð 		ˆGÝ ×,Ò,¨W°dÔ6LÑMÔMˆHÝ Ð GÐ G¸hÐ GÑ GÔ GÑGÔGˆNØˆFØœð )ð )�Ø˜!‘�Ø˜$×,Ò,¨WÑ5Ô5Ñ5�Ø˜$œ.Ñ(��Ø˜¨!Ñ+Ò+Ð+Ø�ð ,àˆr   c                 ó–   — | j         €|                      ¦   «         | _         |                      d|                      ¦   «         ¦  «         d S )NF)r4   rÅ   ÚmakeImplÚgetBestMaskPatternr   s    r   ÚmakezQRCode.makeL  sC   € ØŒ<ÐØ×1Ò1Ñ3Ô3ˆDŒLØ�Š�e˜T×4Ò4Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7r   c                 ó‚  ‡ — ‰ j         dz  dz   ‰ _        ˆ fd„t          ‰ j        ¦  «        D ¦   «         ‰ _        ‰                      dd¦  «         ‰                      ‰ j        dz
  d¦  «         ‰                      d‰ j        dz
  ¦  «         ‰                      ¦   «          ‰                      ¦   «          ‰                      ||¦  «         ‰ j         dk    r‰                      |¦  «         ‰ j	        d k    r0t                               ‰ j         ‰ j        ‰ j        ¦  «        ‰ _	        ‰                      ‰ j	        |¦  «         d S )Nr.   é   c                 ó&   •— g | ]}d g‰j         z  ‘ŒS )Fr·   )r½   Úxr   s     €r   ú
<listcomp>z#QRCode.makeImpl.<locals>.<listcomp>S  s3   ø€ ð <ð <ð <Øð  ˜ 4Ô#3Ñ3ð <ð <ð <r   r   rŽ   )r4   r«   r:   rª   ÚsetupPositionProbePatternÚsetupPositionAdjustPatternÚsetupTimingPatternÚsetupTypeInfoÚsetupTypeNumberr¬   r§   Ú
createDatar©   r­   ÚmapData)r   ÚtestÚmaskPatterns   `  r   rÇ   zQRCode.makeImplQ  sJ  ø€ Øœ<¨!Ñ+¨bÑ0ˆÔð<ð <ð <ð <Ý"'¨Ô(8Ñ"9Ô"9ð<ñ <ô <ˆŒà×&Ò& q¨!Ñ,Ô,Ð,Ø×&Ò& tÔ'7¸!Ñ';¸QÑ?Ô?Ð?Ø×&Ò& q¨$Ô*:¸QÑ*>Ñ?Ô?Ð?Ø×'Ò'Ñ)Ô)Ð)Ø×ÒÑ!Ô!Ð!Ø×Ò˜4 Ñ-Ô-Ð-ØŒL˜AÒÐØ× Ò  Ñ&Ô&Ð&ØŒN˜dÒ"Ð"Ý#×.Ò.¨t¬|Ø/3Ô/EØ/3¬}ñ>ô >ˆDŒNð 	�Š�T”^ [Ñ1Ô1Ð1Ð1Ð1r   )TTTTTTT)TFFFFFT)TFTTTFTc                 ó´  — |dk    rPdgdz  | j         |dz            ||dz   …<   |dk    rd| j         |dz            |dz   <   n3d| j         |dz            |dz
  <   ndgdz  | j         |dz
           ||dz   …<   t          | j        ¦  «        D ]P\  }}|| j         ||z            ||dz   …<   |dk    rd| j         ||z            |dz   <   Œ:d| j         ||z            |dz
  <   ŒQd S )Nr   FrŽ   r"   rY   )rª   rs   Ú_positionProbePattern)r   r³   r´   r   r   s        r   rÏ   z QRCode.setupPositionProbePatternm  s  € Ø�!Š8ˆ8Ø.3¨W°q©[ˆDŒL˜˜Q™Ô  C¨¡E 	Ñ*Ø�aŠxˆxØ-2�”˜S ™UÔ# C¨¡EÑ*Ð*à-2�”˜S ™UÔ# C¨¡EÑ*Ð*ð /4¨W°q©[ˆDŒL˜˜Q™Ô  C¨¡E 	Ñ*å  Ô!;Ñ<Ô<ð 	3ð 	3‰GˆAˆtØ-1ˆDŒL˜˜Q™Ô  C¨¡E 	Ñ*Ø�aŠxˆxØ-2�”˜S ™UÔ# C¨¡EÑ*Ð*à-2�”˜S ™UÔ# C¨¡EÑ*Ð*ð	3ð 	3r   c                 ó²   — d}d}t          d¦  «        D ]B}|                      d|¦  «         t                               | ¦  «        }|dk    s||k    r|}|}ŒC|S )Nr   rY   T)r:   rÇ   ÚQRUtilÚgetLostPoint)r   ÚminLostPointÚpatternr?   Ú	lostPoints        r   rÈ   zQRCode.getBestMaskPattern  sk   € ØˆØˆÝ�q‘”ð 	ð 	ˆAØ�MŠM˜$ Ñ"Ô"Ð"Ý×+Ò+¨DÑ1Ô1ˆIØ�Q’�˜,¨Ò2Ð2Ø(�Ø�øØˆr   c                 óü   — t          d| j        dz
  ¦  «        D ]}|dz  dk    | j        |         d<   Œt          j        t          j        ddg¦  «        | j        dz
  ¦  «        | j        d         d| j        dz
  …<   d S )NrY   r$   r   rR   TFrZ   )r:   r«   rª   Ú	itertoolsÚisliceÚcycle)r   r   s     r   rÑ   zQRCode.setupTimingPatternŠ  s‹   € Ý�q˜$Ô*¨QÑ.Ñ/Ô/ð 	.ð 	.ˆAØ"# a¡%¨1¢*ˆDŒL˜ŒO˜AÑÐÝ2;Ô2BÝŒO˜T 5˜MÑ*Ô*¨DÔ,<¸rÑ,Añ3Cô 3CˆŒ�QŒ˜˜$Ô*¨QÑ.Ð.Ñ/Ð/Ð/r   )TTTTT)TFFFT)TFTFTc                 ó>  — t                                | j        ¦  «        }| j        dz
  }t	          j        ||¦  «        D ]]\  }}|dk    r|dk    s||k    rŒ||k    r|dk    rŒ%t          | j        ¦  «        D ]#\  }}|| j        ||z   dz
           |dz
  |dz   …<   Œ$Œ^d S )NrY   r$   rI   )	rÛ   ÚgetPatternPositionr4   r«   rá   Úproductrs   Ú_positionAdjustPatternrª   )r   ÚposÚmaxposr³   r´   r   r   s          r   rÐ   z!QRCode.setupPositionAdjustPattern˜  sÉ   € Ý×'Ò'¨¬Ñ5Ô5ˆØÔ! AÑ%ˆÝ!Ô)¨#¨sÑ3Ô3ð 	>ð 	>‰HˆC�Ø�aŠxˆx˜S AšX˜X¨°ª¨ØØ˜’� 3¨!¢8 8ØÝ$ TÔ%@ÑAÔAð >ð >‘��4Ø9=�”˜S 1™W q™[Ô)¨#¨a©%°°A±¨+Ñ6Ð6ð>ð	>ð 	>r   c                 óX  — t                                | j        ¦  «        }t          d¦  «        D ]5}| o||z	  dz  dk    }|| j        |dz           |dz  | j        z   dz
  dz
  <   Œ6t          d¦  «        D ]5}| o||z	  dz  dk    }|| j        |dz  | j        z   dz
  dz
           |dz  <   Œ6d S )Né   r"   rI   rY   )rÛ   ÚgetBCHTypeNumberr4   r:   rª   r«   )r   rÖ   r   r?   Úmods        r   rÓ   zQRCode.setupTypeNumber£  sß   € Ý×&Ò& t¤|Ñ4Ô4ˆÝ�r‘”ð 	Jð 	JˆAØ�8Ð7 4¨1¡9°¡/°aÒ 7ˆCØEHˆDŒL˜˜a™Ô   Q¡¨Ô)9Ñ!9¸AÑ!=ÀÑ!AÑBÐBÝ�r‘”ð 	Jð 	JˆAØ�8Ð7 4¨1¡9°¡/°aÒ 7ˆCØEHˆDŒL˜˜Q™ Ô!1Ñ1°AÑ5¸Ñ9Ô:¸1À¹6ÑBÐBð	Jð 	Jr   c                 óR  — | j         dz  |z  }t                               |¦  «        }t          d¦  «        D ]]}| o||z	  dz  dk    }|dk     r|| j        |         d<   Œ(|dk     r|| j        |dz            d<   ŒB|| j        | j        dz
  |z            d<   Œ^t          d¦  «        D ]i}| o||z	  dz  dk    }|dk     r|| j        d         | j        |z
  dz
  <   Œ3|dk     r|| j        d         d|z
  dz
  dz   <   ŒS|| j        d         d|z
  dz
  <   Œj| | j        | j        dz
           d<   d S )NrI   é   r"   rR   rY   rT   )r©   rÛ   ÚgetBCHTypeInfor:   rª   r«   )r   rÖ   r×   r   r   r?   rí   s          r   rÒ   zQRCode.setupTypeInfo¬  sp  € ØÔ&¨!Ñ+¨{Ñ:ˆÝ×$Ò$ TÑ*Ô*ˆå�r‘”ð 	Að 	AˆAØ�8Ð7 4¨1¡9°¡/°aÒ 7ˆCØ�A’�Ø%(�”˜Q” Ñ"Ð"Ø�a’%�%Ø),�”˜Q ™UÔ# AÑ&Ð&à=@�”˜TÔ-°Ñ2°QÑ6Ô7¸Ñ:Ð:å�r‘”ð 	2ð 	2ˆAØ�8Ð7 4¨1¡9°¡/°aÒ 7ˆCØ�A’�Ø<?�”˜Q” Ô 0°1Ñ 4°qÑ 8Ñ9Ð9Ø�a’%�%Ø25�”˜Q”  Q¡¨¡
¨Q¡Ñ/Ð/à.1�”˜Q”  Q¡¨¡
Ñ+Ð+à59°ˆŒ�TÔ%¨Ñ)Ô*¨1Ñ-Ð-Ð-r   c           
   #   óÞ  K  — t          j        t          | j        dz
  dd¦  «        t          ddd¦  «        ¦  «        }t	          t          d| j        dz
  ¦  «        ¦  «        t	          t          j        t          d¦  «        t          d| j        ¦  «        ¦  «        ¦  «        t	          t          d| j        ¦  «        ¦  «        f}t          d	„ |D ¦   «         ¦  «        }t                               | j        ¦  «        }t          t           j         
                    d
„ |D ¦   «         ¦  «        ¦  «        }| j        dz
  }|D ]¬}||}}|dk    rd}n|| j        dz
  k    rd}nd}||         D ]�}t          d¦  «        D ]o}	||	z
  }	| j        dk    r*|dk     r|	| j        dz
  k    rŒ'|dk     r|| j        dz
  k    rŒ<||v r)|	|v r%|dk     r|	dk     s|	|k    s|	dk     r|dk     s||k    sŒi|	|fV — ŒpŒ‚Œ­d S )Nr"   rR   éþÿÿÿrS   r   rT   rY   rŽ   c              3   óN   K  — | ] }t          t          |¦  «        ¦  «        V — Œ!d S r   )ÚlistÚreversed)r½   r   s     r   r¿   z*QRCode._dataPosIterator.<locals>.<genexpr>Ê  s0   è è € Ð7Ð7¨Q•t�H Q™KœKÑ(Ô(Ð7Ð7Ð7Ð7Ð7Ð7r   c              3   ó<   K  — | ]}|d z
  |dz
  ||dz   |d z   fV — ŒdS )r$   r"   NrE   )r½   Úps     r   r¿   z*QRCode._dataPosIterator.<locals>.<genexpr>Í  sN   è è € ð 13ð 13Ø()ˆQˆq‰S�!�A‘#�q˜!˜A™#˜q ™sÐ#ð13ð 13ð 13ð 13ð 13ð 13r   rU   r$   )rá   Úchainr:   r«   rô   ÚtuplerÛ   rå   r4   ÚsetÚfrom_iterable)
r   ÚcolsÚrowsÚrrowsÚpposré   r´   Úrowidxr³   rb   s
             r   Ú_dataPosIteratorzQRCode._dataPosIteratorÄ  sG  è è € ÝŒ�u TÔ%5¸Ñ%9¸1¸bÑAÔAÝ$ Q¨¨2™œñ0ô 0ˆå•U˜1˜dÔ.°Ñ2Ñ3Ô3Ñ4Ô4Ý•Y”_¥U¨1¡X¤X­u°Q¸Ô8HÑ/IÔ/IÑJÔJÑKÔKÝ•U˜1˜dÔ.Ñ/Ô/Ñ0Ô0ð2ˆõ Ð7Ð7°$Ð7Ñ7Ô7Ñ7Ô7ˆå×(Ò(¨¬Ñ6Ô6ˆÝ•9”?×0Ò0ð 13ð 13Ø-1ð13ñ 13ô 13ñ 3ô 3ñ 4ô 4ˆàÔ! BÑ&ˆàð 	#ð 	#ˆCØ �%ˆDØ�aŠxˆx !˜˜Ø˜Ô(¨1Ñ,Ò,Ð,°q¨f¨fØ�&Ø˜F”|ð #ð #�Ý˜q™œð #ð #�AØ˜a™�AØ”| qÒ(Ð(Ø š7˜7 q¨DÔ,<¸rÑ,AÒ'AÐ'AØ$Ø  1šW˜W¨°Ô0@À2Ñ0EÒ)EÐ)EØ$Ø˜d�{�{ q¨D y yØ # b¢ ¨a°"ªf¨f¸¸Fº
¸
Ø šF˜F¨¨bª¨°C¸&²L°LØ$à˜c˜(�N�N�N�Nð#ð#ð	#ð 	#r   Nc                 ój   — | j         s&t          |                      ¦   «         ¦  «        | _         | j         S r   )Ú_dataPosListrô   r  r   s    r   ÚdataPosIteratorzQRCode.dataPosIteratorç  s2   € ØÔ ð 	>Ý $ T×%:Ò%:Ñ%<Ô%<Ñ =Ô =ˆDÔØÔ Ð r   c              #   óF   K  — |D ]}dD ]}t          ||z  ¦  «        V — ŒŒd S )N)é€   é@   é    rZ   rY   r.   r$   r"   )Úbool)r   r   ÚbyteÚbits       r   Ú_dataBitIteratorzQRCode._dataBitIteratorì  sP   è è € Øð 	'ð 	'ˆDð0ð 'ð '�å˜4 #™:Ñ&Ô&Ð&Ð&Ð&Ð&ð'ð	'ð 	'r   c                 ó†   — | j         s't          |                      |¦  «        ¦  «        | _         t          | j         ¦  «        S r   )Ú_dataBitListrô   r  r8   r   s     r   ÚdataBitIteratorzQRCode.dataBitIteratoró  s=   € ØÔ ð 	BÝ $ T×%:Ò%:¸4Ñ%@Ô%@Ñ AÔ AˆDÔÝ�DÔ%Ñ&Ô&Ð&r   c                 óø   — |                       |¦  «        }t                               |¦  «        }t          |                      ¦   «         |d¬¦  «        D ]%\  \  }}}| |||¦  «        z  | j        |         |<   Œ&d S )NF©Ú	fillvalue)r  rÛ   ÚgetMaskr   r  rª   )r   r   r×   r   Úmaskr´   r³   Údarks           r   rÕ   zQRCode.mapDataø  s�   € Ø×#Ò# DÑ)Ô)ˆÝ�~Š~˜kÑ*Ô*ˆå +¨D×,@Ò,@Ñ,BÔ,BÀDØ6;ð!=ñ !=ô !=ð 	;ð 	;Ñ‰JˆS�#˜à%)¨D¨D°°c©N¬NÑ%:ˆDŒL˜Ô˜cÑ"Ð"ð	;ð 	;r   éì   rË   c                 ó\  — t                                | |¦  «        }t          ¦   «         }|D ]}|                     || ¦  «         Œd}|D ]}||j        z  }Œ|                     ¦   «         |dz  k    r)t          d|                     ¦   «         |dz  fz  ¦  «        ‚|                     ¦   «         dz   |dz  k    r|                     dd¦  «         |                     ¦   «         dz  dk    r0|                     d¦  «         |                     ¦   «         dz  dk    °0	 |                     ¦   «         |dz  k    rn]|                     t          j
        d¦  «         |                     ¦   «         |dz  k    rn!|                     t          j        d¦  «         Œyt                               ||¦  «        S )Nr   rY   zcode length overflow. (%d > %d)r.   F)rÀ   rÁ   ÚQRBitBufferr@   r¼   ÚgetLengthInBitsÚ	Exceptionr0   ÚputBitr§   ÚPAD0ÚPAD1ÚcreateBytes)r4   r©   r­   rÂ   r3   r   rÃ   r¾   s           r   rÔ   zQRCode.createData  sË  € å×(Ò(¨Ð2CÑDÔDˆÝ‘”ˆØð 	(ð 	(ˆDØ�JŠJ�v˜wÑ'Ô'Ð'Ð'àˆØð 	.ð 	.ˆEØ˜eœoÑ-ˆNˆNØ×"Ò"Ñ$Ô$ ~¸Ñ'9Ò9Ð9ÝÐ=Ø#×3Ò3Ñ5Ô5°~ÈÑ7IÐJñKñ Lô Lð Lð ×"Ò"Ñ$Ô$ qÑ(¨N¸QÑ,>Ò>Ð>Ø�JŠJ�q˜!ÑÔÐà×%Ò%Ñ'Ô'¨!Ñ+¨qÒ0Ð0Ø�MŠM˜%Ñ Ô Ð ð ×%Ò%Ñ'Ô'¨!Ñ+¨qÒ0Ð0ð	'Ø×&Ò&Ñ(Ô(¨N¸QÑ,>Ò>Ð>ØØ�JŠJ•v”{ AÑ&Ô&Ð&Ø×&Ò&Ñ(Ô(¨N¸QÑ,>Ò>Ð>ØØ�JŠJ•v”{ AÑ&Ô&Ð&ð	'õ ×!Ò! &¨(Ñ3Ô3Ð3r   c                 óÀ  ‡— d}d}d}d}g }g }|D �]}||j         z  }|j        }	|j         |	z
  }
t          ||	¦  «        }t          ||
¦  «        }|                     | j        |||	z   …         ¦  «         ||	z  }t
                               |
¦  «        }t          |d         |                     ¦   «         dz
  ¦  «        }| 	                    |¦  «        Š|                     ¦   «         dz
  }‰                     ¦   «         }|                     ˆfd„t          ||z
  |¦  «        D ¦   «         ¦  «         �Œ!d„ t          j        t          |Ž t          |Ž ¦  «        D ¦   «         }|S )Nr   éÿÿÿÿr"   c                 óJ   •— g | ]}|d k    r‰                      |¦  «        nd ‘Œ S )r   )Úget)r½   r?   ÚmodPolys     €r   rÎ   z&QRCode.createBytes.<locals>.<listcomp>5  s?   ø€ ð >ð >ð >Øð 01°Aªv¨v˜WŸ[š[¨™^œ^˜^¸1ð >ð >ð >r   c                 ó    — g | ]}|D ]}|®|‘ŒŒS r   rE   )r½   Úddrz   s      r   rÎ   z&QRCode.createBytes.<locals>.<listcomp>8  s5   € ð /ð /ð /�ràð/ð /à  ð à -   r   )Ú
totalCountr¼   Úmaxrw   r3   rÛ   ÚgetErrorCorrectPolynomialÚQRPolynomialr)   rí   r:   rá   rø   r   )r3   rÂ   ÚoffsetÚ
maxDcCountÚ
maxEcCountÚtotalCodeCountÚdcdataÚecdatar¾   ÚdcCountÚecCountÚrsPolyÚrawPolyÚrLenÚmLenr   r#  s                   @r   r  zQRCode.createBytes   s˜  ø€ àˆØˆ
Øˆ
ØˆØˆØˆØð 	?ñ 	?ˆEØ˜eÔ.Ñ.ˆNØ”oˆGØÔ&¨Ñ0ˆGÝ˜Z¨Ñ1Ô1ˆJÝ˜Z¨Ñ1Ô1ˆJØ�MŠM˜&œ-¨¨v°g©~Ð(=Ô>Ñ?Ô?Ð?Ø�gÑˆFÝ×5Ò5°gÑ>Ô>ˆFÝ" 6¨"¤:¨v×/?Ò/?Ñ/AÔ/AÀAÑ/EÑFÔFˆGØ—k’k &Ñ)Ô)ˆGØ×#Ò#Ñ%Ô%¨Ñ)ˆDØ×$Ò$Ñ&Ô&ˆDØ�MŠMð >ð >ð >ð >Ý#(¨°©°dÑ#;Ô#;ð>ñ >ô >ñ ?ô ?ð ?ñ ?ð/ð /�Yœ_Ý˜VÐ$¥k°6Ð&:ñ<ô <ð /ñ /ô /ˆð ˆr   )rA   rB   rC   r   r±   rµ   r¸   rÅ   rÉ   rÇ   rÙ   rÏ   rÈ   rÑ   rç   rÐ   rÓ   rÒ   r  r  r  r  r  r  rÕ   r  r  ÚstaticmethodrÔ   r  rE   r   r   r§   r§     s÷  € € € € € ðð ð ðð ð ð &ð &ð &ð ð  ð  ðð ð ð8ð 8ð 8ð
2ð 2ð 2ð& 	9Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8ð
Ðð3ð 3ð 3ð$	ð 	ð 	ðCð Cð Cð 	+Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*Ø*Ð*Ð*ð
Ðð	>ð 	>ð 	>ðJð Jð Jð;ð ;ð ;ð0#ð #ð #ðB €Lð!ð !ð !ð
'ð 'ð 'ð €Lð'ð 'ð 'ð
;ð ;ð ;ð €DØ€Dàð4ð 4ñ „\ð4ð8 ðð ñ „\ðð ð r   r§   c                   ó   — e Zd ZdZdZdZdZdS )ÚQRErrorCorrectLevelr"   r   rI   r$   N)rA   rB   rC   ÚLÚMÚQÚHrE   r   r   r8  r8  >  s"   € € € € € Ø	€AØ	€AØ	€AØ	€A€A€Ar   r8  c                   ó.   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
ÚQRMaskPatternr   r"   r$   rI   r.   rS   rR   rŽ   N)rA   rB   rC   Ú
PATTERN000Ú
PATTERN001Ú
PATTERN010Ú
PATTERN011Ú
PATTERN100Ú
PATTERN101Ú
PATTERN110Ú
PATTERN111rE   r   r   r>  r>  D  s6   € € € € € Ø€JØ€JØ€JØ€JØ€JØ€JØ€JØ€J€J€Jr   r>  c            	       óz  — e Zd Zg g ‘ddg‘ddg‘ddg‘ddg‘ddg‘g d¢‘g d¢‘g d	¢‘g d
¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d ¢‘g d!¢‘g d"¢‘g d#¢‘g d$¢‘g d%¢‘g d&¢‘g d'¢‘g d(¢‘Zd)Zd*Zd+Zed,„ ¦   «         Zed-„ ¦   «         Z	ed.„ ¦   «         Z
ed/„ ¦   «         Zd0„ d1„ d2„ d3„ d4„ d5„ d6„ d7„ d8œZed9„ ¦   «         Zed:„ ¦   «         Zed;„ ¦   «         Zed<„ ¦   «         Zeg d=¢fd>„¦   «         Zed?„ ¦   «         Zed@„ ¦   «         ZdAS )BrÛ   rR   rë   é   é   é   é"   )rR   rH  é&   )rR   r“   é*   )rR   rI  é.   )rR   é   é2   )rR   rJ  é6   )rR   r  é:   )rR   rK  é>   )rR   rI  rN  éB   )rR   rI  é0   éF   )rR   rI  rP  éJ   )rR   rJ  rQ  éN   )rR   rJ  é8   éR   )rR   rJ  rR  éV   )rR   rK  rS  éZ   )rR   rO  rP  éH   é^   )rR   rI  rP  rW  éb   )rR   rJ  rQ  rX  éf   )rR   rO  rQ  éP   éj   )rR   r  rR  éT   én   )rR   rJ  rR  r[  ér   )rR   rK  rS  r\  év   )rR   rI  rP  rW  r_  éz   )rR   rJ  rQ  rX  r`  é~   )rR   rI  é4   rX  éh   é‚   )rR   rJ  rY  rZ  él   é†   )rR   rK  é<   r[  ép   éŠ   )rR   rJ  rR  r[  re  éŽ   )rR   rK  rS  r\  rf  é’   )rR   rJ  rQ  rX  r`  rh  é–   )rR   r“   rP  éL   r`  r  éš   )rR   rO  rQ  ra  rb  é„   éž   )rR   r  rR  rc  rd  éˆ   é¢   )rR   rI  rQ  rZ  rd  rp  é¦   )rR   rJ  rR  r[  re  rq  éª   i7  i%  iT  c                 óà  — | dz  }t                                |¦  «        t                                t           j        ¦  «        z
  dk    r’|t           j        t                                |¦  «        t                                t           j        ¦  «        z
  z  z  }t                                |¦  «        t                                t           j        ¦  «        z
  dk    °’| dz  |z  t           j        z  S )Nr    r   )rÛ   ÚgetBCHDigitÚG15ÚG15_MASK©r   rz   s     r   rð   zQRUtil.getBCHTypeInfo€  s¿   € à�B‰JˆÝ×!Ò! !Ñ$Ô$¥v×'9Ò'9½&¼*Ñ'EÔ'EÑEÈÒJÐJØ•&”*¥×!3Ò!3°AÑ!6Ô!6Ý!'×!3Ò!3µF´JÑ!?Ô!?ñ"@ñ Bñ DˆAõ ×!Ò! !Ñ$Ô$¥v×'9Ò'9½&¼*Ñ'EÔ'EÑEÈÒJÐJð ˜"‘* Ñ!¥V¤_Ñ4Ð4r   c                 óÆ  — | dz  }t                                |¦  «        t                                t           j        ¦  «        z
  dk    r’|t           j        t                                |¦  «        t                                t           j        ¦  «        z
  z  z  }t                                |¦  «        t                                t           j        ¦  «        z
  dk    °’| dz  |z  S )NrJ   r   )rÛ   r}  ÚG18r€  s     r   rì   zQRUtil.getBCHTypeNumberˆ  s¸   € à�B‰JˆÝ×!Ò! !Ñ$Ô$¥v×'9Ò'9½&¼*Ñ'EÔ'EÑEÈÒJÐJØ•&”*¥×!3Ò!3°AÑ!6Ô!6Ý!'×!3Ò!3µF´JÑ!?Ô!?ñ"@ñ Bñ DˆAõ ×!Ò! !Ñ$Ô$¥v×'9Ò'9½&¼*Ñ'EÔ'EÑEÈÒJÐJð ˜‘
˜aÑÐr   c                 ó6   — d}| dk    r|dz  }| dz  } | dk    °|S ©Nr   r"   rE   )r   Údigits     r   r}  zQRUtil.getBCHDigit�  s4   € àˆØ�qŠyˆyØ�Q‰JˆEØ�Q‰JˆDð �qŠyˆyð ˆr   c                 ó,   — t           j        | dz
           S ©Nr"   )rÛ   ÚPATTERN_POSITION_TABLE)r4   s    r   rå   zQRUtil.getPatternPosition˜  s   € åÔ,¨W°q©[Ô9Ð9r   c                 ó   — | |z   dz  dk    S ©Nr$   r   rE   ©r?   Újs     r   ú<lambda>zQRUtil.<lambda>�  ó   € ˜˜A™ ‘{ aÒ'€ r   c                 ó   — | dz  dk    S rŠ  rE   r‹  s     r   r�  zQRUtil.<lambda>ž  ó   € �q˜1‘u ’z€ r   c                 ó   — |dz  dk    S ©NrI   r   rE   r‹  s     r   r�  zQRUtil.<lambda>Ÿ  r�  r   c                 ó   — | |z   dz  dk    S r’  rE   r‹  s     r   r�  zQRUtil.<lambda>   rŽ  r   c                 ó&   — | dz  |dz  z   dz  dk    S ©Nr$   rI   r   rE   r‹  s     r   r�  zQRUtil.<lambda>¡  s   € ˜˜Q™  a¡™¨1Ñ,°Ò1€ r   c                 ó,   — | |z  dz  | |z  dz  z   dk    S r•  rE   r‹  s     r   r�  zQRUtil.<lambda>¢  s    € ˜˜!™˜Q‘w ! A¡# q¡Ñ(¨AÒ-€ r   c                 ó2   — | |z  dz  | |z  dz  z   dz  dk    S r•  rE   r‹  s     r   r�  zQRUtil.<lambda>£  ó%   € ˜!˜a™% 1™¨¨A©°¡{Ñ2°aÑ7¸1Ò<€ r   c                 ó2   — | |z  dz  | |z   dz  z   dz  dk    S )NrI   r$   r   rE   r‹  s     r   r�  zQRUtil.<lambda>¤  r˜  r   )r   r"   r$   rI   r.   rS   rR   rŽ   c                 ó   — | j         |         S r   )r×   )Úclsr×   s     r   r  zQRUtil.getMask§  s   € àŒ˜{Ô+Ð+r   c           	      óÆ   — t          dgd¦  «        }t          | ¦  «        D ]?}|                     t          dt                               |¦  «        gd¦  «        ¦  «        }Œ@|S )Nr"   r   )r)  r:   ÚmultiplyÚQRMathÚgexp)ÚerrorCorrectLengthÚar?   s      r   r(  z QRUtil.getErrorCorrectPolynomial«  s^   € å˜!˜˜aÑ Ô ˆÝÐ)Ñ*Ô*ð 	Bð 	BˆAØ—
’
�<¨­F¯KªK¸©N¬NÐ(;¸QÑ?Ô?ÑAÔAˆAˆAØˆr   c                 ó&  — d}dg}d }|D ]j}|rdd„ t          ||¦  «        D ¦   «         }d„ t          ||d¬¦  «        D ¦   «         }|t          |¦  «        z  }d„ t          ||d¬¦  «        D ¦   «         }|}Œk|t          d„ |D ¦   «         ¦  «        z  }|S )Nr   c                 ó   — g | ]
\  }}||z  ‘ŒS rE   rE   ©r½   r¡  Úbs      r   rÎ   z-QRUtil.maskScoreRule1vert.<locals>.<listcomp>º  s    € Ð>Ð>Ð>¡S Q q˜1˜q™5Ð>Ð>Ð>r   c                 ó4   — g | ]\  }}|d k    ¯|o|d z
  dz   ‘ŒS ©r.   rI   rE   r¤  s      r   rÎ   z-QRUtil.maskScoreRule1vert.<locals>.<listcomp>»  s8   € ð %ð %ð %©C¨A¨aà !šV˜Vð ˜-  1¡ Q¡à#˜V˜Vr   r  c                 ó&   — g | ]\  }}|rd n|dz   ‘ŒS )r   r"   rE   r¤  s      r   rÎ   z-QRUtil.maskScoreRule1vert.<locals>.<listcomp>¿  s?   € ð Bð Bð BÙ!$  1ð #$Ð.˜Q˜Q¨¨Q©ð Bð Bð Br   c                 ó*   — g | ]}|d k    ¯|d z
  dz   ‘ŒS r§  rE   )r½   r¥  s     r   rÎ   z-QRUtil.maskScoreRule1vert.<locals>.<listcomp>Ä  s%   € Ð9Ð9Ð9 °!°q²&°&�a˜‘c˜!‘e°&°&°&r   )Úzipr   r   )r›  rª   ÚscoreÚ	lastCountÚlastRowr³   ÚchangedÚscoress           r   ÚmaskScoreRule1vertzQRUtil.maskScoreRule1vert²  sò   € àˆØ�Cˆ	ØˆØð 	ð 	ˆCàð BØ>Ð>­C°°WÑ,=Ô,=Ð>Ñ>Ô>�ð%ð %Ý% g¨yÀAÐFÑFÔFð%ñ %ô %�ð �˜V™œÑ$�ðBð BÝ(3°G¸YØ>?ð)Añ )Aô )AðBñ Bô B�	ð ˆGˆGà•Ð9Ð9 YÐ9Ñ9Ô9Ñ:Ô:Ñ:ˆØˆr   c                 óä   — d}|d         }|dd …         D ]Z}|d         |d         }}t          |dd …         |dd …         ¦  «        D ]%\  }}||cxk    r|cxk    r|k    rn n|dz  }||}}Œ&|}Œ[|S )Nr   r"   rI   )rª  )	r›  rª   r«  r­  r³   ÚlastCol0ÚlastCol1Úcol0Úcol1s	            r   ÚmaskScoreRule2zQRUtil.maskScoreRule2Ç  sµ   € àˆØ˜!”*ˆØ˜1˜2˜2”;ð 	ð 	ˆCØ!$ Q¤¨°¬�hˆHÝ! # a b b¤'¨7°1°2°2¬;Ñ7Ô7ð 0ð 0‘
��dØ˜4Ð7Ð7Ò7Ð7 8Ð7Ð7Ò7Ð7¨xÒ7Ð7Ð7Ð7Ð7Ø˜Q‘J�EØ%)¨4˜(��ØˆGˆGàˆr   )TFTTTFTFFFFc                 ó´   — t          |¦  «        }d}|D ]C}d}t          |¦  «        |z
  }||k     r'||||z   …         |k    r|dz  }||z  }n|dz  }||k     °'ŒD|S )Nr   rº   r"   )r   )r›  rª   rÞ   Ú
patternlenr«  r³   rŒ  Úmaxjs           r   ÚmaskScoreRule3horzQRUtil.maskScoreRule3horÕ  s‰   € õ
 ˜‘\”\ˆ
ØˆØð 	ð 	ˆCØˆAÝ�s‘8”8˜jÑ(ˆDØ�d’(�(Ø�q˜˜:™�~Ô&¨'Ò1Ð1Ø˜R‘K�EØ˜‘O�A�Aà˜‘F�Að �d’(�(øð ˆr   c                 ó”   — t          |¦  «        dz  }t          d„ |D ¦   «         ¦  «        }dt          d|z  |z  dz
  ¦  «        dz  z  S )Nr$   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )r   )r½   r³   s     r   r¿   z(QRUtil.maskScoreRule4.<locals>.<genexpr>ë  s(   è è € Ð0Ð0 •C˜‘H”HÐ0Ð0Ð0Ð0Ð0Ð0r   r    r¤   rP  rS   )r   r   Úabs)r›  rª   Ú	cellCountÚcounts       r   ÚmaskScoreRule4zQRUtil.maskScoreRule4è  sS   € å˜‘L”L !‘Oˆ	ÝÐ0Ð0¨Ð0Ñ0Ô0Ñ0Ô0ˆØ•S˜˜u™¨	Ñ1°BÑ6Ñ7Ô7¸1Ñ<Ñ=Ð=r   c                 ó‚  — d}||                       |j        ¦  «        z  }||                       t          |j        Ž ¦  «        z  }||                      |j        ¦  «        z  }||                      |j        ¦  «        z  }||                      t          |j        Ž ¦  «        z  }||                      |j        ¦  «        z  }|S r   )r°  rª   rª  r¶  rº  rÀ  )r›  ÚqrCoderß   s      r   rÜ   zQRUtil.getLostPointî  s³   € àˆ	à�S×+Ò+¨F¬NÑ;Ô;Ñ;ˆ	Ø�S×+Ò+­C°´Ð,@ÑAÔAÑAˆ	à�S×'Ò'¨¬Ñ7Ô7Ñ7ˆ	à�S×*Ò*¨6¬>Ñ:Ô:Ñ:ˆ	Ø�S×*Ò*­3°´Ð+?Ñ@Ô@Ñ@ˆ	à�S×'Ò'¨¬Ñ7Ô7Ñ7ˆ	ØÐr   N)rA   rB   rC   rˆ  r~  r‚  r  r6  rð   rì   r}  rå   r×   Úclassmethodr  r(  r°  r¶  rº  rÀ  rÜ   rE   r   r   rÛ   rÛ   N  s  € € € € € ð)Ø
ð)à	
ˆBˆð)ð 
ˆBˆð)ð 
ˆBˆð	)ð
 
ˆBˆð)ð 
ˆBˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð 	ˆˆð)ð  	ˆˆð!)ð" 	ˆˆð#)ð$ 	ˆˆð%)ð& 	ˆˆð')ð( 	ˆˆð))ð* 	ÐÐð+)ð, 	ÐÐð-)ð. 	ÐÐð/)ð0 	ÐÐð1)ð2 	ÐÐð3)ð4 	ÐÐð5)ð6 	ÐÐð7)ð8 	!Ð Ð ð9)ð: 	"Ð!Ð!ð;)ð< 	"Ð!Ð!ð=)ð> 	"Ð!Ð!ð?)ð@ 	"Ð!Ð!ðA)ðB 	"Ð!Ð!ðC)ðD 	"Ð!Ð!ðE)ðF 	'Ð&Ð&ðG)ðH 	'Ð&Ð&ðI)ðJ 	'Ð&Ð&ðK)ðL 	'Ð&Ð&ðM)ðN 	'Ð&Ð&ðO)ðP 	'Ð&Ð&ðQ)ÐðV€Cð*€CàF€Hàð5ð 5ñ „\ð5ð ð ð  ñ „\ð ð ðð ñ „\ðð ð:ð :ñ „\ð:ð (Ð'Ø!Ð!Ø!Ð!Ø'Ð'Ø1Ð1Ø-Ð-Ø<Ð<Ø<Ð<ð	
ð 	
€Kð ð,ð ,ñ „[ð,ð ðð ñ „\ðð ðð ñ „[ðð( ðð ñ „[ðð ð/ð /ð /ðð ð ñ „[ðð$ ð>ð >ñ „[ð>ð
 ðð ñ „[ðð ð r   rÛ   c                   ó:   — e Zd Zed„ ¦   «         Zed„ ¦   «         ZdS )rž  c                 óR   — | dk     rt          d| z   dz   ¦  «        ‚t          |          S )Nr"   zglog(ú))r  Ú	LOG_TABLE©r>   s    r   ÚglogzQRMath.glogþ  s,   € à�ŠEˆEÝ˜G a™K¨#Ñ-Ñ.Ô.Ð.Ý˜Œ|Ðr   c                 ó`   — | dk     r| dz  } | dk     °| dk    r| dz  } | dk    °t           |          S )Nr   rq   é   )Ú	EXP_TABLErÈ  s    r   rŸ  zQRMath.gexp  sF   € à�!ŠeˆeØ�‰HˆAð �!Šeˆeà�3ŠhˆhØ�‰HˆAð �3Šhˆhå˜Œ|Ðr   N)rA   rB   rC   r6  rÉ  rŸ  rE   r   r   rž  rž  ý  sH   € € € € € Øðð ñ „\ðð
 ðð ñ „\ðð ð r   rž  c                 ó   — g | ]}|‘ŒS rE   rE   ©r½   rÍ   s     r   rÎ   rÎ     ó   € Ð#Ð#Ð#�1ˆQÐ#Ð#Ð#r   rË  c                 ó   — g | ]}|‘ŒS rE   rE   rÎ  s     r   rÎ   rÎ     rÏ  r   rY   r"   r.   rS   rR   rq   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r)  c                 ó&  — t          |¦  «        dk    r"t          t          |¦  «        dz   |z   ¦  «        ‚d}|t          |¦  «        k     r0||         dk    r$|dz  }|t          |¦  «        k     r||         dk    °$||d …         dg|z  z   | _        d S )Nr   ú/r"   )r   r  Únum)r   rÔ  Úshiftr*  s       r   r   zQRPolynomial.__init__  sš   € Ý�‰HŒH˜ŠMˆMÝ�C ™HœH s™N¨UÑ2Ñ3Ô3Ð3ØˆØ•s˜3‘x”xÒÐ C¨¤K°1Ò$4Ð$4Ø�a‰KˆFð •s˜3‘x”xÒÐ C¨¤K°1Ò$4Ð$4à�v�w�w”< 1 # e¡)Ñ+ˆŒˆˆr   c                 ó   — | j         |         S r   )rÔ  )r   r<   s     r   r"  zQRPolynomial.get  s   € ØŒx˜ŒÐr   c                 ó*   — t          | j        ¦  «        S r   )r   rÔ  r   s    r   r)   zQRPolynomial.getLength"  s   € Ý�4”8‰}Œ}Ðr   c                 ó  — dg|                       ¦   «         |                      ¦   «         z   dz
  z  }t          |                       ¦   «         ¦  «        D ]ª}t          |                      ¦   «         ¦  «        D ]†}|||z   xx         t                               t                               |                      |¦  «        ¦  «        t                               |                     |¦  «        ¦  «        z   ¦  «        z  cc<   Œ‡Œ«t          |d¦  «        S r„  )r)   r:   rž  rŸ  rÉ  r"  r)  )r   r{   rÔ  r?   rŒ  s        r   r�  zQRPolynomial.multiply%  sì   € Øˆc�T—^’^Ñ%Ô%¨¯ª©¬Ñ5¸Ñ9Ñ:ˆÝ�t—~’~Ñ'Ô'Ñ(Ô(ð 	Cð 	CˆAÝ˜1Ÿ;š;™=œ=Ñ)Ô)ð Cð C�Ø�A˜‘E�
�
”
�fŸkšk­&¯+ª+°d·h²h¸q±k´kÑ*CÔ*CÝ*0¯+ª+°a·e²e¸A±h´hÑ*@Ô*@ñ+Añ Cô Cñ C�
�
‘
�
ðCõ ˜C Ñ#Ô#Ð#r   c                 óÌ  ‡— |                       ¦   «         |                      ¦   «         k     r| S t                               | j        d         ¦  «        t                               |j        d         ¦  «        z
  Šˆfd„t	          | j        |j        ¦  «        D ¦   «         }|| j        |                      ¦   «         d …         z  }t          |d¦  «                             |¦  «        S )Nr   c                 ó†   •— g | ]=\  }}|t                                t                                |¦  «        ‰z   ¦  «        z  ‘Œ>S rE   )rž  rŸ  rÉ  )r½   ÚnnÚenÚratios      €r   rÎ   z$QRPolynomial.mod.<locals>.<listcomp>1  sM   ø€ ð 2ð 2ð 2Ù�2�bð •F—K’K¥§¢¨B¡¤°%Ñ 7Ñ8Ô8Ñ8ð 2ð 2ð 2r   )r)   rž  rÉ  rÔ  rª  r)  rí   )r   r{   rÔ  rÝ  s      @r   rí   zQRPolynomial.mod-  sÄ   ø€ Ø�NŠNÑÔ˜qŸ{š{™}œ}Ò,Ð,ØˆKÝ—’˜DœH QœKÑ)Ô)­F¯KªK¸¼¸a¼Ñ,BÔ,BÑBˆð2ð 2ð 2ð 2Ý ¤¨!¬%Ñ0Ô0ð2ñ 2ô 2ˆàˆtŒx˜Ÿš™œ˜˜Ô'Ñ'ˆå˜C Ñ#Ô#×'Ò'¨Ñ*Ô*Ð*r   N)rA   rB   rC   r   r"  r)   r�  rí   rE   r   r   r)  r)    s_   € € € € € ð,ð ,ð ,ðð ð ðð ð ð%ð %ð %ð,ð ,ð ,ð ,ð ,r   r)  c                   óD  — e Zd Zg g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d	¢‘g d
¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d¢‘g d ¢‘g d!¢‘g d"¢‘g d#¢‘g d$¢‘g d%¢‘g d&¢‘g d'¢‘g d(¢‘g d)¢‘g d*¢‘g d+¢‘g d,¢‘g d-¢‘g d.¢‘g d/¢‘g d0¢‘g d1¢‘g d2¢‘g d3¢‘g d4¢‘g d5¢‘g d6¢‘g d7¢‘g d8¢‘g d9¢‘g d:¢‘g d;¢‘g d<¢‘g d=¢‘g d>¢‘g d?¢‘g d@¢‘g dA¢‘g dB¢‘g dC¢‘g dD¢‘g dE¢‘g dF¢‘g dG¢‘g dH¢‘g dI¢‘g dJ¢‘g dK¢‘g dL¢‘g dM¢‘g dN¢‘g dO¢‘g dP¢‘g dQ¢‘g dR¢‘g dS¢‘g dT¢‘g dU¢‘g dV¢‘g dW¢‘g dX¢‘g dY¢‘g dZ¢‘g d[¢‘g d\¢‘g d]¢‘g d^¢‘g d_¢‘g d`¢‘g da¢‘g db¢‘g dc¢‘g dd¢‘g de¢‘g df¢‘g dg¢‘g dh¢‘g di¢‘g dj¢‘g dk¢‘g dl¢‘g dm¢‘g dn¢‘g do¢‘g dp¢‘g dq¢‘g dr¢‘g ds¢‘g dt¢‘g du¢‘g dv¢‘g dw¢‘g dx¢‘g dy¢‘g dz¢‘g d{¢‘g d|¢‘g d}¢‘g d~¢‘g d¢‘g d€¢‘g d�¢‘g d‚¢‘g dƒ¢‘g d„¢‘g d…¢‘g d†¢‘g d‡¢‘g dˆ¢‘g d‰¢‘g dŠ¢‘g d‹¢‘g dŒ¢‘g d�¢‘g dŽ¢‘g d�¢‘g d�¢‘g d‘¢‘g d’¢‘g d“¢‘g d”¢‘g d•¢‘g d–¢‘g d—¢‘g d˜¢‘g d™¢‘g dš¢‘g d›¢‘g dœ¢‘g d�¢‘g dž¢‘g dŸ¢‘g d ¢‘Zd¡„ Zed¢„ ¦   «         Zed£„ ¦   «         Zd¤S )¥rÀ   )r"   rI  é   )r"   rI  rZ   )r"   rI  rV   )r"   rI  rT   )r"   é,   rK  )r"   rà  rO  )r"   rà  rH  )r"   rà  rZ   )r"   rV  é7   )r"   rV  rà  )r$   é#   rË   )r$   râ  rV   )r"   r¤   ra  )r$   rP  r  )r$   rP  r“   )r.   é   rT   )r"   rm  rl  )r$   éC   é+   )r$   é!   rï   r$   rK  rZ   )r$   ræ  rU   r$   rK  rJ   )r$   r[  éD   )r.   rå  r!   )r.   rå  rß  )r.   rå  rï   )r$   r_  rX  )r.   é1   é   )r$   r  rK   r.   ræ  rï   )r.   é'   rV   r"   rº   rK   )r$   éy   éa   )r$   rn  rL  r$   é=   rê  )r.   rº   rë   r$   r#   rß  )r.   rº   rK   r$   r#   rï   )r$   rr  ét   )rI   rR  é$   r$   é;   é%   )r.   rï  rZ   r.   rñ  rË   )r.   rï  rJ   r.   rñ  rV   )r$   r[  rç  r$   éW   éE   )r.   ró  rå  r"   rV  rà  )rR   rå  rß  r$   rà  é   )rR   rå  rï   r$   rà  rZ   )r.   ée   éQ   )r"   ra  rP  r.   rö  é3   )r.   rP  rH  r.   r÷  é   )rI   rï  rJ   rY   rñ  rV   )r$   rî  é\   r$   éu   é]   )rR   rR  rï  r$   rð  rñ  )r.   rN  rô  rR   é/   é   )rŽ   rM  rK   r.   rå  rï   )r.   é…   ék   )rY   rð  rñ  r"   rn  rL  )rY   rà  rô  r.   é-   rý  )rJ   ræ  rU   r.   rK  rJ   )rI   é‘   és   r"   rr  rî  )r.   r  rº   rS   éA   r#   )rU   rï  rZ   rS   rñ  rË   )rU   rï  rJ   rS   rñ  rV   )rS   ém   rò  r"   rd  éX   )rS   r  r#   rS   rT  rM  )rS   rQ  r“   rŽ   rá  rã  )rU   rï  rJ   )rS   rg  r_  r"   é{   éc   )rŽ   éI   r   rI   rW  rN  )rï   rå  rß  r$   rà  rô  )rI   r   rï   rV   rN  rZ   )r"   é‡   rÿ  rS   rx  rl  )r    rW  rN  r"   éK   rü  )r"   rP  rH  rï   r÷  rø  )r$   rM  rK   rË   rå  rï   )rS   rs  éx   r"   é—   rë  )rT   ró  rå  r.   rV  rà  )rË   rP  rH  r"   r÷  rø  )r$   rM  rK   rß  rå  rï   )rI   é�   éq   r.   rq  re  )rI   rV  rà  rU   éG   r   )rË   rü  rý  r.   rU  rH  )rT   rê  rV   rZ   rº   rK   )rI   r	  rÿ  rS   rx  rl  )rI   rä  r#   rV   rç  rM  )rï   rQ  r“   rS   rá  rã  )rï   rå  rï   r    rà  rZ   )r.   é�   rî  r.   r  rú  )rË   rç  rM  )rË   rP  rH  rR   r÷  rø  )rß  rN  rZ   rR   rü  rË   )r$   é‹   éo   rŽ   éŒ   ro  )rË   rW  rN  )rŽ   rQ  r“   rZ   rá  rã  )rK  rñ  rV   )r.   r  rë  rS   é˜   rg  )r.   r
  rü  rK   rt  rU  )rU   rQ  r“   rK   rá  rã  )rZ   r   rï   rK   rN  rZ   )rR   é“   rú  r.   é”   rf  )rR   r  r   rK   rW  rN  )rU   rQ  r“   rZ   rá  rã  )rJ  rN  rZ   r$   rü  rË   )rY   rv  rb  r.   rþ  rÿ  )rY   r
  rü  rV   rt  rU  )rŽ   rQ  r“   rH  rá  rã  )rH  r   rï   rV   rN  rZ   )r    rq  re  r$   é�   r  )rß  rW  rN  r.   r
  rü  )rO  rP  rH  rR   r÷  rø  )ræ  rN  rZ   r.   rü  rË   )rY   r  rg  r.   é™   r  )rH  r  r   rI   rW  rN  )rY   é5   rø  rI  rQ  r“   )rJ   r   rï   rO  rN  rZ   )rI   r  rú  r    r  rf  )rI   r  r   rø  rW  rN  )r.   rQ  r“   ré  rá  rã  )rU   r   rï   ré  rN  rZ   )rŽ   rr  rî  rŽ   r  rú  )rý  r  r   rŽ   rW  rN  )r"   r  rø  rñ  rQ  r“   )rß  r   rï   rI  rN  rZ   )rS   r  r  r    rr  rî  )rß  r
  rü  r    rt  rU  )rï   rQ  r“   rã  rá  rã  )rø  r   rï   rã  rN  rZ   )rV   r  r  rI   rr  rî  )r$   rW  rN  é   r
  rü  )rM  rQ  r“   r"   rá  rã  )rø  r   rï   rO  rN  rZ   )rË   r  r  )r    rW  rN  rø  r
  rü  )r    rQ  r“   râ  rá  rã  )rß  r   rï   râ  rN  rZ   )rË   r  r  r"   rr  rî  )rK   rW  rN  rý  r
  rü  )r  rQ  r“   rß  rá  rã  )rU   r   rï   rN  rN  rZ   )rV   r  r  rR   rr  rî  )rK   rW  rN  rø  r
  rü  )rà  rQ  r“   rŽ   rá  rã  )rð  rN  rZ   r"   rü  rË   )rJ   r  rë  rŽ   r  rg  )rJ   r
  rü  rI  rt  rU  )rê  rQ  r“   rK   rá  rã  )rH  r   rï   r#   rN  rZ   )rR   r  rë  rK   r  rg  )rR   r
  rü  rK  rt  rU  )rN  rQ  r“   r    rá  rã  )r$   r   rï   r  rN  rZ   )rË   r  rg  r.   r  r  )r  rW  rN  rK   r
  rü  )rè  rQ  r“   r    rá  rã  )r“   r   rï   rN  rN  rZ   )r.   r  rg  rë   r  r  )rV   rW  rN  r  r
  rü  )rU  rQ  r“   rK   rá  rã  )rM  r   rï   r  rN  rZ   )rô  r  rú  r.   r  rf  )rº   r
  rü  rŽ   rt  rU  )rå  rQ  r“   rH  rá  rã  )r    r   rï   rä  rN  rZ   )rß  r  rf  rR   é•   éw   )rë   r
  rü  ré  rt  rU  )rK  rQ  r“   rK  rá  rã  )rô  r   rï   rí  rN  rZ   c                 ó"   — || _         || _        d S r   )r&  r¼   )r   r&  r¼   s      r   r   zQRRSBlock.__init__0  s   € Ø$ˆŒØ"ˆŒˆˆr   c                 ó‚  — t                                | |¦  «        }|d k    rt          d| z   dz   |z   ¦  «        ‚t          |¦  «        dz  }g }t	          |¦  «        D ]a}||dz  dz            }||dz  dz            }||dz  dz            }t	          |¦  «        D ]%}	|                     t          ||¦  «        ¦  «         Œ&Œb|S )Nzbad rs block @ version:z/errorCorrectLevel:rI   r   r"   r$   )rÀ   ÚgetRsBlockTabler  r   r:   rw   )
r4   r©   ÚrsBlockrÄ   rô   r?   r¿  r&  r¼   rŒ  s
             r   rÁ   zQRRSBlock.getRSBlocks4  sí   € å×+Ò+¨GÐ5FÑGÔGˆØ�dŠ?ˆ?ÝÐ5¸Ñ?Ø1ñ2Ø4EñFñ Gô Gð Gå�W‘” Ñ"ˆØˆÝ�v‘”ð 	>ð 	>ˆAØ˜A ™E A™IÔ&ˆEØ   Q¡¨¡Ô+ˆJØ   Q¡¨¡Ô+ˆIÝ˜5‘\”\ð >ð >�Ø—’�I j°)Ñ<Ô<Ñ=Ô=Ð=Ð=ð>àˆr   c                 ó^  — |t           j        k    rt          j        | dz
  dz  dz            S |t           j        k    rt          j        | dz
  dz  dz            S |t           j        k    rt          j        | dz
  dz  dz            S |t           j        k    rt          j        | dz
  dz  dz            S d S )Nr"   r.   r   r$   rI   )r8  r9  rÀ   ÚRS_BLOCK_TABLEr:  r;  r<  )r4   r©   s     r   r  zQRRSBlock.getRsBlockTableD  s³   € àÕ 3Ô 5Ò5Ð5ÝÔ+¨W°q©[¸AÑ,=ÀÑ,AÔBÐBØÕ"5Ô"7Ò7Ð7ÝÔ+¨W°q©[¸AÑ,=ÀÑ,AÔBÐBØÕ#6Ô#8Ò8Ð8ÝÔ+¨W°q©[¸AÑ,=ÀÑ,AÔBÐBØÕ#6Ô#8Ò8Ð8ÝÔ+¨W°q©[¸AÑ,=ÀÑ,AÔBÐBà�4r   N)rA   rB   rC   r"  r   r6  rÁ   r  rE   r   r   rÀ   rÀ   7  sÞ  € € € € € ðvð 	ˆˆðvð 	ˆˆðvð 	ˆˆðvð 	ˆ
ˆ
ðvð 	ˆˆðvð 	ˆˆðvð 	ˆˆðvð  	ˆˆð!vð& 	ˆˆð'vð( 	ˆˆð)vð* 	ˆˆð+vð, 	ˆˆð-vð2 	ˆˆð3vð4 	ˆˆð5vð6 	ˆˆð7vð8 	ˆ
ˆ
ð9vð> 	ˆˆð?vð@ 	ˆˆðAvðB 	ÐÐðCvðD 	ÐÐðEvðJ 	ˆˆðKvðL 	ˆˆðMvðN 	ˆˆðOvðP 	ˆˆðQvðV 	ˆˆðWvðX 	ˆˆðYvðZ 	ÐÐð[vð\ 	ÐÐð]vðb 	ˆˆðcvðd 	ÐÐðevðf 	ÐÐðgvðh 	ÐÐðivðn 	ˆˆðovðp 	ÐÐðqvðr 	ÐÐðsvðt 	ÐÐðuvðz 	ÐÐð{vð| 	ÐÐð}vð~ 	ÐÐðvð@ 	ÐÐðAvðF 	ˆˆðGvðH 	ÐÐðIvðJ 	ÐÐðKvðL 	ÐÐðMvðR 	!Ð Ð ðSvðT 	ÐÐðUvðV 	ÐÐðWvðX 	ÐÐðYvð^ 	ˆˆð_vð` 	ÐÐðavðb 	ÐÐðcvðd 	 ÐÐðevðj 	#Ð"Ð"ðkvðl 	ÐÐðmvðn 	 ÐÐðovðp 	 ÐÐðqvðv 	!Ð Ð ðwvðx 	ÐÐðyvðz 	ÐÐð{vð| 	ˆˆð}vðB 	!Ð Ð ðCvðD 	ÐÐðEvðF 	 ÐÐðGvðH 	 ÐÐðIvðN 	#Ð"Ð"ðOvðP 	 ÐÐðQvðR 	 ÐÐðSvðT 	 ÐÐðUvðZ 	#Ð"Ð"ð[vð\ 	ÐÐð]vð^ 	 ÐÐð_vð` 	 ÐÐðavðf 	#Ð"Ð"ðgvðh 	 ÐÐðivðj 	 ÐÐðkvðl 	 ÐÐðmvðr 	#Ð"Ð"ðsvðt 	 ÐÐðuvðv 	 ÐÐðwvðx 	!Ð Ð ðyvð~ 	#Ð"Ð"ðvð@ 	ˆˆðAvðB 	 ÐÐðCvðD 	 ÐÐðEvðJ 	#Ð"Ð"ðKvðL 	ˆˆðMvðN 	 ÐÐðOvðP 	ˆˆðQvðV 	#Ð"Ð"ðWvðX 	 ÐÐðYvðZ 	!Ð Ð ð[vð\ 	!Ð Ð ð]vðb 	#Ð"Ð"ðcvðd 	 ÐÐðevðf 	!Ð Ð ðgvðh 	 ÐÐðivðn 	#Ð"Ð"ðovðp 	 ÐÐðqvðr 	 ÐÐðsvðt 	!Ð Ð ðuvðz 	$Ð#Ð#ð{vð| 	 ÐÐð}vð~ 	 ÐÐðvð@ 	 ÐÐðAvðF 	#Ð"Ð"ðGvðH 	 ÐÐðIvðJ 	 ÐÐðKvðL 	!Ð Ð ðMvðR 	$Ð#Ð#ðSvðT 	 ÐÐðUvðV 	 ÐÐðWvðX 	!Ð Ð ðYvð^ 	#Ð"Ð"ð_vð` 	 ÐÐðavðb 	 ÐÐðcvðd 	!Ð Ð ðevðj 	$Ð#Ð#ðkvðl 	!Ð Ð ðmvðn 	!Ð Ð ðovðp 	!Ð Ð ðqvðv 	$Ð#Ð#ðwvðx 	 ÐÐðyvðz 	 ÐÐð{vð| 	!Ð Ð ð}vðB 	ˆˆðCvðD 	!Ð Ð ðEvðF 	!Ð Ð ðGvðH 	!Ð Ð ðIvðN 	$Ð#Ð#ðOvðP 	!Ð Ð ðQvðR 	!Ð Ð ðSvðT 	!Ð Ð ðUvðZ 	$Ð#Ð#ð[vð\ 	!Ð Ð ð]vð^ 	 ÐÐð_vð` 	 ÐÐðavðf 	$Ð#Ð#ðgvðh 	!Ð Ð ðivðj 	!Ð Ð ðkvðl 	!Ð Ð ðmvðr 	$Ð#Ð#ðsvðt 	 ÐÐðuvðv 	!Ð Ð ðwvðx 	 ÐÐðyvð~ 	$Ð#Ð#ðvð@ 	!Ð Ð ðAvðB 	!Ð Ð ðCvðD 	!Ð Ð ðEvðJ 	$Ð#Ð#ðKvðL 	!Ð Ð ðMvðN 	!Ð Ð ðOvðP 	!Ð Ð ðQvðV 	$Ð#Ð#ðWvðX 	 ÐÐðYvðZ 	!Ð Ð ð[vð\ 	!Ð Ð ð]vðb 	$Ð#Ð#ðcvðd 	!Ð Ð ðevðf 	!Ð Ð ðgvðh 	!Ð Ð ðiv€Nðp#ð #ð #ð ðð ñ „\ðð ð
ð 
ñ „\ð
ð 
ð 
r   rÀ   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r  c                 ó"   — g | _         d| _        d S r   )r3   rÄ   r   s    r   r   zQRBitBuffer.__init__R  s   € ØˆŒØˆŒˆˆr   c                 óJ   — d                      d„ | j        D ¦   «         ¦  «        S )Nú.c                 ó,   — g | ]}t          |¦  «        ‘ŒS rE   )r`   )r½   r>   s     r   rÎ   z(QRBitBuffer.__repr__.<locals>.<listcomp>W  s   € Ð5Ð5Ð5 A�˜Q™œÐ5Ð5Ð5r   )Újoinr3   r   s    r   r,   zQRBitBuffer.__repr__V  s%   € Ø�xŠxÐ5Ð5¨¬Ð5Ñ5Ô5Ñ6Ô6Ð6r   c                 óF   — |dz  }| j         |         d|dz  z
  z	  dz  dk    S )NrY   rŽ   r"   )r3   )r   r<   ÚbufIndexs      r   r"  zQRBitBuffer.getY  s/   € Ø˜A‘:ˆØ”+˜hÔ'¨A°¸±	©MÑ:¸qÑ@ÀQÒFÐFr   c                 ót   — t          |¦  «        D ]'}|                      |||z
  dz
  z	  dz  dk    ¦  «         Œ(d S r‡  )r:   r  )r   rÔ  rÄ   r?   s       r   r0   zQRBitBuffer.put]  sQ   € Ý�v‘”ð 	Að 	AˆAØ�KŠK˜C F¨Q¡J°¡NÑ3¸Ñ9¸aÒ?Ñ@Ô@Ð@Ð@ð	Að 	Ar   c                 ó   — | j         S r   )rÄ   r   s    r   r  zQRBitBuffer.getLengthInBitsa  s
   € ØŒ{Ðr   c                 óâ   — | j         dz  }t          | j        ¦  «        |k    r| j                             d¦  «         |r | j        |xx         d| j         dz  z	  z  cc<   | xj         dz  c_         d S )NrY   r   r  r"   )rÄ   r   r3   rw   )r   r  r*  s      r   r  zQRBitBuffer.putBitd  s   € Ø”; !Ñ#ˆÝˆtŒ{ÑÔ˜xÒ'Ð'ØŒK×Ò˜qÑ!Ô!Ð!Øð 	BØŒK˜Ð!Ð!Ô! d¨t¬{¸Q©Ñ&?ÑAÐ!Ð!Ñ!ØˆŒ�qÑˆŒˆˆr   N)	rA   rB   rC   r   r,   r"  r0   r  r  rE   r   r   r  r  Q  st   € € € € € ðð ð ð7ð 7ð 7ðGð Gð GðAð Að Aðð ð ðð ð ð ð r   r  )rM   rá   r   r   r]   Ú	NameErrorr`   r   rG   rQ   rX   rd   rƒ   r�   r—   rž   r¢   r§   r8  r>  rÛ   rž  r:   rÌ  rÇ  r?   r)  rÀ   r  rE   r   r   ú<module>r/     su  ðð0 
€	€	€	Ø Ð Ð Ð ð6Ø%Ð%Ð%Ð%Ð%Ð%Ð%øð6Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5øøøðØ€G€GøØð ð ð à€G€G€Gðøøøð3 ð 3 ð 3 ð 3 ð 3 ñ 3 ô 3 ð 3 ðjð ð ð ð ˆrñ ô ð ðð ð ð ð �ñ ô ð ðð ð ð ð �ñ ô ð ð&+ð +ð +ð +ð +ˆbñ +ô +ð +ðZ2ð 2ð 2ð 2ð 2ˆbñ 2ô 2ð 2ðl1ð 1ð 1ð 1ð 1ˆBñ 1ô 1ð 1ð&#ð #ð #ð #ð #�Rñ #ô #ð #ð&+ð +ð +ð +ð +�"ñ +ô +ð +ðð ð ð ð �2ñ ô ð ð\ð \ð \ð \ð \ñ \ô \ð \ð~
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ðð ð ð ð ñ ô ð ðmð mð mð mð mñ mô mð mð^ð ð ð ð ñ ô ð ð $Ð#˜˜˜c™
œ
Ð#Ñ#Ô#€	Ø#Ð#˜˜˜c™
œ
Ð#Ñ#Ô#€	Ø	ˆˆq‰Œð ð €AØ˜‘6€Iˆa�L€LØ	ˆˆq�#‰Œð 9ð 9€AØ˜a !™eÔ$ y°°Q±Ô'7Ñ7Ø˜a !™eÔ$ñ%Ø'0°°Q±Ô'7ñ8€Iˆa�L€Là	ˆˆs‰Œð !ð !€AØ €Iˆi˜ŒlÑÐð,ð ,ð ,ð ,ð ,ñ ,ô ,ð ,ðBXð Xð Xð Xð Xñ Xô Xð Xðtð ð ð ð ñ ô ð ð ð s   Š ‘Ÿ" ¢,«,