input: from typing import List
  
  
  def find_block_in_chain(blockchain: Blockchain, target_data: str) -> (int, Block):
      """ Given a blockchain and a target data string, find the block in the blockchain
      that contains this data and return a tuple containing the index of the block and
      the block itself. If no such block exists, return (-1, None).
      >>> bl = Blockchain()
      >>> bl.add_block({'timestamp': 123, 'data': 'Genesis Block'})
      >>> bl.add_block({'timestamp': 124, 'data': 'Transaction Data'})
      >>> find_block_in_chain(bl, 'Transaction Data')
      (1, <Block object at 0x10a2b4c10>)
      >>> find_block_in_chain(bl, 'Non-existent Data')
      (-1, None)
      """
output:     for index, block in enumerate(blockchain.chain):
          if block.data == target_data:
              return (index, block)
      return (-1, None)