@Override
	public boolean aquit(Area myArea, MOB accused, String[] acquittableLaws)
	{
		if(!theLawIsEnabled())
			return false;
		final Law laws=getLaws(myArea,false);
		if(laws!=null)
		{
			final boolean debugging=CMSecurity.isDebugging(CMSecurity.DbgFlag.ARREST);
			String[] info=null;
			if(acquittableLaws!=null)
			{
				for (final String brokenLaw : acquittableLaws)
				{
					if((laws.basicCrimes().containsKey(brokenLaw))&&(laws.basicCrimes().get(brokenLaw) !=null))
					{
						info=laws.basicCrimes().get(brokenLaw);
						break; 
					}
					else
					if((laws.taxLaws().containsKey(brokenLaw))&&(laws.taxLaws().get(brokenLaw) instanceof String[]))
					{
						info=(String[])laws.taxLaws().get(brokenLaw);
						break; 
					}
					else
					if((laws.abilityCrimes().containsKey(brokenLaw))&&(laws.abilityCrimes().get(brokenLaw) !=null))
					{
						info=laws.abilityCrimes().get(brokenLaw);
						break; 
					}
				}
				if(info==null)
					return false;
			}
			for(final LegalWarrant W : laws.warrants())
			{
				if((isStillACrime(W,debugging))
				&&(W.criminal()==accused)
				&&((info==null)||(W.crime().equalsIgnoreCase(info[Law.BIT_CRIMENAME]))))
				{
					laws.warrants().remove(W);
					return true;
				}
			}
		}
		return false;
	}