contract BoltToken is ERC20, ERC20Detailed, ERC20Mintable, ERC20Pausable {
  event Burn(
    address indexed from,
    uint256 value,
    address indexed data
  );

  constructor(address owner)
    ERC20Pausable()
    ERC20Mintable()
    ERC20Detailed("Bolt Token", "BOLT", 18)
    ERC20()
    public
    {
      super.pause();
      super._mint(owner, 900000000 ether);
    }

  /**
  * @dev Burns a specific amount of tokens with attached data.
  * @param value The amount of token to be burned.
  * @param data The swap address data.
  */
  function burn(uint256 value, address data) public {
    super._burn(msg.sender, value);
    emit Burn(msg.sender, value, data);
  }
}
function burn(uint256 value, address data) public {
  super._burn(msg.sender, value);
  emit Burn(msg.sender, value, data);
}

/**
 * @dev Burns a specific amount of tokens with attached data.
 * @param value The amount of token to be burned.
 * @param data The swap address data.
 */