contract SafeMath {
  //internals
  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }
  function assert(bool assertion) internal {
    if (!assertion) throw;
  }
}
function safeAdd(uint a, uint b) internal returns (uint) {
  uint c = a + b;
  assert(c>=a && c>=b);
  return c;
}

//internals