code: def parse_bindict(self):
  		
  		entries = []
  		try:
  			while True:
  				for key in self.parse_net16string():
  					if key is None:
  						yield None
  					elif not key:
  						raise StopIteration()
  					else:
  						for value in self.parse_net32string():
  							if value is None:
  								yield None
  							else:
  								entries.append((key, value))
  								break
  						break
  		# Abusing StopIteration here, since nothing should be throwing
  		# it at us.
  		except StopIteration:
  			yield entries
docs: >>> d = b"\\0\\x01a\\0\\0\\0\\x01b\\0\\0spam"
  		>>> next(InBuffer(d).parse_bindict()) == [(b'a', b'b')]
  		True