UserData for balancer pool exits is malformed and will permanently trap users
UserData for balancer pool exits is malformed and will result in all withdrawal attempts failing, trapping the user permanently.\\nAuraSpell.sol#L184-L189\\n```\\nwAuraPools.getVault(lpToken).exitPool(\\n    IBalancerPool(lpToken).getPoolId(),\\n    address(this),\\n    address(this),\\n    IBalancerVault.ExitPoolRequest(tokens, minAmountsOut, "", false)\\n);\\n```\\n\\nWe see above that UserData is encoded as "". This is problematic as it doesn't contain the proper data for exiting the pool, causing all exit request to fail and trap the user permanently.\\n```\\nfunction exactBptInForTokenOut(bytes memory self) internal pure returns (uint256 bptAmountIn, uint256 tokenIndex) {\\n    (, bptAmountIn, tokenIndex) = abi.decode(self, (WeightedPool.ExitKind, uint256, uint256));\\n}\\n```\\n\\nUserData is decoded into the data shown above when using ExitKind = 0. Since the exit uses "" as the user data this will be decoded as 0 a.k.a EXACT_BPT_IN_FOR_ONE_TOKEN_OUT. This is problematic because the token index and bptAmountIn should also be encoded in user data for this kind of exit. Since it isn't the exit call will always revert and the user will be permanently trapped.
Encode the necessary exit data in userData
Users will be permanently trapped, unable to withdraw
```\\nwAuraPools.getVault(lpToken).exitPool(\\n    IBalancerPool(lpToken).getPoolId(),\\n    address(this),\\n    address(this),\\n    IBalancerVault.ExitPoolRequest(tokens, minAmountsOut, "", false)\\n);\\n```\\n