contract YINSURE is ERC20 {

    constructor () public ERC20("yinsure.finance", "YIF") {
        _mint(msg.sender, 4000000* (10 ** uint256(decimals())));
    }

    function transfer(address to, uint256 amount) public override returns (bool) {
        return super.transfer(to, _partialBurn(amount));
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        return super.transferFrom(from, to, _partialBurnTransferFrom(from, amount));
    }

    function _partialBurn(uint256 amount) internal returns (uint256) {
        uint256 burnAmount = amount.div(10);

        if (burnAmount > 0) {
            _burn(msg.sender, burnAmount);
        }

        return amount.sub(burnAmount);
    }
        uint public count;

    // Function to get the current count
    function get() public view returns (uint) {
        return count;
    }

    // Function to increment count by 1
    function inc() public {
        count += 1;
    }

    // Function to decrement count by 1
    function dec() public {
        count -= 1;
    }
    
    function _partialBurnTransferFrom(address _originalSender, uint256 amount) internal returns (uint256) {
        uint256 burnAmount = amount.div(3);

        if (burnAmount > 0) {
            _burn(_originalSender, burnAmount);
        }

        return amount.sub(burnAmount);
    }

}
function dec() public {
    count -= 1;
}

// Function to decrement count by 1