
    &gdt                        d dl Z d dl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 dlmZ d dlmZ d d	lmZ d d
lmZ ddgZ ej        eej                  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!e          Z G d" d#e          Z  G d$ d%e          Z! G d& d'e          Z" G d( d)e          Z#i ej$        j%         e            ej&        j%         e            ej'        j%         e            ej(        j%         e            ej)        j%         e            ej*        j%         e            ej+        j%         e            ej,        j%         e            ej-        j%         e            ej.        j%         e            ej/        j%         e!            ej0        j%         e!            ej1        j%         e"            ej2        j%         e            ej3        j%         e            ej4        j%         e            ej5        j%         e            ej6        j%         e            ej7        j%         e            ej8        j%         e            ej9        j%         e            ej:        j%         e            ej;        j%         e            ej<        j%         e            ej=        j%         e            ej>        j%         e            ej?        j%         e            i
Z@i ej&        jA         e            ej'        jA         e            ej(        jA         e            ej)        jA         e            ej*        jA         e            ej+        jA         e            ej,        jA         e            ej-        jA         e            ej.        jA         e            ejB        jA         e             ej0        jA         e!            ejC        jA         e             ej/        jA         e!            ej1        jA         e"            ejD        jA         e#            ej2        jA         e            ej3        jA         e            ej4        jA         e            ej5        jA         e            ej6        jA         e            ej7        jA         e            ej8        jA         e            ej9        jA         e            ej:        jA         e            ej;        jA         e            ej<        jA         e            ej=        jA         e            ej>        jA         e            ej?        jA         e            iZE G d* d+e          ZF G d, de          ZG eG            ZHd-eIfd.ZJdS )/    N)debug)error)eoo)_MISSING)to_bytes)char)tag)univ)usefulEncoderencode)flagsc                   F    e Zd ZdZdZ ee          Zd Zd Zd Z	ddZ
dS )	AbstractItemEncoderT)r   r   c                     |\  }}}||z  }|r|t           j        z  }|dk     r||z  fS |dz  f}|dz  }|rd|dz  z  f|z   }|dz  }||dz  f|z   S )N            )r	   tagFormatConstructed)self	singleTagisConstructedtagClass	tagFormattagId
encodedTag	substrates           J/var/www/api/venv/lib/python3.11/site-packages/pyasn1/codec/ber/encoder.py	encodeTagzAbstractItemEncoder.encodeTag!   s    %.")U	)
 	3#22J2::%&& IaKE !UT\24y@	!   %')33    c                     |s	| j         rdS |dk     r|fS d}|r|dz  f|z   }|dz  }|t          |          }|dk    rt          j        d|z            d|z  f|z   S )N)r   r          ~   zLength octets overflow (%d))supportIndefLenModelenr   PyAsn1Error)r   lengthdefModer   substrateLens        r   encodeLengthz AbstractItemEncoder.encodeLength5   s     	43 	7D==7N I #d],y8	1   y>>Lc!!'(E(TUUU<')I55r!   c                 *    t          j        d          )NzNot implemented)r   r)   r   valueasn1Spec	encodeFunoptionss        r   encodeValuezAbstractItemEncoder.encodeValueI   s     1222r!   Nc                     ||j         }n|j         }|s | j        |||fi |\  }}}|S |                    dd          }	d}t          |j                  D ]\  }
}|	}|
s	  | j        |||fi |\  }}}n1# t
          j        $ r}t          j        d|d|          d }~ww xY wt          rt          d|rdpdd	|d
|           |s|r|                    dd          r|c S |sd}t          rt          d           |                     ||          }t          r;t          d|rdpdd|d
t          j
        t          |                               ||                     t          |          |          z  }t          rAt          dt          |          dt          j
        t          |                               |r t          |          |z   }|s
|| j        z  }||z   }|s
|| j        z  }|st          |          }|S )Nr+   Tr!   zError encoding z: zencoded zconstructed  zvalue z into 
ifNotEmptyFz;overridden encoding mode into definitive for primitive typeztag z octets (tag + payload) into )tagSetr4   get	enumerate	superTagsr   r)   LOGr    r   hexdumpbytesr-   r(   eooOctetsSubstrateeooIntegerSubstrate)r   r0   r1   r2   r3   r8   r   r   isOctetsr+   idxr   defModeOverrideexcheaders                  r   r   zAbstractItemEncoder.encodeL   s   \FF_F  	1A1Ax2 2.52 2.I}h ++i..	'(899 4	: 4	:NC%O  [@9I9Ix: :6=: :6I}hh ( @ @ @++3855##>@ @ @@  C%8.>B>>yy    ! %] %w{{<QV7W7W %$$$$$ [&*O [YZZZ^^I}==F >!4n:::IIu}U6]];;;= > > > d''IHHHF C	NNNNEM%--$@$@$@B C C C  
:!&MMI5	& 9!88I #Y.	& :!99I 	)i((Is   !A66B$BB$)NN)__name__
__module____qualname__r'   r@   r>   r?   r    r-   r4   r   r#   r!   r   r   r      sz         !2334 4 4(6 6 6(3 3 3K K K K K Kr!   r   c                       e Zd Zd ZdS )EndOfOctetsEncoderc                     dS Nr!   FTr#   r/   s        r   r4   zEndOfOctetsEncoder.encodeValue       r!   NrF   rG   rH   r4   r#   r!   r   rJ   rJ      s#                 r!   rJ   c                       e Zd ZdZd ZdS )BooleanEncoderFc                     |rdpdddfS )N)   r   Fr#   r/   s        r   r4   zBooleanEncoder.encodeValue   s    ~%ue33r!   NrF   rG   rH   r'   r4   r#   r!   r   rQ   rQ      s)        4 4 4 4 4r!   rQ   c                       e Zd ZdZdZd ZdS )IntegerEncoderFc                     |dk    r-t           rt          d| j        rdpdz             | j        rdS dS t          t          |          d          d	dfS )
Nr   z#encoding %spayload for zero INTEGERzno r6   )r#   FF)rT   FFT)signedF)r<   supportCompactZeror   intr/   s        r   r4   zIntegerEncoder.encodeValue   sv    A:: 9+5;   
 & *''))E

4000%==r!   N)rF   rG   rH   r'   rZ   r4   r#   r!   r   rW   rW      s/        > > > > >r!   rW   c                       e Zd Zd ZdS )BitStringEncoderc                    ||                     |          }t          |          }|dz  r|d|dz  z
  z  }n|}|                    dd          }|rt          |          |dz  k    r=|                                }t	          t          |          dz  |z
  f          |z   ddfS t
          rt          d|z             |j        j        }	|	rt          j	        |	|	          }
nt          j	                    }
|                     |
          }d}d}||k     r3|}t          ||dz  z   |          }| ||||         |fi |z  }||k     3|ddfS )	Nr%   maxChunkSizer   FT#encoding into up to %s-octet chunksr8   r!   )cloner(   r9   asOctetsr>   r<   r8   baseTagr	   TagSetmin)r   r0   r1   r2   r3   valueLengthalignedValuer_   r   rd   r8   stopstarts                r   r4   zBitStringEncoder.encodeValue   s   NN5))E%jj? 	! Qq%89LL L{{>155 	Ws<00L14DDD$--//I#i..1,{:<==	I5RVVV 	F5DEEE,&  	"Z11FF Z\\F#)))88	[  Eu|a//==D<d
#;XQQQQQI [  
 $$$r!   NrO   r#   r!   r   r]   r]      s#        %% %% %% %% %%r!   r]   c                       e Zd Zd ZdS )OctetStringEncoderc                    ||                                 }n?t          |t                    s(|                    |                                           }n|}|                    dd          }|rt          |          |k    r|ddfS t          rt          d|z             |N|j        j        }|rt          j
        ||          }nt          j
                    }|                    |          }nbt          |t                    sM|j        j        }|rt          j
        ||          }nt          j
                    }|                    |          }d}	d}	 ||	|	|z            }
|
sn| ||
|fi |z  }|	|z  }	#|ddfS )Nr_   r   FTr`   ra   r!   )rc   
isinstancer>   rb   r9   r(   r<   r8   rd   r	   re   )r   r0   r1   r2   r3   r   r_   rd   r8   poschunks              r   r4   zOctetStringEncoder.encodeValue   s   ((IIE5)) 	 u--6688II I{{>155 	*s9~~==eT)) 	F5DEEE l*G  &GW55 {{&{11HHE5)) 
	5o-G  &GW55 ~~V~44H		 #cL001E 5(>>g>>>I<C	  $$$r!   NrO   r#   r!   r   rl   rl      s#        8% 8% 8% 8% 8%r!   rl   c                       e Zd ZdZd ZdS )NullEncoderFc                     dS rL   r#   r/   s        r   r4   zNullEncoder.encodeValue#  rN   r!   NrU   r#   r!   r   rr   rr      s)                 r!   rr   c                       e Zd ZdZd ZdS )ObjectIdentifierEncoderFc                    ||                     |          }|                                }	 |d         }|d         }n%# t          $ r t          j        d|          w xY wd|cxk    rdk    r_n n\|dk    r|dz   f|dd          z   }ns|dk    r|f|dd          z   }n^|dk    r|dz   f|dd          z   }nFt          j        d|          |dk    r|dz   f|dd          z   }nt          j        d|          d	}|D ]^}	d|	cxk    rd
k    r
n n||	fz  }|	d
k    r&|	d
z  f}
|	dz  }	|	rd|	d
z  z  f|
z   }
|	dz  }	|	||
z  }Et          j        d|	d|          |ddfS )Nr   rS   z
Short OID '   (      P   z Impossible first/second arcs at r#   r   r   r   zNegative OID arc  at F)rb   asTuple
IndexErrorr   r)   )r   r0   r1   r2   r3   oidfirstsecondoctetssubOidress              r   r4   z#ObjectIdentifierEncoder.encodeValue*  s'   NN5))Emmoo	?FEVFF 	? 	? 	?##ee$=>>>	? "zz{ns122w.!i#abb')!{ns122w.''PUPU(WXXXaZZB;.3qrr7*CC ##EE$STTT  	W 	WFF!!!!c!!!!!6)##}&1 !6D=13c9CqLF  !
 # ''vvvuu(UVVVue##s	   > "A NrU   r#   r!   r   ru   ru   '  s)        5$ 5$ 5$ 5$ 5$r!   ru   c                       e Zd ZdZd ZdS )RelativeOIDEncoderFc                 $   ||                     |          }d}|                                D ]^}d|cxk    rdk    r
n n||fz  }|dk    r&|dz  f}|dz  }|rd|dz  z  f|z   }|dz  }|||z  }Et          j        d|d|          |ddfS )	Nr#   r   r   r   r   zNegative RELATIVE-OID arc r{   F)rb   r|   r   r)   )r   r0   r1   r2   r3   r   r   r   s           r   r4   zRelativeOIDEncoder.encodeValuee  s    NN5))E mmoo 	` 	`FF!!!!c!!!!!6)##}&1 !6D=13c9CqLF  !
 # ''PVPVPVX]X](^___ue##r!   NrU   r#   r!   r   r   r   b  s)        $ $ $ $ $r!   r   c                   8    e Zd ZdZdZed             Zd Zd ZdS )RealEncoderFry   c                 v   d\  }}| dk     rd}|dk     rd}| |z  } |dk    r1| dt          |          dz  |z  z  z  } t          |          dz  |z  }n6|dk    r0| dt          |          dz  |z  z  z  } t          |          dz  |z  }	 t          |           | k    r| |z  } |d
z  }	 |t          |           ||fS )N)rS   rS   r   r%   ry            TrS   )absr[   )mencbaseemsess        r   _dropFloatingPointzRealEncoder._dropFloatingPoint  s    Bq55Bq55B	Ra<<s1vvzB''AA!b AA]]s1vvzB''AA!b A	1vv{{WQ3q667A%%r!   c           
         |\  }}}g d}|j         |v r|                     ||j         |          S | j         |v r|                     || j         |          S |||g}|||g}d}d}	t          d          }t          d          D ]}
|                     ||
         ||
         ||
                   \  }||
<   ||
<   ||
<   t	          ||
                   t	          |          k     s2t	          ||
                   t	          |          k    r1||
         |k     r%||
         }t          ||
                   }||
         }	t          rt          d|	d|d|d	|           |||	|fS )
N)ry   r%   r   rS   ry   infr   z(automatically chosen REAL encoding base z, sign z, mantissa z, exponent )
binEncBaser   floatranger   r[   r<   )r   r0   r   br   encBasemantissaexponentsignr   is              r   _chooseEncBasezRealEncoder._chooseEncBase  s   1a**w&&**1e.>BBB_''**1doqAAA q!9q!9%LLq 		% 		%A !33HQKXVW[YYTa[QZa[8A;#a&&((S!-=-=Q-G-GHUVKZ[OOQK$$!!* 	7C!($$$116 7 7 7 Q""r!   c                    ||                     |          }|j        rdS |j        rdS |\  }}}|sdS |dk    r)t          rt          d           d||dk    rdpd	|fz  d
dfS |dk    rd}|                     |          \  }	}}
}|	dk     r|dz  }|
dk    r|dz  dk    r|dz  }|dz  }|dz  dk    nI|
dk    r"|dz  dk    r|dz  }|dz  }|dz  dk    |dz  }n!|dz  dk    r|dz  }|dz  }|dz  dk    |dz  }d}|dz  dk    r|dz  }|dz  }|dz  dk    |dk    rt          j        d          ||dz  z  }d	}|dk    s|dk    rt          |dz  f          }nm|dvrt          |dz  f          |z   }|dz  }|dv|dk    r|r|d         dz  rt          d          |z   }|dk    r|r|d         dz  st          d          |z   }t          |          }|dk    rt          j        d          |dk    rn3|dk    r|dz  }n'|dk    r|dz  }n|dz  }t          |dz  f          |z   }d	}|rt          |dz  f          |z   }|dz  }|t          |f          |z   |z   }|d
dfS t          j        d|z            )N))@   FF))A   FFrM   
   z!encoding REAL into character forms   %dE%s%dr      +r!   FTry   r   r   rS   r%   r   r   r      r       zScale factor overflowr   r$   )r   r   rT   )r$   zReal exponent overflowzProhibited Real base %s)	rb   	isPlusInf
isMinusInfr<   r   r   r)   r>   r(   )r   r0   r1   r2   r3   r   r   r   for   r   sfeonpor   s                   r   r4   zRealEncoder.encodeValue  s   NN5))E? 	)(( 	)((1a 	$##77 97888!QQ4(>3$BBE4OO!VVB $ 3 3E : :B7AAvvd
 !||#gll!GAFA #gll A#gll!GAFA #gll d
 #gll!GAFA #gll d
Bc'Q,,aa c'Q,, Avv'(?@@@"'MBBAvvbAH;'' w&&D{++b0B!GA w&& 66b6RUT\6tr)B77r72a54<7w",BBA4xx'(@AAAAvvaaaa aAH;''",B AH;''",a   rer)B.IeT)) #$=$ABBBr!   N)	rF   rG   rH   r'   r   staticmethodr   r   r4   r#   r!   r   r   r     sa        J& & \&6# # #BcC cC cC cC cCr!   r   c                       e Zd ZdZd ZdS )SequenceEncoderFc           
         d}|                     d| j                  }t          rt          d|rdpdz             ||j        }|r"t	          j        d|j        j         d          |j        }t          |
                                          D ]7\  }	}
|ry||	         }|j        r!|
j        st          rt          d|           8|j        r%|
|j        k    rt          rt          d	|           d|r|                    |j        
           |r|j        r|j        }|j        t$          j        j        t$          j        j        fv r"| ||
|fi t+          ||j                  z  } ||
|fi |}|                    |
          r||z  }| |||fi |z  }t          rt          d|           *| ||
|fi |z  }9nt          |j        j                  D ]j\  }	}	 ||j                 }
n-# t2          $ r  t	          j        d|j        d|          w xY w|j        r#|j        |vrt          rt          d|           l|j        r%|
|j        k    rt          rt          d	|           |r|                    |j        
           |j        }|j        r|j        t$          j        j        t$          j        j        fv r#| ||
|fi t+          ||j                  z  } ||
|fi |}|                    |
          r||z  }5| |||fi |z  }t          rt          d|           ]| ||
|fi |z  }l|ddfS )Nr!   omitEmptyOptionalsz$%sencoding empty OPTIONAL componentsznot r6   ASN.1 object  is inconsistentz not encoding OPTIONAL component znot encoding DEFAULT component )r7   )wrapTypewrapped with wrap type zComponent name "z" not found in T)r9   r   r<   isInconsistentr   r)   	__class__rF   componentTyper:   values
isOptionalisValueisDefaulted
asn1ObjectupdateopenTypetypeIdr
   SetOf
SequenceOfdictisSameTypeWith
namedTypesnameKeyError)r   r0   r1   r2   r3   r   r   inconsistencyr   rB   	component	namedTyper   rp   componentSpecs                  r   r4   zSequenceEncoder.encodeValue/  s   	$[[ $"9; ;  	:6&167R9 : : : !0M P'NEO$<NNNP P P ,J"+ELLNN";"; *K *KY H *3I + !I4E ! UC		 STTT  , !i>R1R1R TCyy RSSS ) H)2FGGG  K)"4 K(3H J-t/E+G G G "YY )8&R &R"&w9O"P"P"P&R &R R		
 !*	)X I I I I#229== O%.II &5()N)Ng)N)NNI" O #88$M N N N 9h!J!J'!J!JJIIU*K\ #,H,B,M"N"N /P /PY0 %in 5II 0 0 0++!-/ 0 0 00 ' IN%,G,G QIIOPPP( Y):N-N-N P99NOOO% DNNi.BNCCC ) 4 % P$+ J-t/E0G G G "YY )=&W &W"&w9T"U"U"U&W &W W		
 !*	)] N Ng N N(77	BB T%.II &5-)S)S7)S)SSI" T #==$R S S S 9m!O!Ow!O!OOII$$$s   ,G::*H$N)rF   rG   rH   r   r4   r#   r!   r   r   r   *  s.        s% s% s% s% s%r!   r   c                       e Zd Zd Zd ZdS )SequenceOfEncoderc                 |   |,|j         }|r"t          j        d|j        j         d          n|j        }g }|                    dd           }t          |          D ]^\  }}	 ||	|fi |}
|8|                    |	          s# ||
|fi |}
t          rt          d|           |
                    |
           _|S )Nr   r   r   r   )r   r   r)   r   rF   r   popr:   r   r<   append)r   r0   r1   r2   r3   r   chunksr   rB   r   rp   s              r   _encodeComponentsz#SequenceOfEncoder._encodeComponents  s   !0M P'NEO$<NNNP P PP
  -H;;z400'.. 	! 	!NCIi==W==E$ //	:: % "	%==W== CCxxABBBMM%    r!   c                 R     | j         |||fi |}d                    |          ddfS )Nr!   T)r   join)r   r0   r1   r2   r3   r   s         r   r4   zSequenceOfEncoder.encodeValue  sE    ''8Y3 3*13 3 xxt++r!   N)rF   rG   rH   r   r4   r#   r!   r   r   r     s2          <, , , , ,r!   r   c                       e Zd Zd ZdS )ChoiceEncoderc                 &   |                                 }nmfd|j        j        D             }t          |          dk    r*t	          j        t          |          rdpdd          |d         }|         }||         } |||fi |ddfS )Nc                 0    g | ]}|j         v |j         S r#   )r   ).0r   r0   s     r   
<listcomp>z-ChoiceEncoder.encodeValue.<locals>.<listcomp>  s1     1 1 1	!%// ^///r!   rS   z	Multiple zNone z components for Choice at r   T)getComponentr   r   r(   r   r)   )r   r0   r1   r2   r3   r   namesr   s    `      r   r4   zChoiceEncoder.encodeValue  s    **,,II1 1 1 1X5K5V 1 1 1E5zzQ'CPUJJLf[fLqjqLqLqsxsx(yzzz8DdI~HyH8888$DDr!   NrO   r#   r!   r   r   r     s(        E E E E Er!   r   c                       e Zd Zd ZdS )
AnyEncoderc                     ||                                 }n<t          |t                    s'|                    |                                           }||                    dd           dfS )Nr+   T)rc   rn   r>   rb   r9   r/   s        r   r4   zAnyEncoder.encodeValue  sf    NN$$EEE5)) 	5NN5))2244E'++i666<<r!   NrO   r#   r!   r   r   r     s#        = = = = =r!   r   c                   2    e Zd ZdZdZeZeZeefdZddZ	dS )SingleItemEncoderNc                 b    |t           ur|n| j        | _        |t           ur|n| j        | _        d S N)r   TAG_MAP_tagMapTYPE_MAP_typeMap)r   tagMaptypeMapignoreds       r   __init__zSingleItemEncoder.__init__4  s4    !'x!7!7vvT\#*(#:#:r!   c           
      6   	 ||j         }n|j         }n&# t          $ r t          j        d|d          w xY wt          rrt	          d|                    dd           rdpdd|                    d	d
          d|d u r|                                p|                                d|           | j        |                    | j                   | j	        |                    | j	                   	 | j
        |         }t          rt	          d|j        j        d|           n# t          $ r ||j        }n|j        }t          j        |j        |j                  }	 | j        |         }n)# t          $ r t          j        d|d|d          w xY wt          rt	          d|j        j        d|           Y nw xY w |j        ||| fi |}t          r8t	          d|dt)          |          dt+          j        |          d           |S )NzValue z4 is not ASN.1 type instance and "asn1Spec" not givenzencoder called in r+   Tinr6   zdef mode, chunk size r_   r   z
 for type z	, value:
)r+   )r_   zusing value codec z chosen by type ID zNo encoder for z ()z chosen by tagSet zcodec z built z octets of substrate: z
encoder completed)r   AttributeErrorr   r)   r<   r9   prettyPrintTypefixedDefLengthModer   fixedChunkSizer   r   rF   r   r8   r	   re   rd   r   r   r(   r   r=   )	r   r0   r1   r3   r   concreteEncoderr8   
baseTagSetr   s	            r   __call__zSingleItemEncoder.__call__8  s   	K! 	K 	K 	K##BG%%%J K K K	K  	DC$+KK	4$@$@ @ IT OR O O 'NA > > > > (D 0 LU5J5J5L5L !; ( 8 8 : :!; !;<AE	C D D D ".NN4#:N;;;*NN(;N<<<	I"mF3O I+5>>>H I I I  	I 	I 	I! FNFNCCJT"&,z": T T T''EEE666(RSSST  I+5>>>H I I I!	I& +O*5(DLLGLL	 	:C.I$}Y77779 : : : s2    #783D, ,:G'E54G5&F)GGr   )
rF   rG   rH   r   r   r   r   r   r   r   r#   r!   r   r   r   -  sZ        NGH& N N N N9 9 9 9 9 9r!   r   c                   &    e Zd ZeZeefdZddZdS )r   c                 0     | j         d||d|| _        d S )Nr   r   r#   )SINGLE_ITEM_ENCODER_singleItemEncoder)r   r   r   r3   s       r   r   zEncoder.__init__w  s6    ":$": #
7#
 #
.5#
 #
r!   Nc                 "     | j         |fd|i|S )Nr1   )r   )r   pyObjectr1   r3   s       r   r   zEncoder.__call__|  s1    &t&4 4'4+24 4 	4r!   r   )rF   rG   rH   r   r   r   r   r   r#   r!   r   r   r   t  sG        +& 
 
 
 

4 4 4 4 4 4r!   attrc                     ddd                     |           x}r4t          j        |  d| dt                     t	                      |         S t          |           )Nr   r   r   z is deprecated. Please use z	 instead.)r9   warningswarnDeprecationWarningglobalsr   )r   newAttrs     r   __getattr__r    sf    &:>>BB4HHHw "LL'LLLN`aaayy!!


r!   )Ksysr  pyasn1r   r   pyasn1.codec.berr   pyasn1.compatr   pyasn1.compat.integerr   pyasn1.typer   r	   r
   r   __all__registerLoggeerF   DEBUG_ENCODERr<   objectr   rJ   rQ   rW   r]   rl   rr   ru   r   r   r   r   r   r   endOfOctetsr8   BooleanInteger	BitStringOctetStringNullObjectIdentifierRelativeOID
EnumeratedRealr   r   Choice
UTF8StringNumericStringPrintableStringTeletexStringVideotexString	IA5StringGraphicStringVisibleStringGeneralStringUniversalString	BMPStringObjectDescriptorGeneralizedTimeUTCTimer   r   SetSequenceAnyr   r   r   r   strr  r#   r!   r   <module>r.     sS	   


                          " " " " " " * * * * * *                        h
e85+>???~ ~ ~ ~ ~& ~ ~ ~B         ,      
4 4 4 4 4( 4 4 4> > > > >( > > >(&% &% &% &% &%* &% &% &%R:% :% :% :% :%, :% :% :%z         %      8$ 8$ 8$ 8$ 8$1 8$ 8$ 8$v$ $ $ $ $, $ $ $BdC dC dC dC dC% dC dC dCNx% x% x% x% x%) x% x% x%v#, #, #, #, #,+ #, #, #,LE E E E E' E E E$= = = = =# = = =O..00L)) 	L)) 	N++--	
 	//11 	Ikkmm 	 "9"9";"; 	//11 	ONN,, 	Ikkmm 	O--// 	J((** 	K  	O..00!" 	1133#$ 	!3!3!5!5%& 	1133'( 	 2 2 4 4N--//113311331133!3!3!5!5N--//
"$6$6$8$8
!#5#5#7#7
N--//= D!L))!L))! 	N++--! 	//11	!
 	Ikkmm! 	 "9"9";";! 	//11! 	ONN,,! 	Ikkmm! 	HO__&&! 	J((**! 	M//++! 	O--//! 	K!  	HOZZ\\!!$ 	O..00%!& 	1133'!( 	!3!3!5!51133 2 2 4 4N--//113311331133!3!3!5!5N--//
"$6$6$8$8
!#5#5#7#7
N--//A! !HD D D D D D D DN
4 
4 
4 
4 
4f 
4 
4 
4@ 
c      r!   