docs: def binary(self):
          """
          return encoded representation
          """
          if isinstance(self.value, bytes):
              length = len(self.value)
              if length > 4294967295:
                  raise OutputException('uint32 overflow')
              elif self.bits != 8:
                  return (
                      b_chr(_TAG_BIT_BINARY_EXT) +
                      struct.pack(b'>I', length) +
                      b_chr(self.bits) + self.value
                  )
              else:
                  return (
                      b_chr(_TAG_BINARY_EXT) +
                      struct.pack(b'>I', length) +
                      self.value
                  )
          else:
              raise OutputException('unknown binary type')