
    }fw|                        d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
 ddlmZ dZi d	d
ddd
d	ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddi ddddddddddddd d!ddd!d ddd"d#ddd#d"ddd$d%ddd%d$ddd&d'ddd'd&ddd(d)ddd)d(ddd*d+ddd+d*ddd,d-ddd-d,ddi d.d/ddd/d.ddd0d1ddd1d0ddd2d3ddd3d2ddd4d5ddd5d4ddd6d7ddd7d6ddd8d9ddd9d8ddd:d;ddd;d:ddd<d=ddd=d<ddd>d?ddi d?d>ddd@dAdddAd@dddBdCdddCdBdddDdEdddEdDdddFdGdddGdFdddHdIdddJdKdddKdJdddIdHdddLdMdddMdLdddNdOdddOdNddi dPdQdddQdPdddRdSdddSdRdddTdUdddUdTdddVdWdddWdVdddXdYdddYdXdddZd[ddd[dZddd\d]ddd]d\ddd^d_ddd_d^ddd`daddi dad`dddbdcdddcdbdddddedddedddddfdgdddgdfdddhdidddidhdddjdkdddkdjdddldmdddmdldddndodddodndddpdqdddqdpddi drdsdddsdrdddtdudddudtdddvdwdddwdvdddxdydddydxdddzd{ddd{dzddd|d}ddd}d|ddd~ddddd~dddddddddddddddddddddddddddddddddddddddddd	Z G d d          Ze G d d                      Z G d d          Z	 ddedededefdZde	e         de	e         fdZ G d d          ZdS )    N)deque)	dataclassreplace)
itemgetter)ListTuple   )TextDirection}   ()o)pairtypec[]{}u   ༺u   ༻u   ༼u   ༽u   ᚛u   ᚜u   ⁅u   ⁆u   ⁽u   ⁾u   ₍u   ₎u   ⌈u   ⌉u   ⌊u   ⌋u   〈   〉u   ❨u   ❩u   ❪u   ❫u   ❬u   ❭u   ❮u   ❯u   ❰u   ❱u   ❲u   ❳u   ❴u   ❵u   ⟅u   ⟆u   ⟦u   ⟧u   ⟨u   ⟩u   ⟪u   ⟫u   ⟬u   ⟭u   ⟮u   ⟯u   ⦃u   ⦄u   ⦅u   ⦆u   ⦇u   ⦈u   ⦉u   ⦊u   ⦋u   ⦌u   ⦍u   ⦐u   ⦎u   ⦏u   ⦑u   ⦒u   ⦓u   ⦔u   ⦕u   ⦖u   ⦗u   ⦘u   ⧘u   ⧙u   ⧚u   ⧛u   ⧼u   ⧽u   ⸢u   ⸣u   ⸤u   ⸥u   ⸦u   ⸧u   ⸨u   ⸩u   ⹕u   ⹖u   ⹗u   ⹘u   ⹙u   ⹚u   ⹛u   ⹜u   〈   〉u   《u   》u   「u   」u   『u   』u   【u   】u   〔u   〕u   〖u   〗u   〘u   〙u   〚u   〛u   ﹙u   ﹚u   ﹛u   ﹜u   ﹝u   ﹞u   （   ）   ］   ［   ｝   ｛   ｠   ｟   ｣   ｢)	r   r   r   r   r   r   r   r    r   c                   @    e Zd Zg dZdedededefdZd Zd Z	d	 Z
d
S )BidiCharactercharacter_index	character
bidi_classoriginal_bidi_classembedding_level	directionr$   r%   r(   debugc                     || _         || _        |r|                                rd| _        nt	          j        |          | _        | j        | _        || _        d | _        d S )NR)	r$   r%   isupperr&   unicodedatabidirectionalr'   r(   r)   )selfr$   r%   r(   r*   s        B/var/www/rtfcompare/venv/lib/python3.11/site-packages/fpdf/bidi.py__init__zBidiCharacter.__init__   sh      /" 	CY&&(( 	C!DOO)7	BBDO#'? .    c                     | j         dz  rdndS )N   r,   L)r(   r0   s    r1   get_direction_from_levelz&BidiCharacter.get_direction_from_level   s    *Q.7ssC7r3   c                     || _         d S N)r&   )r0   clss     r1   	set_classzBidiCharacter.set_class   s    r3   c                 r    d| j          d| j         d| j         d| j         z   d| j         d| j         z   S )Nzcharacter_index: z character: z bidi_class: z original_bidi_class: z embedding_level: z direction: r#   r7   s    r1   __repr__zBidiCharacter.__repr__   s[    R 4RR$.RR_do__TE]__`U4#7UUT^UUV	
r3   N)__name__
__module____qualname__	__slots__intstrboolr2   r8   r<   r>    r3   r1   r"   r"      s          I"/2EHQU   8 8 8  
 
 
 
 
r3   r"   c                   6    e Zd ZU g dZeed<   eed<   eed<   dS )DirectionalStatusr(   directional_override_statusdirectional_isolate_statusr(   rJ   rK   N)r?   r@   rA   rB   rC   __annotations__rD   rE   rF   r3   r1   rH   rH      sI           I
 !$$$$ $$$$$$r3   rH   c                   v    e Zd Zg dZdee         dedefdZddZdee	e
e
f                  fd	Zdd
ZddZdS )IsolatingRun)
charactersprevious_directionnext_directionrO   soseosc                     || _         || _        || _        |                                  |                                  |                                  d S r:   )rO   rP   rQ   resolve_weak_typesresolve_neutral_typesresolve_implicit_levels)r0   rO   rR   rS   s       r1   r2   zIsolatingRun.__init__   sU    $"%!!!!""$$$$$&&&&&r3   returnNc                     t           j                  D ]r\  }}|j        dk    rb|dk    r|                     j                   1|                     j        |dz
           j        dv rdn j        |dz
           j                   s j        } j        D ]X}|j        dv r|j        }|j        dk    r|                    d           |j        d	k    r|dk    r|                    d
           Yt           j                  D ]\  }}|dt           j                  dz
  fv r!|j        dk    rG j        |dz
           j        d	k    r. j        |dz            j        d	k    r|                    d	           |j        dk    rk j        |dz
           j        dv rT j        |dz            j         j        |dz
           j        k    r(|                     j        |dz
           j                   dt          dt          f fddt          dt          f fdt           j                  D ]Y\  }}|j        dk    r+ |          s |          r|                    d	           |j        dv r|                    d           Z j        } j        D ]8}|j        dv r|j        }|j        d	k    r|dk    r|                    d           9d S )NNSMr   r	   )LRIRLIFSIPDION)r,   r6   ALr`   r,   ENANESCSrb   ra   irX   c                     | dk    rdS j         | dz
           j        dk    r | dz
            S j         | dz
           j        dk    S )Nr   Fr	   ETra   )rO   r&   )rf   
prev_is_enr0   s    r1   ri   z3IsolatingRun.resolve_weak_types.<locals>.prev_is_en  sW    Avvuq1u%0D88!z!a%(((?1q5)4<<r3   c                     | t          j                  dz
  k    rdS j        | dz            j        dk    r | dz             S j        | dz            j        dk    S )Nr	   Frh   ra   )lenrO   r&   )rf   
next_is_enr0   s    r1   rl   z3IsolatingRun.resolve_weak_types.<locals>.next_is_en  sh    C((1,,,uq1u%0D88!z!a%(((?1q5)4<<r3   rh   )rh   rc   rd   r6   )	enumeraterO   r&   r<   rP   rk   rC   rE   )r0   rf   	bidi_charlast_strong_typerl   ri   s   `   @@r1   rU   zIsolatingRun.resolve_weak_types   s    &do66 
	 
	LAy#u,,66''(?@@@@''?1q51<78 8  "_QU3>	    2 	* 	*I#'777#,#7 #t++##C(((#t++0@D0H0H##D))) &do66 	G 	GLAyQDO,,q0111$,,OAE*5==OAE*5==##D))) $,,OAE*5EEOAE*5?1q5)45 5 ##DOAE$:$EFFF	=# 	=$ 	= 	= 	= 	= 	= 	= 	=	=# 	=$ 	= 	= 	= 	= 	= 	= 	= &do66 	* 	*LAy#t++:a== .JJqMM .''---#'999##D)))  2 	) 	)I#'777#,#7 #t++0@C0G0G##C(((		) 	)r3   c                    g }d}g }t          | j                  D ]\  }}|j        t          v r|j        dk    rt          |j                 d         dk    r+|dk    rg c S |                    |j        |f           |dz  }t          |j                 d         dk    r|dk    rt          |dd          D ]u}||dz
           \  }}t          |         d	         |j        k    st          |         d	         d
v r4|j        d
v r+|                    ||f           |d|dz
           }|dz
  } nvt          |t          d                    S )a  
        Calculate all the bracket pairs on an isolate run, to be used on rule N0
        How to calculate bracket pairs:
        - Basic definitions 14, 15 and 16: http://www.unicode.org/reports/tr9/#BD14
        - BIDI brackets for dummies: https://www.unicode.org/notes/tn39/
        r   r_   r   r   ?   r	   r   r   )r   r   N)key)	rm   rO   r%   BIDI_BRACKETSr&   appendrangesortedr   )	r0   open_bracketsopen_bracket_countbracket_pairsindexcharcurrent_open_bracket	open_char
open_indexs	            r1   pair_bracketszIsolatingRun.pair_brackets#  s    $T_55 	" 	"KE4~..4?d3J3J 08C??)R//!			!(($.%)@AAA&!+& 08C??)Q.. 056H!R0P0P 	" 	",0=>RUV>V0W-	:))4V<NN))4V<NN $. @ @)00*e1DEEE,9:T<PST<T:T,UM1E1I.!EmA7777r3   c                     dt           f fddt           f fd                                 }|rn j        d                                         }|D ]K}d}d}d }t	          |d         |d                   D ]t} j        |         j        dk    r|dk    s j        |         j        dv r
|d	k    rd
} n9 j        |         j        dk    r|d	k    s j        |         j        dv r|dk    rd
}u|r|}n&|r$|d	k    rdnd	} |d                   |k    r|}n|}|r| j        |d                  _        | j        |d                  _        t           j                  |d         dz   k    r3 j        |d         dz            }	|	j        dk    r|	j        dk    r||	_        Mt           j                  D ]P\  }
}|j        dv rB |
           |
          k    r |
          |_        7|                                |_        Qd S )Nr{   c                     | dk    rj         S j        | dz
           j        dk    rdS j        | dz
           j        dv rdS  | dz
            S )Nr   r	   r6   r,   rb   ra   r,   )rP   rO   r&   )r{   previous_strongr0   s    r1   r   z;IsolatingRun.resolve_neutral_types.<locals>.previous_strongD  sf    zz..uqy)4;;suqy)48IIIs"?519---r3   c                     | t          j                  dz
  k    rj        S j        | dz            j        dk    rdS j        | dz            j        dv rdS  | dz             S )Nr	   r6   r   r,   )rk   rO   rQ   r&   )r{   next_strongr0   s    r1   r   z7IsolatingRun.resolve_neutral_types.<locals>.next_strongM  sw    DO,,q000**uqy)4;;suqy)48IIIs;uqy)))r3   r   Fr	   r6   r   r,   TrZ   r_   )BSWSr_   r]   r[   r\   r^   )	rC   r   rO   r8   rv   r&   rk   r'   rm   )r0   bracketsembedding_directionbstrong_same_directionstrong_opposite_directionresulting_directionr{   opposite_direction	next_charrf   rn   r   r   s   `           @@r1   rV   z"IsolatingRun.resolve_neutral_typesC  s   	.3 	. 	. 	. 	. 	. 	. 	.	*s 	* 	* 	* 	* 	* 	* 	* %%'' )	G"&/!"4"M"M"O"O 'G 'G(-%,1)&*#"1Q41.. 9 9E.9S@@/366.9=NNN/36604-.9S@@/366.9=NNN/366481( B*=''. B0Cs0J0JPS&&qt,,0BBB.@++.A+& 	G7JDOAaD)47JDOAaD)44?++adQh66$(OAaD1H$=	%9UBB ) 4 < <3FI0%do66 	P 	PLAy# 	( 	 	 #?1%%Q77+:?1+=+=I((+4+M+M+O+OI(	P 	Pr3   c                     | j         D ]^}|j        dz  dk    r5|j        dk    r|xj        dz  c_        |j        dv r|xj        dz  c_        E|j        dv r|xj        dz  c_        _d S )Nr5   r   r,   r	   re   )r6   ra   rb   )rO   r(   r&   )r0   rn   s     r1   rW   z$IsolatingRun.resolve_implicit_levels  s     	3 	3I (1,11'3..--2--'<77--2-- '+<<<--2--	3 	3r3   )rX   N)r?   r@   rA   rB   r   r"   rD   r2   rU   r   rC   r   rV   rW   rF   r3   r1   rN   rN      s        FFFI'4#6 'S 's ' ' ' 'O) O) O) O)b8tE#s(O4 8 8 8 8@PP PP PP PPd3 3 3 3 3 3r3   rN   Fstringstop_at_pdir*   rX   c                 P   d}| D ]}t          j        |          }|r|                                rd}|dk    r|dk    r|rt          j        c S |dv r|dz  }|dk    r|dk    r|dz  }|dv r|dk    rt          j        c S |dk    r|dk    rt          j        c S t          j        S )aH  
    This function applies rules P2 and P3 to detect the direction of a paragraph, retuning
    the first strong direction and skipping over isolate sequences.
    P1 must be applied before calling this function (breaking into paragraphs)
    stop_at_pdi can be set to True to get the direction of a single isolate sequence
    r   r,   r^   r[   r\   r]   r	   )r,   r`   r6   )r.   r/   r-   r
   LTRRTL)r   r   r*   isolater|   r&   s         r1   auto_detect_base_directionr     s     G % % .t44
 	Z'')) 	J7a<<K< $$$$...qLG7Q;;qLG$$A $$$$A $$$$r3   	paragraphc           	         g }g }| d         j         }| D ]D}|j         |k    r"|                    ||dd           g }|j         }|                    |           E|                    ||dd           dt          dt          fd}t	          |          D ]\  }}|d         r|dk    r ||d                   }n. |t          |d         ||dz
           d                             }|t          |          dz
  k    r ||d                   }nU|d	         d
         j        dv r ||d                   }n. |t          |d         ||dz            d                             }||d<   ||d<   g }	t	          |          D ]\  }}|d         r|d         }|d         }|d	         }
d|d<   |d	         d
         j        dv rs||dz   d          D ]e}|d         |d         k    rQ|d	         d         j        dk    r:|d	xx         |d	         z  cc<   d|d<   |d         }|d	         d
         j        dvr nf|	                    t          |
||                     |	S )Nr   F)leveltextcompleter   rX   c                     | dz  dk    rdS dS )Nr5   r   r6   r,   rF   )r   s    r1   level_to_directionz2calculate_isolate_runs.<locals>.level_to_direction  s    19>>3sr3   r   r	   r   rr   r   rR   rS   Tr^   )rO   rR   rS   )	r(   ru   rC   rD   rm   maxrk   r'   rN   )r   	level_runlrlr_embedding_levelrn   r   r{   rR   rS   isolate_runsir_charsnlrs               r1   calculate_isolate_runsr     s   I	B"15  	$(:::,beLL   B!*!:
		)125QQRRR# #     y))  	rj> 	A::$$R[11CC$$SGi	6J76S%T%TUUCC	NNQ&&&$$R[11CC&z"~15JJJ((G55((7Yuqy%9'%BCC  5	5		 Ly)) Q Q	rj> 	iif::f:b>-1FFF - 	 	LBwK//FA:eCCvJJJ#f+-JJJ&*C
Oe*C6{2:BWWWLH#3OOOPPPPr3   c                       e Zd ZdZ	 ddededefdZdee	         fd	Z
dee	         fd
Zdee	         fdZd Zd Zd Zdee	         fdZd Zd ZdS )BidiParagraph)r   base_directionr*   base_embedding_levelrO   NFr   r   r*   c                     || _         |st          | j         |          n|| _        || _        | j        t          j        k    rdnd| _        g | _        |                                  d S )Nr   r	   )	r   r   r   r*   r
   r   r   rO   get_bidi_characters)r0   r   r   r*   s       r1   r2   zBidiParagraph.__init__  s{     	 " &ty%888 	
 
$(999AAq 	! 02  """""r3   rX   c                     | j         S r:   )rO   r7   s    r1   get_characterszBidiParagraph.get_characters  s
    r3   c                 8    |                                   | j        S r:   )reorder_resolved_levelsrO   r7   s    r1   #get_characters_with_embedding_levelz1BidiParagraph.get_characters_with_embedding_level   s     	$$&&&r3   c                 *    |                                  S r:   )r   r7   s    r1   get_reordered_charactersz&BidiParagraph.get_reordered_characters&  s    ++---r3   c                 8    | j         |                                 fS r:   )rO   r   r7   s    r1   get_allzBidiParagraph.get_all)  s     < < > >>>r3   c                 d    d                     d |                                 D                       S )zUsed for conformance validation c              3   $   K   | ]}|j         V  d S r:   )r%   ).0r   s     r1   	<genexpr>z5BidiParagraph.get_reordered_string.<locals>.<genexpr>.  s$      KKqq{KKKKKKr3   )joinr   r7   s    r1   get_reordered_stringz"BidiParagraph.get_reordered_string,  s/    wwKKD,H,H,J,JKKKKKKr3   c                 *    |                                  S r:   )split_bidi_fragmentsr7   s    r1   get_bidi_fragmentsz BidiParagraph.get_bidi_fragments0  s    ((***r3   c                    t                      }t          | j        dd          }|                    t	          |                     d}d}d}g }t          | j                  D ]\  }}t          |||j        | j	                  }	d }
|	j
        dk    r>t          | j        |dz   d          d| j	                  t          j        k    rd	nd
|	_
        |	j
        dv r|	j
        d         dk    r|j        dz   dz  }n|j        dz   dz  }|	j
        d         dk    r|j        dk    r|j        }
|t          k    r|dk    rz|dk    rt||_        |	j
        d         dk    r|	j
        d         nd|_        |	j
        d         dk    r|dz  }d|_        nd|_        |                    t	          |                     n"|	j
        d         dk    r|dz  }n|dk    r|dz  }|	j
        dvr|j        dk    r|j        }
|	j
        dk    r|dk    r|dz  }nZ|dk    rTd}	 |d         j        s|                                 #	 |                                 t	          |d                   }|dz  }t%          |t                    sJ |j        |	_        |j        dk    r|j        }
|	j
        dk    rU|dk    rO|dk    r|dz  }nC|j        s<t'          |          dk    r)|                                 t	          |d                   }|
r|
|	_
        |	j
        dvrB|	j
        dk    r| j        |	_        n|	j        dvr|j        |	_        |                    |	           |s	g | _        d S || _        t-          |           d S )NNFrI   r   r]   r	   T)r   r*   r[   r\   )RLELRERLOLROr\   r[   r,   r5   IO)	r   BNr   r   r   r   PDFr]   r^   r^   rr   r   )r   r   r   r   r   r   r   r   )r   rH   r   ru   r   rm   r   r"   r(   r*   r&   r   r
   r   rJ   	MAX_DEPTHrK   pop
isinstancerk   r'   rO   r   )r0   stackcurrent_statusoverflow_isolate_countoverflow_embedding_countvalid_isolate_countresultsr{   r|   rn   new_bidi_classnew_embedding_levels               r1   r   z!BidiParagraph.get_bidi_characters3  s^    */* 5(+',
 
 

 	W^,,---!"#$  %TY// q	* q	*KE4%t^;TZ I "N#u,, 2	%!)++.D
   %() ) E
  $ #'QQQ'*c11&6:+''
 '6:+' (+s22&BcII%3%ON'944.!330A555HN2 %/2c99 ",Q//  #>
 !+A.#55+q0+DHAADIALL!8!89999 +A.#55.!3..1Q66494# 
, 
 
 "=DD%3%ON#u,,)A--*a/**(1,,/0,$RyC %!IIKKK$IIKKK%,U2Y%7%7N'1,'!.2CDDDDD,:,J	)!=DD%3%ON#u,,)Q../!330A500 !/ I@ #E

Q!IIKKK-4U2Y-?-?N 6'5	$# ,   '3..040II--2:OOO0>0NI-y))) 	 DOF!w'''''r3   c                    g }t          | j                  dk    rdS d}d}| j        D ]o}|                                |k    rK|r3|                    ||dk    rt          j        nt          j        f           d}|                                }||j        z  }p|r3|                    ||dk    rt          j        nt          j        f           t          |          S )Nr   rF   r   r,   )	rk   rO   r8   ru   r
   r   r   r%   tuple)r0   bidi_fragmentscurrent_fragmentcurrent_directionr   s        r1   r   z"BidiParagraph.split_bidi_fragments  s   t1$$2 	, 	,A))++/@@@# 
")), $5#;#; !. 1 1%2%6	 	 	 $& $%$>$>$@$@!+ 
	!!$ -33 &))*.	 	 	 ^$$$r3   c                    d}d}d}d}t          | j                  D ]j}|j        dv r| j        |_        d}n|j        dv r|s|r| j        |_        nd}d}|j        |k    r|j        }|j        dz  dk    r|j        |k     r|j        }k| j                                        }t          ||dz
  d	          D ]{}g }g }	|D ]U}|j        |k    r|	                    |           #|	r|	                                 ||	z  }g }	|                    |           V|	r|	                                 ||	z  }|}|t          |          S )
NTr   i  )r   r   )r   r   r]   r[   r\   r^   Fr5   r	   rr   )
reversedrO   r'   r   r(   copyrv   ru   reverser   )
r0   before_separatorend_of_line	max_levelmin_odd_levelrn   reordered_paragraphr   temp_resultsrevs
             r1   r   z%BidiParagraph.reorder_resolved_levels  s   	!$/22 	: 	:I ,
::,0,E	)#'  . 3   $ J{ J040II-#( #(944%5	)A-22-== ) 9 #o22449ma&7<< 	/ 	/ELC0 3 3	,55JJy)))) !$+  ''	2222 $#".()))r3   )NF)r?   r@   rA   rB   rD   r
   rE   r2   r   r"   r   r   r   r   r   r   r   r   r   rF   r3   r1   r   r     s(       I NS# ##)6#FJ# # # # ] 3    T-5H    .$}*= . . . .? ? ?L L L+ + +G(T-%8 G( G( G( G(R!% !% !%F4* 4* 4* 4* 4*r3   r   )FF)r.   collectionsr   dataclassesr   r   operatorr   typingr   r   enumsr
   r   rt   r"   rH   rN   rD   rE   r   r   r   rF   r3   r1   <module>r      s  
           * * * * * * * *                          	
A#s	#	#A#s	#	#A #s	#	#A #s	#	#	A
 #s	#	#A #s	#	#A 
E3''A 
E3''A 
E3''A 
E3''A 
E3''A 
E3''A 
E3''A 
E3''A 
E3''A  
E3''!A" 
E3''#A A$ 
E3''%A& 
E3'''A( 
E3'')A* 
E3''+A, 
E3''-A. 
E3''/A0 
E3''1A2 
E3''3A4 
E3''5A6 
E3''7A8 
E3''9A: 
E3'';A< 
E3''=A> 
E3''?A@ 
E3''AAB 
E3''CAD 
E3''EA A AF 
E3''GAH 
E3''IAJ 
E3''KAL 
E3''MAN 
E3''OAP 
E3''QAR 
E3''SAT 
E3''UAV 
E3''WAX 
E3''YAZ 
E3''[A\ 
E3'']A^ 
E3''_A` 
E3''aAb 
E3''cAd 
E3''eAf 
E3''gA A Ah 
E3''iAj 
E3''kAl 
E3''mAn 
E3''oAp 
E3''qAr 
E3''sAt 
E3''uAv 
E3''wAx 
E3''yAz 
E3''{A| 
E3''}A~ 
E3''A@ 
E3''AAB 
E3''CAD 
E3''EAF 
E3''GAH 
E3''IA A AJ 
E3''KAL 
E3''MAN 
E3''OAP 
E3''QAR 
E3''SAT 
E3''UAV 
E3''WAX 
E3''YAZ 
E3''[A\ 
E3'']A^ 
E3''_A` 
E3''aAb 
E3''cAd 
E3''eAf 
E3''gAh 
E3''iAj 
E3''kA A Al 
E3''mAn 
E3''oAp 
E3''qAr 
E3''sAt 
E3''uAv 
E3''wAx 
E3''yAz 
E3''{A| 
E3''}A~ 
E3''A@ 
E3''AAB 
E3''CAD 
E3''EAF 
E3''GAH 
E3''IAJ 
E3''KAL 
E3''MA A AN 
E3''OAP 
E3''QAR 
E3''SAT 
E3''UAV 
E3''WAX 
E3''YAZ 
E3''[A\ 
E3'']A^ 
E3''_A` 
E3''aAb 
E3''cAd 
E3''eAf 
E3''gAh 
E3''iAj 
E3''kAl 
E3''mAn 
E3''oA Ap 3''3''3''3''3''3''3''3''3''AA A AH"
 "
 "
 "
 "
 "
 "
 "
J % % % % % % % %[3 [3 [3 [3 [3 [3 [3 [3~ ;@ "37   8@d=&9 @d<>P @ @ @ @FO* O* O* O* O* O* O* O* O* O*r3   