@SuppressWarnings("unused") // for baseIndex not yet used.  Will be used for start of
		// linear search.
		protected long getOffsetForTypeIndex(int typeIndex) {
			int retVal = Collections.binarySearch(tiOffs, new KeyTiOff(typeIndex));
			if (retVal < 0) {
				retVal = -retVal - 1;
			}
			long baseIndex = tiOffs.get(retVal).getOffset();
			// TODO: need to do a linear search within the stream for the actual record.
			// Do not forget to consider the header offset within the stream.  For example, the
			// TPI header might be 56 bytes, so an offset of 1000 should really be 1056 into the
			// stream.  Or it could be 1000 into a separate PdbByteReader that only has records.
			return 0; // TODO: Need to return the actual offset after the linear search.
		}
*UNDER CONSTRUCTION* Deserializes the Hash Streams...
@param monitor {@link TaskMonitor} used for checking cancellation
@throws IOException on file seek or read, invalid parameters, bad file configuration, or
 inability to read required bytes
@throws PdbException upon error in processing components
@throws CancelledException upon user cancellation
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/TypeProgramInterface.java