
﻿ III Chapter Three They were three full , exquisite days--a true honeymoon . They were at the Hotel-de-Boulogne , on the harbour ; and they lived there , with drawn blinds and closed doors , with flowers on the floor , and iced syrups were brought them early in the morning . Towards evening they took a covered boat and went to dine on one of the islands . It was the time when one hears by the side of the dockyard the caulking-mallets sounding against the hull of vessels . The smoke of the tar rose up between the trees ; there were large fatty drops on the water , undulating in the purple colour of the sun , like floating plaques of Florentine bronze . They rowed down in the midst of moored boats , whose long oblique cables grazed lightly against the bottom of the boat . The din of the town gradually grew distant ; the rolling of carriages , the tumult of voices , the yelping of dogs on the decks of vessels . She took off her bonnet , and they landed on their island . They sat down in the low-ceilinged room of a tavern , at whose door hung black nets . They ate fried smelts , cream and cherries . They lay down upon the grass ; they kissed behind the poplars ; and they would fain , like two Robinsons , have lived for ever in this little place , which seemed to them in their beatitude the most magnificent on earth . It was not the first time that they had seen trees , a blue sky , meadows ; that they had heard the water flowing and the wind blowing in the leaves ; but , no doubt , they had never admired all this , as if Nature had not existed before , or had only begun to be beautiful since the gratification of their desires . At night they returned . The boat glided along the shores of the islands . They sat at the bottom , both hidden by the shade , in silence . The square oars rang in the iron thwarts , and , in the stillness , seemed to mark time , like the beating of a metronome , while at the stern the rudder that trailed behind never ceased its gentle splash against the water . Once the moon rose ; they did not fail to make fine phrases , finding the orb melancholy and full of poetry . She even began to sing-- " One night , do you remember , we were sailing , " etc. Her musical but weak voice died away along the waves , and the winds carried off the trills that Leon heard pass like the flapping of wings about him . She was opposite him , leaning against the partition of the shallop , through one of whose raised blinds the moon streamed in . Her black dress , whose drapery spread out like a fan , made her seem more slender , taller . Her head was raised , her hands clasped , her eyes turned towards heaven . At times the shadow of the willows hid her completely ; then she reappeared suddenly , like a vision in the moonlight . Leon , on the floor by her side , found under his hand a ribbon of scarlet silk . The boatman looked at it , and at last said-- " Perhaps it belongs to the party I took out the other day . A lot of jolly folk , gentlemen and ladies , with cakes , champagne , cornets--everything in style ! There was one especially , a tall handsome man with small moustaches , who was that funny ! And they all kept saying , 'Now tell us something , Adolphe--Dolpe , ' I think . " She shivered . " You are in pain ? " asked Leon , coming closer to her . " Oh , it 's nothing ! No doubt , it is only the night air . " " And who does n't want for women , either , " softly added the sailor , thinking he was paying the stranger a compliment . Then , spitting on his hands , he took the oars again . Yet they had to part . The adieux were sad . He was to send his letters to Mere Rollet , and she gave him such precise instructions about a double envelope that he admired greatly her amorous astuteness . " So you can assure me it is all right ? " she said with her last kiss . " Yes , certainly . " " But why , " he thought afterwards as he came back through the streets alone , " is she so very anxious to get this power of attorney ? " 