
    es                    h   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
ddlmZmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ d
 Zd Zd Zd Zd Zi dddefdddefdddefdddefdddefddd efd!d"d#efd$d%d&efd'd(d)d*d+efd,d-d.efd/d0d1efd2d3d4efd5d6d7efd8d9d:efd;d<d=efd>d?i d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTefdUdVdWefdXdYdZefd[d\d]efd^d_d`efdadbdcefdddedfefdgdhdiefi djdkdlefdmdndoefdpdqdrefdsdtduefdvdwdxefdydzd{efd|d}d~efdddefdddefdddefdddefdddefdddefdddefdddddddddddddddddddefdZd Z G d dej                        Zd Z d Z!dddddddZ"dZ#d dddZ$d Z%d Z&d Z'ddZ( ejR                  ejT                  e(e        ejV                  ejT                  e&        ejX                  ejT                  g d        ejZ                  ejT                  d       y)    )annotationsN   )Image	ImageFile)i16be)i32be)o8)o16be)presetsc                    t        | j                  j                  d            dz
  }t        j                  | j                  |       y )N   )i16fpreadr   
_safe_read)selfmarkerns      5/usr/lib/python3/dist-packages/PIL/JpegImagePlugin.pySkipr   9   s1    DGGLLOq A!$    c                n   t        | j                  j                  d            dz
  }t        j                  | j                  |      }d|dz  z  }|| j
                  |<   | j                  j                  ||f       |dk(  r|d d dk(  rt        |d      x| j                  d<   }t        |d	      | j                  d
<   	 |d   }t        |d      t        |d      f}|dk(  r|| j                  d<   || j                  d<   || j                  d<   n|dk(  rh|d d dk(  r`d| j                  v r| j                  dxx   |dd  z  cc<   n|| j                  d<   | j                  j                         |z
  dz   | _        n|dk(  r|d d dk(  r|| j                  d<   n|dk(  r%|d d dk(  r| j                  j                  |       n]|dk(  r|d d dk(  rd}| j                  j                  di       }	|||dz    dk(  r&	 |dz  }t        ||      }
|dz  }||   }|d|z   z  }||dz  z  }t        ||      }|dz  }||||z    }|
d k(  r5t        |d!      d"z  t        |d      t        |d      d"z  t        |d      d#}||	|
<   ||z  }||dz  z  }|||dz    dk(  rn|d$k(  r7|d d d%k(  r/t        |d      | j                  d&<   	 |d'   }|| j                  d(<   nL|dk(  rG|d d d)k(  r?|dd  | j                  d*<   | j                  j                         |z
  dz   | j                  d+<   d| j                  vr}d| j                  v rn	 | j'                         }|d,   }|d-   }	 t)        |d!         |d   z  }t-        j.                  |      rd.}t1        |      |d/k(  r|d0z  }||f| j                  d<   y y y # t        $ r Y w xY w# t         j"                  $ r Y w xY w# t$        $ r Y w xY w# t*        $ r |}Y w xY w# t         j"                  t2        t4        t*        t0        t6        f$ r d1| j                  d<   Y y w xY w)2Nr   zAPP%d        s   JFIF   jfif   jfif_version      
   r   dpi	jfif_unitjfif_density     s   Exif  exif  s   FPXR flashpix      ICC_PROFILE      s   Photoshop 3.0 	photoshops   8BIMi  r   i   )XResolutionDisplayedUnitsXYResolutionDisplayedUnitsY  s   Adobeadobe   adobe_transforms   MPF mpmpoffseti(  i  zDPI is not a number   gRQ@)H   r;   )r   r   r   r   r   appapplistappendinfodivmod	Exceptiontell_exif_offseticclist
setdefaulti32structerror
IndexErrorgetexiffloat	TypeErrormathisnan
ValueErrorKeyErrorSyntaxErrorZeroDivisionError)r   r   r   sr<   versionr$   r%   offsetr/   codename_lensizedatar7   r(   resolution_unitx_resolutionr#   msgs                       r   APPr]   >   s   
 	DGGLLOq ATWWa(A
Vb[
!CDHHSMLLa!AbqEW,&)!Qi/		&G$*7C$8		.!		5!Iq!9c!Rj0L A~#/		% %.DIIk"(4DIIn%	6	ae{2TYYIIf12& !DIIf $ 2Q 6D	6	aey0 !		*	6	af(88 	A	6	af(<<II((b9	!$/!1f~!V9!h,&&1*$1f~!&4-06>'*4|e';+.tQ<'*4|e';+.tR=	D #'	$$&1*$1 !$/8 
6	aex/ AY		'	;eO ,;DII'(	6	aex/AB%		$ !% 2Q 6		* DII&DII"5	&<<>D"6lO<L#LO,|A> zz#+ o%!#t"CxDIIe #6_  		v <<   		&  #"# LL
 	&  &DIIe	&sm   >N- <BN<  O >O5 O$ -=O5 -	N98N9<OO	O! O!$O2/O5 1O22O5 5<P43P4c                   t        | j                  j                  d            dz
  }t        j                  | j                  |      }|| j
                  d<   || j                  d<   | j                  j                  d|f       y )Nr   commentCOM)	r   r   r   r   r   r?   r<   r=   r>   )r   r   r   rS   s       r   r`   r`      sf     	DGGLLOq ATWWa(ADIIiDHHUOLL
#r   c                &   t        | j                  j                  d            dz
  }t        j                  | j                  |      }t        |d      t        |d      f| _        |d   | _        | j                  dk7  rd| j                   d}t        |      |d   | _        | j                  dk(  rd	| _	        nI| j                  dk(  rd
| _	        n2| j                  dk(  rd| _	        nd| j                   d}t        |      |dv rdx| j                  d<   | j                  d<   | j                  r| j                  j                          | j                  d   d   t        | j                        k(  r.| j                  D cg c]  }|dd  	 }}dj                  |      }nd }|| j                  d<   g | _        t        dt        |      d      D ];  }|||dz    }	| j                   j#                  |	d   |	d   dz  |	d   dz  |	d   f       = y c c}w )Nr   r:   r   r   r!   zcannot handle z-bit layersr   LRGBr   CMYKz-layer images)        progressiveprogression   r.   r   icc_profiler'      r   )r   r   r   r   r   _sizebitsrQ   layers_moder?   rD   sortlenjoinrangelayerr>   )
r   r   r   rS   r\   pprofilerl   its
             r   SOFr{      s    	DGGLLOq ATWWa(AQC1I%DJ!DIyyA~tyyk5#A$DK{{a
		
		
t{{m=9#11>??		- 499]#;||<<?2#dll"33'+||4!qv4G4((7+KK#.		- 1c!fa  ?a!a%L

1Q41QqTBY!=>? 5s   Hc                   t        | j                  j                  d            dz
  }t        j                  | j                  |      }t        |      r|d   }|dz  dk(  rdnd}d|dz  z   }t        |      |k  rd}t        |      t        j                  |dk(  rdnd|d|       }t        j                  d	k(  r|dkD  r|j                          t        D 	cg c]  }	||	   	 c}	| j                  |d
z  <   ||d  }t        |      ry y c c}	w )Nr   r   rm   r   @   zbad quantization table markerBHlittler   )r   r   r   r   r   rs   rQ   arraysys	byteorderbyteswapzigzag_indexquantization)
r   r   r   rS   v	precision	qt_lengthr\   rY   ry   s
             r   DQTr      s     	DGGLLOq ATWWa(A
a&aDr'Q,AQ		B&	q6I1Cc""{{)q.3c1Qy>J==H$QMMO6B$CT!W$C!b&!ijM a& %Ds   D	i  SOF0zBaseline DCTi  SOF1zExtended Sequential DCTre   SOF2zProgressive DCTi  SOF3zSpatial losslessi  DHTzDefine Huffman tablei  SOF5zDifferential sequential DCTrf   SOF6zDifferential progressive DCTi  SOF7zDifferential spatiali  )JPG	ExtensionNi  SOF9zExtended sequential DCT (AC)rg   SOF10zProgressive DCT (AC)i  SOF11zSpatial lossless DCT (AC)i  DACz%Define arithmetic coding conditioningi  SOF13z Differential sequential DCT (AC)rh   SOF14z!Differential progressive DCT (AC)i  SOF15zDifferential spatial (AC)i  )RST0z	Restart 0Ni  )RST1z	Restart 1Ni  )RST2z	Restart 2Ni  )RST3z	Restart 3Ni  )RST4z	Restart 4Ni  )RST5z	Restart 5Ni  )RST6z	Restart 6Ni  )RST7z	Restart 7Ni  )SOIzStart of imageNi  )EOIzEnd of imageN  SOSzStart of scani  r   zDefine quantization tablei  DNLzDefine number of linesi  DRIzDefine restart intervali  DHPzDefine hierarchical progressioni  EXPzExpand reference componentr   APP0zApplication segment 0r&   APP1zApplication segment 1r)   APP2zApplication segment 2i  APP3zApplication segment 3i  APP4zApplication segment 4i  APP5zApplication segment 5i  APP6zApplication segment 6i  APP7zApplication segment 7i  APP8zApplication segment 8i  APP9zApplication segment 9i  APP10zApplication segment 10i  APP11zApplication segment 11i  APP12zApplication segment 12r-   APP13zApplication segment 13r4   APP14zApplication segment 14i  APP15zApplication segment 15i  )JPG0zExtension 0Ni  )JPG1zExtension 1Ni  )JPG2zExtension 2N)JPG3zExtension 3N)JPG4zExtension 4N)JPG5zExtension 5N)JPG6zExtension 6N)JPG7zExtension 7N)JPG8zExtension 8N)JPG9zExtension 9N)JPG10zExtension 10N)JPG11zExtension 11N)JPG12zExtension 12N)JPG13zExtension 13Nr`   Comment)i  i  i  i  i  i  i  i  i  i    i  c                    | d d dk(  S )Nr:   s    )prefixs    r   _acceptr   [  s    "1:((r   c                  >    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zy
)JpegImageFileJPEGzJPEG (ISO 10918)c                   | j                   j                  d      }t        |      sd}t        |      d}dx| _        | _        g | _        i | _        i | _        i | _	        i | _
        g | _        g | _        	 |d   }|dk(  r*|| j                   j                  d      z   }t        |      }n| j                   j                  d      }Q|t        v rrt        |   \  }}}|	 || |       |dk(  r9| j                  }| j                  dk(  rd	}d
d| j                   z   d|dffg| _        y | j                   j                  d      }n5|dv rd}n.|dk(  r| j                   j                  d      }nd}t        |      )Nr:   znot a JPEG file   r      r   r   rd   CMYK;Ijpegr   r    >     r   i   zno marker found)r   r   r   rQ   ro   rp   rv   
huffman_dc
huffman_acr   r<   r=   rD   r   MARKERmoderX   tile)r   rS   r\   ry   namedescriptionhandlerrawmodes           r   _openzJpegImageFile._openh  sq   GGLLOqz#Cc"" #$#	DK 
!ADyQ'F GGLLOF{-3AY*k7&D!$;"iiGyyF*"*"(&499*<a'2!O PDIGGLLOk!fGGLLO'!#&&; r   c                    | j                   j                  |      }|s$t        j                  rt	        | d      sd| _        y|S )z
        internal: read more image data
        For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
        so libjpeg can finish decoding
        _endedTs   )r   r   r   LOAD_TRUNCATED_IMAGEShasattrr   )r   
read_bytesrS   s      r   	load_readzJpegImageFile.load_read  s;     GGLL$Y44WT8=T DKr   c                   t        | j                        dk7  ry | j                  ry | j                  d   \  }}}}d}| j                  }|d   dk(  r|dv r|| _        |df}|rt        | j                  d   |d   z  | j                  d   |d   z        }dD ]	  }	||	k\  s	 n |d   |d   |d   |d   z
  	z   dz
  |	z  |d   z   |d   |d   z
  |	z   dz
  |	z  |d   z   f}| j                  d   |	z   dz
  |	z  | j                  d   |	z   dz
  |	z  f| _        |	}||||fg| _        |df| _        dd|d   |z  |d   |z  f}
| j                  |
fS )	Nr   r   rc   )rb   YCbCrr   )r!   r   r   r   r   r:   )rs   r   decoderconfigrX   rq   minrn   r   )r   r   rX   deoascaleoriginal_sizerS   boxs              r   draftzJpegImageFile.draft  s   tyy>Q YYq\
1a		Q45=T^3DJbA		!Q/1a1HIE! A: !!1!q1$*QqT11!q1$*QqT1	A  99Q<!+a/A5		!q8H18LQR7RSDJEAq\N	#QZ!]1%-}Q/?%/GHyy#~r   c                
   t        j                         \  }}t        j                  |       t        j                  j                  | j                        r$t        j                  dd|| j                  g       n#	 t        j                  |       d}t        |      	 t        j                  |      5 }|j                          |j                  | _        d d d        	 t        j                  |       | j                  j                   | _        | j                  j$                  | _        g | _        y # t        $ r Y w xY w# 1 sw Y   lxY w# t        $ r Y dw xY w# 	 t        j                  |       w # t        $ r Y w w xY wxY w)Ndjpeg-outfilezInvalid Filename)tempfilemkstemposclosepathexistsfilename
subprocess
check_callunlinkOSErrorrO   r   openloadimr   rq   rX   rn   r   )r   fr   r\   _ims        r   
load_djpegzJpegImageFile.load_djpeg  s-    ""$4
77>>$--(!!7Jdmm"LM		$ %CS/!	D! !S
&&!		$ WW\\
WW\\
	'  ! !  		$ sl   ;D1 E 3"E E E 1	D=<D= E	E 	EEFE32F3	E?<F>E??Fc                    t        |       S N)_getexifr   s    r   r  zJpegImageFile._getexif  s    ~r   c                    t        |       S r  )_getmpr  s    r   r  zJpegImageFile._getmp  s    d|r   c                    | j                   D ]:  \  }}|dk(  s|j                  d      dd \  }}|dk(  s)| j                  |      c S  i S )z
        Returns a dictionary containing the XMP tags.
        Requires defusedxml to be installed.

        :returns: XMP tags in a dictionary.
        r       Nr   s   http://ns.adobe.com/xap/1.0/)r=   split_getxmp)r   segmentcontentr   xmp_tagss        r   getxmpzJpegImageFile.getxmp  s]     !% 	2GW& #*==#9"1#= <<<<11		2
 	r   N)__name__
__module____qualname__formatformat_descriptionr   r   r   r
  r  r  r  r   r   r   r   r   d  s2    F+1'f "H>r   r   c                \    d| j                   vry | j                         j                         S )Nr(   )r?   rJ   _get_merged_dictr  s    r   r  r    s&    TYY<<>**,,r   c           	        	 | j                   d   }t        j                  |      }|j	                  d      }|d d dk(  rdnd}ddlm} 	 |j                  |      }|j                  |j                         |j                  |       t        |      }	 |d
   }
g }	 |d   }t        d|
      D ]  }t        j                   | d||dz        }d}t        t#        ||            }t%        |d   dz        t%        |d   dz        t%        |d   dz        |d   dz  dz	  |d   dz  dz	  |d   dz  d}|d   dk(  rd|d<   nd}	t        |	      ddd d!d"d#d$d%}|j'                  |d&   d'      |d&<   ||d<   |j)                  |        ||d<   |S # t        $ r Y y w xY w# t        $ r}d	}	t        |	      |d }~ww xY w# t        $ r}d}	t        |	      |d }~ww xY w# t        $ r}d(}	t        |	      |d }~ww xY w))Nr8   r!   r   s   MM *><r   )TiffImagePluginz)malformed MP Index (unreadable directory)  z(malformed MP Index (no number of images)i  r   LLLHHrm   )	AttributeSize
DataOffsetEntryNo1EntryNo2r&  l        i   @i    i      i      i )DependentParentImageFlagDependentChildImageFlagRepresentativeImageFlagReservedImageDataFormatMPTyper1  r   z!unsupported picture format in MPO	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)r   i  i  i  i  i  i   r2  Unknownz!malformed MP Index (bad MP Entry))r?   rP   ioBytesIOr   r   r#  ImageFileDirectory_v2seeknextr  dictrA   rQ   ru   rG   unpack_fromzipboolgetr>   )r   rY   file_contentshead
endiannessr#  r?   r8   r   r\   quant	mpentriesrawmpentriesentrynumunpackedentrylabelsmpentrympentryattr	mptypemaps                      r   r  r  
  su   yy JJt$Ma DRa$77SJ!&44T:499%		- $Z
&6

 I$&&za 	&H"..,e$lHrMM QF3v}56G,01E1Q,R+/0D0P+Q+/0D0P+Q$[1W="D$+K$8G$D#K!+.;K ,-217-.9!#&&%<@8:<5I %.MM+h2G$SK!#.GK W%=	&> 6
 IA    &9#A%&  &8#A%&N  &1#A%&s[   F 
AF F; C0G 	FF	F8%F33F8;	GGG	G6#G11G6rb   rc   r   r   )1rb   rc   RGBXrd   r   )@r   r   r   r'   r.   r   r+     r   r   r    rk   rm         *   r:   r!   r+            )   +   	   r6      r,     (   ,   5   r"             '   -   4   6         !   &   .   3   7   <      "   %   /   2   8   ;   =   #   $   0   1   9   :   >   ?   r   ))r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   c                    t        | d      r| j                  dv ry| j                  d   dd | j                  d   dd z   | j                  d   dd z   }t        j	                  |d      S )Nrp   )r   r   r   r   r:   r   )r   rp   rv   	samplingsr>  )r  samplings     r   get_samplingr  v  si     2x BII$7xx{1Q"((1+a"22RXXa[15EEH==2&&r   c                	   | j                   dk(  s| j                  dk(  rd}t        |      	 t        | j                     }| j                  }|j                  dd      D cg c]  }t        |       }}|j                  dd      }	|j                  d	d      }
|j                  d
      }|	dk(  rd}	d}
d}n|	t        v r/t        |	   }d}	|j                  d	d      }
|j                  d      }nnt        |	t              sd}t        |      |
t        v rt        |
   j                  d	d      }
t        |t              r |t        v rt        |   j                  d      }|
dk(  rd}
nD|
dk(  rd}
n<|
dk(  rd}
n4|
dk(  rd}
n,|
dk(  r'| j                  dk7  rd}t        |      t        |       }
d }|dk(  r)| j                  dk7  rd}t        |      t!        | dd       } ||      }|j                  dd      }d}|j                  d      }|r~d}||z
  }g }|r|j#                  |d |        ||d  }|rd}|D ]P  }t%        d|z   t'        |      z         }|d|z   dz   t)        |      z   t)        t'        |            z   |z   z  }|dz  }R |j                  d| j*                  j                  d            }|j                  dd       xs |j                  d!d       }|j                  d"d       }|j                  d#d      }t        |t,        j.                        r|j1                         }t'        |      |kD  rd$}t        |      |	||j                  d%d      ||j                  d&d       |j                  d'd      |d   |d   |
|j                  d(d      |j                  d)d      ||||f| _        d}|s|r| j                  d*k(  r#d+| j4                  d   z  | j4                  d   z  }nL|	d,k\  s|	dk(  r#d| j4                  d   z  | j4                  d   z  }n| j4                  d   | j4                  d   z  }|r|t'        |      d-z   z  }|r7|t'        |      dz   z  }n%t7        |t'        |      d-z   t'        |      dz         }t9        j:                  | |d.d| j4                  z   d|fg|       y # t
        $ r!}d| j                   d}t        |      |d }~ww xY wc c}w )/Nr   z cannot write empty image as JPEGzcannot write mode z as JPEGr#   r   qualityr|  subsamplingqtableskeepr   zInvalid quality settingz4:4:4z4:2:2r   z4:2:0r   z4:1:1r   z3Cannot use 'keep' when original image is not a JPEGc                   | | S t        | t              rz	 | j                         D cg c]5  }|j                  dd      d   j                         D ]  }t	        |       7 }}}t        dt        |      d      D cg c]
  }|||dz     } }t        | t        t        t        f      rt        | t              r*t        t        |             D cg c]  }|| v s| |    } }nt        | t              rt        |       } dt        |       cxk  rdk  sn d}t        |      t        |       D ]E  \  }}		 t        |	      dk7  rd}t        |      t        j                  d|	      }	t        |	      | |<   G | S y c c}}w c c}w # t        $ r}d}t        |      |d }~ww xY wc c}w # t        $ r}d}t        |      |d }~ww xY w)	N#r   r   r}   zInvalid quantization tabler   z$None or too many quantization tablesr   )
isinstancestr
splitlinesr  intru   rs   rO   tuplelistr:  	enumeraterL   r   )
r  linenumlinesrS   r   r\   keyidxtables
             r   validate_qtablesz_save.<locals>.validate_qtables  s   ?Ngs#
P !( 2 2 4#zz#q1!4::<  H  7<As5z26NO5QV,OOgtT23'4(,1#g,,?%(3'>GCL  GU+w-G(q(< o%'0 
/
U	/5zR':'n,!KKU3E
 $(;GCL
/ N+ 4 P	  -2 o1,- ! 16C$S/q01sR   F :E8#F >E>	F"F"41F'8F 	FFF'	G0F>>Gextrar   r   rl   r.   s   r,   r_   ri   Frj   optimizer(   zEXIF data is too longsmoothkeep_rgb
streamtyperestart_marker_blocksrestart_marker_rowsrd   r   _   r   r   )widthheightrO   RAWMODEr   rP   r  encoderinfor>  roundr   r  r  r  r  r  getattrr>   o16rs   r	   r?   r   ExiftobytesencoderconfigrX   maxr   _save)r  r   r   r\   r   r   r?   xr#   r  r  r  presetr  r  MAX_BYTES_IN_MARKERrl   ICC_OVERHEAD_LENMAX_DATA_BYTES_IN_MARKERmarkersry   r   rX   r_   ri   r  r(   bufsizes                               r   r  r    s    	xx1}		Q0o""''"
 >>D!XXeV4
558
5C
5hhy"%G((="-Khhy!G&	G	!jj3**^,%'o'!!+.22="EKgs#7(:g&**>:Gg						 		99GCS/!"2&$L &99GCS/!"nd3w'GHHWc"E((=)K#69I#I NN;'@(@AB%&>&?@K   
	Fq++c&k9:D"# Q% S\"	#
 E FA
	 hhy"''++i"89G
 ((=%0RDHH]E4RKxx
E*H88FC D$

#||~
4y&&%o 	1U#q!AA(!,&*B, G;77f"''!*nrwwqz1G]gm"''!*nrwwqz1Gggaj2771:-Gs4y1}$Gs5zA~%G gs4y1}c%j1n=OOBffrww&67CDgN[  ""277)84cl!" 6s   R%  S%	S.S

Sc                    | j                         }t        j                  dd||g       	 t        j                  |       y # t
        $ r Y y w xY w)Ncjpegr   )_dumpr  r  r   r  r  )r  r   r   r   s       r   _save_cjpegr  ;  sG    xxzH7J(CD
		( s   A 	AAc                    t        | |      }	 |j                         }|d   dkD  rddlm} |j	                  ||      }|S # t
        t        f$ r Y |S t        $ r t        j                  d       Y |S w xY w)Nr$  r   )MpoImageFilezTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)
r   r  MpoImagePluginr  adoptrL   rI   rQ   warningswarn)r   r   r  mpheaderr  s        r   jpeg_factoryr  G  s    	r8	$B
99;E?Q4 ##B1B I z"  I  
.	
 I
s   0A   A3A32A3)z.jfifz.jpez.jpgz.jpegz
image/jpeg)NN).
__future__r   r   r5  rM   r   rG   r  r   r   r  r   r   r   _binaryr   r   r   rF   r	   r
   r  JpegPresetsr   r   r]   r`   r{   r   r   r   r   r  r  r  r   r}  r  r  r  r  register_openr  register_saveregister_extensionsregister_mimer   r   r   <module>r     sW  D #  	  	   
    ! !  !  %
A&H$-?`6@

V^S)@

V.4@
 V&,@
 V'-	@

 U*D1@
 V2C8@
 V3S9@
 V+S1@
 &@
 V3S9@
 W,c2@
 W137@
 U;TB@
 W8#>@
 W93?@
  W137!@
" '#@
$ '%@
& ''@
( ')@
* '+@
, '-@
. '/@
0 '1@
2 +3@
4 )5@
6 UOT*7@
8 U/59@
: U,d3;@
< U-t4=@
> U5s;?@
@ U0$7A@
B V,c2C@
D V,c2E@
F V,c2G@
H V,c2I@
J V,c2K@
L V,c2M@
N V,c2O@
P V,c2Q@
R V,c2S@
T V,c2U@
V W.4W@
X W.4Y@
Z W.4[@
\ W.4]@
^ W.4_@
` W.4a@
b )c@
d )e@
f )g@
h *))))))++++Is#@
F)]I'' ]@-I` 
		 	'tOn0   M((, @   M((% 0   -..0R S   M((, 7r   