+
    ŒvjA=  ã                   ó†   € ^ RI Ht RtRt^ RIHt ^ RIHt R t ! R R]4      t	R t
R	 tR
 tR t]R8X  d
   ]! 4        R# R# )é    )Úprint_functionz3.3.0ÚUSPS_4State)ÚBarcode)ÚasNativec                óž   € \        V 4      pVR,          VR,          P                  4       ,           pVP                  R4      '       d   VRR pV# )znormalized hexºNé   Nºr	   NNÚlNéÿÿÿÿ)ÚhexÚlowerÚendswith)ÚiÚrs   & Úe/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/graphics/barcode/usps4s.pyÚnhexr   
   s?   € äˆA‹€AØ	ˆ"�ˆa��e�k‰k‹mÕ€AØ‡z�z�#‡‚˜A˜c˜r˜F˜Ø€Hó    c                   ó^  a € ] tR t^t o Rt^t^t^t^ t ]	! R2R3R2R3R7      t
]	! R4R5R4R5R7      t]	! R6R7R8R9R7      tR:R ltR tR t]! ]4      tR t]! R	 ]4      tR
 t]! R ]4      tR t]! R ]4      tR t]! R ]4      tR t]! R ]4      tR t]! R ]4      tR t]! ]4      tR t]! ]4      tR t]! ]4      tR t]! ]4      tR t]! ]4      tR t]! ]4      tR;tR<t]! R 4      t ]! R 4      t!]R 4       t"]"PF                  R 4       t"]R 4       t$]$PF                  R 4       t$]R  4       t%]%PF                  R! 4       t%]! R" 4      t&]! R# 4      t']R$ 4       t(]R% 4       t)](PF                  R& 4       t(])PF                  R' 4       t)R( t*R) t+R=R* lt,R+ t-R, t.]! ].R- 4      t.R. t/R>R/ lt0R0t1T t2R1# )?r   zBUSPS 4-State OneView (TM) barcode. All info from USPS-B-3200A
    )ÚFÚTÚAÚD)r   r   r   r   )ÚwidthÚpitchÚhczÚvczc                óš  € V P                  4        \        V\        4      '       d   \        V4      M
\	        V4      pV'       g>   \        V4      R9   d   VR,          VR,          r!MF\        R\        V4      ,          4      h\        V4      R9  d   \        R\        V4      ,          4      hWn        W n        V P                  ! R/ VB  R# )	é   :Nr   N:r   NNz;value+routing length must be 20, 25, 29 or 31 digits not %dz/routing length must be 5, 9 or 11 digits not %dN)r   é   é   é   )é   é	   é   © )
Ú_initÚ
isinstanceÚintÚstrr   ÚlenÚ
ValueErrorÚ	_trackingÚ_routingÚ_setKeywords)ÚselfÚvalueÚroutingÚkwds   &&&,r   Ú__init__ÚUSPS_4State.__init__?   s›   € Ø�
‰
ŒÜ(¨¬s×3Ò3”�E”
¼À%»ˆßä�5‹z˜]Ô*Ø!& s¥¨U°3­Z‘wä Ð!^ÔadÐejÓakÕ!kÓlÐlÜ�‹\ Ô)ÜÐNÔQTÐU\ÓQ]Õ]Ó^Ð^ØŒØŒØ×ÒÑ ˜CÔ r   c                ó>   € R V n         R V n        R V n        R V n        R # ©N)Ú_bvalueÚ
_codewordsÚ_charactersÚ	_barcodes©r0   s   &r   r'   ÚUSPS_4State._initN   s   € ØˆŒØˆŒØˆÔØˆŽr   c                óv   € W,          p^HV^ ,          ^V,
          ,          W#^,          ,          ,           ,          # )éH   r&   )Úkindr   ÚsÚVs   &&& r   ÚscaleÚUSPS_4State.scaleT   s+   € Ø�GˆØ�1�Q•4˜˜1�•:˜a !¥�fÕ$Õ%Ð%r   c                ó2   € V P                  4        Wn        R # r7   )r'   r-   )r0   Útrackings   &&r   rF   ÚUSPS_4State.trackingY   s   € Ø�
‰
ŒØ!Žr   c                ó   € V P                   # r7   )r-   r<   s   &r   Ú<lambda>ÚUSPS_4State.<lambda>\   ó   €  T§^¢^r   c                ó2   € V P                  4        Wn        R # r7   )r'   r.   )r0   r2   s   &&r   r2   ÚUSPS_4State.routing^   s   € Ø�
‰
ŒØŽr   c                ó   € V P                   # r7   )r.   r<   s   &r   rI   rJ   a   s   €  D§M¢Mr   c                óJ   € R V n         \        \        ^ V4      ^4      V n        R # r7   )Ú_sizedÚminÚmaxÚ
_widthSize©r0   r1   s   &&r   Ú	widthSizeÚUSPS_4State.widthSizec   s   € ØˆŒÜœc ! E›l¨1Ó-ˆŽr   c                ó   € V P                   # r7   )rS   r<   s   &r   rI   rJ   f   s   €  d§o¢or   c                ó    € R V n         Wn        R # r7   )rP   Ú_heightSizerT   s   &&r   Ú
heightSizeÚUSPS_4State.heightSizeh   s   € ØˆŒØ Ör   c                ó   € V P                   # r7   )rY   r<   s   &r   rI   rJ   k   s
   €  t×'7Ò'7r   c                ó    € R V n         Wn        R # r7   )rP   Ú	_fontSizerT   s   &&r   ÚfontSizeÚUSPS_4State.fontSizem   s   € ØˆŒØŽr   c                ó   € V P                   # r7   )r^   r<   s   &r   rI   rJ   p   rK   r   c                ó    € R V n         Wn        R # r7   )rP   Ú_humanReadablerT   s   &&r   ÚhumanReadableÚUSPS_4State.humanReadabler   s   € ØˆŒØ#Ör   c                ó   € V P                   # r7   )rc   r<   s   &r   rI   rJ   u   s
   € ¨$×*=Ò*=r   c                ó4  € V P                   pV'       Eg<   V P                  p\        V4      p V^ 8X  d   ^ pMTV^8X  d   \        V4      ^,           pM:V^	8X  d   \        V4      R,           pM V^8X  d   \        V4      R,           pM\        hV P
                  pVR,          p V^
,          pV\        V^ ,          4      ,          pV^,          pV\        V^,          4      ,          p^pR F]  w  rxTp	Yh,          pYIT p \        T4      T8w  d   \        h\        T4       F$  p	T^
,          pT\        YY,          4      ,          pK&  	  K_  	  Yn         V#    \	        RT,          4      h; i   \	        RT,          4      h; i   \	        RYWT3,          4      h; i)a   convert the 4 state string values to binary
>>> print(nhex(USPS_4State('01234567094987654321','').binary))
0x1122103b5c2004b1
>>> print(nhex(USPS_4State('01234567094987654321','01234').binary))
0xd138a87bab5cf3804b1
>>> print(nhex(USPS_4State('01234567094987654321','012345678').binary))
0x202bdc097711204d21804b1
>>> print(nhex(USPS_4State('01234567094987654321','01234567891').binary))
0x16907b2a24abc16a2e5c004b1
i¡† i¡Pœ;z@Problem converting %s, routing code must be 0, 5, 9 or 11 digitsºr   r	   Nz:Problem converting %s, barcode identifier must be 2 digitsz+Problem converting %s, %s must be %d digits))zspecial servicesé   )zcustomer identifieré   )zsequence numberr$   )r8   r2   r+   r)   r,   rF   Úrange)
r0   r1   r2   ÚnrF   Úsvaluer   ÚnameÚndÚjs
   &         r   ÚbinaryÚUSPS_4State.binaryw   sŽ  € ð —‘ˆßˆuØ—l‘lˆGÜ�G“ˆAðoØ�a”4Ø‘EØ˜”TÜ ›L¨�N‘EØ˜”TÜ ›L¨Õ/‘EØ˜”UÜ ›L¨Õ3‘Eä$Ð$ð —}‘}ˆHØ˜c•]ˆFðhØ˜•�Øœ˜V A�Y›Õ'�Ø˜•
�Øœ˜V A�Y›Õ'�ð ˆAÛe‘�Ø�Ø•�Ø! A˜�ðgÜ˜6“{ B”¬jÐ(8Ü" 2žY˜Ø �˜Ø¤ V¥Y£Õ/šó 'ñ fð !ŒLØˆøð5oÜ Ð!cÐfmÕ!mÓnÐnûðhÜ Ð!]Ð`fÕ!fÓgÐgûðgÜ$Ð%RÐV\ÐbdÐUeÕ%eÓfÐfús<   ®	E ¸E ÁE Á,E ÂE Â"AE* Ã>A	FÅE'Å*E>ÆFc                ót  € V P                   '       Eg   V P                  p\        VR4      w  r#\        VR4      w  r$\        VR4      w  r%\        VR4      w  r&\        VR4      w  r'\        VR4      w  r(\        VR4      w  r)\        VR4      w  r*\        VR4      w  r+^ Tu;8:  d   R8:  g$   M Q R\        \	        V4      4      : RV: 24       h\        V4      V n        V P                  R,          '       d
   VR,          pV^,          p\        \        \        W+W©W‡WeWC3
4      4      V n         V P                   # )zžconvert binary value into codewords
>>> print(USPS_4State('01234567094987654321','01234567891').codewords)
(673, 787, 607, 1022, 861, 19, 816, 1294, 35, 602)
i|  iU  i’  zimproper value z passed to _2codewords A-->é   i“  )	r9   rq   Údivmodr   r)   Ú_crc11Ú_fcsÚtupleÚmap)r0   r1   r   ÚJÚIÚHÚGr   ÚEr   ÚCÚBs   &           r   Ú	codewordsÚUSPS_4State.codewords®   s  € ð
 ��‰Ø—K‘KˆEÜ˜% Ó$‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAÜ˜!˜D“>‰DˆAØ�a–9˜–9ÑdÔRUÔVYÐZ_ÓV`ÖRaÒbcÐdÓd�9Ü˜u›ˆDŒIØ�y‰y˜�~Œ~˜q C�x˜qØ��FˆAÜ#¤C¬¨Q°°Q¸¸QÐ,AÓ$BÓCˆDŒOØ�‰Ðr   c                ód   € \        ^R4      V P                  n        V P                  P                  # )r#   é  )Ú_initNof13TableÚ	__class__Útable1r<   s   &r   r‡   ÚUSPS_4State.table1Ç   s%   € Ü /°°$Ó 7ˆ�‰ÔØ�~‰~×$Ñ$Ð$r   c                ód   € \        ^^N4      V P                  n        V P                  P                  # )r	   )r…   r†   Útable2r<   s   &r   rŠ   ÚUSPS_4State.table2Ì   s%   € Ü /°°"Ó 5ˆ�‰ÔØ�~‰~×$Ñ$Ð$r   c                óš  € V P                   '       g¯   V P                  pV P                  p. pVP                  pV P                  pV P
                  p\        ^
4       FQ  pW,          pVR8:  d
   WX,          p	MWhR,
          ,          p	W',	          ^,          '       d   V	( R,          p	V! V	4       KS  	  \        V4      V n         V P                   # )z·convert own codewords to characters
>>> print(' '.join(hex(c)[2:] for c in USPS_4State('01234567094987654321','01234567891').characters))
dcb 85c 8e4 b06 6dd 1740 17c6 1200 123f 1b2b
i  r„   iÿ  )r:   r�   rw   Úappendr‡   rŠ   rk   rx   )
r0   r�   Úfcsr   ÚaCr‡   rŠ   r   ÚcwÚcs
   &         r   Ú
charactersÚUSPS_4State.charactersÑ   s§   € ð
 ××ÐØŸ™ˆIØ—)‘)ˆCØˆAØ—‘ˆBØ—[‘[ˆFØ—[‘[ˆFÜ˜2–Y�Ø•\�Ø�t”8Ø�
‘Aà $�w��AØ•F˜A—:”:Ø˜˜V��AÙ�1–ñ ô  % Q›xˆDÔØ×ÑÐr   c                ól  € V P                   '       g˜   V P                  p. pVP                  pV P                  pV P                   FK  w  rVrxV! WAV,          V,	          ^,          ^W,          V,	          ^,          ,          ,           ,          4       KM  	  RP                  V4      V n         V P                   # )z¿Get 4 state bar codes for current routing and tracking
>>> print(USPS_4State('01234567094987654321','01234567891').barcodes)
AADTFFDFTDADTAADAATFDTDDAAADDTDTTDAFADADDDTFFFDDTTTADFAAADFTDAADA
Ú )r;   r’   r�   Ú
_bits2barsÚtable4Újoin)	r0   r   r€   ÚaBÚ	bits2barsÚdcÚdbÚacÚabs	   &        r   ÚbarcodesÚUSPS_4State.barcodesê   sƒ   € ð
 �~�~ˆ~Ø—‘ˆAØˆAØ—‘ˆBØŸ™ˆIØ#Ÿ{œ{‘��bÙ�9 �u b�y¨!�m¨Q°µ¸µ¸AµÕ->Õ>Õ?Ö@ñ  +àŸW™W Q›ZˆDŒNØ�~‰~Ðr   c                óP   € V P                  R V P                  V P                  4      # )r   )rC   Ú
dimensionsÚ
widthScaler<   s   &r   rI   rJ     s   € °·
±
¸5ÀÇÁÐQU×Q`ÑQ`Ô0ar   c                óP   € V P                  R V P                  V P                  4      # )r   )rC   r¢   ÚheightScaler<   s   &r   rI   rJ     s   € ¨d¯j©j¸¸t¿¹Èt×O_ÑO_Ô.`r   c                ó˜   € R V P                   9   d   V P                   R ,          # V P                  RV P                  V P                  4      # )Ú	_barWidthr   ©Ú__dict__rC   r¢   r£   r<   s   &r   ÚbarWidthÚUSPS_4State.barWidth  s8   € à˜$Ÿ-™-Ô'Ø—=‘= Õ-Ð-Ø�z‰z˜' $§/¡/°$·/±/ÓBÐBr   c                ó’   € V P                   R ,          w  r#^H\        \        VR,          V4      V4      ,          V P                  R&   R# )r   ç      R@r§   N©r¢   rQ   rR   r©   ©r0   r1   rl   Úxs   &&  r   rª   r«     s7   € à�‰˜wÕ'‰ˆØ%'¬¬C°°dµ
¸1Ó,=¸aÓ(@Õ%@ˆ�‰�kÓ"r   c                ó˜   € R V P                   9   d   V P                   R ,          # V P                  RV P                  V P                  4      # )Ú_pitchr   r¨   r<   s   &r   r   ÚUSPS_4State.pitch  s8   € à�t—}‘}Ô$Ø—=‘= Õ*Ð*Ø�z‰z˜' $§/¡/°$·/±/ÓBÐBr   c                ó’   € V P                   R ,          w  r#^H\        \        VR,          V4      V4      ,          V P                  R&   R# )r   r­   r²   Nr®   r¯   s   &&  r   r   r³   !  s7   € à�‰˜wÕ'‰ˆØ"$¤S¬¨U°4­Z¸Ó):¸1Ó%=Õ"=ˆ�‰�hÓr   c                óð   € R V P                   9   d   V P                   R ,          # V P                  RV P                  V P                  4      V P                  RV P                  V P                  4      ,
          # )Ú
_barHeightr   )r©   rC   Útopsr¥   Úbottomsr<   s   &r   Ú	barHeightÚUSPS_4State.barHeight&  sW   € à˜4Ÿ=™=Ô(Ø—=‘= Õ.Ð.Ø�z‰z˜#˜dŸi™i¨×(8Ñ(8Ó9¸D¿J¹JÀsÈ4Ï<É<ÐX\×XhÑXhÓ<iÕiÐir   c                ó‚  € V P                   R ,          ^ ,          V P                  R ,          ^ ,          ,
          pV P                   R ,          ^,          V P                  R ,          ^,          ,
          p^H\        \        VR,          V4      V4      ,          ;qP                  R&   W,
          W2,
          ,          V n        R# )r   r­   r¶   N)r·   r¸   rQ   rR   r©   rZ   r¯   s   &&  r   r¹   rº   ,  s„   € à�I‰I�c�N˜1Õ §¡¨SÕ 1°!Õ 4Õ4ˆØ�I‰I�c�N˜1Õ §¡¨SÕ 1°!Õ 4Õ4ˆØ.0´´S¸¸t½ÀAÓ5FÀqÓ1IÕ.IÐIˆ—‘˜lÑ+Ø �9 q¥sÕ+ˆŽr   c                óB   € \        ^\        ^ V P                  4      4      # ©é   )rQ   rR   rU   r<   s   &r   rI   rJ   3  s   € ¤s¨1¬S°°4·>±>Ó-BÔ'Cr   c                óB   € \        ^\        ^ V P                  4      4      # r½   )rQ   rR   rZ   r<   s   &r   rI   rJ   4  s   € ¬¨A¬c°!°D·O±OÓ.DÔ(Er   c                ó:   € V P                  4        V P                  # r7   )ÚcomputeSizeÚ_widthr<   s   &r   r   ÚUSPS_4State.width6  s   € à×ÑÔØ�{‰{Ðr   c                ó:   € V P                  4        V P                  # r7   )rÁ   Ú_heightr<   s   &r   ÚheightÚUSPS_4State.height;  s   € à×ÑÔØ�|‰|Ðr   c                ó   € R # r7   r&   ©r0   Úvs   &&r   r   rÃ   A  ó   € ár   c                ó   € R # r7   r&   rÉ   s   &&r   rÆ   rÇ   D  rË   r   c                óÜ  € \        V R R4      '       gÙ   V P                  pV P                  pV P                  pV P                  pV P
                  pV P                  pV P                  p^V,          V,           ^@V,          ,           V n        ^V,          V,           V n	        V P                  '       d2   V ;P                  V P                  R,          V,           ,          un	        RV n        R# R# )rP   Ng333333ó?T)Úgetattrr£   r¥   r¹   rª   r   ÚhorizontalClearZoneÚverticalClearZonerÂ   rÅ   rd   r_   rP   )r0   ÚwsÚhsr¹   rª   r   r   r   s   &       r   rÁ   ÚUSPS_4State.computeSizeH  s²   € Ü�t˜H T×*Ò*Ø—‘ˆBØ×!Ñ!ˆBØŸ™ˆIØ—}‘}ˆHØ—J‘JˆEØ×*Ñ*ˆCØ×(Ñ(ˆCØ˜C�% (Õ*¨R°­XÕ5ˆDŒKØ˜S�5 �?ˆDŒLØ×!×!Ð!Ø—’ §¡¨cÕ 1°#Õ 5Õ5•ØˆDŽKñ +r   c                óR   € V P                  4        V P                  V P                  3# r7   )rÁ   r   rÆ   )r0   ÚaWÚaHs   &&&r   ÚwrapÚUSPS_4State.wrapW  s!   € Ø×ÑÔØ�z‰z˜4Ÿ;™;Ð&Ð&r   c                óÔ   € / pV P                   pR FS  pV P                  W@P                  V4      V,           pWPP                  W@P                  V4      V,           V,
          3W$&   KU  	  V# )r   ©r   r   r   r   )r¥   rC   r¸   r·   )r0   Úy0ÚvInforÒ   ÚbÚys   &&    r   Ú_getBarVInfoÚUSPS_4State._getBarVInfo[  s_   € ØˆØ×ÑˆÛ"ˆAØ—
‘
˜1Ÿ\™\¨"Ó-¨bÕ0ˆAØŸ™ A§i¡i°Ó3°BÕ6¸Õ:Ð:ˆE‹Hñ #ð ˆr   c                ól  € V P                  4        V P                  pV P                  pV P                  pTpW P                  R ,          ,           pV P
                  pV P                  V4      pV P                   F'  pWx,          w  ršV P                  WIW:4       WF,          pK)  	  V P                  4        R# )g      à?N)
rÁ   rÏ   rÐ   rª   r¹   r   rß   rŸ   ÚrectÚdrawHumanReadable)r0   r   r   Úbwr°   rÛ   ÚdwrÜ   rÝ   ÚybÚhbs   &          r   ÚdrawÚUSPS_4State.drawc  s–   € Ø×ÑÔØ×&Ñ&ˆØ×$Ñ$ˆØ�]‰]ˆØˆØ—‘ Õ#Õ#ˆØ�Z‰ZˆØ×!Ñ! "Ó%ˆØ—”ˆAØ•X‰FˆBØ�I‰I�a˜2Ô!Ø�GŠAñ ð 	×ÑÖ r   c                óÐ   € V P                   pV P                  pT;'       d    V3;'       g    RpR P                  VR,          VR,          VR,          VR,          3V,           4      # )Ú rh   :r	   r#   N:r#   r%   N:r%   NNr&   )rF   r2   r˜   )r0   rF   r2   s   &  r   r1   ÚUSPS_4State.valuer  sY   € Ø—=‘=ˆØ—,‘,ˆØ×(Ð(˜w˜j×.Ð.¨BˆØ�x‰x˜ #� x°¥}°X¸dµ^ÀHÈSÅMÐRÐSZÕZÓ[Ð[r   c                ó:   € V P                   P                  R V4      # )rF   )r©   Ú__setitem__rT   s   &&r   rI   rJ   w  s   € ¨d¯m©m×.GÑ.GÈ
ÐSXÔ.Yr   c                ó  € V P                   '       dx   V P                  pV P                  pV P                  pV P                  pV P
                  ^V,          ,           RV,          ,           pV P                  WV P                  W44       R# R# )r	   gš™™™™™É?N)rd   rÏ   rÐ   ÚfontNamer_   r¹   Úannotater1   )r0   r   r   rð   r_   rÞ   s   &     r   rã   ÚUSPS_4State.drawHumanReadabley  sj   € Ø××ÐØ×*Ñ*ˆCØ×(Ñ(ˆCØ—}‘}ˆHØ—}‘}ˆHØ—‘˜q �uÕ$ S¨¥\Õ1ˆAØ�M‰M˜# §
¡
¨8Ö=ñ r   c           
     ó:   € \         P                  ! WW#WER R7       R# )Ústart)ÚanchorN)r   rñ   )r0   r°   rÞ   Útextrð   r_   rõ   s   &&&&&&&r   rñ   ÚUSPS_4State.annotate‚  s   € Ü×Ò˜  xÀ×Hr   )r;   r8   r:   r9   rw   r^   rÅ   rY   rc   r.   rP   r-   rÂ   rS   rZ   N)g      °?g…ëQ¸µ?)g+‡ÙÎ÷“?gÉv¾Ÿ/�?)g      °¿g…ëQ¸µ¿)g+‡ÙÎ÷“¿gÉv¾Ÿ/�¿)g¸…ëQ¸Ž?gš™™™™™™?)g”ö_˜L¥?gš™™™™™©?)ç      À?rø   )çyé&1¬œ?rù   )Ú01234567094987654321r•   )A)é   r	   é   ri   )r¾   é
   r   r   )r$   é   r	   é   )r#   r#   rj   r%   )rÿ   r$   ri   r¾   )r   r¾   r#   rþ   )r	   r#   r¾   rÿ   )rü   rü   r$   r%   )rj   ri   rÿ   rý   )ri   r$   rû   rj   )r#   r%   r¾   rü   )rÿ   r#   r	   rþ   )r$   rý   r   r	   )rû   r¾   rj   rû   )ri   rj   rü   r$   )r   ri   rÿ   rj   )rj   rü   r	   rû   )r¾   r¾   r$   r$   )rû   rý   r#   r	   )rü   r   ri   rÿ   )rj   r	   r   rü   )rÿ   r%   r¾   r   )r$   rÿ   ri   rþ   )r	   rj   rû   rû   )r#   r¾   rü   rý   )r¾   rþ   rj   r$   )rû   ri   rÿ   r   )r#   rÿ   r$   rû   )rü   rj   r	   rý   )ri   rü   r   r#   )rÿ   rü   r#   rû   )rû   r%   r¾   r$   )rj   r   r$   rj   )r   rj   rü   rÿ   )r	   r¾   ri   r	   )r#   r$   rÿ   rþ   )rü   r%   rj   r¾   )r$   r#   rû   rü   )ri   ri   r¾   r	   )r   rû   r	   r   )r¾   ri   rü   r¾   )rj   rý   ri   r#   )rÿ   rû   r$   rü   )r	   r%   r#   rj   )r   rÿ   rû   rþ   )rü   r	   rÿ   r¾   )r#   rý   ri   r   )r$   ri   r   r$   )rj   r#   r	   rü   )rû   rÿ   r¾   rû   )r#   r   rü   r#   )r	   ri   r   rý   )rj   rþ   r$   r	   )ri   r%   r¾   rj   )rÿ   rÿ   rû   r$   )r#   rü   r   r%   )r¾   r#   r	   r	   )r$   r¾   rü   rþ   )rÿ   ri   rj   rj   )rû   r   ri   rû   )rü   rû   rû   r#   )r   rþ   r¾   r%   )r	   r$   r$   r   )rj   rÿ   r#   ri   )ri   rý   rÿ   r	   rÚ   )r   )Úmiddle)3Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rS   rY   r^   rc   Údictr·   r¸   r¢   r4   r'   rC   ÚstaticmethodrF   Úpropertyr2   rU   rZ   r_   rd   rq   r�   r‡   rŠ   r’   rŸ   r—   r–   rÏ   rÐ   rª   Úsetterr   r¹   r£   r¥   r   rÆ   rÁ   r×   rß   rè   r1   rã   rñ   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s¹  ø‡ € ñà€JØ€KØ€IØ€NØÙØØØØô	ˆñ Ø!Ø!Ø!Ø!ô	ˆñ Ø"Ø#ØØô	ˆ
ô4!òò&ñ ˜Ó€Eò"ñ Ñ3°HÓ=€Hò ñ Ñ1°'Ó:€Gò.ñ Ñ5°iÓ@€Iò!ñ Ñ7¸
ÓC€Jòñ Ñ3°HÓ=€Hò$ñ Ñ=¸mÓL€Mò4ñj �fÓ€Fòñ, ˜Ó#€Iò%ñ �fÓ€Fò%ñ �fÓ€Fò ñ. ˜*Ó%€Jòñ ˜Ó!€Hð€Fð$ !€JÙ"Ñ#aÓbÐÙ Ñ!`ÓaÐàñCó ðCð
 ‡_�_ñAó ðAð ñCó ðCð
 ‡\�\ñ>ó ð>ð ñjó ðjð
 ×Ññ,ó ð,ñ ÑCÓD€JÙÑEÓF€Kàñó ðð ñó ðð
 ‡\�\ñó ðà‡]�]ñó ðòò'ôò!ò\ñ
 �UÑYÓZ€Eò>÷Iò Ir   c                óf  € \        \        V 4      4      R,          pR^\        V4      ,
          ,          V,           pRpRp\        VR,          ^4      ^,          p\        ^^4       FD  pW4,          R,          '       d   V^,          V,          pM	V^,          pVR,          pV^,          pKF  	  \        ^^^4       Fr  p\        WV^,            ^4      ^,          p\        ^4       FD  pW4,          R,          '       d   V^,          V,          pM	V^,          pVR,          pV^,          pKF  	  Kt  	  V# )a>  
>>> usps = [USPS_4State('01234567094987654321',x).binary for x in ('','01234','012345678','01234567891')]
>>> print(' '.join(nhex(x) for x in usps))
0x1122103b5c2004b1 0xd138a87bab5cf3804b1 0x202bdc097711204d21804b1 0x16907b2a24abc16a2e5c004b1
>>> print(' '.join(nhex(_crc11(x)) for x in usps))
0x51 0x65 0x606 0x751
r
   Ú0i5  iÿ  r   rt   )r   r)   r+   rk   )r1   ÚhexbytesÚgprŽ   ÚdatarÝ   r°   s   &      r   rv   rv   …  s
  € ô ”C˜“JÓ Õ#€HØ�B”s˜8“}Õ$Õ% hÕ.€HØ	€BØ
€CÜˆx˜�|˜BÓ Õ"€DÜ�1�QŽZˆØ�J˜×ÔØ˜•6˜2•+‰Cà�q•&ˆCØˆu�ˆØ��
Šñ ô �1�T˜!Ž_ˆÜ�8˜a �c�? 2Ó&¨Õ)ˆÜ�q–ˆAØ•
˜E×!Ô!Ø˜A•v˜r•k‘à˜1•f�Ø�5�LˆCØ�Q�JŠDó ñ ð €Jr   c                óp   € ^ p\        ^4       F$  pV^,          pW^,          ,          pV ^,          p K&  	  V# )zireverse unsigned 13 bit number
>>> print(_ru13(7936), _ru13(31), _ru13(47), _ru13(7808))
31 7936 7808 47
)rk   )r   r   r°   s   &  r   Ú_ru13r  ¥  s;   € ð
 	
€AÜ�2ŽYˆØ	ˆa�ˆØ	��U�
ˆØ	ˆa�Šñ ð €Hr   c                óŠ  € VR.,          p^ pV^,
          p\        R4       Fz  p^ p\        ^4       F  pWe^V,          ,          ^ 8g  ,          pK  	  W`8w  d   K8  \        V4      pW…8  d   KK  W…8X  d   WRV&   V^,          pK`  WRV&   V^,          pW‚V&   V^,          pK|  	  W4^,           8X  g   Q RV^,           W03,          4       hV# )a  create and return table of 13 bit values with N bits on
>>> T = _initNof13Table(5,1287)
>>> print(' '.join('T[%d]=%d' % (i, T[i]) for i in (0,1,2,3,4,1271,1272,1284,1285,1286)))
T[0]=31 T[1]=7936 T[2]=47 T[3]=7808 T[4]=55 T[1271]=6275 T[1272]=6211 T[1284]=856 T[1285]=744 T[1286]=496
Ni    z!u+1(%d)!=l(%d) for %d of 13 table)rk   r  )	ÚNÚlenTr   r   Úur‘   ÚbcrÝ   r   s	   &&       r   r…   r…   ±  sÆ   € ð 	ˆdˆV�€AØ	€AØˆQ�€AÜ�4Ž[ˆØˆÜ�r–ˆAØ�a˜•d•8˜a‘-ÕŠBñ àŒ5‘(Ü�!‹HˆØŒ3‘ØŒ4Øˆa‰DØ��FŠAàˆa‰DØ��FˆAØˆa‰DØ��FŠAñ ð ��sŒ8ÐDÐ8¸A¸a½CÀ¸9ÕDÓDˆ8Ø€Hr   c                  ó*   € ^ RI p V P                  4       # )r   N)ÚdoctestÚtestmod)r  s    r   Ú_testr  Ì  s   € ÛØ�?‰?ÓÐr   Ú__main__N)r   )Ú
__future__r   Ú__version__Ú__all__Ú!reportlab.graphics.barcode.commonr   Úreportlab.lib.utilsr   r   r   rv   r  r…   r  r  r&   r   r   Ú<module>r#     sY   ðõ &Ø€Ø
€å 5Ý (òôrI�'ô rIòhò@
òò6ð ˆzÔÙ	†Gñ r   