<!DOCTYPE html>
<html>
<head>
    <!--
        http://www.gutenberg.org/ebooks/41252

        "This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org."
    -->
    <title>Chapter reflow performance test: English prose once</title>
    <script src="../resources/runner.js"></script>
</head>
<body>
    <pre id="log"></pre>
    <div id="target" style="width: 300px; display: none;">
        <p><span>Germany's war Juggernaut by the morning of Monday, August 3, was in full, but incredibly noiseless, motion. I always knew it was a magnificently well greased machine, geared for the maximum of silence, but I felt sure it could not swing into action without some reverberating creaks. Yet Berlin externally had been far more feverishly agitated on Spring Parade days at recurring ends of May than it was now, with "enemies all around" and that "war on two fronts," which most Germans used to talk about as something,</span> <em class="italics">Gott sei Dank</em><span>, they would never live to see. One's male friends of military age--it was now the second day of mobilization--kept on melting away from hour to hour, but amid a complete lack of fuss and bustle. It almost seemed as if the army had orders to rush to the fighting-line in gum-shoes and that everything on wheels had rubber tires. As the Fatherland for years had armed in silence, so she was going to battle. We saw no seventeen-inch guns rumbling to the front. Those were Germany's best-concealed weapons. A military attaché of one of the chief belligerents, who lived in Berlin for four years preceding the war, has since confessed that he never even knew of the "Big Berthas'" existence!</span></p>

        <p><span>Germany girding for Armageddon was distinctly a disappointment. I entirely agreed with a portly dowager from the Middle West, who, between frettings about when she could get a train to the Dutch frontier, continually expressed her chagrin at such "a poor show." She imagined, like a good many of the rest of us, that mobilization in Germany would at the very least see the Supreme War Lord bolting madly up and down</span> <em class="italics">Unter den Linden</em><span>, plunging silver spurs into a foaming white charger and brandishing a glistening sword in martial gestures as Caruso does when he plays Radames in the finale of the second act of Aida. Verdi's Egyptian epic is the Kaiser's favorite opera, and he ought to have remembered, we thought, how a conquering hero should demean himself at such a blood-stirring hour. At least Berlin, we hoped, would rise to the occasion, and thunder and rock with the pomp and circumstance of war's alarums.</span></p>

        <p><span>There was amazingly little of anything of that sort. The Kaiser instead automobiled around town in a prosaic six-cylinder Mercedes, as he long was wont to do, just keeping some rather important professional engagements with the Chief of the General Staff, the Imperial Chancellor and the Secretary of the Navy. As he flitted by, the huge crowds lined up on the curbstone stiffened into attitudes, clicked heels, doffed hats and "</span><em class="italics">hoched</em><span>." The atmosphere was</span> <em class="italics">stimmungsvoller</em> <span>than usual, for German phlegm had vanished along with high prices on the Bourse, but the paroxysm of electric excitement which I always fancied would usher in a German war was unaccountably missing. When you mentioned that phenomenon to German friends, their bosoms swelled with visible pride. They were immeasurably flattered by your indirect compliment that the Kaiser's war establishment was so perfect a mechanism that it could clear for action almost imperceptibly.</span></p>

        <p><span>I had now deserted my home in suburban Wilmersdorf, which I nicknamed the "District of Columbia," for in and all around it Berlin's American colony was domiciled, and taken a room for the opening scenes of the war drama in the Hotel Adlon. With its broad fronts on the Linden and Pariser Platz, and the French, British and Russian Embassies within a stone's throw to the right and left, the Adlon was an ideal vantage point. If there were to be "demonstrations," I could feel sure, at so strategic a point, of being in the thick of them. Events of the succeeding thirty-six hours were to show that I did not reckon without my host on that score.</span></p>

        <p><span>From window and balcony overlooking the Linden I could now see or hear at intervals detachments of Berlin regiments, Uhlans or Infantry of the Guard, or a battery of light artillery, swinging along to railway stations to entrain for the front. Occasionally battalions of provincial regiments, distinguishable because the men did not tower into space like Berlin's guardsmen, crossed town en route from one train to another. The men seemed happier than I had ever before seen German soldiers. That was the only difference, or at least the principal one. The prospect of soon becoming cannon-fodder was evidently far from depressing. Most of them carried flowers entwined round the rifle barrel or protruding from its mouth. Here and there a bouquet dangled rakishly from a helmet. Now and then a flaxen-haired Prussian girl would step into the street and press a posey into some trooper's grimy hand. Yet, except for the fact that the soldiers were all in field gray, (I wonder when the Kaiser's military tailors began making those millions of gray uniforms!) with even their familiar spiked headpiece masked in canvas of the same hue, the Kaiser's fighting men marching off to battle might have been carrying out a workaday route-march. Then, suddenly, a company or a whole battalion would break into song, and the crowd, trailing alongside the bass-drum of the band, just as in peace times, would take up the refrain, and presently half-a-mile of</span> <em class="italics">Unter den Linden</em> <span>was echoing with</span> <em class="italics">Deutschland, Deutschland über Alles</em><span>, and I knew that the Fatherland was at war.</span></p>

        <p><span>At the railway stations of Berlin and countless other German towns and cities at that hour heart-rending little tragedies were being enacted, as fathers, mothers, wives, sisters and sweethearts bade a long farewell to the beloved in gray. Only rarely did some man in uniform himself surrender to the emotions of the moment. These swarthy young Germans, with fifty or sixty pounds of impedimenta strapped round them, were endowed with Spartan stolidity now, and smilingly buoyed up the drooping spirits of the kith and kin they were leaving behind. "</span><em class="italics">Es wird schon gut, Mütterchen! Es wird schon gut!</em><span>" (It will be all right, mother dear! It will be all right!) Thus they returned comfort for tears.</span> <em class="italics">"Nicht unterliegen! Besser nicht zurückkehren!</em><span>" (Don't be beaten! Better not come back at all!) was the good-by greeting blown with the final kisses as many a trainload of embryonic heroes faded slowly from sight beneath the station's gaping archway. Germany was now indubitably convinced that its war was war in a holy cause. The time had come for the Fatherland to rise to the majesty of a great hour. "</span><em class="italics">Auf wiedersehen!</em><span>" sang the country to the army. But if there was to be no reunion, the army must go down fighting to the last gasp for</span> <em class="italics">unsere gerechte Sache</em><span>, manfully, tirelessly, ruthlessly, till victory was enforced. Such were the inspiring thoughts amid which the boys in field gray trooped off to die for Kaiser and Empire.</span></p>

        <p><span>The outstanding event of August 3 was the publication of the German Government's famous apologia for the war, the so-called "White Paper" officially described as "Memorandum and Documents in Relation to the Outbreak of the War." Early in the afternoon a telephone message arrived for me at the Adlon to the effect that if I would call at the Press Bureau of the Foreign Office at five o'clock,</span> <em class="italics">Legationsrat</em> <span>Heilbron, one of Hammann's lieutenants whom I had known for many years, would be glad to deliver me an advance copy for special transmission to London and New York. I lay great stress on the fact that up to sun-down of August 3, 1914, I continued to be</span> <em class="italics">persona gratissima</em> <span>with the Imperial German Government. It was true that one of the young Foreign Office cubs told off to censor press cablegrams at the Main Telegraph Office had, during the preceding three days, expressed annoyance with what he considered my eagerness to "go into details," but</span> <em class="italics">Legationsrat</em><span>Heilbron's invitation to fetch the "White Paper" was gratifying evidence that my relations with the powers-that-be were still "correct," even if not cordial. I was glad of that, because there was constantly in my mind the desire to remain in Germany, whatever happened, with a front-row seat for the big show. At the appointed hour I presented myself in Herr Heilbron's room on the ground floor of the Wilhelmstrasse front of the Foreign Office. He greeted me with old-time courtesy, though I found his demeanor perceptibly depressed. He handed me a copy of the</span> <em class="italics">Denkschrift</em><span>, and, when I begged him for a second one, he complied with a gracious</span> <em class="italics">bitte sehr</em><span>.</span></p>

        <p><span>A London colleague had already intimated to me that the Imperial Chancellor, desiring to place the German case promptly and fully before the British and American publics, would "do his best" with the military authorities who were now in supreme control of the postal telegraph and cable lines to induce them to allow London and New York correspondents to file exhaustive "stories" on the White Paper. As I was sure, however, that Reuter's Agency for England and the Associated Press for America would be handling the affair at great length, my treatment of it was confined, as was usual under such circumstances, to telegraphing a brief introductory summary.</span></p>

        <p><span>What struck me instantly as the hall-marks of the German publication were its treatment of the war as an exclusively Russian-provoked Russo-German affair and its brazenly</span> <em class="italics">ex-parté</em> <span>character--how</span> <em class="italics">ex-parté</em> <span>I did not fully realize till I read England's White Paper a week later. Sir Edward Grey laid his cards on the table, without marginal notes or comment of any kind, and asked the world to pass judgment. Doctor von Bethmann Hollweg's White Paper began with a lengthy plea of justification and ended with quotation of such communications between the Kaiser's Government and its ambassadors and between the German Emperor and the Czar as would most plausibly support the Fatherland's case for war. It was manifestly a biased and incomplete record. It was in fact a doctored record, and suggested that its authors had Bismarck's mutilation of the Ems telegram in mind as a precedent, in emulation of which no German Government could possibly go wrong.</span></p>

        <p><span>Although compiled to include events up to August 1, the German White Paper was silent as the grave in regard to Belgium and the negotiations with the Government of Great Britain. Issued on the night of August 3, when hundreds of thousands of German troops were waiting at Aix-la-Chapelle for the great assault on Liége--if, indeed, at that hour they were not already across the Belgian frontier--this sacred brief designed to establish the Fatherland's case at the bar of world opinion had no single word to say on what was destined to be almost the supreme issue of the war. It was the last word in Imperial German deception. If the German public had known that Sir Edward Grey on July 30 had already "warned Prince Lichnowsky that Germany must not count upon our standing aside in all circumstances," I imagine its bitterness a few nights later, when the fable of England's "treacherous intervention" was sprung upon the deluded Fatherland, might have been less barbaric in its intensity.</span></p>

        <p><span>Next to the omission of all reference to what Sir Edward Grey called Germany's "infamous proposal" for the purchase of British neutrality--a pledge not to despoil France of European territory if England would stand with folded arms while Germany violated Belgium and ravished the French Colonial Empire--the striking feature of the Berlin White Paper was the admission of German-Austrian complicity in the humiliation of Serbia. The Foreign Office, as I have previously explained, had zealously affirmed Germany's entire detachment from Austria's programme for avenging Serajevo. What did the White Paper now tell us? That</span></p>
        <div class="vspace c1"/>
        <p class="pfirst"><span>"Austria had to admit that it would not be consistent either with the dignity or the self-preservation of the Monarchy to look on longer at the operations on the other side of the border without taking action....</span> <em class="italics">We were able to assure our ally most heartily of our agreement with her view of the situation, and to assure her that any action she might consider it necessary to take in order to put an end to the movement in Servia directed against the existence of the Austro-Hungarian Monarchy would receive our approval</em><span>. We were fully aware, in this connection, that warlike moves on the part of Austria-Hungary against Servia would bring Russia into the question, and might draw us into a war in accordance with our duties as an ally."</span></p>
        <div class="vspace c1"/>
        <p class="pfirst"><span>The historic and ineffaceable fact is that Austria--wabbly, invertebrate Austria, which would even to-day, but for Germany, lay prostrate and vanquished--never made a solitary move in the whole plot to coerce Serbia without the full concurrence of the big brother at Berlin. It would be an insult to the intelligence of German diplomacy, stupid as it is, to imagine that the Kaiser's Government sat mute, unconsulted and nonchalant, while Austria worked out a scheme certain, as the Germans themselves admit in their White Paper, to plunge Europe into war.</span></p>

        <p><span>It was my privilege on arriving in the United States on August 22, to furnish the</span> <em class="italics">New York Times</em> <span>with the first copy of the German White Paper to reach the American public. In preparing a prefatory note to accompany the verbatim translation published in next day's paper, I selected the paragraph above quoted as</span> <em class="italics">primâ-facie</em> <span>evidence that the German claim of non-collusion with Austria is subterfuge--to give it the longer and less unparliamentary term.</span></p>

        <p><span>The German White Paper was prepared formally for the information of the Reichstag, which was summoned to meet on Tuesday, August 4 of imperishable memory, for the purpose of voting $325,000,000 of initial war credits. Paris was not won in the expected six weeks, and the Reichstag has voted $7,500,000,000 of war credits up to this writing (September 1, 1915), with melancholy promise of still more to come. The twenty-four hours preceding the war sitting had not been eventless. Monsieur Sverbieff and the staff of the Russian Embassy were the victims of gross insults from the mob in</span> <em class="italics">Unter den Linden</em><span>, as they left their headquarters in automobiles for the railway station. Mounted police were present to "keep order," but their "vigilance" did not deter German men and youths from spitting in the faces of the Czar's representatives, belaboring them with walking-sticks and umbrellas, and offering rowdy indignities to the women of the ambassadorial party. In front of the French Embassy menacing crowds stood throughout the day and night, waiting for a chance to exhibit German patriotism at Monsieur Cambon's expense. When Señor Polê de Bernábe, the Spanish Ambassador, who was calling to arrange to take over the representation of France during the war, made his appearance, the mob mistook him for Cambon and was just prevented in the nick of time from assaulting the Spaniard. How the French Embassy finally got away from Germany, under circumstances which would have shamed a Fiji Island government, was later related for the benefit of posterity in the French</span> <em class="italics">Yellow Book</em><span>. When I read it months later, I remembered my first German teacher in Berlin, a noblewoman, once telling me, when I asked her how to say "gentleman" in German: "There is no such thing as a 'gentleman' in the German language." That was paraphrased to me by another German on a later occasion, when, discussing the ability of German science, so well demonstrated during this war, to devise a substitute for almost anything, he remarked: "The only thing we can't make is a gentleman, because we never had a proper analysis of the necessary ingredients." The Germans, in their communicative moments, always used to acknowledge that Bismarck was right when he called them "a nation of house-servants." It is impressively exemplified on their stage, which boasts the finest character actors imaginable; but when a German player essays to portray the gentleman, he is grotesque. He gropes helplessly in a strange and unexplored realm.</span></p>

        <p><span>On the day before the war session of the Reichstag, the Kaiser, more conscious than ever now of his partnership with Deity, ordained Wednesday, August 5, as a day of universal prayer for the success of German arms. Soon after its proclamation, William II, thunderously acclaimed, appeared in</span> <em class="italics">Unter den Linden</em><span>intermittently, en route to conference with high officers of state. He was clad, like every German soldier one now saw, in field-gray, and ready, one heard, to leave for the front at a moment's notice, to take up his post, assigned him by Hohenzollern warrior traditions, on the battlefield in the midst of his loyal legions. Mobilization was now in full swing, and more and more troops were in evidence, crossing town to railway stations from which they were to be transported east or west, as the Staff's emergencies required. A week before, all these soldiers were in Prussian blue. They were gray now, from head to foot, millions of them. Obviously the clothing department of the army had not been taken by "surprise" by the cruel war "forced" on pacific Germany. Three million uniforms can not be turned out in a whole summer--even in Germany. I thought of this, as gray streams, far into the evening, kept pouring through Berlin, and I thought what a marvelously happy selection that peculiar shade of drab-gray, of almost dust-like invisibility from afar, was for field purposes. To shoot at lines no more colorful than that, it seemed to me, would be like banging away at the horizon itself....</span></p>

        <p><span>History, I suppose, will date Armageddon from August 1, when the German army and navy were mobilized, or perhaps from August 2, when Germany claims that Russia and France fired the first miscreant shots. But the red-letter day of the World Massacre's opening week was beyond all question Tuesday, August 4, which began with the war sitting of the Reichstag and ended with England's declaration of war on Germany. It was destined to be especially big with import for me--of vital import, as events hanging over my unsuspecting head were speedily to reveal.</span></p>

        <p><span>At midday, two hours before the session of the Reichstag in its own chamber, Parliament was "opened" by the Kaiser personally in the celebrated White Hall of the Royal Castle. I had applied for admission after the few available press tickets were already exhausted, but it was not difficult for me to visualize the scene. I had been in the White Hall on several memorable occasions in the past--during the visit of King Edward VII in February, 1909, at a brilliant State banquet and at the ball which followed; at the wedding of the Emperor's daughter, "the sunshine of my House," Princess Victoria Luise, and Duke Ernest August of Brunswick, in May, 1913; and a month later during the Silver Jubilee celebration of the Kaiser's reign, when our own Mr. Carnegie showered plaudits on the Prince of the world's peace. Tower, of</span> <em class="italics">The World</em> <span>and</span> <em class="italics">Daily News</em><span>, was lucky enough to secure a ticket to the Castle ceremonial, and he was bubbling over with excitement at having been privileged to participate in so memorable a function. My old friend, Günther Thomas, late of the</span> <em class="italics">Newyorker-Staatszeitung</em><span>, now joyous in the prospect of joining the German Press Bureau's war staff, came back from the Castle almost pitying me for not having been there. "Wile, I tell you," I can hear him saying now, "it was beautiful, simply beautiful! You missed it! It was enough to make one cry!" Thomas lived in New York seventeen years, but he returned to Germany a more devout Prussian than ever, as a man ought to be whose father fell gloriously at Königgrätz.</span></p>

        <p><span>The description furnished by my English and Prussian colleagues evidently did not exaggerate the splendor and impressiveness of the scene at the White Hall. The Kaiser, in field-general's gray, entered, escorting the Empress. He was solemn, but not anxious-looking. Around the marble-pillared chamber, where only fifteen months before I had seen the Czar and George V of England tripping the minuet with German princesses as the Kaiser's honored guests, were grouped the first men of the Empire. In the places of distinction, closest to the canopied throne, each according to his Court rank, stood the Imperial Chancellor, General von Moltke, Grand-Admiral von Tirpitz and a score of other eminent officers of the civil, naval and military governments. Among the foreign ambassadors only the representatives of Russia and France were missing from their old-time places. Mr. Gerard, modest and retiring as always, amid the glitter of gold lace and brass buttons flashing on all sides, cut a more than ever self-effacing figure in his diplomatic uniform--the plain evening dress of an American gentleman.</span></p>

        <p><span>The Kaiser read his War Speech, which he held in his right hand, while the left firmly gripped his sword-hilt. Beginning in a quiet tone, His Majesty's voice appreciably rose in intensity and volume as he approached the kernel of his message which told how "with a heavy heart I have been compelled to mobilize my army against a neighbor with whom it has fought side by side on so many fields of battle." The Imperial Russian Government, William II went on to say, "yielding to the pressure of an insatiable nationalism, has taken sides with a State which by encouraging criminal attacks has brought on the evil of war." That France, also, the Kaiser continued, "placed herself on the side of our enemies could not surprise us. Too often have our efforts to arrive at friendlier relations with the French Republic come in collision with old hopes and ancient malice." And when the Kaiser had ended, with an invitation to "the leaders of the different parties of the Reichstag" (there were no Socialists present) "to come forward and lay their hands in mine as a pledge," the White Hall reverberated with applause which must have seemed almost indecorous in so august an apartment, but which, no doubt, rang true. It was then, I suppose, that Thomas felt like weeping, and so should I, perhaps, had I been there. The Kaiser, his handshaking-bee over, strode from the scene amid an awesome silence, and the statesmen, the generals and the admirals went their respective ways. All was now in readiness for the real Reichstag session, in which words of deathless significance were to fall from the Chancellor's lips.</span></p>

        <p><span>We were accustomed to sardine-box conditions in the always overcrowded press gallery of the Reichstag on "great days," but to-day we were piled on top of one another in closer formation even than a Prussian infantry platoon in the charge. Familiar faces were missing. Comert, of</span> <em class="italics">Le Temps</em><span>, Caro, of</span> <em class="italics">Le Matin</em><span>, and Bonnefon, of</span> <em class="italics">Le Figaro</em><span>, were not there. They had escaped, we were glad to hear, by one of the very last trains across the French frontier. Löwenton (a brother of Madame Nazimoff), Grossmann, Markoff and Melnikoff, our long-time Russian colleagues, were absent, too. Had they gained Wirballen in time, we wondered, or were they languishing in Spandau?</span></p>

        <p><span>Doctor Paul Goldmann,</span> <em class="italics">doyén</em> <span>of our Berlin corps, was in his accustomed seat, beaming consciously, as became, at such an hour, the correspondent-in-chief of the great allied Vienna</span> <em class="italics">Neue Freie Presse</em><span>. The British and American contingents were on hand in force. Never had we waited for a</span> <em class="italics">Kanzlerrede</em> <span>in such electric expectancy. "Copy" in plenty, such as none of us had ever telegraphed before, was about to be made. Goldmann, a Foreign Office favorite, as well as the all-around most popular foreign journalist in Berlin, may have had an advance hint what was coming, as he frequently did, but to the vast majority of us--British, American, Swedish, Dutch, Italian, Swiss, Spanish and Danish, sandwiched there in the</span> <em class="italics">Pressloge</em> <span>so closely that we could hear, but not move--I am certain that the momentous words and extraordinary scenes about to ensue came as a staggering revelation.</span></p>

        <p><span>Doctor von Bethmann Hollweg, who is flattered when told that he looks like Abraham Lincoln--the resemblance ends there--began speaking at three-fifteen o'clock. Gaunt and fatigued, he tugged nervously at the portfolio of documents on the desk in front of him during the brief introductory remarks of the President of the House, the patriarchal, white-bearded Doctor Kaempf. The Chancellor's manner gave no indication that before he resumed his seat he would rise to heights of oratorical fire of which no one ever thought that "incarnation of passionate doctrinarianism" capable. What he said is known to all the world now; how, in Bismarckian accents, he thundered that "we are in a state of self-defense and necessity knows no law!" How he confessed that "our troops, which have already occupied Luxemburg, may perhaps already have set foot on Belgian territory." How he acknowledged, in a succeeding phrase, to Germany's eternal guilt, that "that violates international law." How he proclaimed the amazing doctrine that, confronted by such emergencies as Germany now was, she had but one duty--"to hack her way through, even though--I say it quite frankly--we are doing wrong!" Our heads, I think, fairly swam as the terrible portent of these words sank into our consciousness. "Our troops may perhaps already have set foot on Belgian soil." That meant one thing, with absolute certainty. It denoted war with England. Trifles have a habit at such moments of lodging themselves firmly in one's mind; and I remember distinctly how, when I heard Bethmann Hollweg fling that challenge forth, I leaned over impulsively to my Swedish friend, Siosteen, of the</span> <em class="italics">Goteborg Tidningen</em><span>, and whispered: "That settles it. England's in it now, too." Siosteen nods an excited assent. It is in the midst of one of the frequent intervals in which the House, floor and galleries alike, is now venting its impassioned approval of the Chancellor's words. I had heard Bülow and Bebel and Bethmann Hollweg himself, times innumerable, set the Reichstag rocking with fervid demonstrations of approval or hostility, but never has it throbbed with such life as to-day. It is the incarnation of the inflamed war spirit of the land. The more defiant the Chancellor's diction, the more fervid the applause it evokes. "</span><em class="italics">Sehr richtig! Sehr richtig!</em><span>" the House shrieks back at him in chorus as he details, step by step, how Germany has been "forced" to draw her terrible sword to beat back the "Russian mobilization menace," how she has tried and failed to bargain with England and Belgium, how she has kept the dogs of war chained to the last, and only released them now when destruction, imminent and certain, is upon her.</span></p>

        <p><span>All eyes in the Press Gallery are riveted on the broad left arc of the floor usurped by the one hundred and eleven Social Democratic deputies of the House of three hundred and ninety-seven members. For the first time in German history their cheers are mingling with those of other parties in support of a Government policy. That, after the Belgian revelation, is beyond all question the dominating feature of a scene tremendous with meaning in countless respects. There is nothing perfunctory about the "Reds'" enthusiasm; that is plain. It is real, spontaneous, universal. No man of them keeps his seat. All are on their feet, succumbing to the engulfing magnitude of the moment. That, it instantly occurs to us, means much to Germany at such an hour. It means that the hope which more than one of the Fatherland's prospective foes in years gone by has fondly cherished, of Socialist revolt in the hour of Germany's peril, was illusory hope. The Chancellor knows what it means. "Our army is in the field!" he declares, trembling with emotion. "Our fleet is ready for battle! The whole German nation stands behind them!" As one man, the entire Reichstag now rises, shouting its approval of these historic words in tones of frenzied exaltation. For two full minutes pandemonium reigns unchecked. Bethmann Hollweg is turning to the Social Democrats. His fist is clenched and he brandishes it in their direction--not in anger this time, but in triumph--and, as if he were proclaiming the proud sentiment for all the world to hear, he exclaims, at the top of his voice, "Yea, the whole nation!" Thus was Armageddon born. Germany, all present knew, would be at war before another sun had gone down, not only with Russia and France, but with England, and, of course, with Belgium, too.</span></p>

        <p><span>"Supposing the Belgians resist?" I asked Schmidt, of the</span> <em class="italics">B. Z. am Mittag</em><span>, a German colleague whom I once christened Berlin's "star" reporter, as we wandered, thinking hard, back to</span> <em class="italics">Unter den Linden</em><span>.</span></p>

        <p><span>"Resist?" he replied, half pitying the feeble-mindedness which prompted such a question. "We shall simply spill them into the ocean."</span></p>
    </div>
    <script>
        var target = document.getElementById("target");
        var style = target.style;

        function test() {
            style.display = "block";

            style.fontSize = "10px";
            style.width = "280px";
            target.offsetLeft;

            style.fontSize = "12px";
            style.width = "300px";
            target.offsetLeft;

            style.display = "none";
        }

        PerfTestRunner.measureRunsPerSecond({ run: test });
    </script>
</body>
</html>
