§
    ¾¼!g>7  ã                  ó  — d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZ  G d„ de¦  «        Z G d	„ d
¦  «        Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ d ee¦  «        Z  G d!„ d"e¦  «        Z!ee!eeeeeeee efZ"dS )#é    )ÚannotationsN)ÚFileHandlerÚOperatorÚPropertyGroup)ÚBoolPropertyÚCollectionPropertyÚEnumPropertyÚFloatVectorPropertyÚStringProperty)ÚVector)Úpgettext_tipÚpgettext_rptc                  ó   — e Zd ZU ded<   dS )ÚNodeSettingzuStringProperty(name='Value', description='Python expression to be evaluated as the initial node setting', default='')ÚvalueN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úW/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/node.pyr   r      s*   € € € € € € ðð ð ñ ð ð r   r   c                  ór   — e Zd ZU ded<   ded<   ed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Z	d	„ Z
d
S )ÚNodeAddOperatorzrBoolProperty(name='Use Transform', description='Start transform operator after inserting the node', default=False)Úuse_transformzŒCollectionProperty(name='Settings', description='Settings to be applied on the newly created node', type=NodeSetting, options={'SKIP_SAVE'})Úsettingsc                óž   — | j         }|j        }| j        j        dk    r"|                     |j        |j        ¦  «         d S |j        |_        d S )NÚWINDOW)	Ú
space_dataÚ	edit_treeÚregionÚtypeÚcursor_location_from_regionÚmouse_region_xÚmouse_region_yÚview_centerÚcursor_location)ÚcontextÚeventÚspaceÚtrees       r   Ústore_mouse_cursorz"NodeAddOperator.store_mouse_cursor6   sV   € àÔ"ˆØŒˆð Œ>Ô (Ò*Ð*à×-Ò-¨eÔ.BÀEÔDXÑYÔYÐYÐYÐYà$(Ô$4ˆEÔ!Ð!Ð!r   c                óD   — | j         }|j        }|j        D ]	}d|_        Œ
d S ©NF)r   r    ÚnodesÚselect)r(   r*   r+   Úns       r   Údeselect_nodeszNodeAddOperator.deselect_nodesC   s5   € àÔ"ˆØŒˆØ”ð 	ð 	ˆAØˆAŒHˆHð	ð 	r   c                óÆ  — |j         }|j        }	 |j                             |¬¦  «        }n<# t          $ r/}|                      dht          |¦  «        ¦  «         Y d }~d S d }~ww xY w| j        D ]Ò}t          |j	        ¦  «        }|}	|j
        }
d|
v r.|
                     dd¦  «        \  }}
|                     |¦  «        }		 t          |	|
|¦  «         Œd# t          $ rb}|                      dht          d¦  «                             |j
        ¦  «        ¦  «         t#          t          |¦  «        ¦  «         Y d }~ŒËd }~ww xY wd|_        ||j        _        |j        |_        |S )N©r"   ÚERRORú.é   ÚERROR_INVALID_INPUTzNode has no attribute {:s}T)r   r    r/   ÚnewÚRuntimeErrorÚreportÚstrr   Úevalr   ÚnameÚrsplitÚpath_resolveÚsetattrÚAttributeErrorÚrpt_ÚformatÚprintr0   Úactiver'   Úlocation)Úselfr(   Ú	node_typer*   r+   ÚnodeÚexÚsettingr   Ú	node_dataÚnode_attr_nameÚnode_data_paths               r   Úcreate_nodezNodeAddOperator.create_nodeJ   s�  € ØÔ"ˆØŒˆð	Ø”:—>’> y�>Ñ1Ô1ˆDˆDøÝð 	ð 	ð 	Ø�KŠK˜˜	¥3 r¡7¤7Ñ+Ô+Ð+Ø�4�4�4�4�4øøøøð	øøøð ”}ð 	ð 	ˆGå˜œÑ'Ô'ˆEØˆIØ$œ\ˆNð �nÐ$Ð$Ø1?×1FÒ1FÀsÈAÑ1NÔ1NÑ.� Ø ×-Ò-¨nÑ=Ô=�	ðÝ˜	 >°5Ñ9Ô9Ð9Ð9øÝ!ð ð ð Ø—’Ø*Ð+ÝÐ5Ñ6Ô6×=Ò=¸g¼lÑKÔKñMô Mð Mõ •c˜"‘g”g‘”������øøøøð	øøøð ˆŒØ ˆŒ
ÔØÔ-ˆŒØˆs-   �, ¬
A%¶$A Á A%ÃCÃ
D?ÃAD:Ä:D?c                óP   — |j         }|o|j        dk    o|j        o|j        j        S ©NÚNODE_EDITOR©r   r"   r    Úis_editable©Úclsr(   r*   s      r   ÚpollzNodeAddOperator.pollm   s;   € àÔ"ˆàð @˜5œ:¨Ò6ð @Ø”ð@Ø$)¤OÔ$?ð	Ar   c                óº   — |                       ||¦  «         |                      |¦  «        }| j        r(d|v r$t          j        j                             d¦  «         |S )NÚFINISHEDÚINVOKE_DEFAULT)r,   Úexecuter   ÚbpyÚopsrJ   Ú!translate_attach_remove_on_cancel)rH   r(   r)   Úresults       r   ÚinvokezNodeAddOperator.invokev   s]   € Ø×Ò ¨Ñ/Ô/Ð/Ø—’˜gÑ&Ô&ˆàÔð 	M :°Ð#7Ð#7åŒGŒL×:Ò:Ð;KÑLÔLÐLàˆr   N)r   r   r   r   Ústaticmethodr,   r2   rP   ÚclassmethodrX   ra   r   r   r   r   r   (   s±   € € € € € € ðð ð ñ ð
ð ð ñ ð ð	5ð 	5ñ „\ð	5ð ðð ñ „\ðð!ð !ð !ðF ðAð Añ „[ðAðð ð ð ð r   r   c                  óJ   — e Zd ZU dZdZdZddhZded<   d„ Ze	d	„ ¦   «         Z
d
S )ÚNODE_OT_add_nodezAdd a node to the active treeznode.add_nodezAdd NodeÚREGISTERÚUNDOz9StringProperty(name='Node Type', description='Node type')r"   c                ó¢   — | j                              d¦  «        r3|                      |¦  «         |                      || j        ¦  «         dhS dhS )Nr"   rZ   Ú	CANCELLED)Ú
propertiesÚis_property_setr2   rP   r"   )rH   r(   s     r   r\   zNODE_OT_add_node.executeŽ   sV   € ØŒ?×*Ò*¨6Ñ2Ô2ð 	!Ø×Ò Ñ(Ô(Ð(Ø×Ò˜W d¤iÑ0Ô0Ð0Ø�<Ðà�=Ð r   c                ó4  — ddl m} |d         }||                     ¦   «         v r9|j        D ]1}|j        dk    r$t          |j        ¦  «        }|j        r	|j        c S Œ2t          j	        j
                             |¦  «        }|�t          |j        ¦  «        S dS )Nr   )Únode_tree_group_typer"   Ú	node_treeÚ )Únodeitems_builtinsrm   Úvaluesr   r>   r=   r   Údescriptionr]   ÚtypesÚNodeÚbl_rna_get_subclassÚtip_)rW   Ú_contextrj   rm   ÚnodetyperL   Ú
node_groupÚbl_rnas           r   rr   zNODE_OT_add_node.description–   s²   € à;Ð;Ð;Ð;Ð;Ð;à˜fÔ%ˆØÐ+×2Ò2Ñ4Ô4Ð4Ð4Ø%Ô.ð 6ð 6�Ø”< ;Ò.Ð.Ý!% g¤mÑ!4Ô!4�JØ!Ô-ð 6Ø)Ô5Ð5Ð5Ð5øÝ””×3Ò3°HÑ=Ô=ˆØÐÝ˜Ô*Ñ+Ô+Ð+à�2r   N)r   r   r   Ú__doc__Ú	bl_idnameÚbl_labelÚ
bl_optionsr   r\   rc   rr   r   r   r   re   re   ‚   sn   € € € € € € Ø'Ð'Ø€IØ€HØ˜fÐ%€Jðð ð ñ ð!ð !ð !ð ðð ñ „[ðð ð r   re   c                  ó$   — e Zd ZU ded<   dZd„ ZdS )ÚNodeAddZoneOperatorzvFloatVectorProperty(name='Offset', description='Offset of nodes from the cursor when added', size=2, default=(150, 0))ÚoffsetTc                ó6  — |j         }|j        }|                      |¦  «         |                      || j        ¦  «        }|                      || j        ¦  «        }|�|€dhS |                     |¦  «         |xj        t          | j	        ¦  «        z  c_        |xj        t          | j	        ¦  «        z  c_        | j
        rWt          d„ |j        D ¦   «         ¦  «        }t          d„ |j        D ¦   «         ¦  «        }|j                             ||¦  «         dhS )Nri   c              3  ó0   K  — | ]}|j         d k    ¯|V — ŒdS ©ÚGEOMETRYNr4   ©Ú.0Úss     r   ú	<genexpr>z.NodeAddZoneOperator.execute.<locals>.<genexpr>Å   s.   è è € ÐUÐU QÀÄÈ*Ò@TÐ@T˜qÐ@TÐ@TÐ@TÐ@TÐUÐUr   c              3  ó0   K  — | ]}|j         d k    ¯|V — ŒdS r„   r4   r†   s     r   r‰   z.NodeAddZoneOperator.execute.<locals>.<genexpr>Æ   s.   è è € ÐSÐS 1¸a¼fÈ
Ò>RÐ>R˜QÐ>RÐ>RÐ>RÐ>RÐSÐSr   rZ   )r   r    r2   rP   Úinput_node_typeÚoutput_node_typeÚpair_with_outputrG   r   r�   Úadd_default_geometry_linkÚnextÚoutputsÚinputsÚlinksr9   )rH   r(   r*   r+   Ú
input_nodeÚoutput_nodeÚfrom_socketÚ	to_sockets           r   r\   zNodeAddZoneOperator.execute²   s#  € ØÔ"ˆØŒˆà×Ò˜GÑ$Ô$Ð$Ø×%Ò% g¨tÔ/CÑDÔDˆ
Ø×&Ò& w°Ô0EÑFÔFˆØÐ Ð!4Ø�=Ð ð 	×#Ò# KÑ0Ô0Ð0àÐÔ�v d¤kÑ2Ô2Ñ2ÐÔØÐÔ¥ t¤{Ñ 3Ô 3Ñ3ÐÔàÔ)ð 	3õ ÐUÐU¨*Ô*<ÐUÑUÔUÑUÔUˆKÝÐSÐS¨Ô(:ÐSÑSÔSÑSÔSˆIØŒJ�NŠN˜9 kÑ2Ô2Ð2àˆ|Ðr   N)r   r   r   r   rŽ   r\   r   r   r   r€   r€   ¨   sA   € € € € € € ðð ð ñ ð !%Ððð ð ð ð r   r€   c                  ó*   — e Zd ZdZdZdZddhZdZdZdS )	ÚNODE_OT_add_simulation_zonez=Add simulation zone input and output nodes to the active treeznode.add_simulation_zonezAdd Simulation Zonerf   rg   ÚGeometryNodeSimulationInputÚGeometryNodeSimulationOutputN©	r   r   r   r{   r|   r}   r~   r‹   rŒ   r   r   r   r˜   r˜   Ì   s5   € € € € € ØGÐGØ*€IØ$€HØ˜fÐ%€Jà3€OØ5ÐÐÐr   r˜   c                  ó*   — e Zd ZdZdZdZddhZdZdZdS )	ÚNODE_OT_add_repeat_zonezGAdd a repeat zone that allows executing nodes a dynamic number of timesznode.add_repeat_zonezAdd Repeat Zonerf   rg   ÚGeometryNodeRepeatInputÚGeometryNodeRepeatOutputNr›   r   r   r   r�   r�   Ö   s5   € € € € € ØQÐQØ&€IØ €HØ˜fÐ%€Jà/€OØ1ÐÐÐr   r�   c                  ó.   — e Zd ZdZdZdZddhZdZdZdZ	d	S )
Ú)NODE_OT_add_foreach_geometry_element_zonez`Add a For Each Geometry Element zone that allows executing nodes e.g. for each vertex separatelyz&node.add_foreach_geometry_element_zonez"Add For Each Geometry Element Zonerf   rg   Ú'GeometryNodeForeachGeometryElementInputÚ(GeometryNodeForeachGeometryElementOutputFN)
r   r   r   r{   r|   r}   r~   r‹   rŒ   rŽ   r   r   r   r¡   r¡   à   s;   € € € € € ØjÐjØ8€IØ3€HØ˜fÐ%€Jà?€OØAÐØ %ÐÐÐr   r¡   c                  ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	Ú#NODE_OT_collapse_hide_unused_togglez.Toggle collapsed nodes and hide unused socketsz node.collapse_hide_unused_togglez Collapse and Hide Unused Socketsrf   rg   c                óP   — |j         }|o|j        dk    o|j        o|j        j        S rR   rT   rV   s      r   rX   z(NODE_OT_collapse_hide_unused_toggle.pollñ   s7   € àÔ"ˆàð B˜5œ:¨Ò6ð BØ”Ð@ U¤_Ô%@ð	Cr   c                ó¨   — |j         }|j        }|j        D ]:}|j        r1|j         }||_        |j        D ]	}||_        Œ
|j        D ]	}||_        Œ
Œ;dhS ©NrZ   )r   r    r/   r0   Úhider‘   r�   )rH   r(   r*   r+   rJ   r©   Úsockets          r   r\   z+NODE_OT_collapse_hide_unused_toggle.executeø   sy   € ØÔ"ˆØŒˆà”Jð 		'ð 		'ˆDØŒ{ð 'Ø œI˜�à �”	à"œkð 'ð '�FØ"&�F”K�KØ"œlð 'ð '�FØ"&�F”K�Køàˆ|Ðr   N©
r   r   r   r{   r|   r}   r~   rc   rX   r\   r   r   r   r¥   r¥   ë   sY   € € € € € Ø8Ð8Ø2€IØ1€HØ˜fÐ%€JàðCð Cñ „[ðCðð ð ð ð r   r¥   c                  ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚNODE_OT_tree_path_parentzGo to parent node treeznode.tree_path_parentzParent Node Treerf   rg   c                óZ   — |j         }|o"|j        dk    ot          |j        ¦  «        dk    S )NrS   r7   )r   r"   ÚlenÚpathrV   s      r   rX   zNODE_OT_tree_path_parent.poll  s.   € àÔ"ˆàÐO˜5œ:¨Ò6ÐO½CÀÄ
¹O¼OÈaÒ<OÐPr   c                óH   — |j         }|j                             ¦   «          dhS r¨   )r   r°   Úpop)rH   r(   r*   s      r   r\   z NODE_OT_tree_path_parent.execute  s$   € ØÔ"ˆàŒ
�ŠÑÔÐàˆ|Ðr   Nr«   r   r   r   r­   r­   
  sY   € € € € € Ø Ð Ø'€IØ!€HØ˜fÐ%€JàðQð Qñ „[ðQð
ð ð ð ð r   r­   c                  ó$   — e Zd Zed„ ¦   «         ZdS )ÚNodeInterfaceOperatorc                ó\   — |j         }|r|j        dk    s|j        sdS |j        j        rdS dS )NrS   FT)r   r"   r    Úis_embedded_datarV   s      r   rX   zNodeInterfaceOperator.poll  sA   € àÔ"ˆØð 	˜œ
 mÒ3Ð3¸5¼?Ð3Ø�5ØŒ?Ô+ð 	Ø�5Øˆtr   N)r   r   r   rc   rX   r   r   r   r´   r´     s-   € € € € € Øðð ñ „[ðð ð r   r´   c                  óJ   — e Zd ZU dZdZdZddhZded<   ed„ ¦   «         Z	d	„ Z
d
S )ÚNODE_OT_interface_item_newzAdd a new item to the interfaceznode.interface_item_newzNew Itemrf   rg   z«EnumProperty(name='Item Type', description='Type of the item to create', items=(('INPUT', 'Input', ''), ('OUTPUT', 'Output', ''), ('PANEL', 'Panel', '')), default='INPUT')Ú	item_typec                óN  — d}t          | d¦  «        r|                      |¦  «        r|S t          j        j        g}|rg|                     ¦   «         }t          |dd¦  «        }|                      |¦  «        r|S |                     |                     ¦   «         ¦  «         |°ed S d S )NÚNodeSocketFloatÚvalid_socket_typer|   ro   )	Úhasattrr¼   r]   rs   Ú
NodeSocketr²   ÚgetattrÚextendÚ__subclasses__)r+   Úsocket_typeÚtypes_to_checkÚtÚidnames        r   Úfind_valid_socket_typez1NODE_OT_interface_item_new.find_valid_socket_type;  sÉ   € à'ˆõ �tÐ0Ñ1Ô1ð 	°T×5KÒ5KÈKÑ5XÔ5Xð 	ØÐõ œ)Ô.Ð/ˆØð 	6Ø×"Ò"Ñ$Ô$ˆAÝ˜Q ¨RÑ0Ô0ˆFØ×%Ò% fÑ-Ô-ð Ø�à×!Ò! !×"2Ò"2Ñ"4Ô"4Ñ5Ô5Ð5ð ð 	6ð 	6ð 	6ð 	6ð 	6r   c                óJ  — |j         }|j        }|j        }|j        }|r|j        nd}| j        dk    r,|                     d|                      |¦  «        d¬¦  «        }n[| j        dk    r,|                     d|                      |¦  «        d¬¦  «        }n$| j        dk    r|                     d¦  «        }ndhS |r_|j        dk    r5|j        dk    r*| 	                    ||t          |j        ¦  «        ¦  «         n| 	                    ||j        |d	z   ¦  «         ||_        d
hS )NéÿÿÿÿÚINPUTÚSocket)rÂ   Úin_outÚOUTPUTÚPANELÚPanelri   r7   rZ   )r   r    Ú	interfacerF   Úpositionr¹   Ú
new_socketrÆ   Ú	new_panelÚmove_to_parentr¯   Úinterface_itemsÚparent)rH   r(   Úsnoder+   rÏ   Úactive_itemÚ
active_posÚitems           r   r\   z"NODE_OT_interface_item_new.executeN  sI  € ØÔ"ˆØŒˆØ”Nˆ	ð  Ô&ˆØ-8Ð@�[Ô)Ð)¸bˆ
àŒ>˜WÒ$Ð$Ø×'Ò'¨¸d×>YÒ>YÐZ^Ñ>_Ô>_ÐhoÐ'ÑpÔpˆDˆDØŒ^˜xÒ'Ð'Ø×'Ò'¨¸d×>YÒ>YÐZ^Ñ>_Ô>_ÐhpÐ'ÑqÔqˆDˆDØŒ^˜wÒ&Ð&Ø×&Ò& wÑ/Ô/ˆDˆDà�=Ð àð 	SàÔ$¨Ò/Ð/°D´NÀgÒ4MÐ4MØ×(Ò(¨¨{½CÀÔ@[Ñ<\Ô<\Ñ]Ô]Ð]Ð]à×(Ò(¨¨{Ô/AÀ:ÐPQÁ>ÑRÔRÐRØˆ	Ôàˆ|Ðr   N)r   r   r   r{   r|   r}   r~   r   rb   rÆ   r\   r   r   r   r¸   r¸   )  sn   € € € € € € Ø)Ð)Ø)€IØ€HØ˜fÐ%€Jð	ð 	ð 	ñ 	ð ð6ð 6ñ „\ð6ð$ð ð ð ð r   r¸   c                  óH   ‡ — e Zd ZdZdZdZddhZeˆ fd„¦   «         Zd„ Z	ˆ xZ
S )Ú NODE_OT_interface_item_duplicatez.Add a copy of the active item to the interfaceznode.interface_item_duplicatezDuplicate Itemrf   rg   c                ó†   •— t          ¦   «                              |¦  «        sdS |j        }|j        }|j        }|j        d uS r.   )ÚsuperrX   r   r    rÏ   rF   )rW   r(   rÖ   r+   rÏ   Ú	__class__s        €r   rX   z%NODE_OT_interface_item_duplicate.pollq  sD   ø€ å‰wŒw�|Š|˜GÑ$Ô$ð 	Ø�5àÔ"ˆØŒˆØ”Nˆ	ØÔ tÐ+Ð+r   c                ó|   — |j         }|j        }|j        }|j        }|r|                     |¦  «        }||_        dhS r¨   )r   r    rÏ   rF   Úcopy)rH   r(   rÖ   r+   rÏ   rÙ   Ú	item_copys          r   r\   z(NODE_OT_interface_item_duplicate.execute{  sI   € ØÔ"ˆØŒˆØ”Nˆ	ØÔˆàð 	)Ø!Ÿš tÑ,Ô,ˆIØ(ˆIÔàˆ|Ðr   )r   r   r   r{   r|   r}   r~   rc   rX   r\   Ú__classcell__)rÞ   s   @r   rÛ   rÛ   k  sk   ø€ € € € € Ø8Ð8Ø/€IØ€HØ˜fÐ%€Jàð,ð ,ð ,ð ,ñ „[ð,ð
ð 
ð 
ð 
ð 
ð 
ð 
r   rÛ   c                  ó(   — e Zd ZdZdZdZddhZd„ ZdS )ÚNODE_OT_interface_item_removez%Remove active item from the interfaceznode.interface_item_removezRemove Itemrf   rg   c                óÌ   — |j         }|j        }|j        }|j        }|rD|                     |¦  «         t          |j        t          |j        ¦  «        dz
  ¦  «        |_        dhS )Nr7   rZ   )	r   r    rÏ   rF   ÚremoveÚminÚactive_indexr¯   Ú
items_tree)rH   r(   rÖ   r+   rÏ   rÙ   s         r   r\   z%NODE_OT_interface_item_remove.executeŽ  sk   € ØÔ"ˆØŒˆØ”Nˆ	ØÔˆàð 	`Ø×Ò˜TÑ"Ô"Ð"Ý%(¨Ô)?ÅÀYÔEYÑAZÔAZÐ]^ÑA^Ñ%_Ô%_ˆIÔ"àˆ|Ðr   N)r   r   r   r{   r|   r}   r~   r\   r   r   r   rä   rä   ˆ  s=   € € € € € Ø/Ð/Ø,€IØ€HØ˜fÐ%€Jð
ð 
ð 
ð 
ð 
r   rä   c                  óŒ   — e Zd Zd ZdZdZd                     g ej        j	        ¢ej        j
        ¢R ¦  «        Zed„ ¦   «         ZdS )ÚNODE_FH_image_nodez
Image nodeznode.add_fileú;c                óf   — |j         d uo(|j         j        dk    o|j        d uo|j        j        dk    S )NrS   r   )Úarear"   r!   )rW   r(   s     r   Ú	poll_dropzNODE_FH_image_node.poll_drop¡  sH   € ð Œ\ Ð%ð .ØŒ\Ô -Ò/ð.àŒ^ 4Ð'ð.ð Œ^Ô  HÒ,ð		
r   N)r   r   r   r|   r}   Úbl_import_operatorÚjoinr]   r°   Úextensions_imageÚextensions_movieÚbl_file_extensionsrc   rï   r   r   r   rë   rë   ›  sg   € € € € € Ø$€IØ€HØ(ÐØŸšÐ"Z C¤HÔ$=Ð"ZÀÄÔ@YÐ"ZÐ"ZÑ[Ô[Ðàð
ð 
ñ „[ð
ð 
ð 
r   rë   )#Ú
__future__r   r]   Ú	bpy.typesr   r   r   Ú	bpy.propsr   r   r	   r
   r   Ú	mathutilsr   Úbpy.app.translationsr   rv   r   rC   r   r   re   r€   r˜   r�   r¡   r¥   r­   r´   r¸   rÛ   rä   rë   Úclassesr   r   r   ú<module>rû      sv  ðð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð �-ñ ô ð ðVð Vð Vð Vð Vñ Vô Vð Vðt#ð #ð #ð #ð #�¨ñ #ô #ð #ðL!ð !ð !ð !ð !˜/ñ !ô !ð !ðH6ð 6ð 6ð 6ð 6Ð"5°xñ 6ô 6ð 6ð2ð 2ð 2ð 2ð 2Ð1°8ñ 2ô 2ð 2ð&ð &ð &ð &ð &Ð0CÀXñ &ô &ð &ðð ð ð ð ¨(ñ ô ð ð>ð ð ð ð ˜xñ ô ð ð(ð ð ð ð ñ ô ð ð?ð ?ð ?ð ?ð ?Ð!6¸ñ ?ô ?ð ?ðDð ð ð ð Ð'<¸hñ ô ð ð:ð ð ð ð Ð$9¸8ñ ô ð ð&
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ð" ààØØØ-Ø'ØØ$Ø!Øð€€€r   