byte start;
do {
// see it is a reference first
bdi.mark();
start = bdi.readByte();
bdi.goBackOne();
if (start == HEADER_INDEX_REFERENCE_INTEGER || start == HEADER_INDEX_REFERENCE_LONG) {
// it is a reference, continue
reference = readVarLong(bdi);
entriesList.add((IndexEntry) (depth == 0 ? new IndexEntry(upperBound, reference) : new BranchEntry(upperBound, reference,
readVarLong(bdi))));