Inconsistency in DecimalSafeMath implementations
There are two different implementations of `DecimalSafeMath` in the 3 FairSwap repositories.\\n```\\nlibrary DecimalSafeMath {\\n    function decimalDiv(uint256 a, uint256 b)internal pure returns (uint256) {\\n        // assert(b > 0); // Solidity automatically throws when dividing by 0\\n        uint256 a\\_ = a \\* 1000000000000000000;\\n        uint256 c = a\\_ / b;\\n        // assert(a == b \\* c + a % b); // There is no case in which this doesn't hold\\n        return c;\\n    }\\n```\\n\\n```\\nlibrary DecimalSafeMath {\\n\\n    function decimalDiv(uint256 a, uint256 b)internal pure returns (uint256) {\\n        // assert(b > 0); // Solidity automatically throws when dividing by 0\\n      \\n        uint256 c = (a \\* 1000000000000000000) / b;\\n        // assert(a == b \\* c + a % b); // There is no case in which this doesn't hold\\n        return c;\\n    }\\n```\\n
Try removing duplicate code/libraries and using a better inheritance model to include one file in all FairSwaps.
```\\nlibrary DecimalSafeMath {\\n    function decimalDiv(uint256 a, uint256 b)internal pure returns (uint256) {\\n        // assert(b > 0); // Solidity automatically throws when dividing by 0\\n        uint256 a\\_ = a \\* 1000000000000000000;\\n        uint256 c = a\\_ / b;\\n        // assert(a == b \\* c + a % b); // There is no case in which this doesn't hold\\n        return c;\\n    }\\n```\\n