library SafeMath {

  //addition
  function add(uint a, uint b) internal pure returns(uint c) {
    c = a + b;
    require(c >= a);
  }

  //subtraction
  function sub(uint a, uint b) internal pure returns(uint c) {
    require(b <= a);
    c = a - b;
  }

  //multiplication
  function mul(uint a, uint b) internal pure returns(uint c) {
    c = a * b;
    require(a == 0 || c / a == b);
  }

  //division
  function div(uint a, uint b) internal pure returns(uint c) {
    require(b > 0);
    c = a / b;
  }

  //ceil
  function ceil(uint256 a, uint256 m) internal pure returns(uint256) {
    uint256 c = add(a, m);
    uint256 d = sub(c, 1);
    return mul(div(d, m), m);
  }

}
// ----------------------------------------------------------------------------
//'Butt Coin' contract, version 0.1, a big-butt emulated on a smaller big-butt.
//
// Symbol      : BUTT
// Name        : Butt Coin
// Total supply: Infinite
// Decimals    : 8
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
function mul(uint a, uint b) internal pure returns(uint c) {
  c = a * b;
  require(a == 0 || c / a == b);
}

//multiplication