// Path: src/main/java/net/einsteinsci/betterbeginnings/inventory/InventoryWorkbenchAdditionalMaterials.java
// public class InventoryWorkbenchAdditionalMaterials implements IInventory
// {
// 	private ItemStack[] stackList;
// 
// 	private Container container;
// 
// 	public InventoryWorkbenchAdditionalMaterials(Container container_, int size)
// 	{
// 		stackList = new ItemStack[size];
// 		container = container_;
// 	}
// 
// 	@Override
// 	public int getSizeInventory()
// 	{
// 		return stackList.length;
// 	}
// 
// 	@Override
// 	public ItemStack getStackInSlot(int slot)
// 	{
// 		if (getSizeInventory() <= slot)
// 		{
// 			return null;
// 		}
// 		else
// 		{
// 			return stackList[slot];
// 		}
// 	}
// 
// 	@Override
// 	public ItemStack decrStackSize(int slot, int amount)
// 	{
// 		if (stackList[slot] != null)
// 		{
// 			ItemStack itemstack;
// 
// 			if (stackList[slot].stackSize <= amount)
// 			{
// 				itemstack = stackList[slot];
// 				stackList[slot] = null;
// 				container.onCraftMatrixChanged(this);
// 				return itemstack;
// 			}
// 			else
// 			{
// 				itemstack = stackList[slot].splitStack(amount);
// 
// 				if (stackList[slot].stackSize == 0)
// 				{
// 					stackList[slot] = null;
// 				}
// 
// 				container.onCraftMatrixChanged(this);
// 				return itemstack;
// 			}
// 		}
// 		else
// 		{
// 			return null;
// 		}
// 	}
// 
// 	@Override
// 	public ItemStack getStackInSlotOnClosing(int slot)
// 	{
// 		if (stackList[slot] != null)
// 		{
// 			ItemStack itemstack = stackList[slot];
// 			stackList[slot] = null;
// 			return itemstack;
// 		}
// 		else
// 		{
// 			return null;
// 		}
// 	}
// 
// 	@Override
// 	public void setInventorySlotContents(int slot, ItemStack stack)
// 	{
// 		stackList[slot] = stack;
// 		container.onCraftMatrixChanged(this);
// 	}
// 
// 	@Override
// 	public String getCommandSenderName()
// 	{
// 		return "container.workbenchmaterials";
// 	}
// 
// 	@Override
// 	public boolean hasCustomName()
// 	{
// 		return false;
// 	}
// 
// 	@Override
// 	public IChatComponent getDisplayName()
// 	{
// 		return new ChatComponentText(getCommandSenderName());
// 	}
// 
// 	@Override
// 	public int getInventoryStackLimit()
// 	{
// 		return 64;
// 	}
// 
// 	@Override
// 	public void markDirty()
// 	{
// 		container.onCraftMatrixChanged(this);
// 	}
// 
// 	@Override
// 	public boolean isUseableByPlayer(EntityPlayer player)
// 	{
// 		return true;
// 	}
// 
// 	@Override
// 	public void openInventory(EntityPlayer player)
// 	{ }
// 
// 	@Override
// 	public void closeInventory(EntityPlayer player)
// 	{ }
// 
// 	@Override
// 	public boolean isItemValidForSlot(int slot, ItemStack stack)
// 	{
// 		return true;
// 	}
// 
// 	@Override
// 	public int getField(int id)
// 	{
// 		return 0;
// 	}
// 
// 	@Override
// 	public void setField(int id, int value)
// 	{ }
// 
// 	@Override
// 	public int getFieldCount()
// 	{
// 		return 0;
// 	}
// 
// 	@Override
// 	public void clear()
// 	{
// 		for (int i = 0; i < stackList.length; i++)
// 		{
// 			stackList[i] = null;
// 		}
// 	}
// }


import net.einsteinsci.betterbeginnings.inventory.InventoryWorkbenchAdditionalMaterials;
import net.minecraft.block.Block;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import java.util.*;
			}
		}
		else
		{
			while (args[i] instanceof String)
			{
				String s2 = (String)args[i];
				i++;
				height++;
				width = s2.length();
				totalRecipe += s2;
			}
		}

		HashMap hashmap = new HashMap();

		for (; i < args.length; i += 2)
		{
			Character character = (Character)args[i];
			OreRecipeElement stackInRecipe = null;

			if (args[i + 1] instanceof Item)
			{
				stackInRecipe = new OreRecipeElement(new ItemStack((Item)args[i + 1], 1, OreDictionary.WILDCARD_VALUE));
			}
			else if (args[i + 1] instanceof Block)
			{
				stackInRecipe = new OreRecipeElement(
						new ItemStack((Block)args[i + 1], 1, OreDictionary.WILDCARD_VALUE));
			}
// Path: src/main/java/net/einsteinsci/betterbeginnings/inventory/InventoryWorkbenchAdditionalMaterials.java
// public class InventoryWorkbenchAdditionalMaterials implements IInventory
// {
// 	private ItemStack[] stackList;
// 
// 	private Container container;
// 
// 	public InventoryWorkbenchAdditionalMaterials(Container container_, int size)
// 	{
// 		stackList = new ItemStack[size];
// 		container = container_;
// 	}
// 
// 	@Override
// 	public int getSizeInventory()
// 	{
// 		return stackList.length;
// 	}
// 
// 	@Override
// 	public ItemStack getStackInSlot(int slot)
// 	{
// 		if (getSizeInventory() <= slot)
// 		{
// 			return null;
// 		}
// 		else
// 		{
// 			return stackList[slot];
// 		}
// 	}
// 
// 	@Override
// 	public ItemStack decrStackSize(int slot, int amount)
// 	{
// 		if (stackList[slot] != null)
// 		{
// 			ItemStack itemstack;
// 
// 			if (stackList[slot].stackSize <= amount)
// 			{
// 				itemstack = stackList[slot];
// 				stackList[slot] = null;
// 				container.onCraftMatrixChanged(this);
// 				return itemstack;
// 			}
// 			else
// 			{
// 				itemstack = stackList[slot].splitStack(amount);
// 
// 				if (stackList[slot].stackSize == 0)
// 				{
// 					stackList[slot] = null;
// 				}
// 
// 				container.onCraftMatrixChanged(this);
// 				return itemstack;
// 			}
// 		}
// 		else
// 		{
// 			return null;
// 		}
// 	}
// 
// 	@Override
// 	public ItemStack getStackInSlotOnClosing(int slot)
// 	{
// 		if (stackList[slot] != null)
// 		{
// 			ItemStack itemstack = stackList[slot];
// 			stackList[slot] = null;
// 			return itemstack;
// 		}
// 		else
// 		{
// 			return null;
// 		}
// 	}
// 
// 	@Override
// 	public void setInventorySlotContents(int slot, ItemStack stack)
// 	{
// 		stackList[slot] = stack;
// 		container.onCraftMatrixChanged(this);
// 	}
// 
// 	@Override
// 	public String getCommandSenderName()
// 	{
// 		return "container.workbenchmaterials";
// 	}
// 
// 	@Override
// 	public boolean hasCustomName()
// 	{
// 		return false;
// 	}
// 
// 	@Override
// 	public IChatComponent getDisplayName()
// 	{
// 		return new ChatComponentText(getCommandSenderName());
// 	}
// 
// 	@Override
// 	public int getInventoryStackLimit()
// 	{
// 		return 64;
// 	}
// 
// 	@Override
// 	public void markDirty()
// 	{
// 		container.onCraftMatrixChanged(this);
// 	}
// 
// 	@Override
// 	public boolean isUseableByPlayer(EntityPlayer player)
// 	{
// 		return true;
// 	}
// 
// 	@Override
// 	public void openInventory(EntityPlayer player)
// 	{ }
// 
// 	@Override
// 	public void closeInventory(EntityPlayer player)
// 	{ }
// 
// 	@Override
// 	public boolean isItemValidForSlot(int slot, ItemStack stack)
// 	{
// 		return true;
// 	}
// 
// 	@Override
// 	public int getField(int id)
// 	{
// 		return 0;
// 	}
// 
// 	@Override
// 	public void setField(int id, int value)
// 	{ }
// 
// 	@Override
// 	public int getFieldCount()
// 	{
// 		return 0;
// 	}
// 
// 	@Override
// 	public void clear()
// 	{
// 		for (int i = 0; i < stackList.length; i++)
// 		{
// 			stackList[i] = null;
// 		}
// 	}
// }


// Path: src/main/java/net/einsteinsci/betterbeginnings/register/recipe/AdvancedCraftingHandler.java
import net.einsteinsci.betterbeginnings.inventory.InventoryWorkbenchAdditionalMaterials;
import net.minecraft.block.Block;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import java.util.*;

			}
		}
		else
		{
			while (args[i] instanceof String)
			{
				String s2 = (String)args[i];
				i++;
				height++;
				width = s2.length();
				totalRecipe += s2;
			}
		}

		HashMap hashmap = new HashMap();

		for (; i < args.length; i += 2)
		{
			Character character = (Character)args[i];
			OreRecipeElement stackInRecipe = null;

			if (args[i + 1] instanceof Item)
			{
				stackInRecipe = new OreRecipeElement(new ItemStack((Item)args[i + 1], 1, OreDictionary.WILDCARD_VALUE));
			}
			else if (args[i + 1] instanceof Block)
			{
				stackInRecipe = new OreRecipeElement(
						new ItemStack((Block)args[i + 1], 1, OreDictionary.WILDCARD_VALUE));
			}
			else if (args[i + 1] instanceof ItemStack)