function ComputeVestSpend(address target) public returns (uint256)
  {
      require(mCanSpend[target]==2); 
      int256 vestingDays = int256(mVestingDays[target]);
      int256 vestingProgress = (int256(block.timestamp)-int256(mVestingBegins[target]))/(int256(DAYSECONDS));
      
      
      if (vestingProgress>vestingDays)
      {
          vestingProgress=vestingDays;
      }
          
      
      if (vestingProgress>0)
      {
              
        int256 allowedVest = ((int256(mVestingBalance[target])*vestingProgress))/vestingDays;
                  
        int256 combined = allowedVest-int256(mVestingSpent[target]);
        
        
        mVestingAllowed[target] = uint256(combined);
        
        return uint256(combined);
      }
      
      
      mVestingAllowed[target]=0;
      
      
      return 0;
  }