docs: def decode_metadata_response(cls, data):
          """
          Decode bytes to a MetadataResponse
  
          Arguments:
              data: bytes to decode
          """
          ((correlation_id, numbrokers), cur) = relative_unpack('>ii', data, 0)
  
          # Broker info
          brokers = []
          for _ in range(numbrokers):
              ((nodeId, ), cur) = relative_unpack('>i', data, cur)
              (host, cur) = read_short_string(data, cur)
              ((port,), cur) = relative_unpack('>i', data, cur)
              brokers.append(BrokerMetadata(nodeId, host, port))
  
          # Topic info
          ((num_topics,), cur) = relative_unpack('>i', data, cur)
          topic_metadata = []
  
          for _ in range(num_topics):
              ((topic_error,), cur) = relative_unpack('>h', data, cur)
              (topic_name, cur) = read_short_string(data, cur)
              ((num_partitions,), cur) = relative_unpack('>i', data, cur)
              partition_metadata = []
  
              for _ in range(num_partitions):
                  ((partition_error_code, partition, leader, numReplicas), cur) = \
                      relative_unpack('>hiii', data, cur)
  
                  (replicas, cur) = relative_unpack(
                      '>%di' % numReplicas, data, cur)
  
                  ((num_isr,), cur) = relative_unpack('>i', data, cur)
                  (isr, cur) = relative_unpack('>%di' % num_isr, data, cur)
  
                  partition_metadata.append(
                      PartitionMetadata(topic_name, partition, leader,
                                        replicas, isr, partition_error_code)
                  )
  
              topic_metadata.append(
                  TopicMetadata(topic_name, topic_error, partition_metadata)
              )
  
          return MetadataResponse(brokers, topic_metadata)