<!DOCTYPE html>
<html>
<head>
    <title>Line breaking performance test</title>
    <script src="../resources/runner.js"></script>
</head>
<body>
    <pre id="log"></pre>
    <div id="target" style="width: 300px; display:none">
        <div style="text-align: center">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </div>
        <div style="text-align: right">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </div>
        <div style="text-align: justify">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </div>
        <div style="white-space: pre">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </div>
        <div style="overflow-wrap: break-word;">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </div>
        <pre>
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </pre>
        <pre style="white-space: pre-wrap">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </pre>
        <pre style="white-space: pre-line">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </pre>
        <pre style="white-space: nowrap">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </pre>
        <pre style="white-space: pre-wrap; overflow-wrap:break-word">
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </pre>
        <div>
            <h4>ARGUMENTUM</h4>
            <p>
            L. Sergius <b>Catilina</b>, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius <span style="color:blue">Cicero</span> una cum
            C. Antonio consul factus est.  Qua re commotus L. <b>Catilina</b> M. <i>Cicerone</i>
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem <b>Catilina</b>e eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut <b>Catilina</b> spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. <b>Catilina</b>, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani <i>Cicerone</i>m
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum <b>Catilina</b> quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in <b>Catilina</b>m
            vehementissime invehens habuit.
            </p>
            <p>
            Quo usque tandem abutere, <b>Catilina</b>, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, <b>Catilina</b>, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. <span style="color:red">Scipio</span>, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; <b>Catilina</b>m orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, <b>Catilina</b>, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, <b>Catilina</b>, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, <b>Catilina</b>,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            </p>
        </div>
        <div>
            <h4>ARGUMENTUM</h4>
            <br>
            L. Sergius Catilina, homo patricii generis, magna vi et animi et
            corporis, sed ingenio malo pravoque, praetorius, qui iam a. u. c. 689
            caedem consulum facere eaque facta rerum potiri constituerat, casu autem
            rem perficere prohibitus erat, ascitis ad consilium rei publicae
            opprimendae hominibus omnis generis perditissiis atque audacissimis, quos
            inopia, cupiditas, scelera stimulabant, consulatum in annum 691 p. u. c.
            petivit, sed cum, quae in animo habebat, perniciosa rei publicae consilia
            parum occultata essent, studiis bonorum omnium M. Tullius Cicero una cum
            C. Antonio consul factus est.  Qua re commotus L. Catilina M. Cicerone
            C. Antonio consulibus cupidius etiam sua consilia recepit, quibus maxime
            Ciceronis consulis diligentia restitit ad quem Catilinae eiusque sociorum
            consilia a Fulvia, muliere nobili, quae rem habebat cum Q. Curio, qui
            particeps fuit conspirationis illius, deferebantur.  Cum autem ista mala
            consilia contra salutem rei publicae a coniuratis inita apertius iam
            agitarentur, senatus consultum factum est, darent operam consules, ne quid
            res publica detrimenti caperet, effectumque est, ut Catilina spe
            consulatus, quem in proximum annum petebat, excideret, designarenturque
            D. Silanus et L. Murena.  Quae cum ita essent, L. Catilina, qui iam ante
            per Italiam ad homines seditiosos, maxime veteres L. Sullae milites,
            concitandos nuntios miserat, ad C. Manlium, qui Faesulas, in urbem
            Etruriae munitam, manum armatorum coegerat, proficisci constituit et
            bellum patriae inferre convocatisque nocte, quae inter VIII et VII Id.
            Novembres erat, sociis in domum M. Porci Laecae consilium, quod ceperat,
            aperuit.  Qua in congregatione nocturna duo equites Romani Ciceronem
            consulem illa ipsa nocte ante lucem, cum sicut salutaturi eius domum
            intrassent, interficiendum receperunt.  M. Cicero vitatis insidiis proximo
            die, qui fuit a. d.  VI Id.  Novembres, dispositis praesidiis senatum in
            templum Iovis Statoris convocavit, quo cum Catilina quasi sui purgandi
            causa venisset, Cicero eam, quae infra legitur, orationem in Catilinam
            vehementissime invehens habuit.
            <br>
            <br>
            Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
            furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
            audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
            nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
            habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
            consilia non sentis, constrictam iam horum omnium scientia teneri
            coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
            ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
            ignorare arbitraris?  O tempora, o mores! Senatus haec intellegit.  consul
            videt; hic tamen vivit.  Vivit?  immo vero etiam in senatum venit, fit
            publici consilii particeps, notat et designat oculis ad caedem unum
            quemque nostrum.  Nos autem fortes viri satis facere rei publicae videmur,
            si istius furorem ac tela vitemus.  Ad mortem te, Catilina, duci iussu
            consulis iam pridem oportebat, in te conferri pestem, quam tu in nos
            [omnes iam diu] machinaris.  An vero vir amplissumus, P. Scipio, pontifex
            maximus, Ti.  Gracchum mediocriter labefactantem statum rei publicae
            privatus interfecit; Catilinam orbem terrae caede atque incendiis vastare
            cupientem nos consules perferemus?  Nam illa nimis antiqua praetereo, quod
            C. Servilius Ahala Sp.  Maelium novis rebus studentem manu sua occidit.
            Fuit, fuit ista quondam in hac re publica virtus, ut viri fortes
            acrioribus suppliciis civem perniciosum quam acerbissimum hostem
            coercerent.  Habemus senatus consultum in te, Catilina, vehemens et grave,
            non deest rei publicae consilium neque auctoritas huius ordinis; nos, nos,
            dico aperte, consules desumus.  Decrevit quondam senatus, ut L. Opimius
            consul videret, ne quid res publica detrimenti caperet; nox nulla
            intercessit; interfectus est propter quasdam seditionum suspiciones
            C. Gracchus, clarissimo patre, avo, maioribus, occisus est cum liberis
            M. Fulvius consularis.  Simili senatus consulto C. Mario et L.  Valerio
            consulibus est permissa res publica; num unum diem postea L. Saturninum
            tribunum pl.  et C.  Servilium praetorem mors ac rei publicae poena
            remorata est?  At [vero] nos vicesimum iam diem patimur hebescere aciem
            horum auctoritatis.  Habemus enim huiusce modi senatus consultum, verum
            inclusum in tabulis tamquam in vagina reconditum, quo ex senatus consulto
            confestim te interfectum esse, Catilina, convenit.  Vivis, et vivis non ad
            deponendam, sed ad confirmandam audaciam.  Cupio, patres conscripti, me
            esse clementem, cupio in tantis rei publicae periculis me non dissolutum
            videri, sed iam me ipse inertiae nequitiaeque condemno.  Castra sunt in
            Italia contra populum Romanum in Etruriae faucibus conlocata, crescit in
            dies singulos hostium numerus; eorum autem castrorum imperatorem ducemque
            hostium intra moenia atque adeo in senatu videmus intestinam aliquam
            cotidie perniciem rei publicae molientem.  Si te iam, Catilina,
            comprehendi, si interfici iussero, credo, erit verendum mihi, ne non
            potius hoc omnes boni serius a me quam quisquam crudelius factum esse
            dicat.  Verum ego hoc, quod iam pridem factum esse oportuit, certa de
            causa nondum adducor ut faciam.  Tum denique interficiere, cum iam nemo
            tam inprobus, tam perditus, tam tui similis inveniri poterit, qui id non
            iure factum esse fateatur.  Quamdiu quisquam erit, qui te defendere
            audeat, vives, et vives ita, ut [nunc] vivis.  multis meis et firmis
            praesidiis obsessus, ne commovere te contra rem publicam possis.  Multorum
            te etiam oculi et aures non sentientem, sicut adhuc fecerunt,
            speculabuntur atque custodient.
            <br>
        </div>
    </div>
    <script>
        var target = document.getElementById("target");
        var style = target.style;

        function test() {
            style.display = "block";
            style.width = "280px";
            target.offsetLeft;
            style.width = "300px";
            target.offsetLeft;
            style.width = "290px";
            target.offsetLeft;
            style.display = "none";
        }

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