// Backward sweep
final double spreadBar = 1.0;
final double dfEndBar = -pv2 / (notional1 * dfEnd * dfEnd) * spreadBar;
final double pv2Bar = spreadBar / (notional1 * dfEnd);
final MultipleCurrencyMulticurveSensitivity pv2DrMC = presentValueCurveSensitivity(fx, multicurves);
final MulticurveSensitivity pv2Dr = pv2DrMC.converted(ccy2, multicurves.getFxRates()).getSensitivity(ccy2);
final List<DoublesPair> list = new ArrayList<>();
list.add(new DoublesPair(payTime, -payTime * dfEnd * dfEndBar));
final Map<String, List<DoublesPair>> result = new HashMap<>();
result.put(multicurves.getName(ccy2), list);
final MulticurveSensitivity dfEndDr = MulticurveSensitivity.ofYieldDiscounting(result);