function withdrawTo(address addr) postStart notNullified returns (bool) {
        uint _d = deposited[addr];
        uint _w = withdrawn[addr];

        uint diff = _withdrawTo(_d, _w, block.timestamp, total);

        
        if (diff == 0) {
            return false;
        }

        
        require((diff + _w) <= ((_d * total) / totalfv));

        
        require(token.transfer(addr, diff));

        withdrawn[addr] += diff;
        remainder -= diff;
        Withdraws(addr, diff);
        return true;
    }