
    h1A                        % S SK r S SKJr  S SKJrJrJrJrJrJ	r	J
r
  S SKJrJrJr  S SKJr  S SKJr  \\\\         r0 r\\\4   \S'   SS jrS	 rS
 rS rS r " S S\5      r\" S\S9r \" S\S9r! " S S\\    5      r"g)    N)bisect_left)Generic
NamedTupleOptionalTypeVarcastoverloadLiteral)	constants
exceptionsutil)	BaseImage)
PyPNGImageprecomputed_qr_blanksc                 Z    [        S0 UD6nUR                  U 5        UR                  5       $ )N )QRCodeadd_data
make_image)datakwargsqrs      S/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/qrcode/main.pymaker      s'    		&	BKK==?    c                 @    [        U 5      S::  a  [        SU  S35      eg )Nr   zInvalid box size (was z, expected larger than 0)int
ValueErrorsizes    r   _check_box_sizer"      s(    
4yA~1$7PQRR r   c                 >    [        U 5      S:  a  [        SU -  5      eg )Nr   z=Invalid border value (was %s, expected 0 or larger than that)r   r    s    r   _check_borderr$   !   s'    
4y1}KdR
 	
 r   c                     U c  g [        U [        5      (       d  [        S[        U 5       S35      eU S:  d  U S:  a  [	        SU  S35      eg )NzInvalid mask pattern (was z, expected int)r      z(Mask pattern should be in range(8) (got ))
isinstancer   	TypeErrortyper   )mask_patterns    r   _check_mask_patternr,   (   sc    lC(((l);(<OL
 	
 a<!+CL>QRSTT ,r   c                 6    U  Vs/ s H  oS S  PM	     sn$ s  snf Nr   )xrows     r   copy_2d_arrayr1   3   s     asFa   s   c                   ~    \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S	'   \\S
'   S\4S jrSrg)ActiveWithNeighbors7   NWNNEWmeESWSSEreturnc                     U R                   $ r.   )r9   selfs    r   __bool__ActiveWithNeighbors.__bool__B   s    wwr   r   N)__name__
__module____qualname____firstlineno__bool__annotations__rB   __static_attributes__r   r   r   r3   r3   7   s;    HGHGHGHGH$ r   r3   GenericImage)boundGenericImageLocalc                      \ rS rSr% \\S'   Sr\\   \S'   S\	R                  SSSS4S\\\      4S jjr\S	\4S
 j5       r\R                   S%S j5       r\S 5       r\R                   S 5       rS rS&S jrS'S jrS rS rS(S jrS rS(S jrS)S jr\ S(S\S   S	\4S jj5       r\ S(S\\   S	\4S jj5       rS(S jrS\S\S	\4S jr S r!S r"S r#S  r$S! r%S" r&S\S\S	\'4S# jr(S$r)g)*r   J   modulesN_version
      image_factoryc                    [        U5        [        U5        Xl        [        U5      U l        [        U5      U l        [        U5      U l        X`l        XPl        Ub  [        U[        5      (       d   eU R                  5         g r.   )r"   r$   versionr   error_correctionbox_sizeborderr+   rT   
issubclassr   clear)rA   rV   rW   rX   rY   rT   r+   s          r   __init__QRCode.__init__N   sm     	!f #$4 5H &k(*$mY7777

r   r>   c                 p    U R                   c  U R                  5         [        [        U R                   5      $ r.   )rQ   best_fitr   r   r@   s    r   rV   QRCode.versione   s&    == MMOC''r   c                 X    Ub!  [        U5      n[        R                  " U5        Xl        g r.   )r   r   check_versionrQ   )rA   values     r   rV   r`   k   s$    JEu%r   c                     U R                   $ r.   )_mask_patternr@   s    r   r+   QRCode.mask_patternr   s    !!!r   c                 &    [        U5        Xl        g r.   )r,   re   )rA   patterns     r   r+   rf   v   s    G$$r   c                 >    / /U l         SU l        SU l        / U l        g)z
Reset the internal data.
r   N)rP   modules_count
data_cache	data_listr@   s    r   r[   QRCode.clear{   s#     tr   c                 P   [        U[        R                  5      (       a  U R                  R	                  U5        OdU(       a.  U R                  R                  [        R                  " XS95        O/U R                  R	                  [        R                  " U5      5        SU l        g)z
Add data to this QR Code.

:param optimize: Data will be split into multiple chunks to optimize
    the QR size by finding to more compressed modes of at least this
    length. Set to ``0`` to avoid optimizing at all.
)minimumN)r(   r   QRDatarl   appendextendoptimal_data_chunksrk   )rA   r   optimizes      r   r   QRCode.add_data   si     dDKK((NN!!$'NN!!$":":4"RSNN!!$++d"34r   c                     U(       d  U R                   c  U R                  U R                   S9  U R                  c!  U R                  SU R	                  5       5        gU R                  SU R                  5        g)z
Compile the data into a QR Code array.

:param fit: If ``True`` (or if a size has not been provided), find the
    best fit for the data to avoid data overflow errors.
NstartF)rV   r_   r+   makeImplbest_mask_pattern)rA   fits     r   r   QRCode.make   sY     4<<'MMM-$MM%!7!7!9:MM%!2!23r   c                 r   U R                   S-  S-   U l        U R                   [        ;   a"  [        [        U R                      5      U l        O[        U R                  5       Vs/ s H  nS /U R                  -  PM     snU l        U R                  SS5        U R                  U R                  S-
  S5        U R                  SU R                  S-
  5        U R                  5         U R                  5         [        U R                  5      [        U R                   '   U R                  X5        U R                   S:  a  U R                  U5        U R                  c;  [        R                  " U R                   U R                  U R                  5      U l        U R!                  U R                  U5        g s  snf )NrS      r   r&   )rV   rj   r   r1   rP   rangesetup_position_probe_patternsetup_position_adjust_patternsetup_timing_patternsetup_type_infosetup_type_numberrk   r   create_datarW   rl   map_data)rA   testr+   is       r   ry   QRCode.makeImpl   s[   !\\A-2<<00()>t||)LMDL 6;4;M;M5N5N+++5NDL --a3--d.@.@1.DaH--a1C1Ca1GH..0%%'2?2M!$,,/T0<<1""4(??""..d33T^^DO 	doo|4)s   %F4c                    [        SS5       H  nX-   S::  d  U R                  X-   ::  a  M  [        SS5       H  nX$-   S::  d  U R                  X$-   ::  a  M  SUs=::  a  S::  a	  O  OUS;   d6  SUs=::  a  S::  a	  O  OUS;   d   SUs=::  a  S::  a+  O  O(SUs=::  a  S::  a  O  OSU R                  X-      X$-   '   M  S	U R                  X-      X$-   '   M     M     g )
N   r      >   r   r      rS   TFr   rj   rP   )rA   r0   colrcs        r   r   #QRCode.setup_position_probe_pattern   s    r1Aw"} 2 2cg =2q\7b=D$6$6#'$A ![q[Q&[Q!VQ!Q!59DLL)#'25:DLL)#'2 "	 r   c                    Uc  Sn[         R                  " U5        [         R                  " U5      n[         R                  " 5       nU R                   HW  nUR                  UR                  S5        UR                  [        U5      X$R                     5        UR                  U5        MY     [        U5      n[        [         R                  U R                     XQ5      U l        U R                  S:X  a  [        R                  " 5       eU[         R                  " U R                  5      La  U R                  U R                  S9  U R                  $ )z4
Find the minimum size required to fit in the data.
   rS   )   rw   )r   rb   mode_sizes_for_version	BitBufferrl   putmodelenwriter   BIT_LIMIT_TABLErW   rV   r   DataOverflowErrorr_   )rA   rx   
mode_sizesbufferr   needed_bitss         r   r_   QRCode.best_fit   s     =E5! 007
!NNDJJtyy!$JJs4y*YY"78JJv #
 &k"  !6!67
 <<2..00 T88FFMMM-||r   c                     SnSn[        S5       HF  nU R                  SU5        [        R                  " U R                  5      nUS:X  d  X:  d  MB  UnUnMH     U$ )z'
Find the most efficient mask pattern.
r   r   T)r   ry   r   
lost_pointrP   )rA   min_lost_pointrh   r   r   s        r   rz   QRCode.best_mask_pattern   sY     qAMM$"6JAv4!+  r   c                 ^   Uc  SSK nUR                  nUR                  5       (       d  [        S5      eU R                  c  U R                  5         U R                  nUR                  SSUS-  S-   -  -   S-   5        [        U5       Hr  nUR                  S	5        [        U5       H>  nU R                  U   U   (       a  UR                  S
5        M-  UR                  S	5        M@     UR                  S5        Mt     UR                  SSUS-  S-   -  -   S-   5        UR                  5         g)zb
Output the QR Code only using TTY colors.

If the data has not been compiled yet, make it first.
Nr   	Not a ttyz[1;47m r   rS   z[0m
z[1;47m  [40mz  z[1;47m  [0m
)sysstdoutisattyOSErrorrk   r   rj   r   r   rP   flush)rA   outr   modcountr   r   s         r   	print_ttyQRCode.print_tty   s     ;**Czz||+&&??"IIK%%		,#A)9":;kIJxAII,-8_<<?1%IIdOII45	 %
 II-. ! 			,#A)9":;kIJ		r   c                   ^ ^^
 Uc  [         R                  nU(       a   UR                  5       (       d  [        S5      eT R                  c  T R                  5         T R                  m
S Vs/ s H  n[        U45      R                  S5      PM      nnU(       a  SmT(       a  UR                  5         S[        4UU
U 4S jjn[        T R                  * T
T R                  -   S5       H  nU(       a?  T(       a  UT
T R                  -   S	-
  :  a  UR                  S
5        UR                  S5        [        T R                  * T
T R                  -   5       H.  nU" Xx5      U" US	-   U5      S	-  -   n	UR                  XY   5        M0     U(       a  UR                  S5        UR                  S5        M     UR                  5         gs  snf )z
Output the QR Code using ASCII characters.

:param tty: use fixed TTY color codes (forces invert=True)
:param invert: invert the ASCII characters (solid <-> transparent)
Nr   )            cp437Tr>   c                    > T(       a.  TR                   (       a  [        X5      TTR                   -   :  a  g[        X5      S:  d  [        X5      T:  a  g[        [        TR
                  U    U   5      $ )Nr   r   )rY   maxminr   r   rP   )r/   yinvertr   rA   s     r   
get_module&QRCode.print_ascii.<locals>.get_module5  sV    $++#a)x$++7M*M1y1}A	X 5T\\!_Q/00r   r   r   z[48;5;232mz[38;5;255mz[0m
)r   r   r   r   rk   r   rj   bytesdecodereverser   r   rY   r   r   )rA   r   ttyr   codecodesr   r   r   posr   s   `  `      @r   print_asciiQRCode.print_ascii  sj    ;**Cszz||+&&??"IIK%%<PQ<PDw&&w/<PQFMMO	1 	1 	1 |X%;Q?AX%;a%?!?II./		*+DKK<DKK)?@ &*QUA*>!*CD		%*% A 		)$IIdO @ 			1 Rs   +%Gc                     g r.   r   rA   rT   r   s      r   r   QRCode.make_imageI  s     r   c                     g r.   r   r   s      r   r   r   N  s      r   c                 n   UR                  S5      (       d  UR                  S5      (       a)  U R                  [        R                  :w  a  [	        S5      e[        U R                  5        U R                  c  U R                  5         Ub  [        U[        5      (       d   eO&U R                  nUc  SSKJnJn  U(       a  UO[        nU" U R                   U R"                  U R                  4SU R$                  0UD6nUR&                  (       a  [)        U R"                  5       Hl  n[)        U R"                  5       HP  nUR*                  (       a  UR-                  XgU S9  M&  U R$                  U   U   (       d  M?  UR/                  Xg5        MR     Mn     UR0                  (       a  UR3                  5         U$ )z]
Make an image from the QR Code data.

If the data has not been compiled yet, make it first.
embeded_image_pathembeded_imagezOError correction level must be ERROR_CORRECT_H if an embedded image is providedr   )ImagePilImageqrcode_modules)r   )getrW   r   ERROR_CORRECT_Hr   r"   rX   rk   r   rZ   r   rT   qrcode.image.pilr   r   r   rY   rj   rP   needs_drawrectr   needs_contextdrawrect_contextdrawrectneeds_processingprocess)rA   rT   r   r   r   imr   r   s           r   r   r   S  sa    JJ+,,

?0K0K##y'@'@@a  	&??"IIK$mY7777 ..M$< -2zKKMM
  <<	

 
 4--.t112A''++AT+:a++A)	 3 / JJL	r   r0   r   c                     US:  =(       aF    U[        U R                  5      :  =(       a'    US:  =(       a    U[        U R                  U   5      :  $ )Nr   )r   rP   )rA   r0   r   s      r   is_constrainedQRCode.is_constrained  sM    1H -c$,,''-q- c$,,s+,,		
r   c                 8   [        SU R                  S-
  5       H0  nU R                  U   S   b  M  US-  S:H  U R                  U   S'   M2     [        SU R                  S-
  5       H0  nU R                  S   U   b  M  US-  S:H  U R                  S   U'   M2     g )Nr   r   r   r   r   )rA   r   r   s      r   r   QRCode.setup_timing_pattern  s    q$,,q01A||Aq!-!"Q!DLLOA 2
 q$,,q01A||Aq!-!"Q!DLLOA 2r   c                    [         R                  " U R                  5      n[        [	        U5      5       H  nX   n[        [	        U5      5       H  nX   nU R
                  U   U   b  M  [        SS5       Hh  n[        SS5       HU  nUS:X  d  US:X  d  US:X  d  US:X  d  US:X  a  US:X  a  SU R
                  X6-      XW-   '   M?  SU R
                  X6-      XW-   '   MW     Mj     M     M     g )N   r   r   TF)r   pattern_positionrV   r   r   rP   )rA   r   r   r0   jr   r   r   s           r   r   $QRCode.setup_position_adjust_pattern  s    ##DLL1s3xA&C3s8_f<<$S)5r1A"2q\G Av Bw Av !Q16=ADLL1#':=BDLL1#': * & % !r   c                    [         R                  " U R                  5      n[        S5       HE  nU(       + =(       a
    X#-	  S-  S:H  nX@R                  US-     US-  U R
                  -   S-
  S-
  '   MG     [        S5       HE  nU(       + =(       a
    X#-	  S-  S:H  nX@R                  US-  U R
                  -   S-
  S-
     US-  '   MG     g )N   r   r   r   )r   BCH_type_numberrV   r   rP   rj   )rA   r   bitsr   mods        r   r   QRCode.setup_type_number  s    ##DLL1rA(5aA5CGJLLa Q););!;a!?!!CD  rA(5aA5CGJLLQ!3!33a7!;<Q!VD r   c                    U R                   S-  U-  n[        R                  " U5      n[        S5       Hq  nU(       + =(       a
    XE-	  S-  S:H  nUS:  a  X`R                  U   S'   M4  US:  a  X`R                  US-      S'   MP  X`R                  U R
                  S-
  U-      S'   Ms     [        S5       H}  nU(       + =(       a
    XE-	  S-  S:H  nUS:  a#  X`R                  S   U R
                  U-
  S-
  '   MD  US:  a  X`R                  S   SU-
  S-
  S-   '   Mf  X`R                  S   SU-
  S-
  '   M     U(       + U R                  U R
                  S-
     S'   g )Nr      r   r   r   	   )rW   r   BCH_type_infor   rP   rj   )rA   r   r+   r   r   r   r   s          r   r   QRCode.setup_type_info  sM   %%*l:!!$' rA(5aA5C1u%(Q"Q),QU#A&?BT//"4q89!<  rA(5aA5C1u>AQ 2 2Q 6 :;Q25QQ
Q/.1QQ
+  7;(T''!+,Q/r   c                    SnU R                   S-
  nSnSn[        R                  " U5      n[        U5      n[	        U R                   S-
  SS5       H  n	U	S::  a  U	S-  n	XS-
  4n
 U
 He  nU R
                  U   U   b  M  SnXh:  a  X   U-	  S-  S:H  nU" XK5      (       a  U(       + nXR
                  U   U'   US-  nUS:X  d  M^  US-  nSnMg     XC-  nUS:  d  U R                   U::  a	  XC-  nU* nM  M     g )Nr   r   r&   r   r   r   F)rj   r   	mask_funcr   r   rP   )rA   r   r+   incr0   bitIndex	byteIndexr   data_lenr   	col_ranger   darks                r   r   QRCode.map_data  s'     1$	NN<0	t9++a/B7CaxqAgI"A||C(+3$$/%)_%@A$E!#KD$S,,'+8D/3S)!, A#r>%NI'(H #" 
7d00C7JC$C/  8r   c                    U R                   c  U R                  5         U R                  (       d  U R                  $ [	        U R                  5      U R                  S-  -   nS/U-  /U R                  -  nS/U R                  -  nU R                   H/  nUR                  U[        [        [           U5      -   U-   5        M1     US/U-  /U R                  -  -  nU$ )z
Return the QR Code as a multidimensional array, including the border.

To return the array without a border, set ``self.border`` to 0 first.
r   F)	rk   r   rY   rP   r   rq   r   listrH   )rA   widthr   x_bordermodules        r   
get_matrixQRCode.get_matrix  s     ??"IIK{{<<DLL!DKK!O3% 4;;.7T[[(llFKK4T
F#;;hFG #%5!DKK//r   c                     / n[        US-
  US-   5       H^  n[        US-
  US-   5       HE  nUR                  U R                  XE5      =(       a    [        U R                  U   U   5      5        MG     M`     [        U6 $ )Nr   r   )r   rq   r   rH   rP   r3   )rA   r0   r   contextr   r   s         r   active_with_neighborsQRCode.active_with_neighbors  su     sQwa(A37C!G,t2218UT$,,q/RSBT=UV - ) #G,,r   )re   rQ   rY   rX   rk   rl   rW   rT   r+   rP   rj   rV   )r>   N)   )Tr.   )NFF)*rD   rE   rF   rG   ModulesTyperI   rQ   r   r   r   ERROR_CORRECT_Mr*   rK   r\   propertyrV   setterr+   r[   r   r   ry   r   r_   rz   r   r   r	   r
   r   rM   rH   r   r   r   r   r   r   r  r3   r  rJ   r   r   r   r   r   J   s   "Hhsm" "226:  \ 23. ( ( (
 ^^  " " % % 458;$<$<)V -1$T]	  7; !"34 	   ,^
# 
C 
D 
	,C2	K;:'R*- -3 -;N -r   r   r.   )#r   bisectr   typingr   r   r   r   r   r	   r
   qrcoder   r   r   qrcode.image.baser   qrcode.image.purer   r   rH   r	  r   dictr   rI   r   r"   r$   r,   r1   r3   rK   rM   r   r   r   r   <module>r     s    
    / . ' (4'(02 tC,- 2S

U!*  ~Y7/yA O-W\" O-r   