From optics to politics, everything was on display for by-election to one Lok Sabha and two assembly constituencies in Uttar Pradesh, campaigning for which ended on Saturday evening.
With neither the BSP nor the Congress contesting the seats, the fight is between the BJP and the Samajwadi Party (SP)-Rashtriya Lok Dal (RLD) combine.
Voting will be held on December 5 from 7 am to 6 pm and results will be declared on December 8, according to the state election office.
While the by-election to the Mainpuri parliamentary seat is taking place due to the death of Samajwadi Party (SP) founder Mulayam Singh Yadav, in Rampur Sadar and in Khatauli, assembly by-elections were necessitated after SP MLA Azam Khan and BJP MLA Vikram Singh Saini were disqualified following their conviction in different cases.
The outcomes of the by-elections will not have any impact on the central or the state governments as the BJP enjoys a comfortable majority at both levels. However, wins would provide a psychological advantage ahead of the 2024 general elections.
There are six candidates in the fray for the Mainpuri Lok Sabha seat, while 14 and 10 candidates are contesting the assembly by-elections in Khatauli and Rampur Sadar, according to the Election Commission.
In Mainpuri, Mulayam Singh Yadav's elder daughter-in-law and SP president Akhilesh Yadav's wife Dimple Yadav is pitted against BJP's Raghuraj Singh Shakya. The BJP candidate, who was once a close associate of Pragatisheel Samajwadi Party chief and Akhilesh Yadav's uncle Shivpal Singh Yadav, joined the saffron party ahead of the Uttar Pradesh assembly polls held earlier this year.
The BJP in Rampur Sadar has fielded Akash Saxena, who is the son of former party MLA Shiv Bahadur Saxena, against senior SP leader Azam Khan's protege Asim Raja, while in Khautali, the fight is between Vikram Singh Saini's wife Rajkumari Saini and Madan Bhaiya from the RLD.
Uttar Pradesh Chief Minister Yogi Adityanath, deputy chief ministers Keshav Prasad Maurya and Brajesh Pathak, and senior leader Bhupendra Chaudhary were among the top campaigners for the BJP.
Besides the by-elections in his state, Mr Adityanath also campaigned for the party for the Gujarat assembly polls, the first phase of which was held on December 1 and the second is on December 5, coinciding with voting for the by-elections.
SP chief Akhilesh Yadav, who did not canvass for earlier by-elections in the Azamgarh and the Rampur parliamentary seats, led an aggressive campaign for his wife in Mainpuri and attended just one rally along with Khan and Dalit leader Chandrasekhar Azad in Rampur Sadar to seek votes for the party's nominee there.
RLD president Jayant Chaudhary stayed put in Khatauli to garner support for his party's nominee.
Mainpuri hogged the limelight where warring "chacha-bhatija (Shivpal Yadav and nephew Akhilesh Yadav) came together to campaign for Dimple Yadav by burying their hatchets.
During an election meeting in Saifai, Akhilesh Yadav had said, "At times people say there is 'dooriyaan' (distance). There was no 'dooriyaan' between 'chacha' (uncle) and 'bhatija' (nephew). 'Dooriyaan' was there in politics. I had never considered any 'dooriyaan' between uncle and nephew. I am happy that today the 'dooriyaan' in politics has also ended."
With BJP's poll calculation going wrong, Mr Adityanath had hit out at Shivpal Yadav, likening him to pendulum and football.
The state government also downgraded his security from Z to Y category after he mended fences with his nephew and started campaigning in Mainpuri.
Reacting to this, Shivpal Yadav had said this was "expected" from the BJP and now the victory margin of Dimple Yadav will increase further.
While SP leader Khan was disqualified following a court awarding his three years imprisonment in a 2019 hate speech case, BJP's Vikram Singh Saini lost his membership of the assembly after after his conviction in a 2013 Muzaffarnagar riots case.
(Except for the headline, this story has not been edited by NDTV staff and is published from a syndicated feed.)