§
    r»jŽ6  ã                   ó@  — d Z ddlZddlmc mZ ddl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mZmZmZmZmZ ddlmZmZmZ ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ej%        defd„¦   «         Z&ej%        defd	„¦   «         Z'ej%        defd
„¦   «         Z( G d„ d¦  «        Z)dS )uõ  
Unit Test Suite for FreeExile Server-Authoritative NPC, Dialogue & Map-Quest Interconnection System.
Theme: Cá»” VÃ• HOANG DÃƒ & Háº®C Ã�M LÆ¯U Ä�Ã€Y (Grimdark Savage Primal Exile ARPG - 100% PoE2 Spirit).

Validates:
1. Feral NPC registration, spatial indexing, and zone querying.
2. Anti-cheat distance validation (Euclidean threshold gating).
3. Dynamic branching dialogue trees with survival and level gating.
4. Seamless integration with QuestEngine (Talk NPC, Deliver to NPC, quest acceptance, reward claiming).
5. Dynamic NPC dialogue adaptation based on player quest progression.
6. Hidden quest serendipity triggers via dialogue choices / blood offerings.
7. Seamless integration with ZoneEngine (Outcast Camp, Bone-Cliff Chasm, Secret Chambers).
é    N)ÚDictÚAnyÚList)
ÚQuestEngineÚ	QuestTypeÚQuestStatusÚObjectiveTypeÚHiddenTriggerTypeÚObjectiveStateÚ
RewardItemÚQuestRewardÚHiddenTriggerÚQuestDefinition)Ú
ZoneEngineÚZoneTypeÚZoneEnvironment)Ú	NpcEngineÚNpcRoleÚNpcServiceTypeÚNpcDialogueChoiceÚNpcDialogueNodeÚNpcDialogueTreeÚNpcDefinitionÚcreate_canonical_npc_engineÚreturnc                  óü  — t          ¦   «         } |                      t          dddt          j        dg t          ddt          j        dd¬¦  «        gt          d	t          d
dd¦  «        gd¬¦  «        ¬¦  «        ¦  «         |                      t          dddt          j        dg t          ddt          j
        dd¬¦  «        gt          dt          ddd¦  «        gd¬¦  «        ¬¦  «        ¦  «         |                      t          dddt          j        dg t          ddt          j        dd¬¦  «        gt          dt          d d!d¦  «        gd¬¦  «        t          t          j        d"¬#¦  «        ¬$¦	  «	        ¦  «         | S )%NÚquest_intro_doc_cou"   Sinh Tá»“n NÆ¡i Vá»±c TÃ¡ng Kiáº¿muj   TÃ¬m gáº·p LÃ£o Ä�á»™c Cá»‘t táº¡i Vá»±c TÃ¡ng Kiáº¿m Ä‘á»ƒ Ä‘oáº¡t láº¥y thanh tÃ  Ä‘ao máº» sá»‘ng sÃ³t.é   Úobj_talk_doc_cou$   Ä�Ã m Ä‘áº¡o vá»›i LÃ£o Ä�á»™c Cá»‘tÚnpc_doc_co_tan_kiem)Úobjective_idÚdescriptionÚobj_typeÚ	target_idÚtarget_counti,  Úcurrency_primordial_stoneu   Háº¯c SÆ¡ Tháº¡ché   )ÚexpÚspirit_stonesÚmeridian_points)Úquest_idÚtitler"   Ú
quest_typeÚrequired_levelÚprerequisite_quest_idsÚ
objectivesÚrewardÚquest_deliver_ancient_wineu   Hiáº¿n Táº¿ Huyáº¿t Tá»­uul   Ä�em Há»—n NguyÃªn Tá»­u dÃ¢ng cho Cuá»“ng NhÃ¢n BÃ£o CÃ¡t táº¡i VÃ´ Ä�á»‹nh BÃ£o CÃ¡t Ä‘á»ƒ má»Ÿ Ä‘Æ°á»�ng.é   Úobj_deliver_wineu4   Giao Há»—n NguyÃªn Tá»­u cho Cuá»“ng NhÃ¢n BÃ£o CÃ¡tÚnpc_sa_mac_du_thaniè  Úcurrency_blood_soul_stoneu   Huyáº¿t Há»“n Tháº¡chÚhidden_ancient_sword_secretu   TÃ n SÃ¡t Di TÃ­ch Cá»• MauW   Ká»³ duyÃªn Ä‘Ã m Ä‘áº¡o vá»›i LÃ£o Ä�á»™c Cá»‘t hÃ© lá»™ há»‘ chÃ´n tÃ n binh Cá»• Ma.Úobj_uncover_secretu   KhÃ¡m phÃ¡ há»‘ chÃ´n tÃ n binhÚloc_ancient_steleiÄ	  Ú currency_blood_reflection_mirroru   Huyáº¿t áº¢nh Cá»• KÃ­nhu8   Ä�Ã m luáº­n bÃ­ máº­t tÃ n sÃ¡t vá»›i LÃ£o Ä�á»™c Cá»‘t)Útrigger_typer"   )	r+   r,   r"   r-   r.   r/   r0   r1   Úhidden_trigger)r   Úregister_questr   r   ÚNORMALr   r	   ÚTALK_NPCr   r   ÚDELIVER_TO_NPCÚHIDDENÚDISCOVER_LOCATIONr   r
   ÚNPC_DIALOGUE_CHOICE)Úengines    ú3C:\Projects\FreeExile\tests\unit\test_npc_system.pyÚquest_enginerF   ,   s   € å‰]Œ]€Fð ×ÒÝØ)Ø6ð EÝ Ô'ØØ#%åØ!2Ø FÝ*Ô3Ø3Ø!"ðñ ô ðõ ØÝ)Ð*EÐGZÐ\]Ñ^Ô^Ð_Ø !ðñ ô ð!	
ñ 	
ô 	
ñô ð ð4 ×ÒÝØ1Ø-ð GÝ Ô'ØØ#%åØ!3Ø VÝ*Ô9Ø2Ø!"ðñ ô ðõ ØÝ)Ð*EÐG^Ð`aÑbÔbÐcØ !ðñ ô ð!	
ñ 	
ô 	
ñô ð ð4 ×ÒÝØ2Ø.ØqÝ Ô'ØØ#%åØ!5Ø AÝ*Ô<Ø1Ø!"ðñ ô ðõ ØÝ)Ð*LÐNhÐjkÑlÔlÐmØ !ðñ ô õ
 )Ý.ÔBØVðñ ô ð+	
ñ 	
ô 	
ñô ð ð: €Mó    c                  ó   — t          ¦   «         S ©N)r   © rG   rE   Úzone_enginerK   …   s   € å‰<Œ<ÐrG   c                  ó   — t          ¦   «         S rI   )r   rJ   rG   rE   Ú
npc_enginerM   Š   s   € å&Ñ(Ô(Ð(rG   c                   ó¢   — e Zd Zdeddfd„Zdeddfd„Zdeddfd„Zdededdfd„Zdededdfd	„Z	dededdfd
„Z
dededdfd„Zdededdfd„ZdS )ÚTestNpcSystemrM   r   Nc                 ó�  — |                      d¦  «        }t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}x}}d„ |D ¦   «         }d}	|	|v }|s—t          j        d|fd|	|f¦  «        t          j        |	¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}	}d}	|	|v }|s—t          j        d|fd|	|f¦  «        t          j        |	¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}	}d}	|	|v }|s—t          j        d|fd|	|f¦  «        t          j        |	¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}	}| 
                    dddd¬¦  «        }t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}x}}d
S )uS   Kiá»ƒm tra Ä‘Äƒng kÃ½ NPC hoang dÃ£ vÃ  truy váº¥n danh sÃ¡ch NPC theo báº£n Ä‘á»“.Úzone_boundless_sanctuaryé   )ú>=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)sÚlenÚsanctuary_npcs)Úpy0Úpy1Úpy3Úpy6úassert %(py8)sÚpy8Nc                 ó   — h | ]	}|j         ’Œ
S rJ   )Únpc_id)Ú.0Únpcs     rE   ú	<setcomp>zHTestNpcSystem.test_npc_registration_and_zone_querying.<locals>.<setcomp>•   s   € Ð8Ð8Ð8 #�3”:Ð8Ð8Ð8rG   Únpc_bach_hieu_sinh©Úin©z%(py1)s in %(py3)sÚnpc_ids©rW   rX   úassert %(py5)sÚpy5Únpc_van_gioi_thuong_nhanÚnpc_thiet_tuong_au_da_tug        ç      I@)Úradiusr   ©ú>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sÚnearby)Úget_npcs_in_zonerT   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚget_nearby_npcs)ÚselfrM   rU   Ú@py_assert2Ú@py_assert5Ú@py_assert4Ú@py_format7Ú@py_format9re   Ú@py_assert0Ú@py_format4Ú@py_format6ro   s                rE   Ú'test_npc_registration_and_zone_queryingz5TestNpcSystem.test_npc_registration_and_zone_querying�   sØ  € à#×4Ò4Ð5OÑPÔPˆÝ�>Ñ"Ô"Ð' aÐ'Ð" aÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð" aÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�sÑ'Ô'Ð'Õ'Ô'�sÑ'Ô'Ð'Ð'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�>Ñ'Ô'Ð'Õ'Ô'�>Ñ'Ô'Ð'Ð'Õ'Ô'Ð"Ñ'Ô'Õ'Ô' aÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'à8Ð8¨Ð8Ñ8Ô8ˆØ#Ð.Ð# wÐ.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð# wÐ.Ñ.Ô.Õ.Ô.Ð#Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô. wÑ.Ô.Ð.Õ.Ô. wÑ.Ô.Ð.Ð.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ø)Ð4Ð)¨WÐ4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4Ð)¨WÐ4Ñ4Ô4Õ4Ô4Ð)Ñ4Ô4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4¨WÑ4Ô4Ð4Õ4Ô4¨WÑ4Ô4Ð4Ð4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ø)Ð4Ð)¨WÐ4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4Ð)¨WÐ4Ñ4Ô4Õ4Ô4Ð)Ñ4Ô4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4¨WÑ4Ô4Ð4Õ4Ô4¨WÑ4Ô4Ð4Ð4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4ð ×+Ò+Ð,FÈÈSÐY]Ð+Ñ^Ô^ˆÝ�6‰{Œ{Ð˜QÐˆ{˜QŠÐÐÐÕÔÐÐÐÐˆ{˜QÐÑÔÐÕÔÑÔÐÐÕÔ�sÑÔÐÕÔ�sÑÔÐÐÐÕÔÑÔÐÐÕÔ�6ÑÔÐÕÔ�6ÑÔÐÐÕÔˆ{ÑÔÕÔ˜QÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐrG   c                 óx  — |                      d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j	        }d	}||k    }|sªt          j        d
|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}x}}|j
        }|j        }
d}|
|z   }|j        }d}||z   } ||||¦  «        }d}||u }|�sÃt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
x}x}x}x}x}x}x}}|j
        }|j        }
d}|
|z   }|j        } ||||¦  «        }d}||u }|�s°t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœ
z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
x}x}x}x}x}}|                     ddd|j        |j        d ¬!¦  «        \  }}}}d}||u }|s—t          j        d|fd"||f¦  «        d#t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}g }d$}|j        } |¦   «         }||v }|}|sd%}|j        } |¦   «         }||v }|}|�s¤t          j        d&|fd'||f¦  «        t          j        |¦  «        d(t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(t          j        |¦  «        t          j        |¦  «        d)œz  }d*d+|iz  } |                     | ¦  «         |s±t          j        d&|fd,||f¦  «        t          j        |¦  «        d(t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(t          j        |¦  «        t          j        |¦  «        d-œz  }d.d|iz  }|                     |¦  «         t          j        |d ¦  «        i z  }!d/d0|!iz  }"t          t          j        |"¦  «        ¦  «        ‚dx}x}x}x}x}x}x}x}x}}dS )1uV   Kiá»ƒm tra cÆ¡ cháº¿ Server-Authoritative chá»‘ng gian láº­n tá»�a Ä‘á»™ tÆ°Æ¡ng tÃ¡c.r    N©úis not©z%(py0)s is not %(py3)sr_   ©rV   rX   rg   rh   u   LÃ£o Ä�á»™c Cá»‘t©ú==©z,%(py2)s
{%(py2)s = %(py0)s.name
} == %(py5)s©rV   Úpy2rh   úassert %(py7)sÚpy7g       @g      ð?T©Úis)zÂ%(py17)s
{%(py17)s = %(py2)s
{%(py2)s = %(py0)s.validate_interaction_distance
}(%(py3)s, (%(py6)s
{%(py6)s = %(py4)s.x
} + %(py8)s), (%(py12)s
{%(py12)s = %(py10)s.y
} + %(py14)s))
} is %(py20)srM   )rV   r�   rX   Úpy4rY   r[   Úpy10Úpy12Úpy14Úpy17Úpy20zassert %(py22)sÚpy22rk   F)zµ%(py14)s
{%(py14)s = %(py2)s
{%(py2)s = %(py0)s.validate_interaction_distance
}(%(py3)s, (%(py6)s
{%(py6)s = %(py4)s.x
} + %(py8)s), %(py12)s
{%(py12)s = %(py10)s.y
})
} is %(py17)s)
rV   r�   rX   r’   rY   r[   r“   r”   r•   r–   zassert %(py19)sÚpy19Ú	player_01rQ   r   ©Ú	player_idr]   Úzone_idÚplayer_xÚplayer_yÚplayer_level©z%(py0)s is %(py3)sÚsuccessu   báº£n Ä‘á»“Úzonerb   )zD%(py3)s in %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s.lower
}()
}Úmsg)rX   rh   r�   Úpy9z%(py11)sÚpy11)zJ%(py14)s in %(py20)s
{%(py20)s = %(py18)s
{%(py18)s = %(py16)s.lower
}()
})r•   Úpy16Úpy18r—   z%(py22)szassert %(py25)sÚpy25)Úget_npcrq   rr   rs   rt   ru   rv   rw   rx   ÚnameÚvalidate_interaction_distanceÚxÚyÚinteract_with_npcÚlowerÚappendÚ_format_boolop)#rz   rM   r_   r{   Ú@py_assert1r�   r‚   r}   Ú@py_assert3Ú@py_format8r|   Ú@py_assert7Ú@py_assert9Ú@py_assert11Ú@py_assert13Ú@py_assert15Ú@py_assert16Ú@py_assert19Ú@py_assert18Ú@py_format21Ú@py_format23Ú@py_format18Ú@py_format20r¢   r¤   ÚnodeÚ_Ú@py_assert6Ú@py_assert8r€   Ú@py_assert17Ú@py_format10Ú@py_format12Ú@py_format24Ú@py_format26s#                                      rE   Ú#test_anticheat_proximity_validationz1TestNpcSystem.test_anticheat_proximity_validationž   sx	  € à× Ò Ð!6Ñ7Ô7ˆØÐˆs˜$ˆÐÐÐÕÔÐÐÐÐˆs˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØŒxÐ.Ð.Ð.ˆxÐ.Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.ˆxÐ.Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆsÑ.Ô.Ð.Õ.Ô.ˆsÑ.Ô.Ð.Ð.Õ.Ô.ˆxÑ.Ô.Õ.Ô.Ð.Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð Ô7Ð^¸S¼UÐ^ÀSÐ^¸UÀS¹[Ð^È#Ì%Ð^ÐRUÐ^È%ÐRUÉ+Ð^Ð7Ð7¸¸[È+ÑVÔVÐ^ÐZ^Ð^ÐVÐZ^Ð^Ð^Ð^Ñ^Õ^Ô^Ð^Ð^Ð^Ð^ÐVÐZ^Ð^Ñ^Ô^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^ˆzÑ^Ô^Ð^Õ^Ô^ˆzÑ^Ô^Ð^Ð^Õ^Ô^Ð7Ñ^Ô^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^¸Ñ^Ô^Ð^Õ^Ô^¸Ñ^Ô^Ð^Ð^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^¸SÑ^Ô^Ð^Õ^Ô^¸SÑ^Ô^Ð^Ð^Õ^Ô^¸UÑ^Ô^Õ^Ô^ÀSÑ^Ô^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^È#Ñ^Ô^Ð^Õ^Ô^È#Ñ^Ô^Ð^Ð^Õ^Ô^È%Ñ^Ô^Õ^Ô^ÐRUÑ^Ô^Õ^Ô^ÐVÑ^Ô^Õ^Ô^ÐZ^Ñ^Ô^Ð^Ð^Ñ^Ð^Ð^Ð^Ð^Ð^Ñ^Ð^Õ^Õ^Ô^Ð^Ñ^Ô^Ñ^Ô^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^Ð^ð Ô7ÐZ¸S¼UÐZÀTÐZ¸UÀT¹\ÐZÈ3Ì5ÐZÐ7Ð7¸¸\È5ÑQÔQÐZÐUZÐZÐQÐUZÐZÐZÐZÑZÕZÔZÐZÐZÐZÐZÐQÐUZÐZÑZÔZÐZÕZÔZÑZÔZÐZÐZÕZÔZˆzÑZÔZÐZÕZÔZˆzÑZÔZÐZÐZÕZÔZÐ7ÑZÔZÐZÕZÔZÑZÔZÐZÐZÕZÔZ¸ÑZÔZÐZÕZÔZ¸ÑZÔZÐZÐZÐZÕZÔZÑZÔZÐZÐZÕZÔZ¸SÑZÔZÐZÕZÔZ¸SÑZÔZÐZÐZÕZÔZ¸UÑZÔZÕZÔZÀTÑZÔZÐZÕZÔZÑZÔZÐZÐZÕZÔZÈ3ÑZÔZÐZÕZÔZÈ3ÑZÔZÐZÐZÕZÔZÈ5ÑZÔZÕZÔZÐQÑZÔZÕZÔZÐUZÑZÔZÐZÐZÑZÐZÐZÐZÐZÐZÑZÐZÕZÕZÔZÐZÑZÔZÑZÔZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZð !+× <Ò <Ø!Ø(Ø.Ø”UØ”UØð !=ñ !
ô !
Ñˆ��d˜Að  Ðˆw˜%ÐÐÐÐÕÔÐÐÐÐˆw˜%ÐÑÔÐÕÔÑÔÐÐÕÔˆwÑÔÐÕÔˆwÑÔÐÐÕÔ˜%ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØDÐDˆ}ÐD ¤	ÐD 	 	¡¤ÐDˆ} Ð+ÐDÐDÐDÐDÐD¨vÐD¸¼ÐD¸¸¹¼ÐD¨v¸Ð/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ÐDÐD¨v¸ÐDÑDÔDÕDÔD¨vÑ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ÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDrG   c                 óÐ  — |                      d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}| 	                    d	|j
        |j        |j        |j        d
¬¦  «        \  }}}	}
d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}|	|u}|s—t          j        d|fd|	|f¦  «        dt          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|	j        }t          |¦  «        }d}||k    }|�st          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}}|	j        d         }|                     d	|j
        |	j        |j        ¬¦  «        \  }}}}}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }|j        }||k    }|sèt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd |iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}dS )!uK   Kiá»ƒm tra luá»“ng há»™i thoáº¡i phÃ¢n nhÃ¡nh sinh tá»“n vÃ  chuyá»ƒn node.r    Nr…   r‡   r_   rˆ   rg   rh   rš   r   r›   Tr�   r¡   r¢   Úinitial_noder   rm   )zL%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.choices
})
} > %(py8)srT   )rV   rW   rX   rh   r[   úassert %(py10)sr“   )rœ   r]   Úcurrent_node_idÚ	choice_idÚokÚ	next_noder‰   )zS%(py2)s
{%(py2)s = %(py0)s.node_id
} == %(py6)s
{%(py6)s = %(py4)s.target_node_id
}Úfirst_choice©rV   r�   r’   rY   rZ   r[   )rª   rq   rr   rs   rt   ru   rv   rw   rx   r¯   r]   r�   r­   r®   ÚchoicesrT   Úselect_dialogue_choiceÚnode_idrÐ   Útarget_node_id)rz   rM   r_   r{   r³   r�   r‚   r¢   r¤   rÍ   rÃ   r}   r¶   rÄ   r   Ú@py_format11rÓ   rÑ   Ú
choice_msgrÒ   ÚserviceÚpayloadr|   r´   r~   s                            rE   Útest_branching_dialogue_flowz*TestNpcSystem.test_branching_dialogue_flow¶   sÏ  € à× Ò Ð!6Ñ7Ô7ˆØÐˆs˜$ˆÐÐÐÕÔÐÐÐÐˆs˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð )3×(DÒ(DØ!Ø”:Ø”KØ”UØ”UØð )Eñ )
ô )
Ñ%ˆ��l Að Ðˆw˜$ˆÐÐÐÕÔÐÐÐÐˆw˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆwÑÔÐÕÔˆwÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ#'Ð'ˆ| 4Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ| 4Ð'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ|Ñ'Ô'Ð'Õ'Ô'ˆ|Ñ'Ô'Ð'Ð'Õ'Ô' 4Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'ØÔ'Ð,�sÐ'Ñ(Ô(Ð,¨1Ð,Ð(¨1Ò,Ð,Ð,Ñ,Õ,Ô,Ð,Ð,Ð,Ð,Ð(¨1Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,�sÑ,Ô,Ð,Õ,Ô,�sÑ,Ô,Ð,Ð,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,�<Ñ,Ô,Ð,Õ,Ô,�<Ñ,Ô,Ð,Ð,Õ,Ô,Ð'Ñ,Ô,Õ,Ô,Ð(Ñ,Ô,Õ,Ô,¨1Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð $Ô+¨AÔ.ˆØ6@×6WÒ6WØ!Ø”:Ø(Ô0Ø"Ô,ð	 7Xñ 7
ô 7
Ñ3ˆˆJ˜	 7¨Gð Ðˆr�TˆzÐÐÐÕÔÐÐÐÐˆr�TÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ $Ð$ˆy Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$ˆy Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆyÑ$Ô$Ð$Õ$Ô$ˆyÑ$Ô$Ð$Ð$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$ØÔ Ð? LÔ$?Ð?Ð Ð$?Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð Ð$?Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?ˆyÑ?Ô?Ð?Õ?Ô?ˆyÑ?Ô?Ð?Ð?Õ?Ô?Ð Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô? LÑ?Ô?Ð?Õ?Ô? LÑ?Ô?Ð?Ð?Õ?Ô?Ð$?Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?rG   rF   c           	      ód  — d}|                      |d¬¦  «         |                     |dd¬¦  «        }d}||u }|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}| 
                    |d¦  «        }	d}|	|u}|s—t          j        d|fd|	|f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}|	j        d         }
|
j        }d}||u }|st          j        d|fd||f¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}
x}x}}|                     d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}|                     ||j        |j        |j        |j        d|¬¦  «        \  }}}}d}||u }|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}| 
                    |d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}|j        d         }
|
j        }d}||u }|st          j        d|fd||f¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}
x}x}}|j        }t(          j        }||k    }|sòt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt	          j        ¦   «         v st          j        t(          ¦  «        rt          j        t(          ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}dS )uC   Kiá»ƒm tra NPC cáº­p nháº­t má»¥c tiÃªu TALK_NPC trong QuestEngine.Úplayer_swordsmanr   ©r    r   Tr�   r¡   Úacceptedrˆ   rg   rh   Nr…   r‡   Úprog_beforer   F)z4%(py3)s
{%(py3)s = %(py1)s.is_completed
} is %(py6)s)rW   rX   rY   rZ   r[   r    r_   ©rœ   r]   r�   rž   rŸ   r    rF   r¢   Ú
prog_afterr‰   ©zM%(py2)s
{%(py2)s = %(py0)s.status
} == %(py6)s
{%(py6)s = %(py4)s.COMPLETED
}r   rÔ   )Úinitialize_playerÚaccept_questrq   rr   rs   rt   ru   rv   rw   rx   Úget_player_questr0   Úis_completedrª   r¯   r]   r�   r­   r®   Ústatusr   Ú	COMPLETED)rz   rM   rF   rœ   rá   r{   r³   r�   r‚   râ   r€   r|   r}   r~   r   r_   r¢   rÃ   rä   r´   s                       rE   Ú)test_npc_quest_interaction_talk_objectivez7TestNpcSystem.test_npc_quest_interaction_talk_objectiveÔ   sK  € ð 'ˆ	Ø×&Ò& y¸qÐ&ÑAÔAÐAð  ×,Ò,¨YÐ8LÐ[\Ð,Ñ]Ô]ˆØÐˆx˜4ÐÐÐÐÕÔÐÐÐÐˆx˜4ÐÑÔÐÕÔÑÔÐÐÕÔˆxÑÔÐÕÔˆxÑÔÐÐÕÔ˜4ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐà"×3Ò3°IÐ?SÑTÔTˆØ"&Ð&ˆ{ $Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ{ $Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ{Ñ&Ô&Ð&Õ&Ô&ˆ{Ñ&Ô&Ð&Ð&Õ&Ô& $Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&ØÔ%Ð&7Ô8ÐNÐ8ÔEÐNÈÐNÐEÈÐNÐNÐNÐNÕNÔNÐNÐNÐNÐNÐEÈÐNÑNÔNÕNÔNÐ8ÑNÔNÕNÔNÐEÑNÔNÕNÔNÈÑNÔNÐNÐNÑNÐNÐNÐNÐNÐNÑNÐNÕNÕNÔNÐNÑNÔNÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNÐNð × Ò Ð!6Ñ7Ô7ˆØÐˆs˜$ˆÐÐÐÕÔÐÐÐÐˆs˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐà%×7Ò7ØØ”:Ø”KØ”UØ”UØØ%ð 8ñ 
ô 
Ñˆ��A�qð Ðˆw˜$ˆÐÐÐÕÔÐÐÐÐˆw˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆwÑÔÐÕÔˆwÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð "×2Ò2°9Ð>RÑSÔSˆ
Ø!%Ð%ˆz Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆz Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆzÑ%Ô%Ð%Õ%Ô%ˆzÑ%Ô%Ð%Ð%Õ%Ô% Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%ØÔ$Ð%6Ô7ÐLÐ7ÔDÐLÈÐLÐDÈÐLÐLÐLÐLÕLÔLÐLÐLÐLÐLÐDÈÐLÑLÔLÕLÔLÐ7ÑLÔLÕLÔLÐDÑLÔLÕLÔLÈÑLÔLÐLÐLÑLÐLÐLÐLÐLÐLÑLÐLÕLÕLÔLÐLÑLÔLÑLÔLÐLÐLÐLÐLÐLÐLÐLÐLÐLØÔ Ð9¥KÔ$9Ð9Ð Ð$9Ò9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9Ð Ð$9Ð9Ñ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9ˆzÑ9Ô9Ð9Õ9Ô9ˆzÑ9Ô9Ð9Ð9Õ9Ô9Ð Ñ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9¥KÑ9Ô9Ð9Õ9Ô9¥KÑ9Ô9Ð9Ð9Õ9Ô9Ð$9Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9rG   c                 óÄ	  — d}|                      |d¬¦  «         |                     |dd¬¦  «         |                     d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        d	t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|j        }d}	||	k    }
|
sªt          j        d|
fd||	f¦  «        d	t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd	t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}
}	|                     ||j        dd|¬¦  «        \  }}}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     |d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|j        }t           j        }||k    }
|
sòt          j        d|
fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d t          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nd t          j        |¦  «        d!œz  }d"d#|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}
}dS )$ue   Kiá»ƒm tra NPC tiáº¿p nháº­n váº­t pháº©m hiáº¿n táº¿ (DELIVER_TO_NPC) vÃ  hoÃ n thÃ nh nhiá»‡m vá»¥.Úplayer_travellerr3   rà   r2   r5   Nr…   r‡   r_   rˆ   rg   rh   õ   Cuá»“ng NhÃ¢n BÃ£o CÃ¡tr‰   r‹   rŒ   rŽ   r�   Úitem_hon_nguyen_tuur   )rœ   r]   Úitem_idÚcountrF   Tr�   r¡   rÑ   rb   rd   Úupdated_questsrf   Úprogressrå   r   rÔ   rZ   r[   )ræ   rç   rª   rq   rr   rs   rt   ru   rv   rw   rx   r«   Údeliver_item_to_npcr]   rè   rê   r   rë   )rz   rM   rF   rœ   r_   r{   r³   r�   r‚   r}   r´   rµ   rÑ   r¤   ró   r€   rô   r|   r~   r   s                       rE   Ú%test_npc_quest_deliver_item_objectivez3TestNpcSystem.test_npc_quest_deliver_item_objectiveø   s­  € ð 'ˆ	Ø×&Ò& y¸qÐ&ÑAÔAÐAØ×!Ò! )Ð-IÐXYÐ!ÑZÔZÐZà× Ò Ð!5Ñ6Ô6ˆØÐˆs˜$ˆÐÐÐÕÔÐÐÐÐˆs˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØŒxÐ4Ð4Ð4ˆxÐ4Ò4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4ˆxÐ4Ð4Ñ4Ô4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4ˆsÑ4Ô4Ð4Õ4Ô4ˆsÑ4Ô4Ð4Ð4Õ4Ô4ˆxÑ4Ô4Õ4Ô4Ð4Ñ4Ô4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ð #-×"@Ò"@ØØ”:Ø)ØØ%ð #Añ #
ô #
ÑˆˆC�ð Ðˆr�TˆzÐÐÐÕÔÐÐÐÐˆr�TÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ+Ð=Ð+¨~Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð+¨~Ð=Ñ=Ô=Õ=Ô=Ð+Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=¨~Ñ=Ô=Ð=Õ=Ô=¨~Ñ=Ô=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=à×0Ò0°Ð<XÑYÔYˆØ#Ð#ˆx˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆx˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆxÑ#Ô#Ð#Õ#Ô#ˆxÑ#Ô#Ð#Ð#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#ØŒÐ7¥+Ô"7Ð7ˆÐ"7Ò7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆÐ"7Ð7Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7ˆxÑ7Ô7Ð7Õ7Ô7ˆxÑ7Ô7Ð7Ð7Õ7Ô7ˆÑ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7¥+Ñ7Ô7Ð7Õ7Ô7¥+Ñ7Ô7Ð7Ð7Õ7Ô7Ð"7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7rG   c           	      óî	  — d}|                      d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}| 	                    ||j
        |j        |j        |j        d
|¬¦  «        \  }	}	}
}	d}|
|u}|s—t          j        d|fd|
|f¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}|
j        }||v }|sªt          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|                     |dd
¬¦  «         | 	                    ||j
        |j        |j        |j        d
|¬¦  «        \  }	}	}}	d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}g }d}|j        }||v }|}|sd}|j        }||v }|}|�s~t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |sžt          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d
¦  «        i z  }d d!|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}x}x}}dS )"us   Kiá»ƒm tra há»™i thoáº¡i cá»§a NPC tá»± Ä‘á»™ng biáº¿n chuyá»ƒn theo tráº¡ng thÃ¡i tiáº¿n Ä‘á»™ cá»§a nhiá»‡m vá»¥.Úplayer_adaptiver    Nr…   r‡   r_   rˆ   rg   rh   r   rã   Únode_initialÚnode_doc_co_introrb   )z/%(py1)s in %(py5)s
{%(py5)s = %(py3)s.node_id
})rW   rX   rh   rŽ   r�   r   rà   Únode_inprogressÚ	completedÚintro)z/%(py3)s in %(py7)s
{%(py7)s = %(py5)s.node_id
})rX   rh   r�   z%(py9)sr¥   )z3%(py12)s in %(py16)s
{%(py16)s = %(py14)s.node_id
})r”   r•   r§   z%(py18)sr¨   zassert %(py21)sÚpy21)rª   rq   rr   rs   rt   ru   rv   rw   rx   r¯   r]   r�   r­   r®   r×   rç   r±   r²   )rz   rM   rF   rœ   r_   r{   r³   r�   r‚   rÃ   rù   r€   r}   rµ   rû   rÄ   r¸   rº   r¹   rÇ   Ú@py_format17Ú@py_format19rÁ   Ú@py_format22s                           rE   Ú/test_npc_adaptive_dialogue_based_on_quest_statez=TestNpcSystem.test_npc_adaptive_dialogue_based_on_quest_state  s  € ð &ˆ	Ø× Ò Ð!6Ñ7Ô7ˆØÐˆs˜$ˆÐÐÐÕÔÐÐÐÐˆs˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð !+× <Ò <ØØ”:Ø”KØ”UØ”UØØ%ð !=ñ !
ô !
Ñˆˆ1ˆl˜Að $(Ð'ˆ| 4Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ| 4Ð'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ|Ñ'Ô'Ð'Õ'Ô'ˆ|Ñ'Ô'Ð'Ð'Õ'Ô' 4Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ø"Ð: lÔ&:Ð:Ð"Ð&:Ð:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð"Ð&:Ð:Ñ:Ô:Õ:Ô:Ð"Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô: lÑ:Ô:Ð:Õ:Ô: lÑ:Ô:Ð:Ð:Õ:Ô:Ð&:Ñ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð 	×!Ò! )Ð-AÐPQÐ!ÑRÔRÐRØ#-×#?Ò#?ØØ”:Ø”KØ”UØ”UØØ%ð $@ñ $
ô $
Ñ ˆˆ1ˆo˜qð '+Ð*ˆ dÐ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*ˆ dÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆÑ*Ô*Ð*Õ*Ô*ˆÑ*Ô*Ð*Ð*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ø[Ð[ˆ{Ð[˜oÔ5Ð[ˆ{Ð5Ð5Ð[Ð[Ð[Ð[Ð[¸Ð[ÀOÔD[Ð[¸ÐD[Ð9[Ð[Ð[Ð[Ð[Ñ[Õ[Ô[Ð[Ð[Ð[Ð[ˆ{Ð5Ð[Ñ[Ô[Õ[Ô[ˆ{Ñ[Ô[Ð[Õ[Ô[Ñ[Ô[Ð[Ð[Õ[Ô[˜oÑ[Ô[Ð[Õ[Ô[˜oÑ[Ô[Ð[Ð[Õ[Ô[Ð5Ñ[Ô[Ð[Ð[Ñ[Ð[Ð[Ð[Ð[Ð[Ñ[Ð[Ð[×[Ò[Ð[Ñ[Ô[Ð[Ð[Ð[Õ[Ô[Ð[Ð[Ð[Ð[¸ÐD[Ð[Ñ[Ô[Õ[Ô[¸Ñ[Ô[Ð[Õ[Ô[Ñ[Ô[Ð[Ð[Õ[Ô[ÀOÑ[Ô[Ð[Õ[Ô[ÀOÑ[Ô[Ð[Ð[Õ[Ô[ÐD[Ñ[Ô[Ð[Ð[Ñ[Ð[Ð[Ð[Ð[Ð[Ñ[Ð[Ð[×[Ò[Ð[Ñ[Ô[Ð[Õ[Ô[Ð[Ð[Ñ[Ô[Ð[Ñ[Ð[Ð[Ð[Ð[Ð[Ñ[Ð[Õ[Õ[Ô[Ð[Ñ[Ô[Ñ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[rG   c                 ó¢  — d}|                      d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}| 	                    ||j
        d
d|¬¦  «        \  }	}
}}}d}|	|u }|s—t          j        d|fd|	|f¦  «        dt          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|                     |d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }t          j        }||k    }|sòt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}dS )ul   Kiá»ƒm tra kÃ­ch hoáº¡t ká»³ ngá»™ áº©n (Hidden Quest) qua Ä‘á»‘i thoáº¡i tÃ n sÃ¡t vá»›i LÃ£o Ä�á»™c Cá»‘t.Úplayer_destinyr    Nr…   r‡   r_   rˆ   rg   rh   Únode_doc_co_martial_talkÚ#choice_inquire_ancient_sword_secret)rœ   r]   rÏ   rÐ   rF   Tr�   r¡   rÑ   r7   Úhidden_progr‰   )zO%(py2)s
{%(py2)s = %(py0)s.status
} == %(py6)s
{%(py6)s = %(py4)s.IN_PROGRESS
}r   rÔ   rZ   r[   )rª   rq   rr   rs   rt   ru   rv   rw   rx   rÖ   r]   rè   rê   r   ÚIN_PROGRESS)rz   rM   rF   rœ   r_   r{   r³   r�   r‚   rÑ   r¤   rÂ   rÛ   rÜ   r  r|   r´   r~   r   s                      rE   Ú4test_hidden_quest_serendipity_trigger_via_npc_choicezBTestNpcSystem.test_hidden_quest_serendipity_trigger_via_npc_choice6  sÛ  € ð %ˆ	Ø× Ò Ð!6Ñ7Ô7ˆØÐˆs˜$ˆÐÐÐÕÔÐÐÐÐˆs˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð +5×*KÒ*KØØ”:Ø6Ø;Ø%ð +Lñ +
ô +
Ñ'ˆˆC��w ð Ðˆr�TˆzÐÐÐÕÔÐÐÐÐˆr�TÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð #×3Ò3°IÐ?\Ñ]Ô]ˆØ"&Ð&ˆ{ $Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ{ $Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ{Ñ&Ô&Ð&Õ&Ô&ˆ{Ñ&Ô&Ð&Ð&Õ&Ô& $Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&ØÔ!Ð<¥[Ô%<Ð<Ð!Ð%<Ò<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð!Ð%<Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆ{Ñ<Ô<Ð<Õ<Ô<ˆ{Ñ<Ô<Ð<Ð<Õ<Ô<Ð!Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<¥[Ñ<Ô<Ð<Õ<Ô<¥[Ñ<Ô<Ð<Ð<Õ<Ô<Ð%<Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<rG   rK   c                 óp
  — |                      d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j	        }t          j        }||k    }	|	sòt          j        d	|	fd
||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	}|                     d¦  «        }d}||u}|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }d}||k    }	|	sªt          j        d	|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	}|j        }d}||k    }	|	sªt          j        d	|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	}|j        }t          j        }|j        }||k    }	|	�st          j        d	|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	x}}dS )uf   Kiá»ƒm tra liÃªn káº¿t NPC vá»›i ZoneEngine vÃ  Ä‘iá»�u kiá»‡n mÃ´i trÆ°á»�ng khÃ­ tÆ°á»£ng bÃ£o cÃ¡t.Úzone_boundless_sandstormNr…   r‡   Úsandstorm_zonerˆ   rg   rh   r‰   )zR%(py2)s
{%(py2)s = %(py0)s.environment
} == %(py6)s
{%(py6)s = %(py4)s.SANDSTORM
}r   rÔ   rZ   r[   r5   Ú
npc_hermitrï   r‹   rŒ   rŽ   r�   )z/%(py2)s
{%(py2)s = %(py0)s.zone_id
} == %(py5)s)zv%(py2)s
{%(py2)s = %(py0)s.required_environment
} == %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s.SANDSTORM
}.value
})rV   r�   r’   rY   r[   rÎ   r“   )Úget_zone_definitionrq   rr   rs   rt   ru   rv   rw   rx   Úenvironmentr   Ú	SANDSTORMrª   r«   r�   Úrequired_environmentÚvalue)rz   rM   rK   r  r{   r³   r�   r‚   r|   r´   r~   r   r  r}   rµ   r¶   rÙ   s                    rE   Ú6test_map_zone_integration_and_environmental_conditionszDTestNpcSystem.test_map_zone_integration_and_environmental_conditionsM  sÜ  € ð
 %×8Ò8Ð9SÑTÔTˆØ%)Ð)ˆ~ TÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)ˆ~ TÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆ~Ñ)Ô)Ð)Õ)Ô)ˆ~Ñ)Ô)Ð)Ð)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)ØÔ)ÐF­_Ô-FÐFÐ)Ð-FÒFÐFÐFÐFÕFÔFÐFÐFÐFÐFÐ)Ð-FÐFÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔFˆ~ÑFÔFÐFÕFÔFˆ~ÑFÔFÐFÐFÕFÔFÐ)ÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔF­_ÑFÔFÐFÕFÔF­_ÑFÔFÐFÐFÕFÔFÐ-FÑFÔFÐFÐFÑFÐFÐFÐFÐFÐFÑFÐFÕFÕFÔFÐFÑFÔFÑFÔFÐFÐFÐFÐFÐFÐFÐFà×'Ò'Ð(<Ñ=Ô=ˆ
Ø!%Ð%ˆz Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆz Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆzÑ%Ô%Ð%Õ%Ô%ˆzÑ%Ô%Ð%Ð%Õ%Ô% Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%ØŒÐ;Ð";Ð;ˆÐ";Ò;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;ˆÐ";Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆzÑ;Ô;Ð;Õ;Ô;ˆzÑ;Ô;Ð;Ð;Õ;Ô;ˆÑ;Ô;Õ;Ô;Ð";Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ!Ð?Ð%?Ð?Ð!Ð%?Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð!Ð%?Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?ˆzÑ?Ô?Ð?Õ?Ô?ˆzÑ?Ô?Ð?Ð?Õ?Ô?Ð!Ñ?Ô?Õ?Ô?Ð%?Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ØÔ.ÐQµ/Ô2KÐQÐ2KÔ2QÐQÐ.Ð2QÒQÐQÐQÑQÕQÔQÐQÐQÐQÐQÐ.Ð2QÐQÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQˆzÑQÔQÐQÕQÔQˆzÑQÔQÐQÐQÕQÔQÐ.ÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQµ/ÑQÔQÐQÕQÔQµ/ÑQÔQÐQÐQÕQÔQÐ2KÑQÔQÕQÔQÐ2QÑQÔQÐQÐQÑQÐQÐQÐQÐQÐQÑQÐQÕQÕQÔQÐQÑQÔQÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQrG   )Ú__name__Ú
__module__Ú__qualname__r   rƒ   rË   rÝ   r   rì   rö   r  r	  r   r  rJ   rG   rE   rO   rO   �   su  € € € € € ðÀ)ð ÐPTð ð ð ð ðE¸ið EÈDð Eð Eð Eð Eð0@°yð @ÀTð @ð @ð @ð @ð<":Ø#ð":Ø3>ð":à	ð":ð ":ð ":ð ":ðH8Ø#ð8Ø3>ð8à	ð8ð 8ð 8ð 8ð6!\Ø#ð!\Ø3>ð!\à	ð!\ð !\ð !\ð !\ðF=Ø#ð=Ø3>ð=à	ð=ð =ð =ð =ð.RØ#ðRØ2<ðRà	ðRð Rð Rð Rð Rð RrG   rO   )*Ú__doc__Úbuiltinsrs   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterq   ÚpytestÚtimeÚtypingr   r   r   Úserver.world.quest_enginer   r   r   r	   r
   r   r   r   r   r   Úserver.world.zone_enginer   r   r   Úserver.world.npc_enginer   r   r   r   r   r   r   r   ÚfixturerF   rK   rM   rO   rJ   rG   rE   ú<module>r#     s  ððð ð € € € € € € € € € € € € €€€€Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð KÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð „ðU�kð Uð Uð Uñ „ðUðp „ð�Zð ð ð ñ „ðð „ð)�Ið )ð )ð )ñ „ð)ðKRð KRð KRð KRð KRñ KRô KRð KRð KRð KRrG   