§
    ¤”j•+  ã                   óx  — d dl mZ d dlmZmZ d dlmZmZmZ d dl	m
Z
mZ d dlmZ  G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ d¦  «        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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ee¦  «        Z! G d.„ d/eee¦  «        Z" G d0„ d1eeee¦  «        Z# G d2„ d3eeee¦  «        Z$ G d4„ d5eeee¦  «        Z% G d6„ d7e¦  «        Z& G d8„ d9e¦  «        Z' G d:„ d;e¦  «        Z( G d<„ d=e¦  «        Z)d>S )?é    ©ÚNotSupportedError)ÚFuncÚValue)Ú	CharFieldÚIntegerFieldÚ	TextField)ÚCastÚCoalesce)Ú	Transformc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚMySQLSHA2Mixinc                 ó^   •—  t          ¦   «         j        ||fdd| j        dd …         z  i|¤ŽS )NÚtemplatezSHA2(%%(expressions)s, %s)é   )ÚsuperÚas_sqlÚfunction©ÚselfÚcompilerÚ
connectionÚextra_contextÚ	__class__s       €ún/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/db/models/functions/text.pyÚas_mysqlzMySQLSHA2Mixin.as_mysql	   sL   ø€ Ø�u‰wŒwŒ~ØØð
ð 
ð 2°D´MÀ!À"À"Ô4EÑEð
ð ð	
ð 
ð 	
ó    )Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__©r   s   @r   r   r      s8   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚOracleHashMixinc                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   zcLOWER(RAWTOHEX(STANDARD_HASH(UTL_I18N.STRING_TO_RAW(%(expressions)s, 'AL32UTF8'), '%(function)s')))©r   r   r   s       €r   Ú	as_oraclezOracleHashMixin.as_oracle   s=   ø€ Ø�u‰wŒwŒ~ØØð
ð 
ðBð	
ð ð
ð 
ð 	
r   )r   r   r    r'   r!   r"   s   @r   r$   r$      s8   ø€ € € € € ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
r   r$   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚPostgreSQLSHAMixinc                 ón   •—  t          ¦   «         j        ||fd| j                             ¦   «         dœ|¤ŽS )Nz6ENCODE(DIGEST(%(expressions)s, '%(function)s'), 'hex'))r   r   )r   r   r   Úlowerr   s       €r   Úas_postgresqlz PostgreSQLSHAMixin.as_postgresql    sN   ø€ Ø�u‰wŒwŒ~ØØð
ð NØ”]×(Ò(Ñ*Ô*ð	
ð 
ð
 ð
ð 
ð 	
r   )r   r   r    r,   r!   r"   s   @r   r)   r)      s8   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r)   c                   óN   ‡ — e Zd ZdZdZ e¦   «         Zˆ fd„Zˆ fd„Zˆ fd„Z	ˆ xZ
S )ÚChrÚCHRÚchrc                 ó@   •—  t          ¦   «         j        ||fdddœ|¤ŽS )NÚCHARz)%(function)s(%(expressions)s USING utf16)©r   r   r&   r   s       €r   r   zChr.as_mysql/   s?   ø€ Ø�u‰wŒwŒ~ØØð
ð Ø@ð	
ð 
ð
 ð
ð 
ð 	
r   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   z,%(function)s(%(expressions)s USING NCHAR_CS)r&   r   s       €r   r'   zChr.as_oracle8   s=   ø€ Ø�u‰wŒwŒ~ØØð
ð 
ð Dð
ð ð	
ð 
ð 	
r   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   r2   r&   r   s       €r   Ú	as_sqlitezChr.as_sqlite@   s(   ø€ Ø�u‰wŒwŒ~˜h¨
ÐUÐU¸VÐUÀ}ÐUÐUÐUr   )r   r   r    r   Úlookup_namer   Úoutput_fieldr   r'   r6   r!   r"   s   @r   r.   r.   *   sˆ   ø€ € € € € Ø€HØ€KØ�9‘;”;€Lð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ðVð Vð Vð Vð Vð Vð Vð Vð Vr   r.   c                   ó@   ‡ — e Zd ZdZdZˆ fd„Zˆ fd„Zˆ fd„Zd„ Zˆ xZ	S )Ú
ConcatPairz�
    Concatenate two arguments together. This is used by `Concat` because not
    all backend databases support more than two arguments.
    ÚCONCATc                 óv   •— |                       ¦   «         } t          t          |¦  «        j        ||fdddœ|¤ŽS )Nú%(expressions)sz || )r   Ú
arg_joiner)Úcoalescer   r:   r   )r   r   r   r   Ú	coalescedr   s        €r   r6   zConcatPair.as_sqliteL   sS   ø€ Ø—M’M‘O”Oˆ	Ø2�u•Z Ñ+Ô+Ô2ØØð
ð 'Øð	
ð 
ð
 ð
ð 
ð 	
r   c                 óÒ   •— |                       ¦   «         }|                     d„ |                     ¦   «         D ¦   «         ¦  «          t          t          |¦  «        j        ||fi |¤ŽS )Nc                 óF   — g | ]}t          |t          ¦   «         ¦  «        ‘ŒS © )r
   r	   ©Ú.0Ú
expressions     r   ú
<listcomp>z,ConcatPair.as_postgresql.<locals>.<listcomp>Y   s6   € ð ð ð àõ �Z¥¡¤Ñ-Ô-ðð ð r   )ÚcopyÚset_source_expressionsÚget_source_expressionsr   r:   r   )r   r   r   r   rH   r   s        €r   r,   zConcatPair.as_postgresqlV   sˆ   ø€ Ø�yŠy‰{Œ{ˆØ×#Ò#ðð à"&×"=Ò"=Ñ"?Ô"?ðñ ô ñ	
ô 	
ð 	
ð .�u•Z Ñ&Ô&Ô-ØØð
ð 
ð ð
ð 
ð 	
r   c                 ó@   •—  t          ¦   «         j        ||fdddœ|¤ŽS )NÚ	CONCAT_WSz!%(function)s('', %(expressions)s)r3   r&   r   s       €r   r   zConcatPair.as_mysqld   s?   ø€ à�u‰wŒwŒ~ØØð
ð !Ø8ð	
ð 
ð
 ð
ð 
ð 	
r   c                 ó�   — |                       ¦   «         }|                     d„ |                     ¦   «         D ¦   «         ¦  «         |S )Nc                 óH   — g | ]}t          |t          d ¦  «        ¦  «        ‘Œ S )Ú )r   r   rD   s     r   rG   z'ConcatPair.coalesce.<locals>.<listcomp>r   s8   € ð ð ð àõ ˜¥U¨2¡Y¤YÑ/Ô/ðð ð r   )rH   rI   rJ   )r   Úcs     r   r?   zConcatPair.coalescen   sV   € à�IŠI‰KŒKˆØ	× Ò ðð à"#×":Ò":Ñ"<Ô"<ðñ ô ñ	
ô 	
ð 	
ð ˆr   )
r   r   r    Ú__doc__r   r6   r,   r   r?   r!   r"   s   @r   r:   r:   D   sŠ   ø€ € € € € ðð ð
 €Hð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð	ð 	ð 	ð 	ð 	ð 	ð 	r   r:   c                   ó0   ‡ — e Zd ZdZdZdZˆ fd„Zd„ Zˆ xZS )ÚConcatzÌ
    Concatenate text fields together. Backends that result in an entire
    null expression when any arguments are null will wrap each argument in
    coalesce functions to ensure a non-null result.
    Nr=   c                 óª   •— t          |¦  «        dk     rt          d¦  «        ‚|                      |¦  «        } t          ¦   «         j        |fi |¤Ž d S )Né   z)Concat must take at least two expressions)ÚlenÚ
ValueErrorÚ_pairedr   Ú__init__)r   ÚexpressionsÚextraÚpairedr   s       €r   rY   zConcat.__init__„   s[   ø€ Ýˆ{ÑÔ˜aÒÐÝÐHÑIÔIÐIØ—’˜kÑ*Ô*ˆØ�‰ŒÔ˜Ð)Ð) 5Ð)Ð)Ð)Ð)Ð)r   c                 óœ   — t          |¦  «        dk    r	t          |Ž S t          |d         |                      |dd …         ¦  «        ¦  «        S )NrU   r   é   )rV   r:   rX   )r   rZ   s     r   rX   zConcat._pairedŠ   sJ   € õ ˆ{ÑÔ˜qÒ Ð Ý˜{Ð+Ð+Ý˜+ aœ.¨$¯,ª,°{À1À2À2´Ñ*GÔ*GÑHÔHÐHr   )	r   r   r    rQ   r   r   rY   rX   r!   r"   s   @r   rS   rS   z   sd   ø€ € € € € ðð ð €HØ €Hð*ð *ð *ð *ð *ðIð Ið Ið Ið Ið Ið Ir   rS   c                   óL   ‡ — e Zd ZdZdZ e¦   «         Zˆ fd„Zd„ Zd„ Z	d„ Z
ˆ xZS )ÚLeftÚLEFTrU   c                 óˆ   •— t          |d¦  «        s|dk     rt          d¦  «        ‚ t          ¦   «         j        ||fi |¤Ž dS )z¦
        expression: the name of a field, or an expression returning a string
        length: the number of characters to return from the start of the string
        Úresolve_expressionr^   z 'length' must be greater than 0.N©ÚhasattrrW   r   rY   )r   rF   Úlengthr[   r   s       €r   rY   zLeft.__init__˜   sX   ø€ õ
 �vÐ3Ñ4Ô4ð 	EØ˜ŠzˆzÝ Ð!CÑDÔDÐDØ�‰ŒÔ˜ VÐ5Ð5¨uÐ5Ð5Ð5Ð5Ð5r   c                 ój   — t          | j        d         t          d¦  «        | j        d         ¦  «        S )Nr   r^   ©ÚSubstrÚsource_expressionsr   ©r   s    r   Ú
get_substrzLeft.get_substr¢   s+   € Ý�dÔ-¨aÔ0µ%¸±(´(¸DÔ<SÐTUÔ<VÑWÔWÐWr   c                 óD   —  |                       ¦   «         j        ||fi |¤ŽS ©N)rl   r'   ©r   r   r   r   s       r   r'   zLeft.as_oracle¥   ó)   € Ø*ˆt�ŠÑ Ô Ô*¨8°ZÐQÐQÀ=ÐQÐQÐQr   c                 óD   —  |                       ¦   «         j        ||fi |¤ŽS rn   )rl   r6   ro   s       r   r6   zLeft.as_sqlite¨   rp   r   )r   r   r    r   Úarityr   r8   rY   rl   r'   r6   r!   r"   s   @r   r`   r`   “   s‡   ø€ € € € € Ø€HØ€EØ�9‘;”;€Lð6ð 6ð 6ð 6ð 6ðXð Xð XðRð Rð RðRð Rð Rð Rð Rð Rð Rr   r`   c                   ó>   ‡ — e Zd ZdZdZdZ e¦   «         Zˆ fd„Zˆ xZ	S )ÚLengthz2Return the number of characters in the expression.ÚLENGTHrf   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   ÚCHAR_LENGTHr&   r   s       €r   r   zLength.as_mysql³   s7   ø€ Ø�u‰wŒwŒ~Ø�jð
ð 
Ø+8ð
Ø<Ið
ð 
ð 	
r   )
r   r   r    rQ   r   r7   r   r8   r   r!   r"   s   @r   rt   rt   ¬   sS   ø€ € € € € Ø<Ð<à€HØ€KØ�<‘>”>€Lð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   rt   c                   ó   — e Zd ZdZdZdS )ÚLowerÚLOWERr+   N©r   r   r    r   r7   rC   r   r   ry   ry   ¹   ó   € € € € € Ø€HØ€K€K€Kr   ry   c                   óL   ‡ — e Zd ZdZ e¦   «         Z ed¦  «        fˆ fd„	Zˆ xZS )ÚLPadÚLPADú c                 óŽ   •— t          |d¦  «        s|�|dk     rt          d¦  «        ‚ t          ¦   «         j        |||fi |¤Ž d S )Nrc   r   z''length' must be greater or equal to 0.rd   )r   rF   rf   Ú	fill_textr[   r   s        €r   rY   zLPad.__init__Â   s^   ø€ å˜Ð 4Ñ5Ô5ð	HàÐ"Ø˜’
�
åÐFÑGÔGÐGØ�‰ŒÔ˜ V¨YÐ@Ð@¸%Ð@Ð@Ð@Ð@Ð@r   )	r   r   r    r   r   r8   r   rY   r!   r"   s   @r   r~   r~   ¾   sb   ø€ € € € € Ø€HØ�9‘;”;€Là5:°U¸3±Z´Zð Að Að Að Að Að Að Að Að Að Ar   r~   c                   ó   — e Zd ZdZdZdS )ÚLTrimÚLTRIMÚltrimNr{   rC   r   r   r„   r„   Ì   r|   r   r„   c                   ó   — e Zd Zd ZdZdS )ÚMD5Úmd5Nr{   rC   r   r   rˆ   rˆ   Ñ   s   € € € € € Ø€HØ€K€K€Kr   rˆ   c                   óD   ‡ — e Zd ZdZdZ e¦   «         Zˆ fd„Zˆ fd„Zˆ xZ	S )ÚOrdÚASCIIÚordc                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   ÚORDr&   r   s       €r   r   zOrd.as_mysqlÛ   s(   ø€ Ø�u‰wŒwŒ~˜h¨
ÐTÐT¸UÐTÀmÐTÐTÐTr   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   ÚUNICODEr&   r   s       €r   r6   zOrd.as_sqliteÞ   s(   ø€ Ø�u‰wŒwŒ~˜h¨
ÐXÐX¸YÐXÈ-ÐXÐXÐXr   )
r   r   r    r   r7   r   r8   r   r6   r!   r"   s   @r   r‹   r‹   Ö   st   ø€ € € € € Ø€HØ€KØ�<‘>”>€LðUð Uð Uð Uð UðYð Yð Yð Yð Yð Yð Yð Yð Yr   r‹   c                   ó<   ‡ — e Zd ZdZ e¦   «         Zˆ fd„Zd„ Zˆ xZS )ÚRepeatÚREPEATc                 óŒ   •— t          |d¦  «        s|�|dk     rt          d¦  «        ‚ t          ¦   «         j        ||fi |¤Ž d S )Nrc   r   z''number' must be greater or equal to 0.rd   )r   rF   Únumberr[   r   s       €r   rY   zRepeat.__init__æ   s\   ø€ å˜Ð 4Ñ5Ô5ð	HàÐ"Ø˜’
�
åÐFÑGÔGÐGØ�‰ŒÔ˜ VÐ5Ð5¨uÐ5Ð5Ð5Ð5Ð5r   c                 ó‚   — | j         \  }}|€d nt          |¦  «        |z  }t          |||¦  «        } |j        ||fi |¤ŽS rn   )rj   rt   ÚRPadr   )r   r   r   r   rF   r–   rf   Úrpads           r   r'   zRepeat.as_oracleï   sV   € Ø!Ô4Ñˆ
�FØ˜��­V°JÑ-?Ô-?À&Ñ-HˆÝ�J ¨
Ñ3Ô3ˆØˆtŒ{˜8 ZÐAÐA°=ÐAÐAÐAr   )	r   r   r    r   r   r8   rY   r'   r!   r"   s   @r   r“   r“   â   s^   ø€ € € € € Ø€HØ�9‘;”;€Lð6ð 6ð 6ð 6ð 6ðBð Bð Bð Bð Bð Bð Br   r“   c                   ó8   ‡ — e Zd ZdZ ed¦  «        fˆ fd„	Zˆ xZS )ÚReplaceÚREPLACErO   c                 ó@   •—  t          ¦   «         j        |||fi |¤Ž d S rn   )r   rY   )r   rF   ÚtextÚreplacementr[   r   s        €r   rY   zReplace.__init__ù   s,   ø€ Ø�‰ŒÔ˜ T¨;Ð@Ð@¸%Ð@Ð@Ð@Ð@Ð@r   )r   r   r    r   r   rY   r!   r"   s   @r   r›   r›   ö   sW   ø€ € € € € Ø€Hà5:°U¸2±Y´Yð Að Að Að Að Að Að Að Að Að Ar   r›   c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚReverseÚREVERSEÚreversec                 óR   •—  t          ¦   «         j        ||fddi|¤Ž\  }}||dz  fS )Nr   z¼(SELECT LISTAGG(s) WITHIN GROUP (ORDER BY n DESC) FROM (SELECT LEVEL n, SUBSTR(%(expressions)s, LEVEL, 1) s FROM DUAL CONNECT BY LEVEL <= LENGTH(%(expressions)s)) GROUP BY %(expressions)s)r   r&   )r   r   r   r   ÚsqlÚparamsr   s         €r   r'   zReverse.as_oracle  sO   ø€ ð %•e‘g”g”nØØð

ð 

ð,ð	

ð ð

ð 

‰ˆˆVð �F˜Q‘JˆÐr   )r   r   r    r   r7   r'   r!   r"   s   @r   r¡   r¡   ý   sB   ø€ € € € € Ø€HØ€Kðð ð ð ð ð ð ð ð r   r¡   c                   ó   — e Zd ZdZd„ ZdS )ÚRightÚRIGHTc                 ó†   — t          | j        d         | j        d         t          d¦  «        z  | j        d         ¦  «        S )Nr   r^   éÿÿÿÿrh   rk   s    r   rl   zRight.get_substr  s@   € ÝØÔ# AÔ&ØÔ# AÔ&­¨r©¬Ñ2ØÔ# AÔ&ñ
ô 
ð 	
r   N)r   r   r    r   rl   rC   r   r   r¨   r¨     s(   € € € € € Ø€Hð
ð 
ð 
ð 
ð 
r   r¨   c                   ó   — e Zd ZdZdS )r˜   ÚRPADN)r   r   r    r   rC   r   r   r˜   r˜     s   € € € € € Ø€H€H€Hr   r˜   c                   ó   — e Zd ZdZdZdS )ÚRTrimÚRTRIMÚrtrimNr{   rC   r   r   r¯   r¯   !  r|   r   r¯   c                   ó   — e Zd Zd ZdZdS )ÚSHA1Úsha1Nr{   rC   r   r   r³   r³   &  ó   € € € € € Ø€HØ€K€K€Kr   r³   c                   ó   — e Zd Zd ZdZd„ ZdS )ÚSHA224Úsha224c                 ó    — t          d¦  «        ‚)Nz"SHA224 is not supported on Oracle.r   ro   s       r   r'   zSHA224.as_oracle/  s   € ÝÐ DÑEÔEÐEr   N)r   r   r    r   r7   r'   rC   r   r   r·   r·   +  s2   € € € € € Ø€HØ€KðFð Fð Fð Fð Fr   r·   c                   ó   — e Zd Zd ZdZdS )ÚSHA256Úsha256Nr{   rC   r   r   r»   r»   3  ó   € € € € € Ø€HØ€K€K€Kr   r»   c                   ó   — e Zd Zd ZdZdS )ÚSHA384Úsha384Nr{   rC   r   r   r¿   r¿   8  r½   r   r¿   c                   ó   — e Zd Zd ZdZdS )ÚSHA512Úsha512Nr{   rC   r   r   rÂ   rÂ   =  r½   r   rÂ   c                   ó>   ‡ — e Zd ZdZdZdZ e¦   «         Zˆ fd„Zˆ xZ	S )ÚStrIndexzµ
    Return a positive integer corresponding to the 1-indexed position of the
    first occurrence of a substring inside another string, or 0 if the
    substring is not found.
    ÚINSTRrU   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS )Nr   ÚSTRPOSr&   r   s       €r   r,   zStrIndex.as_postgresqlM  ó(   ø€ Ø�u‰wŒwŒ~˜h¨
ÐWÐW¸XÐWÈÐWÐWÐWr   )
r   r   r    rQ   r   rr   r   r8   r,   r!   r"   s   @r   rÅ   rÅ   B  sb   ø€ € € € € ðð ð €HØ€EØ�<‘>”>€LðXð Xð Xð Xð Xð Xð Xð Xð Xr   rÅ   c                   óL   ‡ — e Zd ZdZ e¦   «         Zdˆ fd„	Zˆ fd„Zˆ fd„Zˆ xZ	S )ri   Ú	SUBSTRINGNc                 óº   •— t          |d¦  «        s|dk     rt          d¦  «        ‚||g}|�|                     |¦  «          t          ¦   «         j        |i |¤Ž dS )zÔ
        expression: the name of a field, or an expression returning a string
        pos: an integer > 0, or an expression returning an integer
        length: an optional number of characters to return
        rc   r^   z'pos' must be greater than 0N)re   rW   Úappendr   rY   )r   rF   Úposrf   r[   rZ   r   s         €r   rY   zSubstr.__init__U  sw   ø€ õ �sÐ0Ñ1Ô1ð 	AØ�QŠwˆwÝ Ð!?Ñ@Ô@Ð@Ø! 3Ð'ˆØÐØ×Ò˜vÑ&Ô&Ð&Ø�‰ŒÔ˜+Ð/¨Ð/Ð/Ð/Ð/Ð/r   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS ©Nr   ÚSUBSTRr&   r   s       €r   r6   zSubstr.as_sqlitec  rÉ   r   c                 ó>   •—  t          ¦   «         j        ||fddi|¤ŽS rÐ   r&   r   s       €r   r'   zSubstr.as_oraclef  rÉ   r   rn   )
r   r   r    r   r   r8   rY   r6   r'   r!   r"   s   @r   ri   ri   Q  s�   ø€ € € € € Ø€HØ�9‘;”;€Lð0ð 0ð 0ð 0ð 0ð 0ðXð Xð Xð Xð XðXð Xð Xð Xð Xð Xð Xð Xð Xr   ri   c                   ó   — e Zd ZdZdZdS )ÚTrimÚTRIMÚtrimNr{   rC   r   r   rÔ   rÔ   j  rµ   r   rÔ   c                   ó   — e Zd ZdZdZdS )ÚUpperÚUPPERÚupperNr{   rC   r   r   rØ   rØ   o  r|   r   rØ   N)*Ú	django.dbr   Údjango.db.models.expressionsr   r   Údjango.db.models.fieldsr   r   r	   Údjango.db.models.functionsr
   r   Údjango.db.models.lookupsr   r   r$   r)   r.   r:   rS   r`   rt   ry   r~   r„   rˆ   r‹   r“   r›   r¡   r¨   r˜   r¯   r³   r·   r»   r¿   rÂ   rÅ   ri   rÔ   rØ   rC   r   r   ú<module>rà      s…  ðØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð

ð 

ð 

ð 

ð 

ñ 

ô 

ð 

ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ðVð Vð Vð Vð Vˆ)ñ Vô Vð Vð43ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ðlIð Ið Ið Ið IˆTñ Iô Ið Ið2Rð Rð Rð Rð Rˆ4ñ Rô Rð Rð2

ð 

ð 

ð 

ð 

ˆYñ 

ô 

ð 

ðð ð ð ð ˆIñ ô ð ð
Að Að Að Að Aˆ4ñ Aô Að Aðð ð ð ð ˆIñ ô ð ð
ð ð ð ð ˆ/˜9ñ ô ð ð
	Yð 	Yð 	Yð 	Yð 	Yˆ)ñ 	Yô 	Yð 	YðBð Bð Bð Bð BˆTñ Bô Bð Bð(Að Að Að Að Aˆdñ Aô Að Aðð ð ð ð ˆiñ ô ð ð*
ð 
ð 
ð 
ð 
ˆDñ 
ô 
ð 
ðð ð ð ð ˆ4ñ ô ð ðð ð ð ð ˆIñ ô ð ð
ð ð ð ð ˆ?Ð.°	ñ ô ð ð
Fð Fð Fð Fð Fˆ^Ð/°ñ Fô Fð Fðð ð ð ð ˆ^˜_Ð.@À)ñ ô ð ð
ð ð ð ð ˆ^˜_Ð.@À)ñ ô ð ð
ð ð ð ð ˆ^˜_Ð.@À)ñ ô ð ð
Xð Xð Xð Xð Xˆtñ Xô Xð XðXð Xð Xð Xð XˆTñ Xô Xð Xð2ð ð ð ð ˆ9ñ ô ð ð
ð ð ð ð ˆIñ ô ð ð ð r   