contract SafeMath {

    // @notice SafeMath multiply function
    // @param a Variable 1
    // @param b Variable 2
    // @result { "" : "result of safe multiply"}
    function mul(uint256 a, uint256 b) internal  returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    // @notice SafeMath divide function
    // @param a Variable 1
    // @param b Variable 2
    // @result { "" : "result of safe multiply"}
    function div(uint256 a, uint256 b) internal  returns (uint256) {
        assert(b > 0);
        uint256 c = a / b;
        return c;
    }

    // @notice SafeMath substract function
    // @param a Variable 1
    // @param b Variable 2
    function sub(uint256 a, uint256 b) internal   returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    // @notice SafeMath addition function
    // @param a Variable 1
    // @param b Variable 2
    function add(uint256 a, uint256 b) internal  returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }

    // @notice SafeMath Power function
    // @param a Variable 1
    // @param b Variable 2
    function pow( uint256 a , uint8 b ) internal returns ( uint256 ){
        uint256 c;
        c = a ** b;
        return c;
    }
}
// @title ICO Simple Contract
// @author Harsh Patel
function mul(uint256 a, uint256 b) internal  returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
}

// @notice SafeMath multiply function
// @param a Variable 1
// @param b Variable 2
// @result { "" : "result of safe multiply"}