`QVSimpleStrategy` never updates `allocator.voiceCredits`.
```\\n    function _allocate(bytes memory _data, address _sender) internal virtual override {\\n        …\\n\\n        // check that the recipient has voice credits left to allocate\\n        if (!_hasVoiceCreditsLeft(voiceCreditsToAllocate, allocator.voiceCredits)) revert INVALID();\\n\\n        _qv_allocate(allocator, recipient, recipientId, voiceCreditsToAllocate, _sender);\\n    }\\n```\\n\\n```\\n    function _hasVoiceCreditsLeft(uint256 _voiceCreditsToAllocate, uint256 _allocatedVoiceCredits)\\n        internal\\n        view\\n        override\\n        returns (bool)\\n    {\\n        return _voiceCreditsToAllocate + _allocatedVoiceCredits <= maxVoiceCreditsPerAllocator;\\n    }\\n```\\n\\nThe problem is that `allocator.voiceCredits` is always zero. Both `QVSimpleStrategy` and `QVBaseStrategy` don't update `allocator.voiceCredits`. Thus, allocators can cast more votes than `maxVoiceCreditsPerAllocator`.
Updates `allocator.voiceCredits` in `QVSimpleStrategy._allocate`.\\n```\\n    function _allocate(bytes memory _data, address _sender) internal virtual override {\\n        …\\n\\n        // check that the recipient has voice credits left to allocate\\n        if (!_hasVoiceCreditsLeft(voiceCreditsToAllocate, allocator.voiceCredits)) revert INVALID();\\n// Add the line below\\n       allocator.voiceCredits // Add the line below\\n= voiceCreditsToAllocate;\\n        _qv_allocate(allocator, recipient, recipientId, voiceCreditsToAllocate, _sender);\\n    }\\n```\\n
Every allocator has an unlimited number of votes.
```\\n    function _allocate(bytes memory _data, address _sender) internal virtual override {\\n        …\\n\\n        // check that the recipient has voice credits left to allocate\\n        if (!_hasVoiceCreditsLeft(voiceCreditsToAllocate, allocator.voiceCredits)) revert INVALID();\\n\\n        _qv_allocate(allocator, recipient, recipientId, voiceCreditsToAllocate, _sender);\\n    }\\n```\\n