Ë
    �á–jZ4  ã                   ó^  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZ dd	lmZmZmZmZmZmZ dd
lmZmZmZ ddlm Z  ddl!m"Z"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1  e«       Z2 e	dg«       e
ee"g«      d„ «       «       Z3 e	dg«       e
ee"g«      d„ «       «       Z4d„ Z5 e	dg«       e
ee"g«      d„ «       «       Z6 e	dg«       e
ee"g«      d„ «       «       Z7 e	dg«       e
ee"g«      d„ «       «       Z8 e	dg«       e
ee#g«      d„ «       «       Z9 e	dg«       e
ee#g«      d„ «       «       Z: e	dg«       e
ee#g«      d„ «       «       Z; e	ddg«       e
ee#g«      d„ «       «       Z< e	dg«       e
ee#g«      d„ «       «       Z= e	dg«       e
ee#g«      d„ «       «       Z> e	dg«       e
eg«      d „ «       «       Z? e	dg«       e
eg«      d!„ «       «       Z@ e	dg«       e
ee#g«      d"„ «       «       ZA e	dg«       e
ee#g«      d#„ «       «       ZBy$)%uT   Shipper/transporter billing & wallet HTTP handlers (plan Â§7, transporter earnings).é    )ÚDecimal)Úget_user_model)ÚSumÚQ)Úapi_viewÚpermission_classes)ÚIsAuthenticated)ÚUserPushDevice)ÚInvoiceÚLedgerEntryÚPaymentÚWithdrawalRequest)Úconfirm_card_collectionÚconfirm_cash_collectionÚcreate_withdrawal_requestÚget_or_create_walletÚprocess_shipper_trip_paymentÚuser_can_confirm_trip_payment)ÚShipmentÚTripÚNotificationé   )Ú#auth_profile_notifications_queryset)Ú	IsShipperÚIsTransporter)Únotify_users)Úapi_response)	ÚWalletSerializerÚPaymentSerializerÚInvoiceSerializerÚLedgerEntrySerializerÚWithdrawalRequestSerializerÚWithdrawalCreateSerializerÚTripPaySerializerÚFcmTokenSerializerÚShipmentSerializerÚGETc                 ón   — t        | j                  «      }t        ddt        |«      j                  ¬«      S ©NéÈ   zWallet retrieved successfully.©Údata©r   Úuserr   r   r,   ©ÚrequestÚws     ú)/var/www/html/truck-me/api/billing_api.pyÚshipper_walletr3   '   ó/   € ô 	˜WŸ\™\Ó*€AÜ˜Ð=ÔDTÐUVÓDW×D\ÑD\Ô]Ð]ó    ÚPOSTc           	      óô  — 	 t         j                  j                  dd«      j                  || j                  ¬«      }t        | j                  ¬«      }|j                  «       st        d	d
|j                  ¬«      S |j                  d   }	 t        || j                  || ¬«      }t        |d   «      j                  |j                   j"                  dœ}|j                  d«      rt%        |d   «      j                  |d<   |d   }|j&                  t(        j*                  j,                  k(  r˜|j.                  t(        j0                  j2                  t(        j0                  j4                  fv rXt7        |j8                  gdt        |j:                  «      t        |j<                  «      t        |j>                  «      dœdd¬«       |j&                  t(        j*                  j@                  k(  r|j.                  t(        j0                  jB                  k(  rXt7        |j8                  gdt        |j:                  «      t        |j<                  «      t        |j>                  «      dœdd¬«       |j&                  t(        j*                  jD                  k(  r|j.                  t(        j0                  jF                  k(  rXt7        |j8                  gdt        |j:                  «      t        |j<                  «      t        |j>                  «      dœdd¬«       t        dd|¬«      S # t         j
                  $ r t        ddd¬«      cY S w xY w# t        $ r*}t        d	t        |«      t        |«      ¬«      cY d }~S d }~ww xY w)NÚshipmentÚaccepted_bid)ÚpkÚshipment__shipperé”  úTrip not found.ú
Not found.©Úerrorr+   é�  úValidation failed.Úmethod)ÚtripÚshipperrC   r0   Úpayment)rF   Ú	unique_idÚinvoiceÚPAYMENT_RECEIVED)Útrip_idÚ
payment_idÚamountzPayment receivedz'A shipper completed payment for a trip.©ÚtitleÚbodyÚPAYMENT_PENDING_CODzCash on deliveryz*Collect cash for this trip when delivered.ÚPAYMENT_PENDING_CARDzCard payment pendingz2Confirm card payment when collected for this trip.r*   zPayment processed.)$r   ÚobjectsÚselect_relatedÚgetr.   ÚDoesNotExistr   r$   r,   Úis_validÚerrorsÚvalidated_datar   Ú
ValueErrorÚstrr   r8   rG   r    Ústatusr   ÚStatusÚCAPTUREDrC   ÚMethodÚWALLETÚCREDITr   Úpayee_idrJ   ÚidrL   ÚPENDING_CODÚCASHÚREQUIRES_ACTIONÚCARD)	r0   Útrip_pkrD   ÚserrC   ÚresultÚexcÚoutÚps	            r2   Úshipper_trip_payrm   .   s‘  € ðHÜ�|‰|×*Ñ*¨:°~ÓF×JÑJÈgÐip×iuÑiuÐJÓvˆô  §¡Ô
.€CØ�<‰<Œ>Ü˜CÐ!5¸S¿Z¹ZÔHÐHØ×Ñ Ñ)€Fð;Ü-°4ÀÇÁÐV\ÐfmÔnˆô (¨¨yÑ(9Ó:×?Ñ?ÈdÏmÉm×NeÑNeÑ
f€CØ‡z�z�)ÔÜ*¨6°)Ñ+<Ó=×BÑBˆˆI‰ØˆyÑ€AØ‡x�x”7—>‘>×*Ñ*Ò*¨q¯x©x¼G¿N¹N×<QÑ<QÔSZ×SaÑSa×ShÑShÐ;iÑ/iÜØ�Z‰ZˆLØÜ˜AŸI™I›´c¸!¿$¹$³iÌ3ÈqÏxÉxË=ÑYØ$Ø:õ	
ð 	‡x�x”7—>‘>×-Ñ-Ò-°!·(±(¼g¿n¹n×>QÑ>QÒ2QÜØ�Z‰ZˆLØ!Ü˜AŸI™I›´c¸!¿$¹$³iÌ3ÈqÏxÉxË=ÑYØ$Ø=õ	
ð 	‡x�x”7—>‘>×1Ñ1Ò1°a·h±hÄ'Ç.Á.×BUÑBUÒ6UÜØ�Z‰ZˆLØ"Ü˜AŸI™I›´c¸!¿$¹$³iÌ3ÈqÏxÉxË=ÑYØ(ØEõ	
ô ˜Ð1¸Ô<Ð<øôM ×Ñò HÜ˜CÐ!2¸,ÔGÒGðHûô ò ;Ü˜C¤ S£´°S³Ô:Õ:ûð;ús/   ‚;L ÂM Ì!MÍ MÍ	M7ÍM2Í,M7Í2M7c                 ó
  — 	 t         j                  j                  d«      j                  |¬«      }t        || j                  ¬«      sd t        ddd¬«      fS |d fS # t         j                  $ r d t        ddd¬«      fcY S w xY w)Nr8   )r:   r<   r=   r>   r?   )rD   r.   )r   rR   rS   rT   rU   r   r   r.   )r0   rg   rD   s      r2   Ú_trip_for_payment_confirmro   \   s‡   € ðNÜ�|‰|×*Ñ*¨:Ó6×:Ñ:¸gÐ:ÓFˆô )¨d¸¿¹ÕFØ”\ #Ð'8ÀÔMÐMÐMØ�ˆ:Ðøô	 ×Ñò NØ”\ #Ð'8ÀÔMÐMÒMðNús   ‚/A Á#BÂBc                 óâ   — t         j                  j                  | j                  ¬«      j	                  ddd«      j                  d«      d d }t        ddt        |d¬	«      j                  ¬
«      S )N)rE   rD   Útrip__shipmentrF   ú
-issued_atr*   z Invoices retrieved successfully.T©Úmanyr+   )	r   rR   Úfilterr.   rS   Úorder_byr   r    r,   ©r0   Úqss     r2   Úshipper_invoice_listry   f   sf   € ô 	�‰×Ñ w§|¡|ÐÓ4ß	‰˜Ð 0°)Ó	<ß	‰�,Ó	  ð	&ð ô
 ˜Ð?ÔFWÐXZÐaeÔFf×FkÑFkÔlÐlr5   c                 ó  — 	 t         j                  j                  ddd«      j                  || j                  ¬«      }t        d	d
t        |«      j                  ¬«      S # t         j
                  $ r t        ddd¬«      cY S w xY w)NrD   rq   rF   )r:   rE   r<   zInvoice not found.r>   r?   r*   zInvoice retrieved successfully.r+   )	r   rR   rS   rT   r.   rU   r   r    r,   )r0   r:   Úinvs      r2   Úshipper_invoice_detailr|   q   s~   € ðKä�O‰O×*Ñ*¨6Ð3CÀYÓOß‰S�B §¡ˆSÓ-ð 	ô ˜Ð>ÔEVÐWZÓE[×E`ÑE`ÔaÐaøô ×Ñò KÜ˜CÐ!5¸\ÔJÒJðKús   ‚<A Á!BÂBc           
      ó   — t         j                  j                  t         j                  j                  t         j                  j                  f}t         j
                  j                  | j                  |¬«      j                  dd«      j                  d«      j                  d«      d d }t        ddt        |d	d
| i¬«      j                  ¬«      S )N)rE   Ú
status__inrD   Ú	trip__podÚtrip__pod__photosz-updated_atéô  r*   z(Shipment history retrieved successfully.Tr0   )rt   Úcontextr+   )r   r\   Ú	DELIVEREDÚ	COMPLETEDÚCLOSEDrR   ru   r.   rS   Úprefetch_relatedrv   r   r&   r,   )r0   Údonerx   s      r2   Úshipper_shipment_historyrˆ   ~   sÊ   € ô 	�‰×!Ñ!Ü�‰×!Ñ!Ü�‰×Ñð€Dô 	×Ñ×Ñ¨¯©ÀÐÓFß	‰˜ Ó	,ß	Ñ	Ð-Ó	.ß	‰�-Ó	   #ð	'ð ô ˜ÐGÔN`ÐacÐjnð  zCð  ELð  yMô  ON÷  OSñ  OSô  Tð  Tr5   c                 ón   — t        | j                  «      }t        ddt        |«      j                  ¬«      S r)   r-   r/   s     r2   Útransporter_walletrŠ   �   r4   r5   c                 óÀ   — t         j                  j                  | j                  ¬«      j	                  d«      d d }t        ddt        |d¬«      j                  ¬«      S )	N©r.   ú-created_atr�   r*   zLedger retrieved successfully.Trs   r+   )r   rR   ru   r.   rv   r   r!   r,   rw   s     r2   Útransporter_ledgerrŽ   —   sT   € ô 
×	Ñ	×	#Ñ	#¨¯©Ð	#Ó	6×	?Ñ	?ÀÓ	NÈtÐPSÐ	T€BÜ˜Ð=ÔDYÐZ\ÐcgÔDh×DmÑDmÔnÐnr5   c           	      óJ  — t         j                  j                  | j                  t         j                  j
                  t         j                  j                  f¬«      j                  d«      d d }t         j                  j                  | j                  t         j                  j
                  t         j                  j                  f¬«      j                  t        d«      ¬«      d   xs t        d«      }t        ddt        |«      t        |d	¬
«      j                  dœ¬«      S )N)r.   Úentry_type__inr�   r*   rL   )Úsr‘   Ú0z Earnings retrieved successfully.Trs   )Útotal_creditedÚentriesr+   )r   rR   ru   r.   Ú	EntryTypeÚWALLET_CREDIT_EARNINGÚCREDIT_EARNINGrv   Ú	aggregater   r   r   rZ   r!   r,   )r0   rx   Útotals      r2   Útransporter_earningsrš   ž   s  € ô 	×Ñ×"Ñ"Ø—‘ä×%Ñ%×;Ñ;Ü×%Ñ%×4Ñ4ðð 	#ó 	
÷ 
‰�-Ó	   #ð	'ð ô ×Ñ×&Ñ&Ø�\‰\ä×!Ñ!×7Ñ7Ü×!Ñ!×0Ñ0ð
ð 'ó ÷ �i”#�h“-€iÓ  ñ&ò 6ô *1°«ð 
ô ØØ*ä! %›jÜ,¨R°dÔ;×@Ñ@ñ
ôð r5   c                 óŽ  — | j                   dk(  r_t        j                  j                  | j                  ¬«      j                  d«      d d }t        ddt        |d¬«      j                  ¬	«      S t        | j                  ¬	«      }|j                  «       st        d
d|j                  ¬«      S 	 t        | j                  |j                  d   |j                  j                  d«      xs d¬«      }t        ddt        |«      j                  ¬	«      S # t        $ r*}t        d
t!        |«      t!        |«      ¬«      cY d }~S d }~ww xY w)Nr'   rŒ   r�   éd   r*   z#Withdrawals retrieved successfully.Trs   r+   rA   rB   r?   rL   ÚnoteÚ )r.   rL   r�   éÉ   zWithdrawal request created.)rC   r   rR   ru   r.   rv   r   r"   r,   r#   rV   rW   r   rX   rT   rY   rZ   )r0   rx   rh   r1   rj   s        r2   Útransporter_withdrawalsr    ¼   s  € ð ‡~�~˜ÒÜ×&Ñ&×-Ñ-°7·<±<Ð-Ó@×IÑIÈ-ÓXÐY]ÐZ]Ð^ˆÜ˜CÐ!FÔMhÐikÐrvÔMw×M|ÑM|Ô}Ð}Ü
$¨'¯,©,Ô
7€CØ�<‰<Œ>Ü˜CÐ!5¸S¿Z¹ZÔHÐHð;Ü%Ø—‘Ø×%Ñ% hÑ/Ø×#Ñ#×'Ñ'¨Ó/Ò5°2ô
ˆô ˜Ð:ÔA\Ð]^ÓA_×AdÑAdÔeÐeøô ò ;Ü˜C¤ S£´°S³Ô:Õ:ûð;ús   Â.AD Ä	EÄD?Ä9EÄ?Ec                 ó|  — t        | |«      \  }}|r|S 	 t        || j                  ¬«       t        |j                  j                  gdt        |j                  «      t        |j                  «      dœdd¬«       t	        d	d
i ¬«      S # t        $ r*}t	        dt        |«      t        |«      ¬«      cY d }~S d }~ww xY w)N©rD   Útransporter_userrA   r?   ÚPAYMENT_CAPTURED©rJ   Úshipment_idúPayment confirmedz%Cash for your shipment was collected.rM   r*   zCash collection confirmed.r+   )ro   r   r.   rY   r   rZ   r   r8   Ú
shipper_idrb   r¦   ©r0   rg   rD   Úerrrj   s        r2   Útransporter_confirm_cashr«   Ð   s¨   € ô *¨'°7Ó;�I€Dˆ#Ù
Øˆ
ð;Ü T¸G¿L¹LÕIô Ø	�‰×	!Ñ	!Ð"ØÜ˜Ÿ™“L´°T×5EÑ5EÓ1FÑGØ!Ø4õô ˜Ð9ÀÔCÐCøô ò ;Ü˜C¤ S£´°S³Ô:Õ:ûð;úó   •B Â	B;ÂB6Â0B;Â6B;c                 ó|  — t        | |«      \  }}|r|S 	 t        || j                  ¬«       t        |j                  j                  gdt        |j                  «      t        |j                  «      dœdd¬«       t	        d	d
i ¬«      S # t        $ r*}t	        dt        |«      t        |«      ¬«      cY d }~S d }~ww xY w)Nr¢   rA   r?   r¤   r¥   r§   z-Card payment for your shipment was confirmed.rM   r*   zCard payment confirmed.r+   )ro   r   r.   rY   r   rZ   r   r8   r¨   rb   r¦   r©   s        r2   Útransporter_confirm_cardr®   ä   s¨   € ô *¨'°7Ó;�I€Dˆ#Ù
Øˆ
ð;Ü T¸G¿L¹LÕIô Ø	�‰×	!Ñ	!Ð"ØÜ˜Ÿ™“L´°T×5EÑ5EÓ1FÑGØ!Ø<õô ˜Ð6¸RÔ@Ð@øô ò ;Ü˜C¤ S£´°S³Ô:Õ:ûð;úr¬   ÚPATCHc                 óš  — t        | j                  ¬«      }|j                  «       st        dd|j                  ¬«      S ddlm} t        j                  j                  | j                  ¬«      \  }}|j                  d   j                  «       |_        |j                  «       |_        |j!                  dd	g¬
«       t        ddddi¬«      S )Nr+   rA   rB   r?   r   )ÚtimezonerŒ   Ú	fcm_tokenÚfcm_token_updated_at)Úupdate_fieldsr*   zFCM token saved successfully.Úfcm_token_updatedT)r%   r,   rV   r   rW   Údjango.utilsr±   r
   rR   Úget_or_creater.   rX   Ústripr²   Únowr³   Úsave)r0   rh   r±   ÚdevÚ_s        r2   Úauth_fcm_tokenr½   ø   s§   € ô  '§,¡,Ô
/€CØ�<‰<Œ>Ü˜CÐ!5¸S¿Z¹ZÔHÐHÝ%Ü×#Ñ#×1Ñ1°w·|±|Ð1ÓD�F€CˆØ×&Ñ& {Ñ3×9Ñ9Ó;€C„MØ'Ÿ|™|›~€CÔØ‡H�H˜KÐ)?Ð@€HÔAÜ˜Ð<ÐDWÐY]ÐC^Ô_Ð_r5   c                 ó�  — | j                   j                  d«      }| j                   j                  d«      }|dv rt        ddd¬«      S 	 |dvrt        |«      nd}|dk  rt        ddd
¬«      S 	 t        |«      }|| j                  j                  k7  r2t        | j                  j                  dd «      dk7  rt        ddd¬«      S |}d}t        |«      }|j                  «       }||||z    }	|	D �
cg c]h  }
|
j                  |
j                  |
j                  |
j                  |
j                  |
j                   |
j"                  |
j$                  |
j&                  dœ	‘Œj }}
t        dd||||t)        |«      |dœ¬«      S # t        t
        f$ r t        dd	d
¬«      cY S w xY w# t        t
        f$ r t        ddd¬«      cY S w xY wc c}
w )NÚuser_idÚoffset)Nrž   rA   zuser_id is required.zMissing user_id.r?   r   zoffset must be a valid integer.zInvalid offset.zoffset must be zero or greater.z user_id must be a valid integer.zInvalid user_id.ÚroleÚADMINi“  z+You can only access your own notifications.z
Forbidden.é   )	rb   rN   ÚmessageÚtyper¿   r,   ÚseenÚ
created_atÚ
updated_atr*   z%Notifications retrieved successfully.)r¿   rÀ   Úlimitr™   ÚcountÚresultsr+   )Úquery_paramsrT   r   ÚintÚ	TypeErrorrY   r.   rb   ÚgetattrrÁ   r   rÊ   rN   rÄ   rÅ   r¿   r,   rÆ   rÇ   rÈ   Úlen)r0   Úuser_id_paramÚoffset_paramrÀ   Úrequested_user_idÚtarget_user_idrÉ   rx   r™   ÚitemsÚnr,   s               r2   Úauth_notificationsr×     sã  € ð ×(Ñ(×,Ñ,¨YÓ7€MØ×'Ñ'×+Ñ+¨HÓ5€Là˜
Ñ"Ü˜CÐ!7Ð?QÔRÐRð]Ø&2¸*Ñ&D”�\Ô"È!ˆð �‚zÜ˜CÐ!BÐJ[Ô\Ð\ð_Ü Ó.Ðð ˜GŸL™LŸO™OÒ+´¸¿¹×8IÑ8IÈ6ÐSWÓ0XÐ\cÒ0cÜ˜CÐ!NÐVbÔcÐcØ&€Nà€EÜ	,¨^Ó	<€BØ�H‰H‹J€EØˆv�f˜u‘nÐ%€Eð öð ð —$‘$Ø—W‘WØ—y‘yØ—F‘FØ—y‘yØ—F‘FØ—F‘FØŸ,™,ØŸ,™,ó
	
ð€Dð ô ØØ/à%ØØØÜ˜“YØñ
ôð øôA ”zÐ"ò ]Ü˜CÐ!BÐJ[Ô\Ò\ð]ûô ”zÐ"ò _Ü˜CÐ!CÐK]Ô^Ò^ð_üòs+   Á
E= Á/F  Ã0A-GÅ=FÆFÆ G Æ?G c                 óž  — t         j                  j                  | j                  t         j                  j
                  t         j                  j                  fd¬«      j                  d«      j                  t        d«      ¬«      j                  d«      d d }|D �cg c]  }|d   t        |d   «      d	œ‘Œ }}t        d
dd|i¬«      S c c}w )NF)r.   r�   Útrip_id__isnullrJ   rL   )r™   z-trip_idi,  r™   )rJ   r“   r*   z%Trip earnings retrieved successfully.Úby_tripr+   )r   rR   ru   r.   r•   r–   r—   ÚvaluesÚannotater   rv   rZ   r   )r0   ÚrowsÚrr,   s       r2   Útransporter_earnings_by_triprß   ?  sÄ   € ô 	×Ñ×"Ñ"Ø—‘ä×%Ñ%×;Ñ;Ü×%Ñ%×4Ñ4ðð "ð 	#ó 	
÷ 
‰�	Ó	ß	‰œ˜H›ˆÓ	&ß	‰�*Ó	˜d˜sð
	$ð 	ð SWÖWÈQ˜˜)™¼¸A¸g¹J»ÓHÐW€DÐWÜ˜ÐDÈIÐW[ÐK\Ô]Ð]ùò Xs   ÂC
c                 óâ  — 	 t         j                  j                  d«      j                  || j                  ¬«      }t        j                  j                  |¬«      j                  t        | j                  ¬«      t        | j                  ¬	«      z  «      j                  d
«      d d }t        j                  j                  ||j                  j                  ¬«      j                  d«      d d }t        dd|j                  |j                  j                  t!        |d¬«      j"                  t%        |d¬«      j"                  dœ¬«      S # t         j
                  $ r t        ddd¬«      cY S w xY w)Nr8   )r:   Útransporterr<   r=   r>   r?   )rD   )Úpayee)Úpayerz-idé2   )rD   rE   rr   rÃ   r*   z'Payment summary retrieved successfully.Trs   )rJ   rG   ÚpaymentsÚinvoicesr+   )r   rR   rS   rT   r.   rU   r   r   ru   r   rv   r   r8   rE   rb   rG   r   r,   r    )r0   rg   rD   rå   Úinvss        r2   Ú transporter_trip_payment_summaryrè   S  s1  € ðHÜ�|‰|×*Ñ*¨:Ó6×:Ñ:¸gÐSZ×S_ÑS_Ð:Ó`ˆô 	�‰×Ñ DÐÓ)ß	‰”˜Ÿ™Ô%¬°·±Ô(=Ñ=Ó	>ß	‰�%‹˜˜"ð	ð ô
 �?‰?×!Ñ! t°T·]±]×5JÑ5JÐ!ÓK×TÑTÐUaÓbÐcfÐdfÐg€DÜØØ1à—w‘wØŸ™×0Ñ0Ü)¨(¸Ô>×CÑCÜ)¨$°TÔ:×?Ñ?ñ	
ô	ð 	øô ×Ñò HÜ˜CÐ!2¸,ÔGÒGðHús   ‚:E
 Å
!E.Å-E.N)CÚ__doc__Údecimalr   Údjango.contrib.authr   Údjango.db.modelsr   r   Úrest_framework.decoratorsr   r   Úrest_framework.permissionsr	   Úaccounts.modelsr
   Úbilling.modelsr   r   r   r   Úbilling.servicesr   r   r   r   r   r   Úcore.modelsr   r   r   Únotification_filtersr   Úpermissionsr   r   Únotifyr   Úresponser   Úserializersr   r   r    r!   r"   r#   r$   r%   r&   ÚUserr3   rm   ro   ry   r|   rˆ   rŠ   rŽ   rš   r    r«   r®   r½   r×   rß   rè   © r5   r2   ú<module>rú      s  ðÙ ZÝ å .ß #ß BÝ 6å *ß KÓ K÷÷ ÷ 5Ñ 4Ý Eß 1Ý  Ý "÷
÷ 
õ 
ñ Ó€ñ 
ˆ5ˆ'ÓÙ�_ iÐ0Ó1ñ^ó 2ó ð^ñ
 
ˆ6ˆ(ÓÙ�_ iÐ0Ó1ñ)=ó 2ó ð)=òXñ 
ˆ5ˆ'ÓÙ�_ iÐ0Ó1ñmó 2ó ðmñ 
ˆ5ˆ'ÓÙ�_ iÐ0Ó1ñbó 2ó ðbñ 
ˆ5ˆ'ÓÙ�_ iÐ0Ó1ñTó 2ó ðTñ  
ˆ5ˆ'ÓÙ�_ mÐ4Ó5ñ^ó 6ó ð^ñ
 
ˆ5ˆ'ÓÙ�_ mÐ4Ó5ñoó 6ó ðoñ
 
ˆ5ˆ'ÓÙ�_ mÐ4Ó5ñó 6ó ðñ8 
ˆ5�&ˆ/ÓÙ�_ mÐ4Ó5ñfó 6ó ðfñ$ 
ˆ6ˆ(ÓÙ�_ mÐ4Ó5ñDó 6ó ðDñ$ 
ˆ6ˆ(ÓÙ�_ mÐ4Ó5ñAó 6ó ðAñ$ 
ˆ7ˆ)ÓÙ�_Ð%Ó&ñ	`ó 'ó ð	`ñ 
ˆ5ˆ'ÓÙ�_Ð%Ó&ñ4ó 'ó ð4ñn 
ˆ5ˆ'ÓÙ�_ mÐ4Ó5ñ^ó 6ó ð^ñ$ 
ˆ5ˆ'ÓÙ�_ mÐ4Ó5ñó 6ó ñr5   