tika-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tyler Palsulich (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (TIKA-1401) occured infinite loop using tika library
Date Fri, 20 Mar 2015 21:38:38 GMT

     [ https://issues.apache.org/jira/browse/TIKA-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tyler Palsulich updated TIKA-1401:
----------------------------------
    Description: 
Hi

1. Save the file with the following content as "errorfile.xml"
{code}
<?xml version="1.0"?>
<!DOCTYPE billion [
<!ELEMENT billion (#PCDATA)>
<!ENTITY laugh0 "aahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">
<!ENTITY laugh1 "&laugh0;&laugh0;">
<!ENTITY laugh2 "&laugh1;&laugh1;">
<!ENTITY laugh3 "&laugh2;&laugh2;">
<!ENTITY laugh4 "&laugh3;&laugh3;">
<!ENTITY laugh5 "&laugh4;&laugh4;">
<!ENTITY laugh6 "&laugh5;&laugh5;">
<!ENTITY laugh7 "&laugh6;&laugh6;">
<!ENTITY laugh8 "&laugh7;&laugh7;">
<!ENTITY laugh9 "&laugh8;&laugh8;">
<!ENTITY laugh10 "&laugh9;&laugh9;">
<!ENTITY laugh11 "&laugh10;&laugh10;">
<!ENTITY laugh12 "&laugh11;&laugh11;">
<!ENTITY laugh13 "&laugh12;&laugh12;">
<!ENTITY laugh14 "&laugh13;&laugh13;">
<!ENTITY laugh15 "&laugh14;&laugh14;">
<!ENTITY laugh16 "&laugh15;&laugh15;">
<!ENTITY laugh17 "&laugh16;&laugh16;">
<!ENTITY laugh18 "&laugh17;&laugh17;">
<!ENTITY laugh19 "&laugh18;&laugh18;">
<!ENTITY laugh20 "&laugh19;&laugh19;">
<!ENTITY laugh21 "&laugh20;&laugh20;">
<!ENTITY laugh22 "&laugh21;&laugh21;">
<!ENTITY laugh23 "&laugh22;&laugh22;">
<!ENTITY laugh24 "&laugh23;&laugh23;">
<!ENTITY laugh25 "&laugh24;&laugh24;">
<!ENTITY laugh26 "&laugh25;&laugh25;">
<!ENTITY laugh27 "&laugh26;&laugh26;">
<!ENTITY laugh28 "&laugh27;&laugh27;">
<!ENTITY laugh29 "&laugh28;&laugh28;">
<!ENTITY laugh30 "&laugh29;&laugh29;">
]>
<billion location="&laugh29;">text</billion>
{code}


2. Create java code as "Main.java"
import org.apache.tika.Tika;

public class Main {
public static void main(String[] args) {
    Tika tika = new Tika();
    String filePath = "C:\\errorfile.xml";
    FileInputStream fis = null;
    mimetype = "None"
    try {
        fis = new FileInputStream(filePath);
        mimetype = tika.detect(fis);
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(mimetype);
}
}


3. Running falls into an infinite loop.. ToT

  was:
Hi

1. Save the file with the following content as "errorfile.xml"

<?xml version="1.0"?>
<!DOCTYPE billion [
<!ELEMENT billion (#PCDATA)>
<!ENTITY laugh0 "aahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">
<!ENTITY laugh1 "&laugh0;&laugh0;">
<!ENTITY laugh2 "&laugh1;&laugh1;">
<!ENTITY laugh3 "&laugh2;&laugh2;">
<!ENTITY laugh4 "&laugh3;&laugh3;">
<!ENTITY laugh5 "&laugh4;&laugh4;">
<!ENTITY laugh6 "&laugh5;&laugh5;">
<!ENTITY laugh7 "&laugh6;&laugh6;">
<!ENTITY laugh8 "&laugh7;&laugh7;">
<!ENTITY laugh9 "&laugh8;&laugh8;">
<!ENTITY laugh10 "&laugh9;&laugh9;">
<!ENTITY laugh11 "&laugh10;&laugh10;">
<!ENTITY laugh12 "&laugh11;&laugh11;">
<!ENTITY laugh13 "&laugh12;&laugh12;">
<!ENTITY laugh14 "&laugh13;&laugh13;">
<!ENTITY laugh15 "&laugh14;&laugh14;">
<!ENTITY laugh16 "&laugh15;&laugh15;">
<!ENTITY laugh17 "&laugh16;&laugh16;">
<!ENTITY laugh18 "&laugh17;&laugh17;">
<!ENTITY laugh19 "&laugh18;&laugh18;">
<!ENTITY laugh20 "&laugh19;&laugh19;">
<!ENTITY laugh21 "&laugh20;&laugh20;">
<!ENTITY laugh22 "&laugh21;&laugh21;">
<!ENTITY laugh23 "&laugh22;&laugh22;">
<!ENTITY laugh24 "&laugh23;&laugh23;">
<!ENTITY laugh25 "&laugh24;&laugh24;">
<!ENTITY laugh26 "&laugh25;&laugh25;">
<!ENTITY laugh27 "&laugh26;&laugh26;">
<!ENTITY laugh28 "&laugh27;&laugh27;">
<!ENTITY laugh29 "&laugh28;&laugh28;">
<!ENTITY laugh30 "&laugh29;&laugh29;">
]>
<billion location="&laugh29;">text</billion>



2. Create java code as "Main.java"
import org.apache.tika.Tika;

public class Main {
public static void main(String[] args) {
    Tika tika = new Tika();
    String filePath = "C:\\errorfile.xml";
    FileInputStream fis = null;
    mimetype = "None"
    try {
        fis = new FileInputStream(filePath);
        mimetype = tika.detect(fis);
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(mimetype);
}
}


3. Running falls into an infinite loop.. ToT


> occured infinite loop using tika library
> ----------------------------------------
>
>                 Key: TIKA-1401
>                 URL: https://issues.apache.org/jira/browse/TIKA-1401
>             Project: Tika
>          Issue Type: Bug
>          Components: detector
>    Affects Versions: 1.5
>            Reporter: Robin.Hwang
>
> Hi
> 1. Save the file with the following content as "errorfile.xml"
> {code}
> <?xml version="1.0"?>
> <!DOCTYPE billion [
> <!ELEMENT billion (#PCDATA)>
> <!ENTITY laugh0 "aahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">
> <!ENTITY laugh1 "&laugh0;&laugh0;">
> <!ENTITY laugh2 "&laugh1;&laugh1;">
> <!ENTITY laugh3 "&laugh2;&laugh2;">
> <!ENTITY laugh4 "&laugh3;&laugh3;">
> <!ENTITY laugh5 "&laugh4;&laugh4;">
> <!ENTITY laugh6 "&laugh5;&laugh5;">
> <!ENTITY laugh7 "&laugh6;&laugh6;">
> <!ENTITY laugh8 "&laugh7;&laugh7;">
> <!ENTITY laugh9 "&laugh8;&laugh8;">
> <!ENTITY laugh10 "&laugh9;&laugh9;">
> <!ENTITY laugh11 "&laugh10;&laugh10;">
> <!ENTITY laugh12 "&laugh11;&laugh11;">
> <!ENTITY laugh13 "&laugh12;&laugh12;">
> <!ENTITY laugh14 "&laugh13;&laugh13;">
> <!ENTITY laugh15 "&laugh14;&laugh14;">
> <!ENTITY laugh16 "&laugh15;&laugh15;">
> <!ENTITY laugh17 "&laugh16;&laugh16;">
> <!ENTITY laugh18 "&laugh17;&laugh17;">
> <!ENTITY laugh19 "&laugh18;&laugh18;">
> <!ENTITY laugh20 "&laugh19;&laugh19;">
> <!ENTITY laugh21 "&laugh20;&laugh20;">
> <!ENTITY laugh22 "&laugh21;&laugh21;">
> <!ENTITY laugh23 "&laugh22;&laugh22;">
> <!ENTITY laugh24 "&laugh23;&laugh23;">
> <!ENTITY laugh25 "&laugh24;&laugh24;">
> <!ENTITY laugh26 "&laugh25;&laugh25;">
> <!ENTITY laugh27 "&laugh26;&laugh26;">
> <!ENTITY laugh28 "&laugh27;&laugh27;">
> <!ENTITY laugh29 "&laugh28;&laugh28;">
> <!ENTITY laugh30 "&laugh29;&laugh29;">
> ]>
> <billion location="&laugh29;">text</billion>
> {code}
> 2. Create java code as "Main.java"
> import org.apache.tika.Tika;
> public class Main {
> public static void main(String[] args) {
>     Tika tika = new Tika();
>     String filePath = "C:\\errorfile.xml";
>     FileInputStream fis = null;
>     mimetype = "None"
>     try {
>         fis = new FileInputStream(filePath);
>         mimetype = tika.detect(fis);
>     } catch (IOException e) {
>         e.printStackTrace();
>     }
>     System.out.println(mimetype);
> }
> }
> 3. Running falls into an infinite loop.. ToT



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message