private static InputNode loadInputs(ObjectInputStream ois, ArrayList<InputNode> refInputs) throws IOException {
		int len = ois.readInt();
		InputNode ret = null;
		for(int i=0;i<len;i++) {
		  int input = ois.readInt();
		  if (refInputs != null && refInputs.size()-1-i >= 0 && refInputs.get(refInputs.size()-1-i).input == input)
		    ret = refInputs.get(refInputs.size()-1-i);
		  else {
//		    if (refInputs != null)
//		      System.out.println("refInputs failed at " + i);
		    refInputs = null;
	      ret = new InputNode(input, ret);
		  }
		}
		return ret;
	}