Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
§ y®ˆjªBãóR—ddlZddlZddlmZmZmZmZddlmZm Z m Z m Z m Z m Z mZmZmZmZmZddlmZddlmZmZddlmZddlmZmZmZmZddlm Z dd l!m"Z"m#Z#d d d d d dddddddddddœZ$Gd„de ¦«Z%Gd„de¦«Z&Gd„de¦«Z'Gd„de¦«Z(dS)éN)ÚDictÚListÚOptionalÚSet) ÚJOINÚCaseÚ CharFieldÚ CompositeKeyÚ FloatFieldÚForeignKeyFieldÚ IntegerFieldÚIntegrityErrorÚPrimaryKeyFieldÚ TextFieldÚprefetch)Ú model_to_dict)ÚModelÚinstance)Úapply_order_by)ÚControlPanelProtectorÚ CpHulkSensorÚ ModsecSensorÚ OssecSensor)ÚCountry)ÚIPListÚ IPListPurposeééééééé)r#r"r!r rrréé é é é é éécó‡—eZdZˆfd„ZˆxZS)Ú_SafeCharFieldcóp•—t¦« | dd¬¦«¦«S)Nzutf-8Úignore)Úerrors)ÚsuperÚadaptÚencode)ÚselfÚvalueÚ __class__s €úI/opt/imunify360/venv/lib/python3.11/site-packages/im360/model/incident.pyr2z_SafeCharField.adapt3s)ø€Ý‰wŒw�}Š}˜UŸ\š\¨'¸(˜\ÑCÔCÑDÔDÐDó)Ú__name__Ú __module__Ú __qualname__r2Ú __classcell__)r6s@r7r-r-2sAø€€€€€ðEðEðEðEðEðEðEðEðEr8r-c óf—eZdZdZedd¬¦«Zed¬¦«Zed¬¦«Ze d¬¦«Z ed¬¦«Z ed¬¦«Z ed¬¦«Z ed¬¦«Zed¬¦«Zedd¬¦«Zedd¬¦«ZGd „d ¦«ZGd „d ¦«Zed „¦«Ze dd„¦«Zedeeeeffd„¦«Ze ddeedeeedeeeeffd„¦«Zed„¦«Z ed„¦«Z!dS)ÚIncidentz4Security-related events that happened on the server.T)Ú primary_keyÚnull©r@Ú country_id)r@Ú column_nameN)r@Údefaultcó(—eZdZejZdZdZdZdS)ú Incident.MetaÚincident)))Ú timestampF))ÚcountryFÚresidentN) r9r:r;rÚdbÚdatabaseÚdb_tableÚindexesÚschema©r8r7ÚMetarFcs(€€€€€Ø”;ˆØˆð ˆðˆˆˆr8rQcó$—eZdZed„¦«ZdS)úIncident.OrderByc 󲇗tt ¦«¦«Štˆfd„t ¦«D¦«¦«}t t jtj t t j |d¦«ftj t t j |d¦«ftj t j ffd¦«fS)Nc3óD•K—|]\}}||‰dz|z ‰dzz zfV—ŒdS)r#NrP)Ú.0ÚossecÚmodsecÚmax_ossec_severitys €r7ú z,Incident.OrderBy.severity..qsdøèè€ð ð ñ"�E˜6ðØØ)¨AÑ-°Ñ5Ø)¨AÑ-ñ/ñ/ðð ð ð ð ð ð r8réd) ÚmaxÚossec_to_modsec_severityÚkeysÚtupleÚitemsrr>ÚpluginrÚ PLUGIN_IDÚseverityrr)Ú ossec_casesrYs @r7rczIncident.OrderBy.severityms×ø€å!$Õ%=×%BÒ%BÑ%DÔ%DÑ!EÔ!EÐ åð ð ð ð õ&>×%CÒ%CÑ%EÔ%Eð ñ ô ñ ô ˆKõÝ”Oõ(Ô1Ý ¥Ô!2°KÀÑCÔCðõ )Ô2Ý ¥Ô!2°KÀÑCÔCðõ&Ô/µÔ1BÐCð ðñôðð r8N)r9r:r;Ú staticmethodrcrPr8r7ÚOrderByrSls-€€€€€Ø ð ð ñ Œð ð ð r8rfcó*—|jtjk|jtjkz|jtjkz|j|kz|jt jk|jt|kzz|j ¦«zS©N) rarrbrrrcrr]Úis_null)Úclsrcs r7Ú_accept_severityzIncident._accept_severity�s�€ð ”Z¥;Ô#8Ò8Ø”zÕ%:Ô%DÒDñFà”z¥\Ô%;Ò;ñ=ð”< 8Ò+ñ -ð”�|Ô5Ò5Ø”<Õ#;¸HÔ#EÒEñGñ ðŒl×"Ò"Ñ$Ô$ñ %ð r8c óÆ—|€tj¦«}t tt¦« tt jtjtjk¬¦«  tj |k|  |¦«ztj |kz¦«  tj   ¦«¦«} | �"|   tj| z¦«} | �’|   tj | ¦«tj | ¦«ztj | ¦«ztj | ¦«z¦«} |�2|   tj |¦«¦«} |�#|   tj|k¦«} | �#|   tj| k¦«} |� d„|D¦«nd}d}|�•d„|  tj¦« ¦«D¦«}| ||¦«}d„| ¦«D¦«}|sgS|   tj|z¦«} | �t1| || ¦«} |�|  |¦«} |�|  |¦«} t7| ¦«}|€ | d„|D¦«d¦«}t7| ||¦«¦«S)a— :param by_country_code: country code in form 'US => United States' :param integer since: unixtime when records is began :param integer to: unixtime when records is ended :param str by_abuser_ip: full or part of IP, used for filtering results by abuser's IP :param str by_list: List of names of the appropriate ip list. Could be 'gray', 'white', 'black'. :param int limit: limits the output with specified number of incidents. The number greater than zero :param int offset: offset for pagination :param int severity: min log level (severity) to return. :param str search: filter results by ip, name, description :param list order_by: sorting orders :param list of str by_domains: filter by panel user domains :param str by_plugin: filter by plugin name, e.g. 'modsec', 'ossec'. N)Úoncó6—h|]}| ¦«’ŒSrP)Úupper)rVÚlns r7ú z4Incident.get_sorted_incident_list..ís €Ð *Ð *Ð *˜BˆR�XŠX‰ZŒZÐ *Ð *Ð *r8có*—h|]}|j¯ |j’ŒSrP©Úabuser©rVÚrows r7rqz4Incident.get_sorted_incident_list..òs2€ð!ð!ð!àØ”:ð!Ø” ð!ð!ð!r8có—h|] \}}|®|’Œ SrhrP)rVÚarps r7rqz4Incident.get_sorted_incident_list..ús$€ðððÙ�a˜¸"¸.�¸.¸.¸.r8có*—h|]}|j¯ |j’ŒSrPrs)rVÚrs r7rqz4Incident.get_sorted_incident_list..s!€Ð4Ð4Ð4˜a¨1¬8Ð4�”Ð4Ð4Ð4r8)Útimer>ÚselectrÚjoinrÚ LEFT_OUTERrIÚidÚwhererHrkÚorder_byÚdescÚdomainÚnameÚcontainsÚ descriptionrtÚcoderaÚdistinctÚ_resolve_abuser_listnamesr`rÚoffsetÚlimitÚlistÚmk_incident_iterator)rjÚsinceÚtoÚ by_abuser_ipÚby_listr‹rŠrcÚby_country_codeÚ by_domainsÚsearchr�Ú by_pluginÚqueryÚlistname_filterÚabuser_listnameÚcandidate_abusersÚmatched_abusersÚrowss r7Úget_sorted_incident_listz!Incident.get_sorted_incident_list¡s%€ðB ˆ:Ý”‘”ˆBõ �OŠO�H¥gÑ .Ô .ß ŠTÝ�œ­hÔ.>Å'Ä*Ò.Lðñô÷ŠUÝÔ# uÒ,Ø×&Ò& xÑ0Ô0ñ1åÔ%¨Ò+ñ-ñô÷ ŠX•hÔ(×-Ò-Ñ/Ô/Ñ 0Ô 0ð ð Ð !Ø—K’K¥¤°:Ñ =Ñ>Ô>ˆEà Ð Ø—K’KÝ” ×&Ò& vÑ.Ô.ÝÔ&×/Ò/°Ñ7Ô7ñ8å”/×*Ò*¨6Ñ2Ô2ñ3õ”/×*Ò*¨6Ñ2Ô2ñ3ñôˆEð Ð #Ø—K’K¥¤× 8Ò 8¸Ñ FÔ FÑGÔGˆEà Ð &Ø—K’K¥¤ °Ò ?Ñ@Ô@ˆEà Ð Ø—K’K¥¤°9Ò <Ñ=Ô=ˆEð/6Ð.AÐ *Ð * 'Ð *Ñ *Ô *Ð *Àtð ð?Cˆà Ð &ð!ð!à Ÿ<š<­¬Ñ8Ô8×AÒAÑCÔCð!ñ!ô!Ð ð "×;Ò;Ø! ?ñôˆOððØ.×4Ò4Ñ6Ô6ðñôˆOð#ð Ø� Ø—K’K¥¤°?Ñ BÑCÔCˆEà Ð Ý" 8¨S°%Ñ8Ô8ˆEà Ð Ø—L’L Ñ(Ô(ˆEà Ð Ø—K’K Ñ&Ô&ˆEå�E‰{Œ{ˆà Ð "Ø!×;Ò;Ø4Ð4 4Ð4Ñ4Ô4°dñôˆOõ�C×,Ò,¨T°?ÑCÔCÑDÔDÐDr8r˜c#ó¨K—|D]Ì}|jr| |j¦«nd}|r| ¦«nd}|rtj|¦«jnd}|j|j|j|j |j |j |j |j |j|||jr'tt!j|j¬¦«¦«ni|jdœ V—ŒÍdS)N)r) rraÚrulerHÚtimesrcr„r†rtÚlistnameÚpurposerIrƒ)rtÚgetÚlowerrÚlistname2purposer5rraržrHÚretriesrcr„r†rIrrrƒ)rjr›r˜rvÚln_upperr r¡s r7r�zIncident.mk_incident_iteratorsèè€ð ð ð ˆCØ:=¼*ÐN�×*Ò*¨3¬:Ñ6Ô6Ð6È$ˆHØ+3Ð=�x—~’~Ñ'Ô'Ð'¸ˆHðð• Ô.¨xÑ8Ô8Ô>Ð>àð ð ”fØœ*ØœØ œ]؜؜LØœØ"œØœ*Ø$Ø"à”;ð�=­¬¸¼ Ð)DÑ)DÔ)DÑEÔEÐEàØœ*ððð ð ð ð ð ð r8Úabusersr—Úreturncó’‡—|siStjtjtjtjtj¦« tj¦«¦«}|�?| tj t|¦«¦«¦«}d„tj D¦«Šˆfd„|D¦«}i}|D]s} tj |¦«}n#t$rd||<YŒ)wxYwd\}} |j} |D]2\} } } | j| krŒ| | krŒ| | ¦«r| | } }Œ3|||<Œt|S)uEReturn ``{abuser_ip: highest-priority IPList listname covering it}``. ``None`` value if the abuser is not in any (allowed) list. One SQL fetch of the candidate IPList rows + Python containment via :py:meth:`ipaddress.IPv4Network.subnet_of` — avoids issuing one DB query per abuser. Ncó—i|]\}}||“Œ SrPrP)rVÚprps r7ú z6Incident._resolve_abuser_listnames..Os€ÐAÐAÐA™e˜a �B˜ÐAÐAÐAr8có`•—g|]*}|j|j‰ |jd¦«f‘Œ+S)éÿÿÿÿ)Ú ip_networkr r¢)rVrvÚprioritys €r7ú z6Incident._resolve_abuser_listnames..PsDø€ð ð ð àðŒ^˜Sœ\¨8¯<ª<¸¼ ÀbÑ+IÔ+IÐ Jð ð ð r8)Nr®)rr|Únetwork_addressÚnetmaskÚversionr r€Ú is_expiredÚin_rŒÚIP_LIST_PRIORITIESÚ ipaddressr¯Ú ValueErrorÚ subnet_of)rjr§r—ÚqÚiplist_entriesÚresultrtÚ abuser_netÚbestÚ best_prioÚabuser_versionÚrow_netÚ row_listnameÚrow_prior°s @r7r‰z"Incident._resolve_abuser_listnames3s•ø€ðð ØˆIå ŒMÝ Ô "Ý ŒNÝ ŒNÝ ŒOñ  ô ÷ Š%•Ô"Ñ$Ô$Ð$Ñ %Ô %ð ð Ð &Ø—’�œ×+Ò+­D°Ñ,AÔ,AÑBÔBÑCÔCˆAð BÐA¥vÔ'@ÐAÑAÔAˆð ð ð ð àð ñ ô ˆð ,.ˆØð "ð "ˆFð Ý&Ô1°&Ñ9Ô9� � øÝð ð ð Ø!%��v‘Ø�ð øøøð'‰OˆD�)Ø'Ô/ˆNØ3Að =ð =Ñ/�˜ xØ”? nÒ4Ð4ØØ˜yÒ(Ð(ØØ×'Ò'¨Ñ0Ô0ð=Ø&2°H˜)�DøØ!ˆF�6‰NˆN؈ sÃC+Ã+C=Ã<C=có*—d}tj ¦«5tdt |¦«|¦«D]9}t  ||||z…¦« ¦«Œ: ddd¦«dS#1swxYwYdS)Né2r)rrKÚatomicÚrangeÚlenr>Ú insert_manyÚexecute)ÚdataÚnum_rowsÚidxs r7Úsave_incident_listzIncident.save_incident_listhsï€ðˆÝ Œ[× Ò Ñ !Ô !ð Kð KݘQ¥ D¡ ¤ ¨8Ñ4Ô4ð Kð K�Ý×$Ò$ T¨#°°h±Ð*>Ô%?Ñ@Ô@×HÒHÑJÔJÐJÐJð Kð Kð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð Kð Ks¡ABÂB ÂB cód—d|vr$| |j|dk¦«}d|vr$| |j|dk¦«}d|vr$| |j|dk¦«}d|vr3| |j |d¦«¦«}|S)NrƒÚipÚ attack_typer†)r€rƒrtr„r†r…)rjr–Úkwargss r7Ú_add_common_filterszIncident._add_common_filtersps´€à �vÐ Ð Ø—K’K ¤ ¨f°XÔ.>Ò >Ñ?Ô?ˆEØ �6ˆ>ˆ>Ø—K’K ¤ ¨f°T¬lÒ :Ñ;Ô;ˆEØ ˜FÐ "Ð "Ø—K’K ¤¨F°=Ô,AÒ AÑBÔBˆEØ ˜FÐ "Ð "Ø—K’KØ”×(Ò(¨° Ô)>Ñ?Ô?ñôˆEðˆ r8) NNNNNNNNNNNNrh)"r9r:r;Ú__doc__r rr raržr rHr¥rcr„r-r†rtrIrrƒrQrfÚ classmethodrkrœrÚstrrr�rr‰rerÏrÔrPr8r7r>r>7sz€€€€€Ø>Ð>ð ˆ $¨TÐ 2Ñ 2Ô 2€Bà ˆY˜DÐ !Ñ !Ô !€Fà ˆ9˜$Ð Ñ Ô €Dà�  Ð%Ñ%Ô%€Iðˆl Ð%Ñ%Ô%€Gð ˆ| Ð&Ñ&Ô&€Hà ˆ9˜$Ð Ñ Ô €Dà �. dÐ+Ñ+Ô+€Kà ˆY˜DÐ !Ñ !Ô !€Fàˆi˜T¨|Ð<Ñ<Ô<€Gà ˆY˜D¨$Ð /Ñ /Ô /€Fðððððñôðð!ð!ð!ð!ð!ñ!ô!ð!ðFð ð ñ„[ð ð"ðØ ØØØØØØØØØØðoEðoEðoEñ„[ðoEðbðð˜c 8¨C¤=Ð0Ô1ðððñ„[ðð>ð/3ð2ð2à�S”ð2ð" # c¤(Ô+ð2ð ˆc�8˜C”=Ð Ô !ð 2ð2ð2ñ„[ð2ðhðKðKñ„\ðKðð ð ñ„[ð ð ð r8r>có"—eZdZdZGd„d¦«Ze¦«Zed¬¦«Zed¬¦«Z e d¬¦«Z e de efd„¦«Ze dd „¦«Ze d „¦«Ze d „¦«Ze dd „¦«Ze d„¦«ZdS)Ú DisabledRulez'Provides a way to ignore certain rules.có$—eZdZejZdZdZdS)úDisabledRule.MetaÚdisabled_rules))©raÚrule_idTN)r9r:r;rrKrLrMrNrPr8r7rQrÛ‚s€€€€€Ø”;ˆØ#ˆØ2ˆˆˆr8rQFrAr¨cóD‡—ˆfd„‰ ¦«D¦«S)Ncóz•—g|]7}‰jj|j‰jj|j‰jj|ji‘Œ8SrP)rar„rÞ)rVržrjs €r7r±z(DisabledRule.as_list..’sOø€ð ð ð ð ð ” ” ¤Ø” Ô  $¤,Ø”” ˜tœyð ð ð ð r8)r|)rjs`r7Úas_listzDisabledRule.as_list�s8ø€ð ð ð ð ð Ÿ š ™ œ ð  ñ ô ð r8NcóŽ— | ||¬¦«}|jr|d„|jD¦«vSdS#|j$rYnwxYwdS)NrÝc3ó$K—|] }|jV—Œ dSrh©rƒ©rVÚds r7rZz/DisabledRule.is_rule_ignored.. s$èè€Ð!?Ð!?¨q !¤(Ð!?Ð!?Ð!?Ð!?Ð!?Ð!?r8TF)r¢ÚdomainsÚ DoesNotExist)rjrarÞrƒÚdrs r7Úis_rule_ignoredzDisabledRule.is_rule_ignored›so€ð Ø—’ °�Ñ8Ô8ˆBØŒzð ØÐ!?Ð!?°B´JÐ!?Ñ!?Ô!?Ð?Ð?à�tøØÔð ð ð Ø ˆDð øøøàˆus‚05µ AÁAcó—| |j¦« ttj¦« |j|ktjdz z¦«  ¦«}d„|D¦«S)Ncó—g|] }|d‘Œ S©rÞrPrus r7r±z4DisabledRule.get_global_disabled..±ó€Ð0Ð0Ð0 3��I”Ð0Ð0Ð0r8) r|rÞr}ÚDisabledRuleDomainrr~r€rarƒÚdicts)rjrar–s r7Úget_global_disabledz DisabledRule.get_global_disabled§st€ð �JŠJ�s”{Ñ #Ô #ß ŠTÕ$¥d¤oÑ 6Ô 6ß ŠUØ”˜vÒ%Õ*<Ô*CÀtÑ*KÑLñô÷ŠU‰WŒWð ð1Ð0¨%Ð0Ñ0Ô0Ð0r8cóø—| |j¦« t¦« |j|ktj|k¦« ¦«}d„|D¦«S)Ncó—g|] }|d‘Œ SrírPrus r7r±z4DisabledRule.get_domain_disabled..»rîr8)r|rÞr}rïr€rarƒrð)rjrarƒr–s r7Úget_domain_disabledz DisabledRule.get_domain_disabled³sf€ð �JŠJ�s”{Ñ #Ô #ß ŠTÕ$Ñ %Ô %ß ŠU�3”: Ò'Õ);Ô)BÀfÒ)LÑ MÔ Mß ŠU‰WŒWð ð 1Ð0¨%Ð0Ñ0Ô0Ð0r8rcóø—| ¦« |j|j¦« |¦« |¦«}|�t |||¦«}t ¦«}t||¦«}g}|  d¬¦«}|D]H} | j| j| j ddœ} | j rd„| j D¦«| d<|  | ¦«ŒI||fS)NT)Ú clear_limit)rarr„rçcó—g|] }|j‘Œ SrPrärås r7r±z&DisabledRule.fetch..Ôs€Ð"BÐ"BÐ"B° 1¤8Ð"BÐ"BÐ"Br8rç) r|r�rarÞr‹rŠrrïrÚcountr„rçÚappend) rjr‹rŠr�Ú rules_queryÚ domains_queryÚrules_with_domains_queryr½Ú max_countržÚitems r7ÚfetchzDisabledRule.fetch½s€ð �JŠJ‰LŒLß ŠX�c”j #¤+Ñ .Ô .ß ŠU�5‰\Œ\ß ŠV�F‰^Œ^ð ð Ð Ý(¨°3¸ ÑDÔDˆKÝ*×1Ò1Ñ3Ô3ˆ Ý#+¨K¸Ñ#GÔ#GР؈Ø×%Ò%°$Ð%Ñ7Ô7ˆ Ø,ð ð ˆDàœ+Ø”lØœ Øð ðˆDðŒ|ð CØ"BÐ"B°T´\Ð"BÑ"BÔ"B��Y‘Ø �MŠM˜$Ñ Ô Ð Ð Ø˜&Ð Ð r8cóú— t |||¬¦« ¦«}|D]}t ||¬¦«ŒdS#t $rœt ||¬¦«}|r)|D]#}t |j|¬¦«Œ$YdSt  ¦«  tj |jk¦« ¦«YdSwxYw)N)rarÞr„)Údisabled_rule_id_idrƒrÝ) rÙÚinsertrËrïÚcreaterr¢Ú create_or_getrÚdeleter€r)r4rarr„rçÚ inserted_idrærés r7ÚstorezDisabledRule.storeØs9€ð Ý&×-Ò-Ø r°ð.ñôçŠg‰iŒið ðð ð �Ý"×)Ò)Ø(3¸Að*ñôððð ð øõð ð ð Ý×!Ò!¨¸Ð!Ñ<Ô<ˆBØð Ø ðð�AÝ&×4Ò4Ø,.¬E¸!ð5ñôðððððõ #×)Ò)Ñ+Ô+×1Ò1Ý&Ô:¸b¼eÒCñôç’'‘)”)�)�)�)�)ð øøøs‚/AÁAC:Â%AC:Ã9C:rh)rN)r9r:r;rÕrQrrr rarÞrr„rÖrrrárêrñrôrÿrrPr8r7rÙrÙsC€€€€€Ø1Ð1ð3ð3ð3ð3ð3ñ3ô3ð3ð ˆÑ Ô €Bà ˆY˜EÐ "Ñ "Ô "€Fàˆi˜UÐ#Ñ#Ô#€Gð ˆ9˜%Ð Ñ Ô €Dà𠘘Tœ ð ð ð ñ„[ð ðð ð ð ñ„[ð ðð 1ð 1ñ„[ð 1ðð1ð1ñ„[ð1ðð!ð!ð!ñ„[ð!ð4ððñ„[ðððr8rÙcó`—eZdZdZeedd¬¦«Zed¬¦«ZGd„d¦«Z d S) rïzéAllows to disable rules for specific domains. If there are no records in this table related to :class:`DisabledRule`, then the rule is ignored for all domains. Otherwise, the rule is ignored only for domains listed. rçÚCASCADE)ÚbackrefÚ on_deleteFrAcó8—eZdZejZdZedd¦«ZdS)úDisabledRuleDomain.MetaÚdisabled_rules_domainsrrƒN) r9r:r;rrKrLrMr r?rPr8r7rQr þs,€€€€€Ø”;ˆØ+ˆØ"�lÐ#8¸(ÑCÔCˆ ˆ ˆ r8rQN) r9r:r;rÕr rÙrr rƒrQrPr8r7rïrïðs„€€€€€ððð*˜/ؘi°9ðñôÐðˆY˜EÐ "Ñ "Ô "€FðDðDðDðDðDñDôDðDðDðDr8rï))r¸r{ÚtypingrrrrÚpeeweerrr r r r r rrrrÚplayhouse.shortcutsrÚdefence360agent.modelrrÚ$defence360agent.model.simplificationrÚim360.contracts.configrrrrÚim360.model.countryrÚim360.model.firewallrrr]r-r>rÙrïrPr8r7úrsxðØÐÐÐØ € € € Ø,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð.Ð-Ð-Ð-Ð-Ð-à1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø?Ð?Ð?Ð?Ð?Ð?ððððððððððððð (Ð'Ð'Ð'Ð'Ð'Ø6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð ØØØØØØØØØ Ø Ø Ø Ø Ø ððÐð&EðEðEðEðE�YñEôEðEð EðEðEðEðEˆuñEôEðEðP nðnðnðnðn�5ñnônðnðbDðDðDðDðD˜ñDôDðDðDðDr8