Vu :
le recours interjeté par X._ contre l'arrêt rendu le 26 juin 2017 par la Chambre des baux et loyers de la Cour de justice du canton de Genève dans la cause précitée;
la requête d'effet suspensif présentée par la recourante;
l'ordonnance présidentielle du 25 août 2017 fixant à A._, B._ Sàrl, C._ Sàrl, D._, E._ Sàrl, F._ SA et G._ Sàrl, intimés, un délai au 15 septembre 2017 pour se déterminer sur ladite requête et déposer leur réponse éventuelle;
l'écriture du 14 septembre 2017 au terme de laquelle les intimés concluent au rejet tant de la requête d'effet suspensif que du recours;
la lettre du 23 décembre 2017 par laquelle la recourante déclare retirer le recours et demande le remboursement de l'avance de frais de 2'000 fr. dont elle s'est acquittée;
considérant :
qu'il y a lieu de prendre acte de ce retrait et de rayer la cause du rôle;
que la recourante prendra à sa charge les frais judiciaires, dont le montant est réduit (art. 66 al. 2 LTF);
que les intimés, qui se sont déterminés très succinctement sur la requête d'effet suspensif et le recours, ont droit à des dépens réduits (art. 68 al. 2 LTF; art. 8 al. 3 du règlement sur les dépens alloués à la partie adverse et sur l'indemnité pour la représentation d'office dans les causes portées devant le Tribunal fédéral [RS 173.110.210.3]).
Par ces motifs, la Juge instructrice, vu l'art. 32 al. 2 LTF, ordonne :
1.
La cause est rayée du rôle par suite de retrait du recours.
2.
Les frais judiciaires, arrêtés à 200 fr., sont mis à la charge de la recourante.
3.
La recourante versera aux intimés, créanciers solidaires, une indemnité de 600 fr. à titre de dépens.
4.
La présente ordonnance est communiquée aux parties et à la Chambre des baux et loyers de la Cour de justice du canton de Genève.
Lausanne, le 27 décembre 2017
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Juge instructrice : May Canellas
La Greffière : Godat Zimmermann