uint256 pending = user.amount.mul(pool.accRewardPerShare).div(1e12).sub(user.rewardDebt);
uint256 masterBal = pool.rewardToken.capfarm().sub(totalLocks[pool.rewardToken]);
if (pending > masterBal) {
uint256 referAmountLv1 = pending.mul(percentForReferLv1).div(100);
uint256 referAmountLv2 = pending.mul(percentForReferLv2).div(100);
_transferReferral(_pid, referAmountLv1, referAmountLv2);
uint256 amount = pending.sub(referAmountLv1).sub(referAmountLv2);
uint256 lockAmount = amount.mul(pool.percentLockReward).div(100);
pool.rewardToken.mint(msg.sender, amount.sub(lockAmount));
farmLock(msg.sender, lockAmount, _pid);
user.rewardDebtAtBlock = block.number;
emit SendReward(msg.sender, _pid, amount, lockAmount);
user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12);