Death threats, illegal listening devices, candidates who dropped out at the last minute, the run-up to Colombia's presidential election has had it all.
With outgoing President Iván Duque restricted to a single term by the constitution, there are six candidates vying to succeed him in office.
And with a former rebel leading in the opinion polls in a country which was wracked by decades of armed conflict, the campaign has been nothing if not polarising.
Here are five things you need to know.
1. Colombians could elect their first left-wing president and their first black vice-president
Leading in the opinion polls is Gustavo Petro. The senator is running for a coalition of left-wing parties calling itself Historic Pact.
The 62-year-old has run for president before. In the last election, he made it through to the second round but was defeated by a wide margin by the current president, Iván Duque.
But four years on, he appears to be on a high with voters. Not only did Mr Petro win the primary election for his coalition with a whopping 80.5%, he also received many more votes than his rivals did in their primaries.
More than 4.3 million voters cast their ballots for Mr Petro. Meanwhile, the winning candidate of the conservative Team Colombia coalition, Federico "Fico" Gutiérrez, got 2.1 million votes.
Many Colombians have expressed exasperation with their elected leaders and a recent opinion poll suggests 73% are dissatisfied with how Mr Duque of the right-wing Democratic Centre party has led the country.
Not surprisingly, Gustavo Petro is running on a promise to handle things differently. One of his campaign slogans is "Join the change" and many Colombians are telling pollsters that they will do just that at the ballot box on Sunday.
But Mr Petro's past as a rebel fighter with the left-wing M-19 rebel group is something that continues to alienate many conservative Colombians.
The M-19 group was disbanded more than 30 years ago but Mr Petro's rivals never fail to point out that he spent two years in jail on weapons charges.
Mr Petro has held a number of political posts, including mayor of the capital, Bogotá, and is currently a senator.
He has tried hard to counter allegations that he would "ruin" Colombia's economy if elected.
In April, he even went as far as signing a pledge before a notary promising that "nothing or nobody will be expropriated" if he comes to power.
His running mate is Francia Márquez, an Afro-Colombian environmentalist who has galvanised many in the indigenous, black and marginalised communities.
Together, the two make a formidable team which has managed to appeal to the many Colombians who took to the streets in mass protests last year clamouring for change.
2. It's a battle between former mayors
The main challengers of Gustavo Petro are also ex-mayors.
Currently number two in the polls is Federico "Fico" Gutiérrez of the Team Colombia coalition. The 47-year-old served as mayor of Colombia's second city, Medellín, between 2016 and 2020.
He left the post with a popularity rating of more than 80%, polls at the time suggested.
While his Team Colombia coalition includes parties ranging from the centre-right to the right, Mr Gutiérrez has tried to portray himself as "the president of the people".
He says that he will reduce poverty and narrow Colombia's huge levels of inequality while trying to reassure the business sector that any changes will not be as radical as those Mr Petro may bring about. But many Colombians see him as the "continuity candidate".
Another former mayor is currently polling at number three. Rodolfo Hernández led the city of Bucaramanga from 2016 to 2019.
The 77-year-old has surged in the polls in recent weeks and one poll even suggested that he could join Mr Petro in the likely run-off election on 19 June.
Analysts have struggled to describe what Mr Hernández stands for and how to label him, with some calling him a populist.
The construction magnate has portrayed himself as the anti-corruption and anti-establishment candidate, even though he is under investigation for allegedly favouring a company his son had lobbied for.
Mr Hernández has denied the allegations and promised to "put an end to all these [thieving] politicians" and to "teach them a lesson."
Another former mayor, centrist candidate Sergio Fajardo from Medellín, has dropped to just 5% in the opinion polls.
3. Social media played a key role
The unexpected success of the campaign of Rodolfo Hernández, an independent candidate who skipped the last TV debate, can be explained in large part to his savvy use of social media.
He went from being a relatively unknown candidate early in his campaign to being dubbed "the king of TikTok".
In particular, he managed to reach many young voters who may have otherwise been unlikely to take an interest in the oldest candidate in the running for the top job.
4. Death threats and illegal surveillance cast a shadow over the campaign
Gustavo Petro and his running mate Francia Márquez cancelled campaign events in the coffee-growing region saying they had received death threats from a criminal group which is active in the region.
While police said that they were not aware of such threats, an official investigation was launched.
At one of their final rallies in Cali, Mr Petro and Ms Márquez spoke to their supporters from behind bulletproof shields.
Meanwhile, the conservative candidate Fico Gutierrez announced that he had been the victim of illegal surveillance by political rivals after a recording device with a camera was found at his campaign headquarters.
5. Colombia's armed conflict was centre stage
While one of the best known victims of Colombia's armed conflict dropped out of the presidential race at the last minute, the suffering caused by decades of confrontation between guerrillas and the state remained a key issue.
Ingrid Betancourt, a politician who was kidnapped by left-wing rebels of the Revolutionary Armed Forces of Colombia in 2002 and held captive for six years before being freed, withdrew her candidacy just nine days before the election.
The former hostage threw her weight behind independent candidate Rodolfo Hernández.