private void deserializeHashVals(PdbByteReader reader, TaskMonitor monitor)
				throws PdbException, CancelledException {
			if (hashKeySize == 2) {
				for (int index = typeIndexMin; index < typeIndexMaxExclusive; index++) {
					monitor.checkCancelled();
					long hashVal = reader.parseUnsignedShortVal();
					if (hashVal < 0 || hashVal >= numHashBins) {
						throw new PdbException("Bad hashVal: " + hashVal);
					}
				}
			}
			else if (hashKeySize == 4) {
				for (int index = typeIndexMin; index < typeIndexMaxExclusive; index++) {
					monitor.checkCancelled();
					long hashVal = reader.parseUnsignedIntVal();
					if (hashVal < 0 || hashVal >= numHashBins) {
						throw new PdbException("Bad hashVal: " + hashVal);
					}
				}
			}
			else {
				throw new PdbException("Bad hashKeySize: " + hashKeySize);
			}
		}
*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