public static Boolean[] wordsTrusts(boolean[] trusts, Boolean[] boundaries) {
		if (boundaries.length == 0) {
			// Trust anything with no boundaries
			return new Boolean[] {true};
		}
		else {
			List<Boolean> wordsTrusts = new LinkedList<Boolean>();
			for (int i = 0; i < boundaries.length; i++) {
				// Every time we see a boundary, note the trust of the word
				// to its left
				if (boundaries[i]) {
					wordsTrusts.add(trusts[i]);
				}
			}
			// Always add the last word as trusted (its boundary is the end
			// of the utterance
			wordsTrusts.add(true);

			return wordsTrusts.toArray(DUMMY_BOOLEAN_ARRAY);
		}
	}