public boolean restoreBase64(char[] buffer,int offset,int[] decoder,WeightFactory w,IDFLookup lookup) {
		tf = (short)decoder[buffer[offset]];		// Value between 0 and 63
		if (tf < 0) {
			return false;							// Check for bad character
		}
		int val = decoder[buffer[offset+1]];
		val <<= 6;
		val |= decoder[buffer[offset+2]];
		val <<= 6;
		val |= decoder[buffer[offset+3]];
		val <<= 6;
		val |= decoder[buffer[offset+4]];
		val <<= 6;
		val |= decoder[buffer[offset+5]];
		if (val < 0) {
			return false;				// Only 30-bits read so far, should be positive
		}
		int rem1 = decoder[buffer[offset+6]];
		val <<= 2;
		hash = val | (rem1 & 3);		// Final 2 bits of 32-bit hash
		if (rem1 > 3) {
			return false;				// Remaining 4-bits should be zero
		}
		idf = (short) lookup.getCount(hash);
		coeff = w.getCoeff(idf, tf);
		return true;
	}
Restore entry but recalculate the idf
@param parser		// xml state
@param w				// weight factory to calculate coefficient with
@param lookup		// lookup object to recalculate idf
Ghidra/Framework/Generic/src/main/java/generic/lsh/vector/HashEntry.java