TargetCardInExile target2 = new TargetCardInExile(filter2, source.getSourceId());
ExileZone scrollRackExileZone = game.getExile().getExileZone(source.getSourceId());
if (scrollRackExileZone != null) {
while (controller.isInGame() && scrollRackExileZone.count(filter, game) > 1) {
controller.lookAtCards("exiled cards with " + sourceObject.getLogName(), scrollRackExileZone, game);
controller.choose(Outcome.Neutral, scrollRackExileZone, target2, game);
Card card = game.getCard(target2.getFirstTarget());
if (card != null) {
game.getExile().removeCard(card, game);
controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.EXILED, true, false);