Thousands of protesters took to the streets of French cities again on Saturday - the fifth weekend of nationwide demonstrations against Emmanuel Macron's government.
In Paris, police were out in force but the crowds were smaller than in previous weeks, possibly after the gun attack in Strasbourg which killed five people.
According to official figures, 33,500 protesters had been counted in France by 1300 GMT compared to 77,000 at the same time on Dec. 8.
In Paris, more than 2,000 protestors marched in splintered groups in several neighbourhoods, and at least 148 were arrested by mid-afternoon, according to a Paris police official.
The government had urged protesters to stay off the streets after four people were shot dead at the Christmas market in the city.
Police fired water cannon and teargas in the afternoon to disperse groups of protesters in sporadic, brief clashes with riot police on the Champs-Elysees and adjacent streets.
A handful of topless feminist activists braved chilly temperatures to face off with security forces, a few metres away from the Elysee Palace, the president's residence.
There were also clashes between police and protesters in Nantes, western France, and further south in Bordeaux.
The 'yellow vest' movement started in mid-November with protests at junctions and roundabouts against fuel tax increases.
They then became a wider mobilisation against Macron's economic policies.
Successive weekends of protests in Paris have led to vandalism and violent clashes with security forces.
Despite the protests, several major stores, such as the Galeries Lafayette, opened to lure in Christmas shoppers.
The Interior Minister said around 69,000 police were active on Saturday with a reinforced presence in the cities of Toulouse, Bordeaux and Saint-Etienne.
On Friday, President Macron called for a return to calm in France after nearly a month of protests by the so-called 'yellow vest' movement against his government's policies.
The demonstrations have hit growth and caused widespread disruption.
In a televised address to the nation on Monday, Macron announced wage rises for the poorest workers and tax cuts for pensioners in further concessions meant to end the movement, but many said they would maintain pressure.