pub fn decrease_liquidity_and_update_position<'a, 'b, 'c: 'info, 'info>(
    pool_state_loader: &AccountLoader<'info, PoolState>,
    protocol_position: &mut Box<Account<'info, ProtocolPositionState>>,
    personal_position: &mut Box<Account<'info, PersonalPositionState>>,
    tick_array_lower: &AccountLoader<'info, TickArrayState>,
    tick_array_upper: &AccountLoader<'info, TickArrayState>,
    tick_array_bitmap_extension: Option<&'c AccountInfo<'info>>,
    liquidity: u128
) -> Result<(u64, u64, u64, u64)>