
    Q?hH                        S SK Jr  S SKJr  S SKJr  S SKJr  0 S S_SS_SS	_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_0 S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSG_E0 SHSI_SJSK_SLSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSY_SZS[_S\S]_S^S__S`Sa_SbSc_SdSe_SfSg_ShSi_E0 SjSk_SlSm_SnSo_SpSq_SrSs_StSu_SvSw_SxSy_SzS{_S|S}_S~S_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_ESSSSSS.ErSu  r	r
rr0 SS _SS_SS_SS
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _SS"_SS$_0 SS&_SS(_SS*_SS,_SS._SS0_SS2_SS4_SS6_SS8_SS:_SS<_SS>_SS@_SSB_SSD_SSF_E0 SSH_SSJ_SSL_SSN_SSP_SSR_SST_GS SV_GSSX_GSSZ_GSS\_GSS^_GSS`_GSSb_GSSd_GSSf_GS	Sh_E0 GS
Sj_GSSl_GSSn_GSSp_GSSr_GSSt_GSSv_GSSx_GSSz_GSS|_GSS~_GSS_GSS_GSS_GSS_GSS_GSS_E0 GSS_GSS_GSS_GSS_GSS_GS S_GS!S_GS"S_GS#S_GS$S_GS%S_GS&S_GS'S_GS(S_GS)S_GS*S_GS+S_E0 GS,S_GS-S_GS.S_GS/S_GS0S_GS1S_GS2S_GS3S_GS4S_GS5S_GS6S_GS7S_GS8S_GS9S_GS:S_GS;S_GS<S_EGS=GS>0Er0 SS _SS_SS_SS
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _SS"_SS$_0 SS&_SS(_SS*_SS,_SS._SS0_SS2_SS4_SS6_SS8_SS:_SS<_SS>_SS@_SSB_SSD_SSF_E0 SSH_SSJ_SSL_SSN_SSP_SSR_SST_GS SV_GSSX_GSSZ_GSS\_GSS^_GSS`_GSSb_GSSd_GSSf_GS	Sh_E0 GS
Sj_GSSl_GSSn_GSSp_GSSr_GSSt_GSSv_GSSx_GSSz_GSS|_GSS~_GSS_GSS_GS?S_GS@S_GSAS_GSBS_E0 GSCS_GSDS_GSES_GSFS_GSGS_GSHS_GSIS_GSJS_GSKS_GSLS_GSMS_GSNS_GSOS_GSPS_GSQS_GSRS_GSSS_E0 GSTS_GSUS_GSVS_GSWS_GSXS_GSYS_GSZS_GS[S_GS\S_GS]S_GS^S_GS7S_GS8S_GS9S_GS:S_GS<S_GS_S_EGS=GS>0Er0 GS`S _GSaS_GSbS_GScS
_GSdS_GSeS_GSfS_GSgS_GShS_GSiS_GSjS_GSkS_GSlS_GSmS_GSnS _GSoS"_GSpS$_0 GSqS&_GSrS(_GSsS*_GStS,_GSuS._GSvS0_GSwS2_GSxS4_GSyS6_GSzS8_GS{S:_GS|S<_GS}S>_GS~S@_GSSB_GSSD_GSSF_E0 GSSH_GSSJ_GSSL_GSSN_GSSP_GSSR_GSST_GSSV_GSSX_GSSZ_GSS\_GSS^_GSS`_GSSb_GSSd_GSSf_GSSh_E0 GSSj_GSSl_GSSn_GSSp_GSSr_GSSt_GSSv_GSSx_GSSz_GSS|_GSS~_GSS_GSS_GSS_GSS_GSS_GSS_E0 GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_E0 GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GSS_GS;S_GS_S_EGS=GS>0Er\\4\\4\GS4\	\\4\
\\4\\GS4GS.rGSr\" \R'                  5       5      r " GS GS\5      r " GS GS\5      r\GS:X  a  GS r\" 5         GgGg(      inch)asNative)MultiWidthBarcode)digitsBaBbBb   BbBaBb   BbBbBa   AbAbBc   AbAcBb   AcAbBb   AbBbAc   AbBcAb   AcBbAb	   BbAbAc
   BbAcAb   BcAbAb   AaBbCb   AbBaCb   AbBbCa   AaCbBb   AbCaBb   AbCbBa   BbCbAa   BbAaCb   BbAbCa   BaCbAb   BbCaAb   CaBaCa   CaAbBb   CbAaBb   CbAbBa   CaBbAb   CbBaAb   CbBbAa   BaBaBc   BaBcBa    BcBaBa!   AaAcBc"   AcAaBc#   AcAcBa$   AaBcAc%   AcBaAc&   AcBcAa'   BaAcAc(   BcAaAc)   BcAcAa*   AaBaCc+   AaBcCa,   AcBaCa-   AaCaBc.   AaCcBa/   AcCaBa0   CaCaBa1   BaAcCa2   BcAaCa3   BaCaAc4   BaCcAa5   BaCaCa6   CaAaBc7   CaAcBa8   CcAaBa9   CaBaAc:   CaBcAa;   CcBaAa<   CaDaAa=   BbAdAa>   DcAaAa?   AaAbBd@   AaAdBbA   AbAaBdB   AbAdBaC   AdAaBbD   AdAbBaE   AaBbAdF   AaBdAbG   AbBaAdH   AbBdAaI   AdBaAbJ   AdBbAaK   BdAbAaL   BbAaAdM   DaCaAaN   BdAaAbO   AcDaAaP   AaAbDbQ   AbAaDbR   AbAbDaS   AaDbAbT   AbDaAbU   AbDbAaV   DaAbAbW   DbAaAbX   DbAbAaY   BaBaDaZ   BaDaBa[   DaBaBa\   AaAaDc]   AaAcDa^   AcAaDa_   AaDaAc`   AaDcAaa   DaAaAcb   DaAcAac   AaCaDad   AaDaCae   CaAaDaDaAaCaBaAdAbBaAbAdBaAbCbBcCaAaB)f   g   h   i   j   )r   r   r   r    !"#$%&'()*+,-./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RSTUVWXYZ[\]^_ 	
   ó   òSHIFTTO_CTO_B   ô   ñr   `abcdefghijklmnopqrstuvwxyz{|}~TO_A00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899N)rd  rA  r@  START_ASTART_BSTART_C)r  rd  rA  c                   Z    \ rS rSrSr\S-  rSrSrSr	Sr
SS jrS rS rS	 rS
 rS rSrg)Code128   uX  
Code 128 is a very compact symbology that can encode the entire
128 character ASCII set, plus 4 special control codes,
(FNC1-FNC4, expressed in the input string as ñ to ô).
Code 128 can also encode digits at double density (2 per byte)
and has a mandatory checksum.  Code 128 is well supported and
commonly used -- for example, by UPS for tracking labels.

Because of these qualities, Code 128 is probably the best choice
for a linear symbology today (assuming you have a choice).

Options that may be passed to constructor:

    value (int, or numeric string. required.):
        The value to encode.

    barWidth (float, default .0075):
        X-Dimension, or width of the smallest element
        Minumum is .0075 inch (7.5 mils).
        
    barHeight (float, see default below):
        Height of the symbol.  Default is the height of the two
        bearer bars (if they exist) plus the greater of .25 inch
        or .15 times the symbol's length.

    quiet (bool, default 1):
        Wether to include quiet zones in the symbol.
        
    lquiet (float, see default below):
        Quiet zone size to left of code, if quiet is true.
        Default is the greater of .25 inch, or 10 barWidth
        
    rquiet (float, defaults as above):
        Quiet zone size to right left of code, if quiet is true.
        
Sources of Information on Code 128:

http://www.semiconductor.agilent.com/barcode/sg/Misc/code_128.html
http://www.adams1.com/pub/russadam/128code.html
http://www.barcodeman.com/c128.html

Official Spec, "ANSI/AIM BC4-1999, ISS" is available for US$45 from
http://www.aimglobal.org/aimstore/
gQ~?Nr	   c                    [        U[        5      (       a  [        U5      O
[        U5      nUR	                  5        H  u  p4[        XU5        M     U R                  (       ae  U R                  c%  [        [        S-  U R                  S-  5      U l        U R                  c%  [        [        S-  U R                  S-  5      U l        OS=U l        U l        [        R                  " X5        g )Ng      ?g      $@g        )
isinstanceintstrr   itemssetattrquietlquietmaxr   barWidthrquietr   __init__)selfvalueargsrO  rZ  s        T/var/www/html/env/lib/python3.13/site-packages/reportlab/graphics/barcode/code128.pyr  Code128.__init__   s    (s33E
%JJLDADQ ! ::{{"!$+t}}t/CD{{"!$+t}}t/CD(++DK$+""4/    c                     SnSU l         U R                   H%  n[        U5      S:  a  US;  a	  SU l         M!  X-   nM'     Xl        U$ )N r	      u   ñòóôr   )validr  ord	validated)r  vvalrG  s      r  validateCode128.validate   sL    
A1v|); ;
8D	 
 r  c                    Sn/ nU[        U5      :  Ga7  Un/ nSnU[        U5      :  GaX  X   [        ;   a  UnGOHX   S:X  a  UR                  X   5        US-  nMB  X   [        ;   a6  XS-      [        ;   a'  UR                  X   XS-      -   5        US-  nUS-  nM  X   [        ;   a  XS-      S:X  a  / nSn	Un
X:  aj  X   S:X  a  UR                  X   5        U
S-  n
OBX   [        ;   a5  XS-
     [        ;   a&  UR                  XS-
     X   -   5        U	S-  n	U
S-  n
OOX:  a  Mj  UR	                  5         X[        US:  =(       a    U=(       a    US   [        ;   5      -   S-
  :  a  X1U   -  nUS-  nUnAUS-  n X   S:H  =(       d    WU:H  (       + nUS:  =(       a    U=(       a    US   [        ;   nU[        U5      -   [        U5      :  aU  U(       a  US   SS S-   nUS	 OS	nX=/U-   -  nU(       a  UR                  S
UW   SS -   5        UR                  X   5        O	X1XBS-    -  nUS-  nU[        U5      :  a  GM7  U$ )z?Improved version of old _trailingDigitsToC(self, l) inspired byr   rC  r	   r   STOPNr   r@  TO)lencStartsappendr   reverser  )r  rP  rM  nlstartposrlsavingsrN  rrlrsavingsrO  taxstocs                 r  	_try_TO_CCode128._try_TO_C   sm   #a&jHBGc!f*47?ATV^IIadOFATV^A#&(IIadQsVm,FAqLGtv~!aC&&. #%j tV| #

14 0 !Q!"AcFf4D #

1qS6!$; 7 (A !Q %  j #C
0_@^RPRVW^M^,`$`ab$bbH+-B$MH!$B #FAdFl*ad+B!@!?bf.?Bs2wR(R&"+c/C2 CeBhIId1Q49n-		!$1o%FAo #a&jp 	r  c                    U R                   nS/nU H(  nU[        ;  a
  USUS/-   nM  UR                  U5        M*     UR                  S5        U R                  U5      nUS   [        ;   a  SUS   S   -   /US S& [
        US	      u  pEnU/nUSS nU(       an  US	   nUS
:X  a  XuU   XbS      /-   nUSS  nOFU[        ;   a$  UR                  XS   5        [
        U   u  pVUSS  nOUR                  XS   5        USS  nU(       a  Mn  US	   n[        S[        U5      5       H  nX8Xx   -  -   nM     XsS-  [        /-   U l	        U R                  $ )Nr  rd  rA  r  r	   START_r  r   r   r?  r   )
r  setbr  r  tossetmapranger  stopencoded)	r  rW  rP  rG  startsetshsetrI  rM  s	            r  encodeCode128.encode9  sr   NNKA}F++	 
 	
NN1 Q43;!R()AbqE
 #1Q4LEGaG!AG|Qt--abEc #AY
abE abE a aDq#a&!AHA "GT?*||r  c                     SR                  U R                   Vs/ s H  n[        U   PM     sn5      U l        U R                  $ s  snf )Nr  )joinr  	_patterns
decomposed)r  rG  s     r  	decomposeCode128.decomposed  s9    ''"FA9Q<"FG #Gs   Ac                     U R                   $ )N)r  )r  s    r  
_humanTextCode128._humanTexth  s    zzr  )r  r  r  r  r  r  )r  )__name__
__module____qualname____firstlineno____doc__r   r  r  r  r  	barHeightr  r  r  r	  r  r  __static_attributes__ r  r  r  r     sG    +X f}HFFEI0 	<|)Vr  r  c                       \ rS rSrSrS rSrg)Code128Autoik  zcontributed by https://bitbucket.org/kylemacfarlane/
see https://bitbucket.org/rptlab/reportlab/issues/69/implementations-of-code-128-auto-and-data
c                 n   U R                   nS n/ n[        U5      nU(       a  UR                  S5      nU[        ;   a'  U(       a   US   [        ;   a  XTR                  S5      -  nU[        ;   a  SnOU[
        ;   a  SnOSnX&:w  a2  U(       a  UR                  SU-   5        OUR                  SU-   5        UnUR                  U5        U(       a  M  UR                  S5        [        US      u  pxn	U/n
USS	 nU(       an  US   nUS
:X  a  XU   XS      /-   n
USS  nOFU[        ;   a$  U
R                  X   5        [        U   u  pUSS  nOU
R                  X   5        USS  nU(       a  Mn  U
S   n[        S[        U
5      5       H  nX[X   -  -   nM     XS-  [        /-   U l        U R                  $ )Nr   r   r   r   TO_r  r  r	   r  r?  r   r   )r  listpopr   setcr   r  r  r  r  r  r  r  )r  rW  current_setrP  r  rG  set_r  r  r  rI  rM  s               r  r	  Code128Auto.encodeo  s   NNQ		!AF{uqV);YYq\!Dyd"HHUT\*HHX_-"HHQK' e( 	
"1Q4LEGaG!AG|Qt--abEc #AY
abE abE a aDq#a&!AHA "GT?*||r  )r  N)r  r  r  r  r  r	  r  r  r  r  r  r  k  s    1r  r  __main__c            	      *   SSK Jn   SSKJnJn  SSKJn  SSKJn  SSK	J
n  SSKJn  U" 5       nUS   nUS	   n	/ n
U
R                  nS
 H1  nU" U" U" SU-  U5      U " U5      /5      5        U" U" X35      5        M3     U" S5      R                  U
5        g )Nr   )r  )SpacerSimpleDocTemplater   )getSampleStyleSheet)	Paragraph)KeepTogetherNormalHeading1)BBBB123456BBBBBBB12345BBBBBBB1234BBB
BBBB123BBB	BBBB12BBBBBBB1BBBBBBB123456aa
BBBB1234aa	BBBB123aaBBBB12aaBBBB1aa
BBBB123456	BBBB12345BBBB1234BBBB123BBBB12BBBB1u   ñ1234Bu	   Bañ1234BBa12Ba123BBa1234BBBBB1234567BBBB1234567aazCode 128 %rzcode128-out.pdf)"reportlab.graphics.barcode.code128r  reportlab.platypusr(  r)  reportlab.lib.unitsr   reportlab.lib.stylesr*  reportlab.platypus.paragraphr+  reportlab.platypus.flowablesr,  r  build)r  r(  r)  r   r*  r+  r,  stylesstyleNstyleHstorystoryAddrW  s                r  mainrQ    s    >@,<:=$&!
#<<A4 \9]Q->#GPQ
"STUVD&'78 	+,2259r  )rG  r   reportlab.lib.utilsr   !reportlab.graphics.barcode.commonr   stringr   r  startastartbstartcr  setar   r"  r  r  r   keysr  r  r  r  rQ  r  r  r  <module>rZ     s'  B % ( ? %H%%./h%H%%./h% H% % /0h% H	% 	% /1h	%
 H%
 %
 /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h% H% % /1h%  H!%  !%  /1h!%" H#%" #%" /1h#%$ H%%$ %%$ /1h%%& H'%& '%& /1h'%( H)%( )%( /1h)%* H+%* +%* /1h+%, H-%, -%, /1h-%. H/%. /%. /1h/%0 H1%0 1%0 /1h1%2 H3%2 3%2 /1h3%4 H5%4 5%4 /1h5%6 H7%6 7%6 /1h7%8 H9%8 9%8 /1h9%: H;%: ;%: /1h;%< H=%< =%< /1h=%> H?%> ?%> /1h?%@ HA%@ A%@ /1hA%B HC%B C%B /1hC%D HE%D E%D /2hE%F hI%	N  2 !,/A>Aa!,/A=Aa 	 ! -02 ?BR 	r	 	 -02	 ?BR	
 	r
 
 -02
 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR  r!  !  -02!  ?BR!" r#" #" *02#" <BR#$ r%$ %$ *02%$ <BR%& r'& '& *02'& <BR'( r)( )( *02)( <BR)* r+* +* *02+* <BR+, r-, -, *02-, <BR-. r/. /. *02/. <BR/0 r10 10 *0210 <BR12 r32 32 )0232 <BR34 c54 54 *0#5:!,/A>Aa!,/A=Aa 	 ! -02 ?BR 	r	 	 -02	 ?BR	
 	r
 
 -02
 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR 	r  -02 ?BR  r!  !  -02!  ?BR!" 	r#" #" -02#" ?BR#$ 	r%$ %$ -02%$ ?BR%& 	r'& '& -02'& ?BR'( 	r)( )( -02)( ?BR)* 	r+* +* -02+* ?BR+, 	r-, -, -02-, ?BR-. 	r/. /. -02/. ?BR/0 	r10 10 -0210 <BR12 r32 32 )0232 <BR34 c54 54 *0#5:!1A#Q(,a!1A#Q(,a 	 " 2  $B )-R 		 "	 2	  $B	 )-R	
 	
 "
 2
  $B
 )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R 	 " 2  $B )-R  	!  "!  2!   $B!  )-R!" 	#" "#" 2#"  $B#" )-R#$ 	%$ "%$ 2%$  $B%$ )-R%& 	'& "'& 2'&  $B'& )-R'( 	)( ")( 2)(  $B)( )-R), S-, c-, '-s-4 D\D\D\t$t$t$
 $
6;;=| ||5' 5n Z(:R 	FU r  